“In the name of God”




Solid
    Modeling
What is solid modeling ?!


A mathematical technique for
  representing solid objects
OK…what’s its usage ?


• Represent solid interiors of objects
     Surface may not be described explicitly




                     Visible human
OK…what’s its usage ?


• Some acquisition methods generate solids
     Example: CAT scan
OK…what’s its usage ?


• Some applications require solids
     Example: CAD/CAM
              (computer-aided design/computer-aided manufacturing)
             Computer systems used to design and manufacture products
What concerns do we have for
              representing?
•   Domain ---> large enough
•   Unambiguous ---> one & only one , (!what is this)
•   Unique ---> encode in only one way -> (testing)
•   Accurate ---> without approximation
What concerns do we have for
             representing?
• Closure ---> union-intersection-rotation-translation
• Compact ---> save space
• Allow using efficient algorithms.
REGULARIZED BOOLEAN SET
      OPERATIONS
REGULARIZED BOOLEAN SET
      OPERATIONS

     But what we want :
REGULARIZED BOOLEAN SET
      OPERATIONS
Representation solid modeling

•   Primitive instancing
•   Sweeps
•   B-Reps
•   Spatial partitioning (cell-decomposition,spatial
    occupancy enumeration,octrees,BSP trees)
• CSG
Representation solid modeling
               (Primitive instancing)

• Define a set of primitive 3D solid shapes
• Primitive instances are similar to parameterized
  objects
• A family with few differences in members
• Relatively complex objects
• Without combining objects
Representation solid modeling
                      (Sweep)

• sweeping a 2D surface in 3D space to create
  an object
• Translational sweep
• Rotational sweep
       The object being swept does not need to be
                           2D
Representation solid modeling
                      (Sweep)

• General sweeps ---> (difficult to model efficiency)
Representation solid modeling
                     (Sweep)

• It is difficult to apply regularized Boolean set
  operations
• Even simple sweeps are not close under
  regularized Boolean set operations
Representation solid modeling
                           (Boundary)

• Describe an object in terms of its surface boundaries :
  vertices , edges , and faces

        Determining what constitutes a face can be difficult if curved
                          surfaces are allowed




• So some b-reps are restricted to planar , polygon , etc
Representation solid modeling
                       (Boundary)



•   Polyhedra and Euler’s Formula
•   The Winged-Edge Representation
•   Boolean Set Operations
•   Nonpolyhedral b-Reps
           Because b-Reps tile an object’s surface, they
           do not provide a unique representation of a
                               solid
Representation solid modeling
          (Boundary - Polyhedra and Euler’s Formula)


• A polyhedron is solid that is bounded by a set
  of polygon (and some additional constraints)
• The b-Reps of a simple polyhedron satisfies
  Euler’s formula (also with curved edges and nonplanar faces)
Representation solid modeling
        (Boundary - Polyhedra and Euler’s Formula)



• States necessary but not sufficient conditions




• Additional constraints are needed
Representation solid modeling
  (Boundary - Polyhedra and Euler’s Formula)
Representation solid modeling
  (Boundary - Polyhedra and Euler’s Formula)




Tweak operators do not affect number of vertices
                 , edges , etc…
Representation solid modeling
         (Boundary – “Winged-Edge” Representation)


• What is simple representation? (advantages and
  disadvantages?!)
• The better way but more complex is
  “Winged-Edge” representation(handles only faces
  without holes)
Representation solid modeling
           (Boundary – Boolean Set Operation)




• Inspect the polygons in both objects , splitting
  them if necessary
Representation solid modeling
             (Boundary – Nonpolyhedral)


• Poly-rep can only approximate Nonpolys
Representation solid modeling
                  (Spatial-Partitioning)


• A solid is decomposed into a collection of
  adjoining nonintersecting solids. (more primitive)


•   1- Cell Decomposition
•   2- Spatial-Occupancy Enumeration
•   3- Octrees
•   4- Binary Space-Partitioning Trees
Representation solid modeling
        (Spatial-Partitioning – “Cell Decomposition”)


