Sei sulla pagina 1di 21

Geometric and Solid Modeling

Interactive Design in 3D
A representation that was general enough to
depict any shape
Editing operations that would allow shapes to
be modified limitlessly
Methods for computing shapes rather than
drawing them
The Fathers of Solid Modeling (1973)
Ian Braid
Bruce Baumgart
Seminar in
Design Computing

ACIS

Parasolids

Geometric and Solid Modeling

Seminar in
Design Computing

Geometric and Solid Modeling


SOLID MODELING
Data structure:
F
E

E
F

Vertex adjacencies:
Geometry and topology
line :: edge

F
F

Face adjacencies:

Edge adjacencies:

surface :: face

Seminar in
Design Computing

E F

E+V=2
12 + 8 = 2

Geometric and Solid Modeling


SOLID MODELING
Data structure:
Other issues:

E
V

E F
E
V

Face adjacencies:
V
E
F L E L F
E

V
Faces bounded by
multiple loops
Seminar in
Design Computing

Face - loop - edge adjacencies:


Euler Equation:
F-E+V=2
F-E+V-L=2
11 - 24 + 16 = ??
11 - 24 + 16 - 1 = 2

Geometric and Solid Modeling


SOLID MODELING
Data structure:
Other issues:

B
S1

S2

Shapes bounded by
multiple shells
F-E+V-L=2
12 - 24 + 16 - 0 = ?
Seminar in
Design Computing

- E + V - L = 2*S
24 + 16 - 0 = 2*2

Geometric and Solid Modeling


SOLID MODELING
Data structure:
Other issues:

F - E + V - L = 2*(S - H)

Shapes with holes


through them
F - E + V - L = 2*S
16 - 36 + 24 - 2 = 2*2 ??

Seminar in
Design Computing

F - E + V - L = 2*(S - H)
16 - 36 + 24 - 2 = 2*(2 - 1)

Geometric and Solid Modeling


SOLID MODELING
body

Data structure:
Winged edge data structure

F
F

shell

shell

V
face

face

loop

loop

edge

edge

vert

vert

face

Edge adjacencies:
Edge #
loop_ptr
p-edge_ptr
s-edge_ptr
vert_ptr

Seminar in
Design Computing

edge

Geometric and Solid Modeling


SOLID MODELING
body

Data structure:
Winged edge data structure

F
F

shell

shell

V
face

face

loop

loop

edge

edge

vert

vert

face

Edge adjacencies:
Edge #
op_edge_ptr
loop_ptr
p-edge_ptr
s-edge_ptr
vert_ptr

Split edge data structure


Seminar in
Design Computing

edge

Geometric and Solid Modeling


SOLID MODELING
Data structure:
How to construct - modify
shape topology
Euler operators

F1

Seminar in
Design Computing

F3

F4

F2

Geometric and Solid Modeling


SOLID MODELING
Data structure:

Mbsflv( );

Mev( e1,e2, l);

How to construct - modify


shape topology
Euler operators

1-0+1=2

0-1+1=0

Mef( e1,e2, l);

Keml( e1);

1-1+0=0
0+1-0-1=0

Seminar in
Design Computing

Geometric and Solid Modeling


*body Mbsflv()
/* creates a minimal shape, consisting of a body and shell, with one
face bounded by a vertex */
null
f

Kbsflv(s, body_too )
* body s;
flag body_too;
/* deletes a shell, consisting of all its faces, loops, edges and vertices.
The flag determines if it is the last shell, whether to delete the body also.
*/
f

null
v

Seminar in
Design Computing

Geometric and Solid Modeling


*edge Mev( *edge1,*edge2,*loop1 )
*edge edge1, edge2;
*loop loop1;
/* adds a new edge as successor of edge1. oppedge of new edge
is predecessor of edge2. all edges between edge1 and edge2 are
put on new vertex in the case where an edge is connected to a
vertex bounding a face, the loop of the bounding vertex is given */

Seminar in
Design Computing

Geometric and Solid Modeling


*edge Mef( *edge1,*edge2, *loop1 )
*edge edge1, edge2;
*loop loop1;
/* makes an edge and faceloop; new face may be bound by single
edge; new edge is successor to edghe1 and its opposite its successor
of edge2; newedge is on existing face;is edge1 = edge2, then newface
is a single edgeloop */

A
B

Seminar in
Design Computing

Geometric and Solid Modeling


*edge Mekl(*edge1, edge2, loop1, loop2 )
*edge edge1, edge2;
*loop loop1,loop2;

