Geometric and Solid Modeling

Embed Size (px)

Citation preview

  • 7/26/2019 Geometric and Solid Modeling

    1/21

    Seminar in

    Design Computing

    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

    Ian Braid

    Bruce Baumgart

    The Fathers of Solid Modeling (1973)

    ACIS Parasolids

    Methods for computing shapes rather than

    drawing them

  • 7/26/2019 Geometric and Solid Modeling

    2/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

  • 7/26/2019 Geometric and Solid Modeling

    3/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

    SOLID MODELINGData structure:

    F

    FF

    E

    E

    E

    Vertex adjacencies:

    F

    E

    E

    E

    V

    V

    V

    Face adjacencies:

    F

    FE VV

    Edge adjacencies:

    Geometry and topology

    line :: edge

    surface :: face

    E + V = 212 + 8 = 2

  • 7/26/2019 Geometric and Solid Modeling

    4/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

    SOLID MODELINGData structure:

    Other issues:F

    E

    E

    E

    V

    V

    V

    Face adjacencies:

    F

    E

    E

    E

    V

    V

    V

    Face - loop - edge adjacencies:

    LF L

    Faces bounded by

    multiple loops Euler Equation:

    F - E + V = 211 - 24 + 16 = ?? 11 - 24 + 16 - 1 = 2

    F - E + V - L = 2

  • 7/26/2019 Geometric and Solid Modeling

    5/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

    SOLID MODELINGData structure:

    Other issues:

    B

    S1S2

    Shapes bounded by

    multiple shells

    12 - 24 + 16 - 0 = ?

    F - E + V - L = 2

    24 + 16 - 0 = 2*2

    - E + V - L = 2*S

  • 7/26/2019 Geometric and Solid Modeling

    6/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

    SOLID MODELINGData structure:

    Other issues:

    Shapes with holes

    through them

    16 - 36 + 24 - 2 = 2*2 ??

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

    16 - 36 + 24 - 2 = 2*(2 - 1)

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

  • 7/26/2019 Geometric and Solid Modeling

    7/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

    SOLID MODELINGData structure:

    Winged edge data structure

    body

    shell

    face face face

    loop loop

    shell

    edge edge edge

    vert vert

    Edge #

    loop_ptr

    p-edge_ptrs-edge_ptr

    vert_ptr

    F

    FE VV

    Edge adjacencies:

  • 7/26/2019 Geometric and Solid Modeling

    8/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

    SOLID MODELINGData structure:

    Winged edge data structure

    body

    shell

    face face face

    loop loop

    shell

    edge edge edge

    vert vert

    F

    FE VV

    Edge adjacencies:

    Split edge data structure

    Edge #

    loop_ptr

    p-edge_ptr

    s-edge_ptr

    vert_ptr

    op_edge_ptr

  • 7/26/2019 Geometric and Solid Modeling

    9/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

    SOLID MODELINGData structure:

    How to construct - modify

    shape topology

    Euler operators

    F1F2

    F3F4

  • 7/26/2019 Geometric and Solid Modeling

    10/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

    SOLID MODELINGData structure:

    How to construct - modify

    shape topology

    Euler operators

    Mbsflv( );

    1-0+1=2

    Mev( e1,e2, l);

    0-1+1=0

    Mef( e1,e2, l);

    1-1+0=0

    F

    Keml( e1);

    0+1-0-1=0

    F

  • 7/26/2019 Geometric and Solid Modeling

    11/21

    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 */

    vf

    null

    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.

    */

    nullvf

    vv

  • 7/26/2019 Geometric and Solid Modeling

    12/21

    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 edgeis 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 */

  • 7/26/2019 Geometric and Solid Modeling

    13/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

    AB

    C

    *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 successorof edge2; newedge is on existing face;is edge1 = edge2, then newfaceis a single edgeloop */

  • 7/26/2019 Geometric and Solid Modeling

    14/21

    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 */

  • 7/26/2019 Geometric and Solid Modeling

    15/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

    SOLID MODELINGData structure: Euler operators

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

    mbsfv 1 - 0 + 1 - 0 = 2 * (1 - 0)kbsfv n - m + p - q = 2 * (1 - 0)

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

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

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

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

    Keml 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

    Completeness?

  • 7/26/2019 Geometric and Solid Modeling

    16/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

    BOOLEAN OPERATIONS (SIMPLE)OVERVIEW

    1. partition faces sothey are uniquelyinside or outsidethe other shape.

    2. kill all facesinside (outside theother shape.

    3. Glue facestogether

    SOLID MODELINGData structure:

  • 7/26/2019 Geometric and Solid Modeling

    17/21

    Seminar in

    Design Computing

    Geometric and Solid ModelingGLUING 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. CHECK FOR LEGAL GLUE:1.same number of edges in g lued fa ces2.check each glued face has only one loop

    B. SWAP HALF EDGES ON GLUED FACES:1.switch opposite references on opposite half edgesof glued faces

    C. MERGE VERTICES TO A SINGLE SET:1.move all half edge references to one set of vertices2. traverse around all vertices to be removed, retargettingedge references to kept vertices

    D. DELETE EXTRA VERTICES, EDGES, LOOPSAND FACES:1.delete N vertices on one of glued faces2. delete 2*N half edges on both glued faces

    3. delete 2 loops and faces that are glued

    FACE FACE FACE

  • 7/26/2019 Geometric and Solid Modeling

    18/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

    E. IF GLUING TWO SHELLS:1. merge in faces to single list2. delete shell not used in new shapeIF GLUING TWO SHAPES3.merge in vertex lists4.delete shape not used

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

    SHELL

    FACE FACE FACE

    FACE FACEFACE

    Add 2 faces, with n edges

    and n vertices

    MakeLamina

    A B

    C

    Still connected, but withlamina in middle

  • 7/26/2019 Geometric and Solid Modeling

    19/21

    Seminar in

    Design Computing

    Geometric and Solid Modeling

    glue end faces together, removing 2

    faces; deletes a set of edges and

    vertices bounding lamina, adds hole

    FaceGlueMakeHole

    glue end faces together, removing 2

    faces; deletes a set of edges and

    vertices bounding lamina, adds hole

    KillFaceMakehole

  • 7/26/2019 Geometric and Solid Modeling

    20/21

    Seminar in

    Design Computing

    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 S

    An algebra

  • 7/26/2019 Geometric and Solid Modeling

    21/21

    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.