13.07.2015 Views

CashFlow, A Visualization Framework for 3D Flow - Studierstube ...

CashFlow, A Visualization Framework for 3D Flow - Studierstube ...

CashFlow, A Visualization Framework for 3D Flow - Studierstube ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Implementation4.5. Implementation of SoBaseGrid4.5.1 Geometric PrimitivesIn order to separate the visualization algorithms from the grid representation we havechosen to use geometric primitives in combination with grid iterators (seesection 4.5.2). This approach was also introduced at IEEE Vis2001 tutorial 1 [Tut01]by Patrick Moran, who created the Field Model library [Mor03] implemented as aC++ template library using partial template specialization. Moran also published apaper on the field model library [Mor01].Primitives describe basic geometric properties. This concept is also known asboundary representation (B-rep) [Sam90].• Vertex [dim=0]A point in <strong>3D</strong>.• Edge [dim=1]An edge is a connection of two vertices.• Face [dim=2]A face is created by at least three Edges and three vertices.• Cell [dim=3]A cell is a closed volumetric object, that can be described as a set of faces.4.5.2 Grid IteratorsA lot of algorithms traverse geometric primitives like the marching cubesalgorithm[LC87]. Another example are cutting planes removing parts of a geometry.These algorithms can easily be implemented by traversing the grid and checking thedistance to the cutting plane. One fundamental distinction when talking about grids isbetween regular grids and non-regular grids. Details will be provided in 2) and 3). Tosuite the needs of a large groups of algorithms we selected the following grid iterators.1. General IteratorIterators <strong>for</strong> Regular and Non-Regular Grids. Return all primitives of one kind,that is part of the grid. These iterators base on properties that all used grids havein common.2. Regular Grid IteratorThe most important property all regular grids have in common is, that the holeregular grids can be stored in one array. In<strong>for</strong>mation on adjacency is implicit.Only the dimensions of the grid must be known.3. Non–Regular Grid IteratorThis grid type provides no implicit adjacency in<strong>for</strong>mation, but holds a separatelist of adjacent primitives. Sometimes even this list has to be computed fromthe raw data. Based on that data structure and the properties of that grids usefuliterators are chosen.Remark: There is a difference between non-regular grids and irregular grids.For instance the so called α-grids addressed by [Sad99] are regular grids with83

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!