StreamlineSet Class Reference

#include <StreamlineSet.h>

List of all members.

Public Types

enum  IntegrationMethod { EULER, RUNGE_KUTTA, EULER, RUNGE_KUTTA }
enum  Function { FUNCTION_1, FUNCTION_2, FUNCTION_1, FUNCTION_2 }
enum  IntegrationMethod { EULER, RUNGE_KUTTA, EULER, RUNGE_KUTTA }
enum  Function { FUNCTION_1, FUNCTION_2, FUNCTION_1, FUNCTION_2 }

Public Member Functions

 StreamlineSet (FlowData *_dataset, int _chX, int _chY, float _dt, float _dsep, float _dtest)
 ~StreamlineSet ()
std::list< Streamline * > getStreamlineList ()
void calcStreamlinesEvenly ()
void calcStreamlinesNormal (int numSeedPoints)
PointeulerForwardIntegration (Point *origin)
PointrungeKuttaForwardIntegration (Point *origin)
PointeulerBackwardIntegration (Point *origin)
PointrungeKuttaBackwardIntegration (Point *origin)
void setIntegrationMethod (IntegrationMethod _integrationMethod)
void setDT (float _dt)
void setDTest (float _dtest)
void setDSep (float _dsep)
void setColor (const float r, const float g, const float b)
ColorgetColor ()
void render ()
void renderGlyphMapping ()
void renderTapering ()
void renderTextureGeneration ()
 StreamlineSet (FlowData *_dataset, int _chX, int _chY, float _dt, float _dsep, float _dtest)
 ~StreamlineSet ()
std::list< Streamline * > getStreamlineList ()
void calcStreamlinesEvenly ()
void calcStreamlinesNormal (int numSeedPoints)
PointeulerForwardIntegration (Point *origin)
PointrungeKuttaForwardIntegration (Point *origin)
PointeulerBackwardIntegration (Point *origin)
PointrungeKuttaBackwardIntegration (Point *origin)
void setIntegrationMethod (IntegrationMethod _integrationMethod)
void setFunction (Function _function)
void setDT (float _dt)
void setDTest (float _dtest)
void setDSep (float _dsep)
void setN (int _N)
void setColor (const float r, const float g, const float b)
ColorgetColor ()
void render ()
void renderGlyphMapping ()
void renderTapering (float maxlineWidth, float lineWidthClamp)
void renderTextureGeneration ()

Private Member Functions

bool calcStreamline (Point *seedPoint)
float getNearestDistance (Point *point)
float getDistanceToNearestStreamline (Point *point)
bool isSeedPointTooCloseToNextStreamline (Point *seedPoint)
bool isSamplePointTooCloseToNextStreamline (Point *seedPoint)
bool isPointOutsideDataRange (Point *point)
void registerPoint (Point *point)
void registerPointCache (Point **pointCache, int length)
void resetDistanceField ()
void printStatus ()
void checkDistanceField ()
void setCacheSize ()
void rebuildDistanceField ()
float getFunction1Value (int rank)
float getFunction2Value (int rank)
bool calcStreamline (Point *seedPoint)
void calcStreamlineNormal (Point *seedPoint)
float getNearestDistance (Point *point)
float getDistanceToNearestStreamline (Point *point)
bool isSeedPointTooCloseToNextStreamline (Point *seedPoint)
bool isSamplePointTooCloseToNextStreamline (Point *seedPoint)
bool isPointOutsideDataRange (Point *point)
void registerPoint (Point *point)
void registerPointCache (Point **pointCache, int length)
void resetDistanceField ()
void printStatus ()
void checkDistanceField ()
void setCacheSize ()
void rebuildDistanceField ()
float getFunction1Value (int rank)
float getFunction2Value (int rank)

Private Attributes

std::list< Streamline * > streamlineList
FlowDatadataset
float dt
float dtest
float dtestSquared
float dsep
float dsepSquared
int cacheSize
int chX
int chY
int pointsInStreamlines
int streamlineNumber
int registratedPoints
int cachePoints
int id
int N
int pointCount
Point ** firstPointCache
Point ** secondPointCache
Point ** initPointCache
IntegrationMethod integrationMethod
Function function
std::list< Point * > *** distanceField
int distanceFieldWidth
int distanceFieldHeight
float cellWidth
float cellHeight
Colorcolor


Member Enumeration Documentation

Enumerator:
FUNCTION_1 
FUNCTION_2 
FUNCTION_1 
FUNCTION_2 

Enumerator:
FUNCTION_1 
FUNCTION_2 
FUNCTION_1 
FUNCTION_2 

Enumerator:
EULER 
RUNGE_KUTTA 
EULER 
RUNGE_KUTTA 

Enumerator:
EULER 
RUNGE_KUTTA 
EULER 
RUNGE_KUTTA 


Constructor & Destructor Documentation

StreamlineSet::StreamlineSet ( FlowData _dataset,
int  _chX,
int  _chY,
float  _dt,
float  _dsep,
float  _dtest 
)

Constructs a new StreamlineSet object.

