# Spatial Information Systems (SIS) COMP 30110 Spatial data structures (3)

## Presentation on theme: "Spatial Information Systems (SIS) COMP 30110 Spatial data structures (3)"— Presentation transcript:

Spatial Information Systems (SIS) COMP 30110 Spatial data structures (3)

More Topological Data Structures Arc-node structure (Peucker and Chrisman, 1975): stores EV Arc-node structure (Peucker and Chrisman, 1975): stores EV and EF and EF Winged-edge structure (Weiler, 1985): extends the DCEL Winged-edge structure (Weiler, 1985): extends the DCEL structure by storing 4 edges instead of just 2 in relation EE structure by storing 4 edges instead of just 2 in relation EE Generally used for geometric modeling applications e e2 e4 e1 e3

Data Structures for Triangulations Entities Entities – vertices – edges – triangles Relations: Relations: – vertex-based – edge-based – triangle-based V T E ET TT TE TV VT EV VE EE VV

Triangle-based relations NOTE: Triangle-based relations: TV, TE, TT are all constant (3 entities involved) TV, TE, TT are all constant (3 entities involved) t e1 P1 e2 e3 P2 P3

Data Structures for Triangulations DCEL: ok for any plane subdivision DCEL: ok for any plane subdivision Symmetric data structure: ok for any plane subdivision Symmetric data structure: ok for any plane subdivision Simplified symmetric data structure: ad hoc for triangulations Simplified symmetric data structure: ad hoc for triangulations Triangle-based data structure: ad hoc for triangulations Triangle-based data structure: ad hoc for triangulations

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 V F E EF * FE * EV * VE * EE

Partialrelations VE * FE * P1e1f0e1 P2e2t1e1 P3e3t2e3 P4e4 Entities VP1,P2,P3,P4 Ee1,e2,e3,e4,e5 Ff0,t1,t2 Edge -basedrelations EVEFEE e1P2,P1t1,f0e2,e4 e2P3,P2t1,f0e3,e1 e3P1,P3t1,t2e1,e5 e4P1,P4t2,f0e3,e5 e5P4,P3t2,f0e4,e2 t1 e1 P1 e2 e3 P2 P3 P4 e5 e4 t2 f0 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.

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 V F E EF FE EV VE

t1 e1 P1 e2 e3 P2 P3 P4 e5 e4 t2 f0 Symmetric structure for triangulations: example EVEFVEFE e1P2,P1t1,f0P1e1,e4,e3f0e1, e4,e5,e2 e2P3,P2t1,f0P2e2,e1t1e1,e3,e2 e3P1,P3t1,t2P3e3,e5,e2t2e3,e4,e5 e4P1,P4t2,f0P4e4,e5 e5P4,P3t2,f0

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 * V T E ET TE EV * VE *

t1 e1 P1 e2 e3 P2 P3 P4 e5 e4 t2 f0 Simplified symmetric structure: example EVETVE * TE e1P2,P1t1,f0P1e1t1e1,e3,e2 e2P3,P2t1,f0P2e2t2e3,e4,e5 e3P1,P3t1,t2P3e3 e4P1,P4t2,f0P4e4 e5P4,P3t2,f0

Simplified symmetric structure: space for each edge, we store two constant relations involving for each edge, we store two constant relations involving 2 entities: 4e 2 entities: 4e for each triangle, we store one constant relations involving for each triangle, we store one constant relations involving 3 entities: 3t 3 entities: 3t for each vertex, we store one constant relation, involving one entity: n for each vertex, we store one constant relation, involving one entity: n Space required to store relations: 4e + 3t + n Space required to store relations: 4e + 3t + n Also, for each vertex, we store its geometric coordinates: 2nAlso, for each vertex, we store its geometric coordinates: 2n

Simplified symmetric structure: calculating missing relations How can we extract the missing relations? How can we extract the missing relations? (i.e., VE, VV, VT, TV, TT)

Triangle-based data structure Entities: Entities: – vertices – triangles (and, implicitly, the external face) Relations: Relations: – TV and TT V T TT TV

Triangle-based data structure: example t1 e1 P1 e2 e3 P2 P3 P4 e5 e4 t2 f0 TVTT t1P2,P1,P3f0,t2,f0 t2P3,P1,P4t1,f0,f0 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 store two constant relations involving for each triangle, we store two constant relations involving 3 entities: 6t 3 entities: 6t for each vertex, we store its geometric coordinates: 2n for each vertex, we store its geometric coordinates: 2n

Triangle-based data structure: notes The edges of the triangulation are not stored explicitly 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 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 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) 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) 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)

Download ppt "Spatial Information Systems (SIS) COMP 30110 Spatial data structures (3)"

Similar presentations