Argl Class Reference

Argl is the main class and contains the GUI and main program logic. More...

#include <argl.h>

Collaboration diagram for Argl:

Collaboration graph
[legend]
List of all members.

Public Member Functions

int run (int)
 starts the main application loop and shows the application main window according to startup parameters

Static Public Member Functions

static Arglcreate (HINSTANCE)
 instantiates Argl using an instance handle

Protected Types

enum  CameraType { Orthographic, Perspective }

Protected Member Functions

 Argl (HWND, HINSTANCE)
 constructor for the application-class
virtual ~Argl ()
void onResize ()
 considers new viewing conditions on window resize
void onMouseButton (WORD, POINTS)
 reacts on mouse button events allowing node selection (graph navigation)
void onMouseMove (WORD, POINTS)
 reacts on mouse move events allowing node-sector-highlighting
void onGetMinMaxInfo (LPMINMAXINFO)
void draw ()
 Draws the scene. Renders the concentric circles, nodes are rendered recursiverly, and the node sector at mouse-roll-over on a node.
void rerender ()
 enforces rerendering of the scene
void setModelView ()
 calculates and sets the model view matrix
void openFile ()
 opens file dialog for selecting a dataset-file
void applyStyle ()
 opens a open file dialogue for selecting a stylesheet-file
bool readStyleSheet (const char *filename)
 reads the style-sheet from the xml file and updates the parameters
void drawNode (const Node &, GLfloat, GLfloat, float interpolation, const Node &, const Node &)
bool findNode (const Node &, GLfloat, GLfloat, Node &)
void setCamera ()
 Sets a orthographic or perspective camera, as selected via the GUI.

Static Protected Member Functions

static LRESULT CALLBACK WindowProc (HWND, UINT, WPARAM, LPARAM)
 window procedure, redirecting received windows messages to proper methods
static void onCreate (HWND)
 on window creation incorporates Windows and OpenGL, allowing OpenGL drawing in the window
static void onDestroy (HWND)
 on window destruction disables OpenGL
static bool readFile (const char *, Node &, GLfloat[4])
 opens XML file containing a dataset to read a tree from the file (XML), calls Argl::createNode(const TiXmlNode* xmlNode,Node &node,GLfloat defaultColor[4])
static bool createNode (const TiXmlNode *, Node &, GLfloat[4])
static Polar< float > getFishEyeTransformation (const Complex< float > &, float, float)
 Calculates the position distorted by the fisheye effect.
static Polar< float > getFishEyeInverseTransformation (const Complex< float > &, float, float)
 Undistorts the given position (distorted by fisheye effect). Is used for calculation of node-mouse-collision detection.
static float getFishEyeTransformationSlope (const Complex< float > &, float, float)

Private Member Functions

 Argl (Argl &)
void operator= (Argl &)

Private Attributes

bool dragging
bool placementConsistencyHint
int keyframeFrames
float keyframeTime
float fishEyeSlope
CameraType cameraType
Node hoverNode
SlowInSlowOutTreeManager slowInSlowOutTreeManager
GLuint circleList
GLuint fontList
GLuint renderList
GLfloat draggedSize
GLfloat draggedYaw
GLfloat draggedPitch
GLfloat edgeLineWidth
GLfloat circleLineWidth
GLfloat nodeRadius
GLfloat edgeColor [4]
GLfloat nonTreeEdgeColor [4]
GLfloat backgroundColor [4]
GLfloat defaultNodeColor [4]
GLfloat textColor [4]
GLfloat nodeSectorColor [4]
GLint viewport [4]
GLdouble modelViewMatrix [16]
GLdouble projectionMatrix [16]
DWORD lastTick
POINTS draggedPoint
HWND hWnd
HINSTANCE hInstance
ColorMap< float > colorMap
ColorControlpColorControl
ControlDialogpControlDialog

Static Private Attributes

static HDC hDc
static HGLRC hGlRc
static ArglpArgl = 0

Friends

class ControlDialog
class ColorControl
class ColorMap< float >

Classes

struct  Color
class  ColorControl
 ColorControl encapsulates a Windows control, allowing color definition visualization and interactive modification. More...
class  ColorMap
 ColorMap is an extended Map using Color as value and allowing linear interpolation between two neighboring keys. More...
class  ControlDialog
 ControlDialog displays a popup window controlling refinement and rendering parameters. More...

Detailed Description

Argl is the main class and contains the GUI and main program logic.


Member Enumeration Documentation

enum Argl::CameraType [protected]

Enumerator:
Orthographic 
Perspective 


Constructor & Destructor Documentation

Argl::Argl ( HWND  ,
HINSTANCE   
) [protected]

constructor for the application-class

Argl::~Argl (  )  [protected, virtual]

Argl::Argl ( Argl  )  [private]


Member Function Documentation

Argl * Argl::create ( HINSTANCE   )  [static]

instantiates Argl using an instance handle

int Argl::run ( int   ) 

starts the main application loop and shows the application main window according to startup parameters

LRESULT CALLBACK Argl::WindowProc ( HWND  ,
UINT  ,
WPARAM  ,
LPARAM   
) [static, protected]

window procedure, redirecting received windows messages to proper methods

void Argl::onCreate ( HWND   )  [static, protected]

on window creation incorporates Windows and OpenGL, allowing OpenGL drawing in the window

