170 likes | 374 Views
Spatial Information Systems (SIS) COMP 30110 Spatial data structures (3). e3. e2. e. e4. e1. More Topological Data Structures. Arc-node structure (Peucker and Chrisman, 1975): stores EV and EF Winged-edge structure (Weiler, 1985): extends the DCEL
E N D
Spatial Information Systems (SIS) COMP 30110 Spatial data structures (3)
e3 e2 e e4 e1 More Topological Data Structures Arc-node structure (Peucker and Chrisman, 1975): stores EV and EF Winged-edge structure (Weiler, 1985): extends the DCEL structure by storing 4 edges instead of just 2 in relation EE Generally used for geometric modeling applications
EE E ET EV VE TE V VT T TT VV TV Data Structures for Triangulations Entities vertices edges triangles Relations: vertex-based edge-based triangle-based
P1 e3 e1 t P3 e2 P2 Triangle-based relations NOTE: Triangle-based relations: TV, TE, TT are all constant (3 entities involved)
Data Structures for Triangulations DCEL: ok for any plane subdivision Symmetric data structure: ok for any plane subdivision Simplified symmetric data structure: ad hoc for triangulations Triangle-based data structure: ad hoc for triangulations
EE E EF EV VE* FE* V F DCEL structure DCEL structure stores: the three sets of entities V, E, F the three edge-based relations EV, EE, EF (all constant) the two partial relations: FE* and VE* FE*: associates a face f with one of the edges bounding f VE*: associates a vertex v with one of the edges incident in v
P4 e4 P1 f0 t2 e3 e1 e5 t1 P3 e2 P2 DCEL structure for triangulations: example NOTE: FE is a constant relation now. To facilitate querying, we could store all three edges bounding each triangle. A different treatment can be used for f0.
E EF EV VE FE V F Symmetric structure • Symmetric structure stores: • the three sets of entities V, E, F • relation EV and its inverse VE • relation FE and its inverse EF
P4 e4 P1 f0 t2 e3 e1 e5 t1 P3 e2 P2 Symmetric structure for triangulations: example
E ET EV VE* TE V T Simplified symmetric structure • Simplified symmetric structure stores: • the three sets of entities V, E, T (and, implicitly, the external face) • relation TE and its inverse ET • relation EV and its inverse (partial) VE*
P4 e4 P1 f0 t2 e3 e1 e5 t1 P3 e2 P2 Simplified symmetric structure: example
Simplified symmetric structure: space • for each edge, we storetwo constant relations involving • 2 entities: 4e • for each triangle, we storeone constant relations involving • 3 entities: 3t • for each vertex, we store one constant relation, involving one entity: n • Space required to store relations: 4e + 3t + n • Also, for each vertex, we store its geometric coordinates:2n
Simplified symmetric structure: calculating missing relations • How can we extract the missing relations? • (i.e., VE, VV, VT, TV, TT)
V T TT TV Triangle-based data structure Entities: vertices triangles (and, implicitly, the external face) Relations: TV and TT
P4 e4 P1 f0 t2 e3 e1 e5 t1 P3 e2 P2 Triangle-based data structure: example NOTE: for each triangle t, the two lists corresponding to TV and TT must be sorted accordingly (see example)
Triangle-based data structure: space • for each triangle, we storetwo constant relations involving • 3 entities: 6t • for each vertex, we store its geometric coordinates:2n
Triangle-based data structure: notes • The edges of the triangulation are not stored explicitly • To retrieve them, we need to traverse the boundaries of triangles (pairs of consecutive vertices). This corresponds to calculating relation TE • While we extract the edges of the triangulation, we can calculate EV, ET, and EE • Calculating vertex-based relations (VT, VV, VE) involves traversing the entire data structure: O(n) • To avoid this, often this data structure is augmented with relation VT* (i.e., for each vertex v, we store one of the triangles that have v on their boundary)