1 data structures for simplicial multi-complexes leila de floriani paola magillo enrico puppo...
TRANSCRIPT
1
Data Structures for Simplicial Multi-Complexes
Leila De Floriani
Paola Magillo
Enrico Puppo
University of Genova
Genova (Italy)
2
Outline
Motivations
The Simplicial Multi-Complex (SMC) and its operations
General-purpose data structures
Compressed data structures
A comparison
3
Multiresolution Cell Complexes
Multiresolution: representation and processing of shapes at different levels of detail
The Multi-Complex: a general, dimension-independent multiresolution model based on decomposition of a shape into cells.
It encompasses most proposed multiresolution models based on cell complexes
Applications: scientific data visualization, virtual reality, terrain modeling...
4
The Simplicial Multi-Complex
Idea: consider a sequence of updates incrementally refining a low-resolution simplicial cell complex into a high-resolution one
In order to perform an update, it is not necessary that all updates coming before it in the sequence have been performed
Notion of dependency between updates: update A depends on B if A removes some simplex created by B
Dependency defines a partial order over the set of updates
5
The Simplicial Multi-Complex
The Simplicial Multi-Complex (SMC) captures the partial order of updates
An SMC is a DAG where
nodes represent updates
arcs represent dependency relations
6
The Simplicial Multi-Complex
A subset of nodes closed with respect to the partial order are in one-to-one correspondence with DAG fronts
Efficient algorithms exist to traverse the DAG and find the front whose associated simplicial complex satisfies a given variable-resolution threshold
7
A Fundamental Query on an SMC
Extract a simplicial complex from the model such that
all cells satisfy a user-defined resolution threshold
the complex has the minimum number of cells
A culling mechanism can be used for restrcting the complex to a region of interest
Implementation of specific queries reduces to an appropriate choice of the resolution threshold and, if needed, of the region of interest
8
Some Examples of Queries on an SMC
Point location: extract the triangle containing a given point at a certain resolution
Line interference query: extract the triangles that intersect a line at a certain resolution
Window query: extract a representation of the terrain portion lying inside the window
Isolines: extract the triangle that contain the given elevation(s) at a certain resolution
Perspective visualization: extract a complex inside the view frustum, such that its resolution is the highest near the viewpoint and decreases with distance
9
Some Examples of Queries
Perspective visualization
10
Some Examples of Queries
Window query
11
Some Examples of Queries
Line interference query
12
A Fundamental Query on an SMC
Algorithms for extracting a simplicial complex traverse the DAG in order to determine the front that gives the desired complex
Basic technique: top-down traversal starting at the root of the DAG
dynamic variant: updates a previous solution by moving its front both forward and backward in the DAG
13
Entities and Relations in an SMC DAG entities: nodes, arcs
Geometric entities: cells (simplexes) and their vertices
DAG relations:
node-arc --> incoming and outgoing arcs
arc-node --> source and destination
cell-cell --> link mutually adjacent cells
14
Entities and Relations in an SMC Relations between DAG and cells:
node-cell --> cells removed, and cells created in the update
cell-node --> update creating, and update removing a cell
arc-cell --> cells created by the source and removed by the destination
cell-arc --> arc connecting the update that created a cell to the update that removes it
15
Entities and Relations in an SMC Cell-vertex relation --> vertices of a simplex
Cell-cell relations --> link pairs of mutually adjacent cells
co-adjacency: links pairs of adjacent cells both created, or both removed, in the same update
counter-adjacency: link pairs of adjacent cells where one cell is removed in the update that creates the other cell, or vice-versa
such adjacency relations do not capture all pairs of mutually adjacent cells in the SMC, but are sufficient to reconstruct the adjacency relations of extracted cell complexes
16
Generation of the Output Simplicial Complex
Some applications simply need a list of simplices described as vertex tuples (e.g., visualization)
Some applications also need adjacency relations between simplices
17
Generation of the Output Simplicial Complex
Three options for generating adjacency information:
1) reconstruction in a post-processing step:
generation of a list of cells
search for mutually adjacent cells inside the list
time complexity: O(n log n) where n = output size
2) incremental update:
the adjacency relations are maintained and incrementally updated during DAG traversal
need to have cell-cell relations explicitly represented in the SMC
time complexity: O(n’) where n’ = number of visited cells, n’>=n
18
Generation of the Output Simplicial Complex
Three options for generating adjacency information:
3) incremental reconstruction:
the adjacency relations are maintained and incrementally updated during DAG traversal
a local search for mutually adjacent cells is performed at each step
time complexity: O(n’ log M) where M = maximum number of cells involved in a single update
19
Data Structures
General-purpose structures:
suitable for any SMC
Compressed structures:
suitable for SMCs where the updates obey to specific rules
more compact since they encode cells implicitly
less efficient query algorithms since cells must be reconstructed during DAG traversal
20
Data Structures
General-purpose structures:
explicit data structure
adjacency-based data structure
Compressed structures:
a structure for Delaunay SMCs
a structure based on edge flips
21
Explicit Data Structure
All SMC entities represented: vertices, cells, nodes, arcs
The following relations are stored:
cell-vertex
optionally, a subset of the cell-cell relations
cell-arc and arc-cell
node-arc and arc-node
22
Explicit Data Structure
Three variants depending on storage of the cell-cell relation:
Full-adjacency: all types of cell-cell relations stored it allows generation of adjacency relations in the output complex through incremental update, in linear time
Half-adjacency: store just one half of cell-cell relations
co-adjacency between cells created in the same update, and counter-adjacency from a cell created in an update to the ones removed in such update it does not allow incremental adjacency update in the dynamic version of the extraction algorithm
Zero-adjacency: no relation stored
incremental adjacency update not supported; adjacency relations must be reconstructed, either incrementally during DAG traversal, or in a post-processing step
23
Adjacency-based Data Structure
The DAG is not represented
Only vertices and cells are represented
The following relations are stored:
cell-vertex
all cell-cell relations
It allows generation of adjacency relations in the output complex through incremental update, in linear time
Extraction algorithms are more complicated since they simulate a DAG traversal without having the DAG
24
Comparison of General-Purpose Structures
Parameters:
d = dimension of the embedding space k = dimension of the cells s = number of simplices (cells) a = number of arcs, a <= s
We consider an array-based implementation, space for vertex coordinates is not reported here
Explicit data structure
with no-adjacency --> (k+3) s + 4 a <= (k+7) s with half-adjacency --> (2k+4) s + 4 a <= (2k+8) s with full-adjacency --> (3k+5) s + 4 a <= (3k+9) s
Adjacency-based structure --> 3 (k+1) s
25
Compressed Data Structures
Avoid storing cells and cell-oriented relations
Assumption: each update exhibits a specific pattern
Examples: vertex insertion, vertex split (expansion of a vertex into an edge)
26
Compressed Data Structures Stored entities: vertices, nodes, arcs
Stored relations:
node-arc, arc-node
for each node, suitable parameters that allow reconstructing the cells created and removed, based on the knowledge about the update pattern
node parameters depend on the specific compressed structure
27
A Compressed Data Structure for Delaunay SMC
For d-dimensional SMCs embedded in d dimensions (e.g., representing the domain of a scalar field)
Update pattern: vertex insertion in a Delaunay simplicial complex
Node parameters: a reference to the new vertex inserted in the update
During DAG traversal, the triangles are reconstructed by using a dynamic algorithm for Delaunay simplicial complexes (efficient ones available for Delaunay triangulations in 2D)
High compression rate, extraction algorithms are slowed by the Delaunay computation
Space complexity in an array-based implementation (except space for vertex coordinates) --> 4 a
28
A Compressed Data Structure Based on Edge Flips
For two-dimensional SMCs
Update pattern: vertex insertion in triangulation
Node parameters:
a reference to the new vertex inserted in the update
a reference triangle
a sequence of edge flips
29
A Compressed Data Structure Based on Edge Flips
During DAG traversal, the update encoded in a node is applied to the current triangulation in the following way:
split the reference triangle at the point to be inserted
performing the sequence of flips
30
A Compressed Data Structure Based on Edge Flips
Good compression rate, extra work during DAG traversal reduces to symbolic manipulation, no numerical computations involved
Space complexity in an array-based implementation (except space for vertex coordinates) --> 4 a + (log (b!)-1) v where v = number of vertices, b = maximum degree of a vertex
It does not extend to higher dimensions
31
Comparison of General-Purpose and Compressed Structures
In compressed structures, no attributes can be associated with individual cells
We can store one attribute for all cells created by a node (e.g., the average, the maximum, the minimum)
If the user-defined resolution threshold relies on cell attributes, its evaluation will be approximated
Approximation may lead to either under-refined or over-refined complexes
The Delaunay-based compressed structure needs about 1/4 of the space needed by the explicit structure with zero-adjacency
The edge-flip compressed structure needs about 1/3 the space of the explicit one
Extraction algorithms are slower due to cell reconstruction
32
Conclusions and Future Work General-purpose data structure defined for any SMC
Comnpressed structure defined in two dimensions
The Delaunay-based structure extends to higher dimensions but it is not trivial to implement DAG traversal
The structure base on edge flips does not extend to higher dimensions
We plan to investigate more compressed structure in dimensions > 2
A software library based on the SMC has been developed
We plan to study data structures for managing an SMC on secondary storage (e.g., as a support for a geometric or geographic database)
A software library based on the SMC has been developed