Public Member Functions | Static Public Member Functions

Vislucsgl::Renderlogic Class Reference

Implementiert die Renderlogik, Renderloop und Laden der Texturen. More...

List of all members.

Public Member Functions

 Renderlogic (CSGL12Control Control, System.Drawing.Color ClearColor)
 Der Konstruktor.
void init ()
 Konfiguriert OpenGL und lädt die Shader und FBOs.
void loadTextureFile (string FileName)
 Instanziert die Volumendaten aus der angegebenen Datei, übergibt sie dem TransferModifier, und bereitet die Texturen und die Ansicht vor.
void reload1dTexture ()
 Läd die Transfer Textur (neu) auf die Grafikkarte.
void switchView (int value)
 Setzt die gewünschte Ansicht (Top=0, Front=1, Side=2)
void setFlipX (bool value)
 Setzt die Umkehrung der X Achse (ein=true, aus=false)
void setFlipY (bool value)
 Setzt die Umkehrung der Y Achse (ein=true, aus=false)
void setFlipZ (bool value)
 Setzt die Umkehrung der Z Achse (ein=true, aus=false)
void setAutoSlicing (bool value)
 De-/aktiviert das automatische Slicing des Volumens (ein=true, aus=false)
int getSlicingRange ()
 Liefert die Ausdehnung des Volumens für die aktive Slicing-Achse.
void setSlicingPosition (float value)
 Setzt die gewünschte Slicing-Position.
float getSlicingPosition ()
 Gibt die Slicing-Position zurück, welche zwischen 0 und 1 liegt.
void controlViewAngle (int x, int y)
 Ändert die Würfelrotation anhand der übergebenen x und y Position der Maus.
void controlZoom (int value)
 Ändert die die Ansichtsgröße des RGB Würfels anhand des übergebenen Werts.
void mouseButtonRightReleased ()
 Reset der Zoomänderung. Setzt den alten Wert für die Mausposition der Zoomopeartion auf 0.
void mouseButtonLeftReleased ()
 Reset der Rotationsänderung. Setzt die alten Werte für die Mausposition der Würfel Rotation auf 0 und leftClick auf false.
void mouseButtonLeftClicked (int x, int y)
 Setzt die alten Werte für die Mausposition der Würfel Rotation und leftClick auf true.
void setShader (int id)
 Setzt anhand der ShaderId welcher Shader für die 3D Darstellung verwendet werden soll.
void setXSwitch (bool value)
 De-/Aktiviert die Umkehrung der Mausposition x (ein=true, aus=false)
void setYSwitch (bool value)
 De-/Aktiviert die Umkehrung der Mausposition y (ein=true, aus=false)
void setInterpolation (bool value)
 De-/Aktiviert die Lineare Interpolation der Volumen Daten (ein=true, aus=false)
void paint ()
 Der Renderloop.
void sizeChanged ()
void render3D (Shader shader)
 3D Rendering (Ray-Casting): Hierbei wird ein RGB Würfel gezeichnet. Einmal die Backfaces in ein FBO und dann die Frontfaces in ein zweites. Diese beiden FBOs werden dann als Input für einen Raycasting Shader benutzt welcher die Ausgabe auf ein Screenquad zeichnet.
void renderAxisView ()
 Hier wird ein Quad gezeichnet und mittels Anpassung der Texturkoordinaten (je nach Ansicht und Slicing-Position) das Volumen gerendert. Der Viewport und die Orthogonal-Matrix werden je nach Fenstergröße angepasst und sofern aktiviert wird die Slicing-Position automatisch verschoben.

Static Public Member Functions

static void getError (GL gl)
 Prüft auf einen OpenGL Error und gibt diesen gegebenenfalls aus.

Detailed Description

Implementiert die Renderlogik, Renderloop und Laden der Texturen.


Constructor & Destructor Documentation

Vislucsgl::Renderlogic::Renderlogic ( CSGL12Control  Control,
System.Drawing.Color  ClearColor 
) [inline]

Der Konstruktor.

Parameters:
Controldas OpenGL Control Objekt
ClearColordie Farbe mit welchem der OpenGL Hintergrund gefüllt werden soll

Member Function Documentation

void Vislucsgl::Renderlogic::controlViewAngle ( int  x,
int  y 
) [inline]

Ändert die Würfelrotation anhand der übergebenen x und y Position der Maus.

Parameters:
xdie x Koordinate der Maus
ydie y Koordinate der Maus
void Vislucsgl::Renderlogic::controlZoom ( int  value ) [inline]

Ändert die die Ansichtsgröße des RGB Würfels anhand des übergebenen Werts.

Parameters:
valuedie entsprechende Mausposition
static void Vislucsgl::Renderlogic::getError ( GL  gl ) [inline, static]

Prüft auf einen OpenGL Error und gibt diesen gegebenenfalls aus.

Parameters:
gldas Objekt welches die Schnittstelle zu OpenGL bereitstellt
float Vislucsgl::Renderlogic::getSlicingPosition (  ) [inline]

