org.hfbk.vis.VisClientPanel Class Reference

Collaboration diagram for org.hfbk.vis.VisClientPanel:

Collaboration graph
List of all members.

Public Member Functions

Dimension getPreferredSize ()
 VisClientPanel () throws LWJGLException
void processEvent (AWTEvent e)
void update ()

Protected Member Functions

void initGL ()
void paintGL ()

Static Package Functions

static PixelFormat getPixelFormat ()

Package Attributes

VisClient client = new VisClient(this)
Allesfresser allesfresser = new Allesfresser(client)
UdpListener udplistener
ScriptRouter keyrouter = new ScriptRouter(client)
KeyAdapter keys
boolean hasToRender = true

Detailed Description

the main VisClient panel.

this is actually a 3d drawing surface derived from a AWTGLCanvas.

mouse navigation and browsing can be done herein. an external UI (

See also:
org.hfbk.vis.VisClientWindow ) is used for additional input.
if not moving some seconds, the viewpoint is saved to a history list.

some keys are recognized if focussed: ctrl+v invokes Allesfresser to eat clipboard data ctrl+h toggles HUD ctrl+k kill hoovered visual ctrl+w reset to empty space ctrl+r reset values (zoom, speed) backspace step back one viewpoint in the history shift travel to the last fetched nodes's root all keys should be qualified by ctrl to allow automatic focussing to source field if regular typing starts.

this is an drop target for text, files,...

See also:
a main loop manages frequently redraws.

the class is cluttered with all the AWT component/canvas functions, so any new function is placed into a minefield of used method names.


Definition at line 50 of file

Constructor & Destructor Documentation

org.hfbk.vis.VisClientPanel.VisClientPanel (  )  throws LWJGLException

builds this client.


Definition at line 134 of file

References org.hfbk.vis.VisClientPanel.allesfresser, org.hfbk.vis.VisClientPanel.client, org.hfbk.vis.VisClientPanel.keys, org.hfbk.vis.VisClientPanel.udplistener, and org.hfbk.vis.VisClientPanel.update().

Here is the call graph for this function:

Member Function Documentation

static PixelFormat org.hfbk.vis.VisClientPanel.getPixelFormat (  )  [static, package]

Definition at line 121 of file

Dimension org.hfbk.vis.VisClientPanel.getPreferredSize (  ) 

Definition at line 125 of file

void org.hfbk.vis.VisClientPanel.processEvent ( AWTEvent  e  ) 

override AWTs event processing to scoop events for send them to the 3d world as well.

Definition at line 164 of file

References org.hfbk.vis.VisClientPanel.client, and org.hfbk.vis.VisClient.processEvent().

Here is the call graph for this function:

void org.hfbk.vis.VisClientPanel.update (  ) 

the main loop. this is something akward: normally AWT does the repaint at need (window resize, overlap) but now we need to force AWT to do a frequent redraw. so we call repaint() at the end of each render to just enque another one.

TODO this gets a problem as repaint() returns at instant, only letting the AWT thread do the refresh work. but if we fire repaint events to fast here, AWT has no time to react to other events like mouse etc. and all stalls. this is often seen in many apps. maybe we need some test to not append another paint event until all other events are consumed.


Definition at line 183 of file

References org.hfbk.vis.VisClientPanel.hasToRender.

Referenced by org.hfbk.vis.VisClientPanel.VisClientPanel().

Here is the caller graph for this function:

void org.hfbk.vis.VisClientPanel.initGL (  )  [protected]

initGL is automatically called by the canvas after OpenGL is available. and does all further initialisation.

Definition at line 197 of file

References org.hfbk.vis.VisClientPanel.client, and org.hfbk.vis.VisClient.init().

Here is the call graph for this function:

void org.hfbk.vis.VisClientPanel.paintGL (  )  [protected]

paintGL is periodically called to redraw the canvas.

Definition at line 209 of file

References org.hfbk.vis.VisClientPanel.client, org.hfbk.vis.UdpListener.close(), org.hfbk.vis.VisClientPanel.hasToRender, org.hfbk.vis.VisClient.paintGL(), and org.hfbk.vis.VisClientPanel.udplistener.

Here is the call graph for this function:

Member Data Documentation

VisClient org.hfbk.vis.VisClientPanel.client = new VisClient(this) [package]

Definition at line 53 of file

Referenced by org.hfbk.vis.VisClientWindow.buildScriptsMenu(), org.hfbk.vis.VisClientWindow.buildUI(), org.hfbk.vis.VisClientPanel.initGL(), org.hfbk.vis.VisTests.main(), org.hfbk.vis.VisClientPanel.paintGL(), org.hfbk.vis.VisClientPanel.processEvent(), and org.hfbk.vis.VisClientPanel.VisClientPanel().

Allesfresser org.hfbk.vis.VisClientPanel.allesfresser = new Allesfresser(client) [package]

Definition at line 55 of file

Referenced by org.hfbk.vis.UdpListener.parseMsg(), and org.hfbk.vis.VisClientPanel.VisClientPanel().

UdpListener org.hfbk.vis.VisClientPanel.udplistener [package]

Definition at line 57 of file

Referenced by org.hfbk.vis.VisClientPanel.paintGL(), and org.hfbk.vis.VisClientPanel.VisClientPanel().

ScriptRouter org.hfbk.vis.VisClientPanel.keyrouter = new ScriptRouter(client) [package]

Definition at line 59 of file

KeyAdapter org.hfbk.vis.VisClientPanel.keys [package]

we only accept ctrl and some or other non alpha keys to allow the UI steal the letter keys for more convenience in entering keywords.

Definition at line 66 of file

Referenced by org.hfbk.vis.VisClientPanel.VisClientPanel().

boolean org.hfbk.vis.VisClientPanel.hasToRender = true [package]

Definition at line 191 of file

Referenced by org.hfbk.vis.VisClientPanel.paintGL(), and org.hfbk.vis.VisClientPanel.update().

The documentation for this class was generated from the following file:
Generated on Tue Apr 7 17:58:32 2009 for visclient by  doxygen 1.5.1