• Defines a set of primitive cells
• Differs from primitive instancing(“Glue” operation)
• Unambiguous but not necessarily unique
                       Difficult to validate
Representation solid modeling
  (Spatial-Partitioning – “Spatial-Occupancy” Enumeration)


• Voxels




                   Unique and unambiguous
                       But approximate
                         !save space
Representation solid modeling
   (Spatial-Partitioning – “Spatial-Occupancy” Enumeration)


• Often used in biomedical application (such as
  Computerized Axial Tomography(CAT) scans)
Representation solid modeling
                (Spatial-Partitioning –“Octrees”)


• A hierarchical variant of spatial-occupancy enumeration
• Full – partially full - empty
Representation solid modeling
      (Spatial-Partitioning –“Octrees”)


 The “Octree” is similar to the quadtree
       (LUF,LUB,LDF,LDB,RUF,RUB,RDF,RDB)
Representation solid modeling
           (Spatial-Partitioning –“Octrees”)


• Boolean set operations and transformations
Representation solid modeling
             (Spatial-Partitioning –“Octrees”)

• Neighbor finding




• Linear notations
        – 00X,010,011,020,…..
Representation solid modeling
            (Constructive Solid Geometry)
                         CSG

• Operators at the internal nodes and simple
  primitives at the leaves
Representation solid modeling
                (Constructive Solid Geometry)
                             CSG

• Not unique




• Deleting-adding replacing-modifying subtrees-etc
Just a moment, let
  compare them
Comparison of Representations

• Accuracy :
     Spatial-partitioning & polygon B-Rep ---> approximate
     CSG & curved surfaces B-Rep & primitive instancing ---> maybe better

• Domain :
     Primitive instancing & sweeps ---> limited
     B-rep ---> a very wide classes of objects
     Spatial-partitioning ---> represent any solid

• Uniqueness :
     only “Octree” and spatial-occupancy-enumeration approaches guarantee
     the uniqueness of a representation !!
Comparison of Representations

• Closure :
     primitive instancing ---> cannot be combined at all
     sweeps ---> are not closed

• Compactness and efficiency :
     CSG ---> compactness and the ability to record Boolean operations
Thank you

