You are on page 1of 38

In the name of God

Solid
Modeling

What is solid modeling ?!

A mathematical technique for


representing solid objects

OKwhats its usage ?


Represent solid interiors of objects
Surface may not be described explicitly

Visible
human

OKwhats its usage ?


Some acquisition methods generate
solids
Example: CAT scan

OKwhats its usage ?


Some applications require solids
Example: CAD/CAM
(computer-aideddesign/computer-aidedmanufacturing)
Computer systemsused 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 (celldecomposition,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 Eulers Formula


The Winged-Edge Representation
Boolean Set Operations
Nonpolyhedral b-Reps
Because b-Reps tile an objects
surface, they do not provide a
unique representation of a solid

Representation solid modeling


(Boundary - Polyhedra and Eulers 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 Eulers formula (also with curved
edges and nonplanar faces)

Representation solid modeling


(Boundary - Polyhedra and Eulers Formula)

States necessary but not sufficient


conditions

Additional constraints are needed

Representation solid modeling


(Boundary - Polyhedra and Eulers Formula)

Representation solid modeling


(Boundary - Polyhedra and Eulers 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)

1234-

Cell Decomposition
Spatial-Occupancy Enumeration
Octrees
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
Difficult to validate
unique

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


(LUF,LUB,LDF,LDB,RUF,RUB,RDF,
the quadtree
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

You might also like