Gibt die Slicing-Position zurück, welche zwischen 0 und 1 liegt.

Returns:
die aktuelle Position
int Vislucsgl::Renderlogic::getSlicingRange (  ) [inline]

Liefert die Ausdehnung des Volumens für die aktive Slicing-Achse.

Returns:
die aktuelle Ausdehnung
void Vislucsgl::Renderlogic::init (  ) [inline]

Konfiguriert OpenGL und lädt die Shader und FBOs.

void Vislucsgl::Renderlogic::loadTextureFile ( string  FileName ) [inline]

Instanziert die Volumendaten aus der angegebenen Datei, übergibt sie dem TransferModifier, und bereitet die Texturen und die Ansicht vor.

Parameters:
FileNamedie Datei mit den Volumendaten
void Vislucsgl::Renderlogic::mouseButtonLeftClicked ( int  x,
int  y 
) [inline]

Setzt die alten Werte für die Mausposition der Würfel Rotation und leftClick auf true.

Parameters:
xdie x Koordinate der Maus
ydie y Koordinate der Maus
void Vislucsgl::Renderlogic::mouseButtonLeftReleased (  ) [inline]

Reset der Rotationsänderung. Setzt die alten Werte für die Mausposition der Würfel Rotation auf 0 und leftClick auf false.

void Vislucsgl::Renderlogic::mouseButtonRightReleased (  ) [inline]

Reset der Zoomänderung. Setzt den alten Wert für die Mausposition der Zoomopeartion auf 0.

void Vislucsgl::Renderlogic::paint (  ) [inline]

Der Renderloop.

void Vislucsgl::Renderlogic::reload1dTexture (  ) [inline]

Läd die Transfer Textur (neu) auf die Grafikkarte.

void Vislucsgl::Renderlogic::render3D ( Shader  shader ) [inline]

3D Rendering (Ray-Casting): Hierbei wird ein RGB Würfel gezeichnet. Einmal die Backfaces in ein FBO und dann die Frontfaces in ein zweites. Diese beiden FBOs werden dann als Input für einen Raycasting Shader benutzt welcher die Ausgabe auf ein Screenquad zeichnet.

void Vislucsgl::Renderlogic::renderAxisView (  ) [inline]

Hier wird ein Quad gezeichnet und mittels Anpassung der Texturkoordinaten (je nach Ansicht und Slicing-Position) das Volumen gerendert. Der Viewport und die Orthogonal-Matrix werden je nach Fenstergröße angepasst und sofern aktiviert wird die Slicing-Position automatisch verschoben.

void Vislucsgl::Renderlogic::setAutoSlicing ( bool  value ) [inline]

De-/aktiviert das automatische Slicing des Volumens (ein=true, aus=false)

Parameters:
valueder Wahrheitswert für den gewünschten Zustand
void Vislucsgl::Renderlogic::setFlipX ( bool  value ) [inline]

Setzt die Umkehrung der X Achse (ein=true, aus=false)

Parameters:
valueder Wahrheitswert für den gewünschten Zustand
void Vislucsgl::Renderlogic::setFlipY ( bool  value ) [inline]

Setzt die Umkehrung der Y Achse (ein=true, aus=false)

Parameters:
valueder Wahrheitswert für den gewünschten Zustand
void Vislucsgl::Renderlogic::setFlipZ ( bool  value ) [inline]

Setzt die Umkehrung der Z Achse (ein=true, aus=false)

Parameters:
valueder Wahrheitswert für den gewünschten Zustand
void Vislucsgl::Renderlogic::setInterpolation ( bool  value ) [inline]

De-/Aktiviert die Lineare Interpolation der Volumen Daten (ein=true, aus=false)

Parameters:
valueder Wahrheitswert für den gewünschten Zustand
void Vislucsgl::Renderlogic::setShader ( int  id ) [inline]

Setzt anhand der ShaderId welcher Shader für die 3D Darstellung verwendet werden soll.

Parameters:
iddie ShaderId
void Vislucsgl::Renderlogic::setSlicingPosition ( float  value ) [inline]

Setzt die gewünschte Slicing-Position.

Parameters:
valueder Wert für die gewünschte Position, muss zwischen 0 und 1 sein
void Vislucsgl::Renderlogic::setXSwitch ( bool  value ) [inline]

De-/Aktiviert die Umkehrung der Mausposition x (ein=true, aus=false)

Parameters:
valueder Wahrheitswert für den gewünschten Zustand
void Vislucsgl::Renderlogic::setYSwitch ( bool  value ) [inline]

De-/Aktiviert die Umkehrung der Mausposition y (ein=true, aus=false)

Parameters:
valueder Wahrheitswert für den gewünschten Zustand
void Vislucsgl::Renderlogic::switchView ( int  value ) [inline]

Setzt die gewünschte Ansicht (Top=0, Front=1, Side=2)

Parameters:
valueder Wert der gewünchten Ansicht

The documentation for this class was generated from the following file:
 All Classes Namespaces Functions Enumerations Properties Events