GridAcceleratedStreamLines Class Reference

Klasse zur Beschleunigten Berechung von Streamlines. More...

#include <GridAcceleratedStreamLines.h>

List of all members.

Public Member Functions

 GridAcceleratedStreamLines (FlowData *flow)
 Konstruktor.
 ~GridAcceleratedStreamLines (void)
 Destruktor.
void setSize (int w, int h)
 Legt die Größe des Grids fest.
void setArea (vec3 min, vec3 max)
 Legt den Flowdatenbereich fest dem dieses Grid entspricht.
void setDSep (float sd, float ps)
 Legt dsep fest für die Griderzeugung fest.
void setPercentageForDTest (float p)
 Legt dtest über Prozentwert von dsep fest.
void clearGrid ()
 Löscht alle SamplePoints aus dem Grid.
bool getGridIndex (vec3 &pos, int &x, int &y)
 Liefert zu einer Position in den FlowDaten einen Index im Beschleunigungsgitter.
bool isPointValidInGrid (vec3 &pos)
 Zeigt an ob ein Seedpoint gültig ist.
bool isPointValidInGrid (vec3 &pos, float dist)
 Zeigt an ob ein Seedpoint gültig ist.
bool getMinimalDistanceGrid (vec3 &pos, int x, int y, float &dist)
 Liefert den kleinsten Abstand eines Seedpoints zu den umliegenden Samplepoints.
void addPointToGrid (vec3 &point)
 Fügt einen SamplePoint zu dem Grid hinzu.
void setIntegrator (BaseIntegrator *integ)
 Legt den Intergrator fest.
void generateLines ()
 Erzeugt für FlowDaten Streamlines.
void drawLines ()
 Zeigt erzeugte Streamlines an.

Private Attributes

BaseIntegratorintegrator
FlowDataflowData
Cell ** cells
int gridWidth
int gridHeight
int gridSize
int width
int height
GLuint drawList
vec3 minPos
vec3 maxPos
vec3 range
float dsep
float dtest
float percentage
float pixelSize


Detailed Description

Klasse zur Beschleunigten Berechung von Streamlines.

Überlagert die Daten mit einem Gitter dessen Zellen genau dsep x dsep gross sind. Somit können schnell neue Seedpoints gefunden werden. Es muss einfach geprüft werden ob in einer Cell schon SamplePoints enthalten sind, wenn ja dann kann der CandidateSeedPoint nicht benützt werden da dsep-Distanz unterschritten würde.


Constructor & Destructor Documentation

GridAcceleratedStreamLines::GridAcceleratedStreamLines FlowData flow  ) 
 

Konstruktor.

Parameters:
flow Die FlowDaten aus dem Hauptprogramm.

GridAcceleratedStreamLines::~GridAcceleratedStreamLines void   ) 
 

Destruktor.


Member Function Documentation

void GridAcceleratedStreamLines::addPointToGrid vec3 point  ) 
 

Fügt einen SamplePoint zu dem Grid hinzu.

Parameters:
point Der neue Punkt

void GridAcceleratedStreamLines::clearGrid  ) 
 

Löscht alle SamplePoints aus dem Grid.

void GridAcceleratedStreamLines::drawLines  ) 
 

Zeigt erzeugte Streamlines an.

void GridAcceleratedStreamLines::generateLines  ) 
 

Erzeugt für FlowDaten Streamlines.

bool GridAcceleratedStreamLines::getGridIndex vec3 pos,
int &  x,
int &  y
 

Liefert zu einer Position in den FlowDaten einen Index im Beschleunigungsgitter.

Liefert für einen Seedpoint dessen Position im Beschleunigungsgitter.

Parameters:
pos Die Position in den FlowDaten.
x Der x Index im Grid
y Der y Index im Grid

bool GridAcceleratedStreamLines::getMinimalDistanceGrid vec3 pos,
int  x,
int  y,
float &  dist
 

Liefert den kleinsten Abstand eines Seedpoints zu den umliegenden Samplepoints.

Parameters:
pos Position des Seedpoints.
x Gridindex
y Gridindex
dist kleinster Abstand

bool GridAcceleratedStreamLines::isPointValidInGrid vec3 pos,
float  dist
 

Zeigt an ob ein Seedpoint gültig ist.

Parameters:
pos Position des Seedpoints.
dist Minimale Distanze die nicht unterschritten werden darf (dsep)

bool GridAcceleratedStreamLines::isPointValidInGrid vec3 pos  ) 
 

Zeigt an ob ein Seedpoint gültig ist.

Parameters:
pos Position des Seedpoints.

void GridAcceleratedStreamLines::setArea vec3  min,
vec3  max
 

Legt den Flowdatenbereich fest dem dieses Grid entspricht.

Parameters:
min Untere Grenze
max obere Grenze

void GridAcceleratedStreamLines::setDSep float  sd,
float  ps
 

Legt dsep fest für die Griderzeugung fest.

Parameters:
sd Dsep wie es vom Interface kommt
ps Auflösung der Anzeige in Pixels (aus den FlowDaten berechnet)

void GridAcceleratedStreamLines::setIntegrator BaseIntegrator integ  ) 
 

Legt den Intergrator fest.

Setzt den zu verwenden Intergrator für die Streamlineberechnung. Möglich sind Euler, RungeKutta2 und RungeKutta4

Parameters:
integ Der Integrator

void GridAcceleratedStreamLines::setPercentageForDTest float  p  ) 
 

Legt dtest über Prozentwert von dsep fest.

Parameters:
p Prozent von dtest (0.0 - 1.0)

void GridAcceleratedStreamLines::setSize int  w,
int  h
 

Legt die Größe des Grids fest.

Parameters:
w Breite des Grids
h Höhe des Grids


Member Data Documentation

Cell** GridAcceleratedStreamLines::cells [private]
 

GLuint GridAcceleratedStreamLines::drawList [private]
 

float GridAcceleratedStreamLines::dsep [private]
 

float GridAcceleratedStreamLines::dtest [private]
 

FlowData* GridAcceleratedStreamLines::flowData [private]
 

int GridAcceleratedStreamLines::gridHeight [private]
 

int GridAcceleratedStreamLines::gridSize [private]
 

int GridAcceleratedStreamLines::gridWidth [private]
 

int GridAcceleratedStreamLines::height [private]
 

BaseIntegrator* GridAcceleratedStreamLines::integrator [private]
 

vec3 GridAcceleratedStreamLines::maxPos [private]
 

vec3 GridAcceleratedStreamLines::minPos [private]
 

float GridAcceleratedStreamLines::percentage [private]
 

float GridAcceleratedStreamLines::pixelSize [private]
 

vec3 GridAcceleratedStreamLines::range [private]
 

int GridAcceleratedStreamLines::width [private]
 


The documentation for this class was generated from the following files:
Generated on Sun Jan 15 17:55:58 2006 for Show The Flow by  doxygen 1.4.5