Parameters:
_dataset pointer to the dataset
_chX index of the geometry channel for the x-values
_chY index of the geometry channel for the y-values
_dt dt for the numerical integration
_dsep distance between streamline and new seedpoint
_dtest minimal distance between actual sample point and nearest streamline

StreamlineSet::~StreamlineSet (  ) 

Destroys the StreamlineSet object.

StreamlineSet::StreamlineSet ( FlowData _dataset,
int  _chX,
int  _chY,
float  _dt,
float  _dsep,
float  _dtest 
)

StreamlineSet::~StreamlineSet (  ) 


Member Function Documentation

bool StreamlineSet::calcStreamline ( Point seedPoint  )  [private]

bool StreamlineSet::calcStreamline ( Point seedPoint  )  [private]

Calculates a streamline starting with the seedPoint using the distanceField

Parameters:
seedPoint pointer to the seed point
Returns:
boolean value indicating whether the streamline could be calculated or not

void StreamlineSet::calcStreamlineNormal ( Point seedPoint  )  [private]

Calculates the streamline with the seedpoint without the distanceField

Parameters:
seedPoint pointer to the seed point

void StreamlineSet::calcStreamlinesEvenly (  ) 

void StreamlineSet::calcStreamlinesEvenly (  ) 

Calculates the streamlines evenly

void StreamlineSet::calcStreamlinesNormal ( int  numSeedPoints  ) 

void StreamlineSet::calcStreamlinesNormal ( int  numSeedPoints  ) 

Calculates the streamline normally

Parameters:
numSeedPoints number of the seed points

void StreamlineSet::checkDistanceField (  )  [private]

void StreamlineSet::checkDistanceField (  )  [private]

Checks the distance field

Point* StreamlineSet::eulerBackwardIntegration ( Point origin  ) 

Point * StreamlineSet::eulerBackwardIntegration ( Point origin  ) 

Calculates a numerial integration step using the euler method (inverts the normals)

Parameters:
origin the point to start the numerical integration
Returns:
the calculated point

Point* StreamlineSet::eulerForwardIntegration ( Point origin  ) 

Point * StreamlineSet::eulerForwardIntegration ( Point origin  ) 

Calculates a numerial integration step using the euler method

Parameters:
origin the point to start the numerical integration
Returns:
the calculated point

Color* StreamlineSet::getColor (  ) 

Color * StreamlineSet::getColor (  ) 

Returns the color of the streamlines

Returns:
the color of the streamlines

float StreamlineSet::getDistanceToNearestStreamline ( Point point  )  [private]

float StreamlineSet::getDistanceToNearestStreamline ( Point point  )  [private]

Returns the distance to the nearest streamline

Parameters:
point the point for the distance calculation
Returns:
distance between the point and the next streamline

float StreamlineSet::getFunction1Value ( int  rank  )  [private]

float StreamlineSet::getFunction1Value ( int  rank  )  [private]

Returns the function value for function 1

Parameters:
rank rank of the point inside the streamline
Returns:
function value corresponding to the rank

float StreamlineSet::getFunction2Value ( int  rank  )  [private]

float StreamlineSet::getFunction2Value ( int  rank  )  [private]

Returns the function value for function 2

Parameters:
rank rank of the point inside the streamline
Returns:
function value corresponding to the rank

float StreamlineSet::getNearestDistance ( Point point  )  [private]

float StreamlineSet::getNearestDistance ( Point point  )  [private]

Returns the nearest distance to the next streamline

Parameters:
point pointer to the point
Returns:
the distance to the nearest streamline

std::list<Streamline*> StreamlineSet::getStreamlineList (  ) 

std::list< Streamline * > StreamlineSet::getStreamlineList (  ) 

Returns the streamline list

Returns:
the streamline list

bool StreamlineSet::isPointOutsideDataRange ( Point point  )  [private]

bool StreamlineSet::isPointOutsideDataRange ( Point actPoint  )  [private]

Checks whether the point is outside the data range

Parameters:
actPoint the point that should be checked
Returns:
boolean value indicating whether the point is outside the data range

bool StreamlineSet::isSamplePointTooCloseToNextStreamline ( Point seedPoint  )  [private]

bool StreamlineSet::isSamplePointTooCloseToNextStreamline ( Point samplePoint  )  [private]

Checks whether the nearest streamline is too close to the sample point

Parameters:
seedPoint the sample point
Returns:
boolean value indicating whether the next streamline is too close (< dtest)

bool StreamlineSet::isSeedPointTooCloseToNextStreamline ( Point seedPoint  )  [private]

bool StreamlineSet::isSeedPointTooCloseToNextStreamline ( Point seedPoint  )  [private]

Checks whether the nearest streamline is too close to the seed point

Parameters:
seedPoint the seed point
Returns:
boolean value indicating whether the next streamline is too close (< dsep)

void StreamlineSet::printStatus (  )  [private]

void StreamlineSet::printStatus (  )  [private]

Prints the current status

void StreamlineSet::rebuildDistanceField (  )  [private]

void StreamlineSet::rebuildDistanceField (  )  [private]

Rebuilds the distance field if dsep is changed

void StreamlineSet::registerPoint ( Point point  )  [private]

