Geomodellierung mit Generalized Maps II

advertisement
Creating geomodels with
Generalized Maps
Marcus Apel, 2004
based on works of the Gocad Research Group, Nancy
reference: J-L Mallet: « Geomodeling », Oxford University Press 2002
Reminders: How are objects defined?



cellular partition: sub-division into cells in
N-dimensions
connectivity with other objects
embedding:


geometry in 3d space
numerical properties
cellular partition and connectivity - incidence graph

describes all possible paths to go from a n-cell to a 0-cell,
with only connecting k-cells to (k-1)-cells, n>k>0
incidence graph


nodes  Cells, edges  CellViews
incidence: cell C is an element of CellView w.
3 relationship classes in a GMap

a cell Ci is i-adjacent to another cell Ck, iff




a cell Ci is a sub-cell of Ck, iff




k=i
a (i-1)-cell incident to both can be found, or (i, k) are incident to at
least one common (i+1)-cell
example: 2 triangles (i,k=2) sharing an edge
i<k
Ci can be reached by descending the incidence graph
example: polygon (k=2) with sub-cells edges (i=1) and vertices (i=0)
the k*-adjacency of a i-cell Ci contains all k-cells Ck such
that Ci is a subcell of Ck.

example: all polyhedra (k=3) connected to a vertex (i=0)
adjacency classes
darts, involution, GMap



a dart corresponds to a path (CellView) in the
incidence graph
adjacency relations are translated in relations
between pairs of darts:
a dart has N+1 ai functions (maps), defined from
Ai adjacency relations:


for example a0 connects each pair of darts (d1,d2):
a0(d1)=d2; a0(d2)=d1  involution
a N-GMap {D, (a0, ..., aN)} is a set D of darts
with a set of N+1 ai involution functions
incidence graph
Simplified data structure of a GMap


struct GMap{
Set<Dart*> d;
}
struct Dart{
Dart* alpha[N+1];
Embedding* emb[N+1];
}
GMap - Example



GMap{d1a0,d2a0,..., d3a1} // darts for 6+3 involutions
Dart d1a0{*d2; *emb1},
F1
Dart d2a0{*d1; *emb2}, ...
Embedding emb1{coordxyz, p}, ...
E1
d2
E2
E3
V2
V3
d1
V1
Functions acting on a GMap

the basic function: traversing the orbit of a dart d:

iterating the set of darts that can be reached by a given
set of ai involutions
Basic operations on GMaps


recursive subdivision: an GMap of dimension N
may be thought of a set of GMaps of dimension
N-1 sewn along cells of dimension N-2;
(N-2)-cells are sewn (N-3)-cells; etc. until vertices
are reached
example: a volume can be represented by
polyhedra sewn along their faces; a polyhedron is
represented by its boundary polygons sewn along
their edges.
Basic operations on GMaps






create new GMap
delete GMap
create isolated dart and add it to a GMap,
involutions are initialized as ai(d)=d
delete a dart from a GMap
create an ai involution between 2 darts
delete an ai involution between 2 darts
Sew algorithm - create a N-GMap from (N-1)-cells



2 orbit traversals of the (N-1)-cells along which the
N-cell will be sewn, and setting the involution
sew(d1,d2,N) {
for (d'1 in < a NO1 >(d1), d'2 in < a NO1 >(d2) ){
dispatchCellEmbedding(d'1,d'2);
d'1->a[N]=d'2;
d'2->a[N]=d'1;
}
}
how does unsew work?
Representing Objects with G-Maps:
hierarchical GMaps with Frame
1) Represents the objects boundaries (Macro-topology)
Representing Objects with G-Maps:
hierarchical GMaps with Frame
2) Can be used to subdivide space in regions
Representing Objects with G-Maps
Representing 3d-Objects with G-Maps

3 glued surfaces along a radial line


free edges a3(d) ≠ a2(d)
glued edges a3(d) = a2(d)
Construction of a model
1.
2.
3.
4.
5.
create empty (N+1) dimensional model M
create a cellular GMap-partition L(W) of the Ndimensional dividing wall W
create Frame F(W) such that L(W) is the Lattice
of F(W) and add W to model M
repeat (2) and (3) for a set of N-dividing walls
 M=M(W1,..., Wi)
if necessary, use the glue ("sew") operator to
weld frames of the model M
Building a Model with G-Maps (I)
Building a Model with G-Maps (II)
Building a Model with G-Maps (III)
Building a Model with G-Maps (IV)
Horizon
Fault
Region
Strong points of G-Maps

Strong mathematical basis






- data structure
- operators
only 2 concepts to understand: darts and
involution
uncoupling of topology and geometry
generically defined in N dimensions
generic functions work for for N-cells
more GMap – model examples
Download