• 검색 결과가 없습니다.

Non-manifold modeling system

N/A
N/A
Protected

Academic year: 2022

Share "Non-manifold modeling system"

Copied!
31
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

Non-manifold modeling system

Human-centered CAD Lab.

(2)

Manifold model

Every point on a surface

Two dimensional

every point has a neighborhood which is homeomorphic to a two dimensional disk

Design is carried out in abstract shape in conceptual design stage  non-manifold model

Dimension reduction(mixed dimension) is often used in analysis

 non-manifold model

(3)

Manifold model – cont’

Design process

Incomplete lower level description -> true solid

 whole design process can be supported by non- manifold modeler

Non-manifold modeler

Wire-frame, surface, solid, cellular model, and their mixture can be handled

(4)

Manifold model – cont’

V1

V2

V3

V4

(5)

Manifold model – cont’

Issues to develop a non-manifold modeler

Data structure

Euler operator

Modeling commands

(6)

Data structure

Masuda’s structure

Model is a collection of solid with volume+ laminar face + dangling edge etc.

 entity called complex stores these as a list

 compact, easy to understand

(7)

Data structure – cont’

V4

V5 f5

V2

V1 e7

e8

V3

e6

e1

f4 f2

e2

e4

e5

e3

f1 f3

V6

e9

(8)

Data structure – cont’

Shell

Complex

V1

S1

f1 f2 f3 f4

l1 l2 l3 l4

f5

l5

e8 e7 e3 e1 e2 e4 e5 e9

V6 V3 V5

Volume

Face

Loop

Edge

Vertex

(9)

Data structure – cont’

Does not provide adjacency information between topological entities

Insufficient information on adjacency between faces

Difficult to determine whether a shell S1 should be split into two or a laminar face should be added when a new face is added

Can be determined by geometric calculations but inefficient

(10)

Data structure – cont’

Weiler’s radial edge data structure for adjacency, store cyclic ordering

In manifold model, 2 cycles are enough

face-edge cycle : list of edges for each loop (face)

vertex-edge cycle : list of connected edges at a vertex

(11)

Data structure – cont’

In non-manifold model, 3 cycles are necessary

loop cycle : face-edge cycle

radial cycle : cycle of faces connected to a certain edge (in manifold models, there are two faces all the time )

Disk cycle :

-> similar to vertex-edge cycle

-> one vertex may have many disk cycles

(12)

Data structure – cont’

A

V B V

A B

(13)

Data structure – cont’

Weiler’s radial edge representation

Stores radial cycle and loop cycle, not disk cycle

 models in the previous slide are represented by the same data

Can be differentiated by geometric calculations, but inefficient

In Gursoz and choi’s Vertex Based Representation,

disk cycle is stored explicitly

(14)

Radial edge data structure

Model, region, shell, face, loop, edge, vertex

Model = complex (group of regions) ,

Region = volume (bounded by one or several shells)

Single solid has two regions : Inside, outside

Shell = boundary of region

(15)

Radial edge data structure – cont’

model

region

shell

face-use

loop-use

edge-use

vertex-use

face

loop

edge

vertex

(16)

Radial edge data structure – cont’

Model :

Equivalent to complex, simply means the group of all the regions involved

Region :

Equivalent to the volume and bounded by one or several shells

Single solid has two regions, one for the inside and the other for outside

Shell :

Oriented boundary surface of a region

(17)

Radial edge data structure – cont’

Additional topological entities

face-use, loop-use, edge-use, vertex-use

Similar to representing the connectivity between loops, vertices, and edges through half-edges indirectly

face-use: inside and outside of a face, use of a face by a shell

loop-use: boundary of face-use, same direction as face-use

edge-use: boundary of loop-use

vertex-use: boundary of edge-use

(18)

Radial edge data structure – cont’

shell <-> edge-use

wire-frame model

shell <-> vertex-use

shell consists of a single vertex

loop-use <-> vertex-use

isolated point on a face as its hole loop

(19)

Radial edge data structure – cont’

Edge-use

Radial pointer points to the edge-use on the face-use radially adjacent to the face-use of the given edge-use

 radial ordering of faces about an edge can be derived by tracing the pointers

(20)

Radial edge data structure – cont’

vertex-uses

Stores vertex-edge cycle

By storing all the vertex-use for a vertex, all the edge-use connected to the vertex can be derived

disk cycle is not stored explicitly

(21)

Radial edge data structure – cont’

Face

f1 face-use fu1 eu8

eu1 eu9

eu7 lu1

vu3

e1 eu3

lu3

fu3

f2

fu4 lu4

vu4 eu4 vu6

eu6

V1 fu6

fu5

f3

vu5 eu5

vu2

fu2 lu2

vu1 eu2

(22)

Radial edge data structure – cont’

eu3

eu4 eu5

eu2 eu1

fu3 e1

fu5

fu6

eu6

fu4

fu2 fu1

edge-use mate pointers

edge-use radial pointers

(23)

Operators to manipulate topology

Generalized Euler-Poincare formula for non-manifold models

v – e + (f-r) – (V-Vh+Vc) = C- Ch +Cc

r = rings or holes in faces

V = number of closed volumes

Vh = passages through the volumes

Vc = voids in the volumes

C = number of complexes, or disjoint objects

Ch = passages through objects

Cc = cavities and voids in the objects

(24)

Each complex can be composed of several volume and dangling edge

Operators to manipulate topology – cont’

V4

V5 f5

V2

V1 e7

e8

V3

e6

e1

f4 f2

e2 e4

e5

e3

f1 f3 V6

e9

v=6, e=9, f=5, r=0

V=1, Vh=0, Vc=0, C=1, Ch=0, Cc=0 6 – 9 + (5-0) – (1-0+0) = 1 – 0 + 0

(25)

Operators to manipulate topology – cont’

For manifold case,

V = C, Vh = Ch, Vc = Cc

V – e + (f-r) – (V-Vh+Vc) = V –Vh + Vc

 v – e + (f-r) = 2(V-Vh+Vc)

number of shells equals V + Vc

 v – e + (f-r) = 2(s-Vh) (r = h, Vh = p)

Nine independent base vectors

 nine operators

(26)

Operators to manipulate topology – cont’

mvC (kvC): make(kill) vertex, complex

mev (kev): make(kill) edge, vertex

(27)

Operators to manipulate topology – cont’

meCh (keCh): make(kill) edge, complex_hole

mfkCh (kfmCh): make(kill) face, kill(make)

complex_hole

(28)

Operators to manipulate topology – cont’

mfCc (kfCc): make (kill) face, complex_cavity

mvr (kvr): make (kill) vertex, ring

(29)

Operators to manipulate topology – cont’

mVkCc (kVmCc): make (kill) Volume, kill (make) complex_cavity

mvVc (kvVc): make (kill) vertex, Volume_cavity

(30)

Operators to manipulate topology – cont’

meVh (keVh): make (kill) edge, Volume_hole

(31)

Operators to manipulate topology – cont’

mvC mev

mev

mev

meCh

mfkCh mev

mev

mev mev

meCh

meCh meCh meCh

mfkCh

mfkCh mfkCh

mfkCh

mfCc

z

mVkCc

참조

관련 문서