void StreamlineSet::registerPoint ( Point point  )  [private]

Registers one point in the distance field

Parameters:
point the point to be registered

void StreamlineSet::registerPointCache ( Point **  pointCache,
int  length 
) [private]

void StreamlineSet::registerPointCache ( Point **  pointCache,
int  length 
) [private]

Registers the points inside the cache in the distance field

Parameters:
pointCache array with pointers to the points to be registered
length length of the array

void StreamlineSet::render (  ) 

void StreamlineSet::render (  ) 

Renders the streamlines

void StreamlineSet::renderGlyphMapping (  ) 

void StreamlineSet::renderGlyphMapping (  ) 

Renders evenly spaced streamlines with glyph mapping

void StreamlineSet::renderTapering ( float  maxlineWidth,
float  lineWidthClamp 
)

Renders evenly spaced streamlines with tapering

void StreamlineSet::renderTapering (  ) 

Renders evenly spaced streamlines with tapering

void StreamlineSet::renderTextureGeneration (  ) 

void StreamlineSet::renderTextureGeneration (  ) 

Renders the streamlines using texture generation

void StreamlineSet::resetDistanceField (  )  [private]

void StreamlineSet::resetDistanceField (  )  [private]

Resets the distance field

Point* StreamlineSet::rungeKuttaBackwardIntegration ( Point origin  ) 

Point * StreamlineSet::rungeKuttaBackwardIntegration ( Point origin  ) 

Calculates a numerial integration step using the runge kutta method (inverts the vectors)

Parameters:
origin the point to start the numerical integration
Returns:
the calculated point

Point* StreamlineSet::rungeKuttaForwardIntegration ( Point origin  ) 

Point * StreamlineSet::rungeKuttaForwardIntegration ( Point origin  ) 

Calculates a numerial integration step using the runge kutta method

Parameters:
origin the point to start the numerical integration
Returns:
the calculated point

void StreamlineSet::setCacheSize (  )  [private]

void StreamlineSet::setCacheSize (  )  [private]

Sets the cache size automatically

void StreamlineSet::setColor ( const float  r,
const float  g,
const float  b 
)

void StreamlineSet::setColor ( const float  r,
const float  g,
const float  b 
)

Sets the color of the streamlines

Parameters:
r red channel of the color
g green channel of the color
b blue channel of the color

void StreamlineSet::setDSep ( float  _dsep  ) 

void StreamlineSet::setDSep ( float  _dsep  ) 

Sets dsep

Parameters:
_dsep distance between streamline and new seedpoint

void StreamlineSet::setDT ( float  _dt  ) 

void StreamlineSet::setDT ( float  _dt  ) 

Sets dt

Parameters:
_dt dt for the numerical integration

void StreamlineSet::setDTest ( float  _dtest  ) 

void StreamlineSet::setDTest ( float  _dtest  ) 

Sets dtest

Parameters:
_dtest minimal distance between actual sample point and nearest streamline

void StreamlineSet::setFunction ( Function  _function  ) 

Sets the function used for texture generation

Parameters:
_function the function used for texture generation

void StreamlineSet::setIntegrationMethod ( IntegrationMethod  _integrationMethod  ) 

void StreamlineSet::setIntegrationMethod ( IntegrationMethod  _integrationMethod  ) 

Sets the integration method

Parameters:
_integrationMethod the integration method used by the numerical integration

void StreamlineSet::setN ( int  _N  ) 

Sets the period length for the functions

Parameters:
_N the period length for the functions


Member Data Documentation

number of cached points

int StreamlineSet::cacheSize [private]

number of points stored in the cache

float StreamlineSet::cellHeight [private]

cellHeight of the distanceField

float StreamlineSet::cellWidth [private]

cellWidth of the distanceField

int StreamlineSet::chX [private]

index of the geometry channel for the x-values

int StreamlineSet::chY [private]

index of the geometry channel for the y-values

the color of the streamlines

pointer to the dataset

std::list< Point * > *** StreamlineSet::distanceField [private]

the distanceField needed for the evenly spaced streamlines

number of cells of the distanceField in vertical direction

number of cells of the distanceField in horizontal direction

float StreamlineSet::dsep [private]

distance between streamline and new seedpoint

float StreamlineSet::dsepSquared [private]

dsep squared to minimize calculation effort

float StreamlineSet::dt [private]

dt for the numerical integration

float StreamlineSet::dtest [private]

minimal distance between actual sample point and nearest streamline

float StreamlineSet::dtestSquared [private]

dtest squared to minimize calculation effort

first point cache for the evenly spaced streamlines algorithm

function used by the texture generation

int StreamlineSet::id [private]

id of the actual streamline

pointCache used at the beginning of the streamline

integration method used, either euler or runge kutta

int StreamlineSet::N [private]

period length for texture generation

pointcount inside one streamline

points in the actual streamline

number of registrated points

second point cache for the evenly spaced streamlines algorithm

std::list< Streamline * > StreamlineSet::streamlineList [private]

list that stores pointers to the streamlines

number of streamlines calculated


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

Generated on Tue Jan 20 23:44:14 2009 for FlowVis by  doxygen 1.5.7.1