yingcai xiao
Post on 08-Jan-2016
38 Views
Preview:
DESCRIPTION
TRANSCRIPT
Yingcai Xiao
Chapter 5
Basic Data Representation
Characteristics of Data
• DiscreteInterpolation
P1, P2• Regular/Irregular• Data Dimensions
Data Structure Data Structure Design Criterion
• Compact (save space)
• Efficient (fast retrieval)
• Map-able (easy to convert)
• Minimal Coverage (small foot prints)
• Simple (easy to use)
DatasetDataset
• Data objects in the visualization pipeline are called datasets
• consisting of two pieces: an organizing structure and supplemental data attributes.
DatasetDataset
Structure: topology and geometry•Topology: is the set of properties invariant under certain geometric transformations.•Geometry: is the instantiation of the topology; the specification of positions in a 3D space.•VTK Model: the structure consists of cells and points. The cells specify the topology; while the points specify the geometry
DatasetDataset
Dataset Attribute:•Data to be visualized. •Associated with each point.•Typical attributes: scalars, vectors, normals, texture coordinates, tensors, and user-defined data.
Cell TypesCell Types
• A data set consists of one or more cells• A cell is defined by a “type” and an ordered list of
point• Type: topology, cell type• Ordered list: geometry, points• Together: organizational structure• Use Set: all the cells using a point:
U(pi) = {Ci: pi Ci}
• A data set consists of one or more cells• A cell is defined by a “type” and an ordered list of
point• Type: topology, cell type• Ordered list: geometry, points• Together: organizational structure• Use Set: all the cells using a point:
U(pi) = {Ci: pi Ci}
Cell TypesCell Types
Vertex: zero-dimensional cell, It is defined by a single point. vtkVertexLine: one dimensional cell. It is defined by two points. vtkLinePolyline: is a composite one-dimensional cell consisting of n connected lines. It is defined by an ordered list of n+1 points. vtkPolyLineTriangle: is a primary two-dimensional cell. The triangle is defined by a counter-clockwise ordered list of three points. vtkTrianglePolygon: is a primary two-dimensional cell. The polygon is defined by an ordered list of three or more points lying in a planeTetrahedron: is a primary three-dimensional cell. It is defined by a list of four nonplanar point. VtkTetrahedron
Vertex: zero-dimensional cell, It is defined by a single point. vtkVertexLine: one dimensional cell. It is defined by two points. vtkLinePolyline: is a composite one-dimensional cell consisting of n connected lines. It is defined by an ordered list of n+1 points. vtkPolyLineTriangle: is a primary two-dimensional cell. The triangle is defined by a counter-clockwise ordered list of three points. vtkTrianglePolygon: is a primary two-dimensional cell. The polygon is defined by an ordered list of three or more points lying in a planeTetrahedron: is a primary three-dimensional cell. It is defined by a list of four nonplanar point. VtkTetrahedron
Attribute Data
Attribute data is information associated with the structure of the dataset. It is what to be visualized.
Dataset Attribute Model
Scalars Vectors Normals Texture Coordinates Tensors (The rank of a tensor is the dimension of the matrix
containing its values.) User-defined
Type of Datasets
Dependent on topology of the dataset.
Uniform Grid (uniform in each direction, vtkImageData)
Parameters:
Dimension: nx, ny, nz
Origin: x0, y0, z0
Spacing: dx, dy, dz
Type of Datasets: Uniform Grid Uniform Grid
IJK space
x = i*dx + x0
y = j*dy + y0
z = k*dz + z0
Data array (i, j, k), loop i first, then j, k last.
Simple, compact and speedy retrieval.
Not flexible
Represented by vtkImageData in VTK.
Example: Fig. 5-18.
Rectlinear Grid
Dimension: nx, ny, nz
Nonuniform spacing, but straight grid lines.
float x[44]={0.0,1.2,2.8,3.9…….}
float y[33]={1.0,……………}
float z[22]={0.8,……………}
Rectlinear Grid
IJK space.
x = x[I]; y = y[J]; z = z[K]; Data array (i, j, k), i changes first, then j, k last.
Simple
compact (takes O(nx + ny + nz) more space)
speedy retrieval
Little more flexible
Rectlinear Grid (Example Code)
vtkFloatArray * xCoords=vtkFloatArray::New();
for(i=0;i<44;i++) xCoords-> InsertNextValue(x[i])
vtkFloatArray * yCoords=vtkFloatArray::New();
for(i=0;i<33;i++) yCoords-> InsertNextValue(y[i])
vtkFloatArray * zCoords=vtkFloatArray::New();
for(i=0;i<22;i++) zCoords-> InsertNextValue(z[i])
vtkRectiLinearGrid * rgrid=vtkRectiLinearGrid::New();
rgridsetXCoordinates(xCoords); rgridsetYCoordinates(yCoords);
rgridsetZCoordinates(zCoords);
rgridSetDimensions(44,33,22);
Structured Grid
Dimension: nx, ny, nz
Nonuniform spacing
IJK space (no formula)
Coordinates of each grid node need to be given.
x(I,J,K), y(I,J,K), z(I,J,K)
Data Set:
Internal Memory Structurein
Generic Form
Unstructured Grid
• No dimensions parameters: nx, ny, nz
• No IJK space
• Coordinates of each node need to be given
• Most flexible, can represent any structures of data
• Not compact (need space to save xyz values and cell information)
• Slow retrieval
Data SetInternal MemoryStructure
Unstructured Surface
Polygonal Surface (PolyData)
No dimensions parameters: nx, ny, nz
No IJK space
Coordinates of each node need to be given
Data value(s) on each node needs to be given
Structure Representation
P1 of T1 and P2 of T2 are connected at P(1,0,0)
Structure RepresentationThe Wrong Way: Making Copies
class Tri { public: point P1, P2, P3; };
T2.P2.x=1.0;
T2.P2.y=0.0;
T2.P2.z=0.0;
………
Tri T1, T2;
T1.P1.x=1.0;
T1.P1.y=0.0;
T1.P1.z=0.0;
…….
Structure Representation: Wrong WayEach triangle keeps a copy of the vertex values.
Drawback: if the coordinate of P is changed, all cells having a copy of its value need to be updated.
Structure Representation: Correct Way
Save the vertex values in an array (Point List).
Store the indexes of the vertexes for each triangle in the triangle definition
Structure RepresentationThe Correct Way: Indexing
Point List
P0.x=0.0;
P0.y=0.0;
P0.z=0.0;
P1.x=1.0;
P1.y=0.0;
P1.z=0.0;
P2.x=1.0;
P2.y=1.0;
P2.z=0.0;
P3.x=0.0;
P3.y=1.0;
P3.z=0.0;
Structure RepresentationThe Correct Way: Indexing
class Tri{ public: int ID1, ID2, ID3; };
Tri T1, T2;
T1.ID1=0;
T1.ID2=1;
T1.ID3=3;
T2.ID1=1;
T2.ID2=2;
T2.ID3=3;
Structure Representation: The Correct Way: IndexingEach triangle keeps an index list (cell list) of its vertexes.
If the coordinate of P is changed, none of the cells using it needs to be changed. Only the one copy of its value in the point list needs to be updated.
DatasetDataset
Structure: topology and geometry•Topology: is the set of properties invariant under certain geometric transformations.•Geometry: is the instantiation of the topology; the specification of positions in a 3D space.•VTK Model: the structure consists of cells and points. The cells specify the topology; while the points specify the geometry
Data SetInternal MemoryStructure
Summary of VTK Data StructuresSummary of VTK Data Structures
top related