FlowGeometry Class Reference

class for handling the geometry == rectangular grids organized in vertices and cells More...

#include <FlowGeometry.h>

Collaboration diagram for FlowGeometry:
[legend]

List of all members.

Public Member Functions

 FlowGeometry ()
 ~FlowGeometry ()
 deletes the allocated geometry storage
bool getInterpolationAt (vec3 pos, int *vtxID, float *coef)
 Returns true if inside. Stores the vertex indices and interpolation weights for the given position in the arrays.
bool readFromFile (char *header, FILE *fp, bool bigEndian)
 reads the geometry gris data from a file
int getDimX ()
 returns the number of vertices in X dimension
int getDimY ()
 returns the number of vertices in Y dimension
int getDimZ ()
 returns the number of vertices in Z dimension, is always 1
float getMinX ()
 returns the minimum in the X dimension
float getMaxX ()
 returns the maximum in the X dimension
float getMinY ()
 returns the minimum in the Y dimension
float getMaxY ()
 returns the maximum in the Y dimension
int getRightNeigh (int vtxID)
 returns the vertex ID of the neighbour on its right
int getTopNeigh (int vtxID)
 returns the vertex ID of the neighbour on its top
int getLeftNeigh (int vtxID)
 returns the vertex ID of the neighbour on its left
int getBottomNeigh (int vtxID)
 returns the vertex ID of the neighbour on its bottom
vec3 normalizeCoords (vec3 pos)
 compression of coordinates in each dimension separately, returns values scaled to <0,1>
vec3 unNormalizeCoords (vec3 pos)
 inverts the compression. From values of <0,1> it restores the real geometrical coordinates

Private Member Functions

int getVtx (int x, int y)
 returns general vtxID for the vertex array indexes
int getVtxX (int vtxID)
 returns X index for the general vtxID
int getVtxY (int vtxID)
 returns Y index for the general vtxID
int getXYvtx (vec3 pos)
 returns X index of the last vertex lying left to the position x and the Y index of the last vertex lying under the position y
vec3 getPos (int vtxID)
 returns the position of the vertex
float getPosX (int vtxID)
 returns the x position of the vertex
float getPosY (int vtxID)
 returns the y position of the vertex
int getNearestVtx (vec3 pos)
 a very slow and dumb routine, that finds the nearest vertex to the given position

Private Attributes

int dim [2]
 resolution of the data for the dimensions X, Y
vec3 boundaryMin
 minimum boundary values for the dataset geometry sotred as {minX, minY)
vec3 boundaryMax
 maximum boundary values for the dataset geometry sotred as (maxX, maxY)
vec3 boundarySize
 boundary sizes for the dataset geometry sotred as (maX - minX, maxY - minY)
vec3geometryData
 Storage for the geometry.
bool isFlipped
 indicates whether the x and y axes have to be swaped
int counter

Friends

class FlowData


Detailed Description

class for handling the geometry == rectangular grids organized in vertices and cells

Constructor & Destructor Documentation

FlowGeometry::FlowGeometry (  ) 

FlowGeometry::~FlowGeometry (  ) 

deletes the allocated geometry storage


Member Function Documentation

int FlowGeometry::getBottomNeigh ( int  vtxID  ) 

returns the vertex ID of the neighbour on its bottom

int FlowGeometry::getDimX (  )  [inline]

returns the number of vertices in X dimension

int FlowGeometry::getDimY (  )  [inline]

returns the number of vertices in Y dimension

int FlowGeometry::getDimZ (  )  [inline]

returns the number of vertices in Z dimension, is always 1

bool FlowGeometry::getInterpolationAt ( vec3  pos,
int *  vtxID,
float *  coef 
)

Returns true if inside. Stores the vertex indices and interpolation weights for the given position in the arrays.

Interpolates the value for a point using its four neighbor vertices.

Stores the indexes and weights of vertices surrounding the given position. This information can be used later on for interpolation of channel values.

Parameters:
pos geometrical position for the lookup
vtxID list of surrounding vertices (given by vertex ID)
coef list of surrounding vertex weights (sum == 1.0)
Returns:
true if the given position is inside of the geometrical boundaries

int FlowGeometry::getLeftNeigh ( int  vtxID  ) 

returns the vertex ID of the neighbour on its left

float FlowGeometry::getMaxX (  )  [inline]

returns the maximum in the X dimension

float FlowGeometry::getMaxY (  )  [inline]

returns the maximum in the Y dimension

float FlowGeometry::getMinX (  )  [inline]

returns the minimum in the X dimension

float FlowGeometry::getMinY (  )  [inline]

returns the minimum in the Y dimension

int FlowGeometry::getNearestVtx ( vec3  pos  )  [private]

a very slow and dumb routine, that finds the nearest vertex to the given position

Improved version of getNearestVtx(). Compares the distance only to the four surrounding neighbor vertices and returns the closest.

vec3 FlowGeometry::getPos ( int  vtxID  )  [inline, private]

returns the position of the vertex

float FlowGeometry::getPosX ( int  vtxID  )  [inline, private]

returns the x position of the vertex

float FlowGeometry::getPosY ( int  vtxID  )  [inline, private]

returns the y position of the vertex

int FlowGeometry::getRightNeigh ( int  vtxID  ) 

returns the vertex ID of the neighbour on its right

int FlowGeometry::getTopNeigh ( int  vtxID  ) 

returns the vertex ID of the neighbour on its top

int FlowGeometry::getVtx ( int  x,
int  y 
) [private]

returns general vtxID for the vertex array indexes

int FlowGeometry::getVtxX ( int  vtxID  )  [private]

returns X index for the general vtxID

int FlowGeometry::getVtxY ( int  vtxID  )  [private]

returns Y index for the general vtxID

int FlowGeometry::getXYvtx ( vec3  pos  )  [private]

returns X index of the last vertex lying left to the position x and the Y index of the last vertex lying under the position y

vec3 FlowGeometry::normalizeCoords ( vec3  pos  ) 

compression of coordinates in each dimension separately, returns values scaled to <0,1>

bool FlowGeometry::readFromFile ( char *  header,
FILE *  fp,
bool  bigEndian 
)

reads the geometry gris data from a file

vec3 FlowGeometry::unNormalizeCoords ( vec3  pos  ) 

inverts the compression. From values of <0,1> it restores the real geometrical coordinates


Friends And Related Function Documentation

friend class FlowData [friend]


Member Data Documentation

maximum boundary values for the dataset geometry sotred as (maxX, maxY)

minimum boundary values for the dataset geometry sotred as {minX, minY)

boundary sizes for the dataset geometry sotred as (maX - minX, maxY - minY)

int FlowGeometry::counter [private]

int FlowGeometry::dim[2] [private]

resolution of the data for the dimensions X, Y

Storage for the geometry.

bool FlowGeometry::isFlipped [private]

indicates whether the x and y axes have to be swaped


The documentation for this class was generated from the following files:

Generated on Mon Jan 26 22:10:05 2009 for FlowVis by  doxygen 1.5.7.1