Solid modeling

  • 1.
    “In the nameof God” Solid Modeling
  • 2.
    What is solidmodeling ?! A mathematical technique for representing solid objects
  • 3.
    OK…what’s its usage? • Represent solid interiors of objects Surface may not be described explicitly Visible human
  • 4.
    OK…what’s its usage? • Some acquisition methods generate solids Example: CAT scan
  • 5.
    OK…what’s its usage? • Some applications require solids Example: CAD/CAM (computer-aided design/computer-aided manufacturing) Computer systems used to design and manufacture products
  • 6.
    What concerns dowe have for representing? • Domain ---> large enough • Unambiguous ---> one & only one , (!what is this) • Unique ---> encode in only one way -> (testing) • Accurate ---> without approximation
  • 7.
    What concerns dowe have for representing? • Closure ---> union-intersection-rotation-translation • Compact ---> save space • Allow using efficient algorithms.
  • 8.
  • 9.
    REGULARIZED BOOLEAN SET OPERATIONS But what we want :
  • 10.
  • 11.
    Representation solid modeling • Primitive instancing • Sweeps • B-Reps • Spatial partitioning (cell-decomposition,spatial occupancy enumeration,octrees,BSP trees) • CSG
  • 12.
    Representation solid modeling (Primitive instancing) • Define a set of primitive 3D solid shapes • Primitive instances are similar to parameterized objects • A family with few differences in members • Relatively complex objects • Without combining objects
  • 13.
    Representation solid modeling (Sweep) • sweeping a 2D surface in 3D space to create an object • Translational sweep • Rotational sweep The object being swept does not need to be 2D
  • 14.
    Representation solid modeling (Sweep) • General sweeps ---> (difficult to model efficiency)
  • 15.
    Representation solid modeling (Sweep) • It is difficult to apply regularized Boolean set operations • Even simple sweeps are not close under regularized Boolean set operations
  • 16.
    Representation solid modeling (Boundary) • Describe an object in terms of its surface boundaries : vertices , edges , and faces Determining what constitutes a face can be difficult if curved surfaces are allowed • So some b-reps are restricted to planar , polygon , etc
  • 17.
    Representation solid modeling (Boundary) • Polyhedra and Euler’s Formula • The Winged-Edge Representation • Boolean Set Operations • Nonpolyhedral b-Reps Because b-Reps tile an object’s surface, they do not provide a unique representation of a solid
  • 18.
    Representation solid modeling (Boundary - Polyhedra and Euler’s Formula) • A polyhedron is solid that is bounded by a set of polygon (and some additional constraints) • The b-Reps of a simple polyhedron satisfies Euler’s formula (also with curved edges and nonplanar faces)
  • 19.
    Representation solid modeling (Boundary - Polyhedra and Euler’s Formula) • States necessary but not sufficient conditions • Additional constraints are needed
  • 20.
    Representation solid modeling (Boundary - Polyhedra and Euler’s Formula)
  • 21.
    Representation solid modeling (Boundary - Polyhedra and Euler’s Formula) Tweak operators do not affect number of vertices , edges , etc…
  • 22.
    Representation solid modeling (Boundary – “Winged-Edge” Representation) • What is simple representation? (advantages and disadvantages?!) • The better way but more complex is “Winged-Edge” representation(handles only faces without holes)
  • 23.
    Representation solid modeling (Boundary – Boolean Set Operation) • Inspect the polygons in both objects , splitting them if necessary
  • 24.
    Representation solid modeling (Boundary – Nonpolyhedral) • Poly-rep can only approximate Nonpolys
  • 25.
    Representation solid modeling (Spatial-Partitioning) • A solid is decomposed into a collection of adjoining nonintersecting solids. (more primitive) • 1- Cell Decomposition • 2- Spatial-Occupancy Enumeration • 3- Octrees • 4- Binary Space-Partitioning Trees
  • 26.
    Representation solid modeling (Spatial-Partitioning – “Cell Decomposition”) • Defines a set of primitive cells • Differs from primitive instancing(“Glue” operation) • Unambiguous but not necessarily unique Difficult to validate
  • 27.
    Representation solid modeling (Spatial-Partitioning – “Spatial-Occupancy” Enumeration) • Voxels Unique and unambiguous But approximate !save space
  • 28.
    Representation solid modeling (Spatial-Partitioning – “Spatial-Occupancy” Enumeration) • Often used in biomedical application (such as Computerized Axial Tomography(CAT) scans)
  • 29.
    Representation solid modeling (Spatial-Partitioning –“Octrees”) • A hierarchical variant of spatial-occupancy enumeration • Full – partially full - empty
  • 30.
    Representation solid modeling (Spatial-Partitioning –“Octrees”) The “Octree” is similar to the quadtree (LUF,LUB,LDF,LDB,RUF,RUB,RDF,RDB)
  • 31.
    Representation solid modeling (Spatial-Partitioning –“Octrees”) • Boolean set operations and transformations
  • 32.
    Representation solid modeling (Spatial-Partitioning –“Octrees”) • Neighbor finding • Linear notations – 00X,010,011,020,…..
  • 33.
    Representation solid modeling (Constructive Solid Geometry) CSG • Operators at the internal nodes and simple primitives at the leaves
  • 34.
    Representation solid modeling (Constructive Solid Geometry) CSG • Not unique • Deleting-adding replacing-modifying subtrees-etc
  • 35.
    Just a moment,let compare them
  • 36.
    Comparison of Representations •Accuracy : Spatial-partitioning & polygon B-Rep ---> approximate CSG & curved surfaces B-Rep & primitive instancing ---> maybe better • Domain : Primitive instancing & sweeps ---> limited B-rep ---> a very wide classes of objects Spatial-partitioning ---> represent any solid • Uniqueness : only “Octree” and spatial-occupancy-enumeration approaches guarantee the uniqueness of a representation !!
  • 37.
    Comparison of Representations •Closure : primitive instancing ---> cannot be combined at all sweeps ---> are not closed • Compactness and efficiency : CSG ---> compactness and the ability to record Boolean operations
  • 38.