/* makes a new edge between 2 loops on the same face, kills one loop; new edge
is successor of edge1 and oppedge is successor of edge2 */

Seminar in
Design Computing

Geometric and Solid Modeling


SOLID MODELING
Data structure:
Operator
mbsfv
kbsfv
mev
kev
mef
kef
Mekl
Keml

Completeness?

Euler operators
F - E + V - L = 2 * (S - H)
1
n
0
0
1

- 0 +
- m +
- 1 +
+1 - 1 +

1 p 1 1 0 -

0
q
0
0
0

=
=
=
=
=

2*
2*
2*
2*
2*

(1
(1
(0
(0
(0

0)
0)
0)
0)
0)

-1 + 1 + 0 - 0 = 2 * (0 - 0)
0 - 1 + 0 + 1 = 2 * (0 - 0)
0 + 1 + 0 - 1 = 2 * (0 - 0)

FglueMhole -2 - n + n - 0 = 2 * (0 - 1) glue end faces to make torus


Mlamina
2 - n + n - 0 = 2 * (1 - 0) cuts thru shape & makes lamina
KfaceMhole -2 + m - m - 0 = 2 * (0 - 1) merges two pockets into a hole
Fglue
-2 + m - m - 0 = 2 * (-1 - 0) glues two coincident faces
KLamina -2 + m - m - 0 = 2 * (-1 - 0) deletes lamina
Seminar in
Design Computing

BOOLEAN OPERATIONS (SIMPLE)


OVERVIEW

Geometric and Solid Modeling


1. partition faces so
are uniquely
SOLID MODELING they
inside or outside
the other shape.
Data structure:

2. kill all faces


inside (outside the
other shape.

3. Glue faces
together

Seminar in
Design Computing

Geometric and Solid Modeling


GLUING TWO FACES WITHOUT INNER LOOPS:
This operation deletes N edges and N vertices and 2 faces and either (deletes
one shell) or (increases the genus (number of holes) by 1).
PARAMETERS PASSED: half-edge on each face that is to be merged
A. CH EC K FOR LEGAL GLUE:
1.same number of edges i n glued faces
2.check each glued face has only one loop

C. MERGE VERTICES TO A SINGLE SET:


1.move all half edge references to one set of vertices
2. traverse around all vertices to be removed, retargetting
edge references to kept vertices

Seminar in
Design Computing

B. SWAP HALF EDGES ON GLUED FACES:


1.switch opposite references on opposite half edges
of glued faces

D. DELETE EXTRA VERTICES, EDGES, LOOPS


AND FACES:
1.delete N vertices on one of glued faces
2. delete 2*N half edges on both glued faces
3. delete 2 loops and faces that are glued

FACE

FACE

FACE

Geometric and Solid Modeling


E. IF GLUING TWO SHELLS:
1. merge in faces to single list
2. delete shell not used in new shape
IF GLUING TWO SHAPES
3.merge in vertex lists
4.delete shape not used

F. DO NEEDED BOOKKEEPING:
1.re-index all faces, edges and vertices
2. update euler count and change genus, if necessary

SHELL
FACE

FACE

FACE

FACE

FACE
FACE

MakeLamina
A

Add 2 faces, with n edges


and n vertices

Still connected, but with


lamina in middle

Seminar in
Design Computing

Geometric and Solid Modeling


FaceGlueMakeHole

glue end faces together, removing 2


faces; deletes a set of edges and
vertices bounding lamina, adds hole

Seminar in
Design Computing

KillFaceMakehole

glue end faces together, removing 2


faces; deletes a set of edges and
vertices bounding lamina, adds hole

Geometric and Solid Modeling


What is a legal solid shape? All operations must
respect a set of basic well-formedness conditions
Continuous
No infinite dimensions
No self-intersections
Mobius Law regarding manifolds

S
An algebra
Seminar in
Design Computing

Geometric and Solid Modeling

Assignment A:
The Expanded Euler equation, with the parameters F,E,V,L,S,H, defines a
shape topology appropriate for a family of shapes.
Is there a unique shape topology for a particular set of parameters? If we
stored shape topologies by their parameters, would there be a unique
topology for a given set of Euler parameters?
Please (informally) provide a convincing argument one way or the other.
Assignment B:
Define the sequence of Euler operators needed to define an
extrusion, on M sides in the base.

Seminar in
Design Computing

Potrebbero piacerti anche