void Argl::onDestroy ( HWND   )  [static, protected]

on window destruction disables OpenGL

void Argl::onResize (  )  [protected]

considers new viewing conditions on window resize

void Argl::onMouseButton ( WORD  ,
POINTS   
) [protected]

reacts on mouse button events allowing node selection (graph navigation)

void Argl::onMouseMove ( WORD  ,
POINTS   
) [protected]

reacts on mouse move events allowing node-sector-highlighting

void Argl::onGetMinMaxInfo ( LPMINMAXINFO   )  [protected]

void Argl::draw (  )  [protected]

Draws the scene. Renders the concentric circles, nodes are rendered recursiverly, and the node sector at mouse-roll-over on a node.

void Argl::rerender (  )  [protected]

enforces rerendering of the scene

void Argl::setModelView (  )  [protected]

calculates and sets the model view matrix

void Argl::openFile (  )  [protected]

opens file dialog for selecting a dataset-file

void Argl::applyStyle (  )  [protected]

opens a open file dialogue for selecting a stylesheet-file

bool Argl::readFile ( const char *  ,
Node ,
GLfloat  [4] 
) [static, protected]

opens XML file containing a dataset to read a tree from the file (XML), calls Argl::createNode(const TiXmlNode* xmlNode,Node &node,GLfloat defaultColor[4])

bool Argl::readStyleSheet ( const char *  filename  )  [protected]

reads the style-sheet from the xml file and updates the parameters

bool Argl::createNode ( const TiXmlNode *  xmlNode,
Node node,
GLfloat  defaultColor[4] 
) [static, protected]

Parses the XML structure, for each representation of a node in the file an instance of Node is created with the attributes read from the file and added to the tree. Recursively called for each node's children.

void Argl::drawNode ( const Node node1,
GLfloat  parentX,
GLfloat  parentY,
float  interpolation,
const Node keyframe1,
const Node keyframe2 
) [protected]

Renders a node and its edge to its parent + edges to nodes, this node has a non-child connection to. The current position is calculated from the interpolation between two keyframes: the old layout and the layout with the newly selected focus node as root node. The function is recursively called on the node's children.

bool Argl::findNode ( const Node tree,
GLfloat  x,
GLfloat  y,
Node node 
) [protected]

Searches given tree for the node at the given screen position. Recursively called upon tree's children. Copies the node into passed reference and returns true, if the node is found for which the given position lies within this nodes sphere (on screen).

Polar< float > Argl::getFishEyeTransformation ( const Complex< float > &  ,
float  ,
float   
) [static, protected]

Calculates the position distorted by the fisheye effect.

Polar< float > Argl::getFishEyeInverseTransformation ( const Complex< float > &  ,
float  ,
float   
) [static, protected]

Undistorts the given position (distorted by fisheye effect). Is used for calculation of node-mouse-collision detection.

float Argl::getFishEyeTransformationSlope ( const Complex< float > &  complex,
float  fishEyeSlope,
float  fixR 
) [static, protected]

Returns the slope at the atan-function, which is used for the fisheye effect, for the given position (radius). The slope is used for scaling the size of the node according to the fisheye effect

void Argl::setCamera (  )  [protected]

Sets a orthographic or perspective camera, as selected via the GUI.

void Argl::operator= ( Argl  )  [private]


Friends And Related Function Documentation

friend class ControlDialog [friend]

friend class ColorControl [friend]

friend class ColorMap< float > [friend]


Member Data Documentation

HDC Argl::hDc [static, private]

HGLRC Argl::hGlRc [static, private]

Argl * Argl::pArgl = 0 [static, private]

bool Argl::dragging [private]

bool Argl::placementConsistencyHint [private]

int Argl::keyframeFrames [private]

float Argl::keyframeTime [private]

float Argl::fishEyeSlope [private]

CameraType Argl::cameraType [private]

Node Argl::hoverNode [private]

SlowInSlowOutTreeManager Argl::slowInSlowOutTreeManager [private]

GLuint Argl::circleList [private]

GLuint Argl::fontList [private]

GLuint Argl::renderList [private]

GLfloat Argl::draggedSize [private]

GLfloat Argl::draggedYaw [private]

GLfloat Argl::draggedPitch [private]

GLfloat Argl::edgeLineWidth [private]

GLfloat Argl::circleLineWidth [private]

GLfloat Argl::nodeRadius [private]

GLfloat Argl::edgeColor[4] [private]

GLfloat Argl::nonTreeEdgeColor[4] [private]

GLfloat Argl::backgroundColor[4] [private]

GLfloat Argl::defaultNodeColor[4] [private]

GLfloat Argl::textColor[4] [private]

GLfloat Argl::nodeSectorColor[4] [private]

GLint Argl::viewport[4] [private]

GLdouble Argl::modelViewMatrix[16] [private]

GLdouble Argl::projectionMatrix[16] [private]

DWORD Argl::lastTick [private]

POINTS Argl::draggedPoint [private]

HWND Argl::hWnd [private]

HINSTANCE Argl::hInstance [private]

ColorMap<float> Argl::colorMap [private]

ColorControl* Argl::pColorControl [private]

ControlDialog* Argl::pControlDialog [private]


The documentation for this class was generated from the following files:
Generated on Wed Jun 27 00:31:50 2007 for ARGL by  doxygen 1.5.2