org.hfbk.vis.VisClient Class Reference

Collaboration diagram for org.hfbk.vis.VisClient:

Collaboration graph
List of all members.

Public Member Functions

 VisClient (VisClientPanel panel)
void reset ()
void resetValues ()
void init ()
void processEvent (AWTEvent e)
void paintGL (int w, int h)
void setViewpoint (Viewpoint vp, float speed)
void setViewpoint (Vector3f vposition, float speed)
void setLookAt (Vector3f position)
void stepViewpoint (int direction)
boolean saveVewpoint ()
void animateViewpoint (boolean animate)

Static Public Member Functions

static void main (String[] args) throws Exception

Public Attributes

VisClientPanel panel
float timescale = 1
float dt
VisRoot root
VisHUD hud
boolean hudEnabled = true
VisNodeMousable hoovered = null
MouseViewpoint mouseViewpoint = new MouseViewpoint()
TransitionViewpoint transViewpoint = null
boolean animateViewpoint = false

Package Functions

void coerceEvents ()

Package Attributes

Timer timer = new Timer()
List< AWTEvent > events = new LinkedList<AWTEvent>()
List< AWTEvent > oldEvents = new LinkedList<AWTEvent>()
List< Viewpointhistory = new ArrayList<Viewpoint>()
int viewpointIndex = -1
float timeSinceVpSave = 0
AWTEvent lastDragEvent = null

Detailed Description

the main VisClient FontList

Definition at line 31 of file

Constructor & Destructor Documentation

org.hfbk.vis.VisClient.VisClient ( VisClientPanel  panel  ) 

Definition at line 65 of file

References org.hfbk.vis.VisClient.panel.

Member Function Documentation

void org.hfbk.vis.VisClient.reset (  ) 

reset the client to its clear state. the just started VisClient usually adds some welcome visuals that are not reconstructed here.

Definition at line 74 of file

References org.hfbk.vis.visnode.VisRoot.add(), org.hfbk.vis.Viewpoint.angle, org.hfbk.vis.VisClient.animateViewpoint, org.hfbk.vis.visnode.VisNode.close(), org.hfbk.vis.Viewpoint.forward(), org.hfbk.vis.VisClient.history, org.hfbk.vis.VisClient.hud, org.hfbk.vis.MouseViewpoint.keys, org.hfbk.vis.VisClient.mouseViewpoint, org.hfbk.vis.VisClient.panel, org.hfbk.vis.VisClient.root, and org.hfbk.vis.VisClient.transViewpoint.

Referenced by org.hfbk.vis.VisClient.init(), and org.hfbk.vis.VisTests.main().

Here is the call graph for this function:

Here is the caller graph for this function:

void org.hfbk.vis.VisClient.resetValues (  ) 

Definition at line 103 of file

References org.hfbk.vis.Viewpoint.fov, org.hfbk.vis.VisClient.mouseViewpoint, and org.hfbk.vis.VisClient.timescale.

void org.hfbk.vis.VisClient.init (  ) 

does initalisation.

some startup visuals are added. reset() is called, which adds visuals too. however, reset() is called also by user reset request so it should provide some empty space.

Definition at line 115 of file

References org.hfbk.vis.visnode.VisRoot.add(), org.hfbk.vis.VisClient.reset(), and org.hfbk.vis.VisClient.root.

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

Here is the call graph for this function:

Here is the caller graph for this function:

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

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

Definition at line 128 of file

References org.hfbk.vis.MouseViewpoint.drag,, org.hfbk.vis.MouseViewpoint.handleEvent(), org.hfbk.vis.VisClient.lastDragEvent, and org.hfbk.vis.VisClient.mouseViewpoint.

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

Here is the call graph for this function:

Here is the caller graph for this function:

void org.hfbk.vis.VisClient.paintGL ( int  w,
int  h 

main rendering and event processing.

this works as follows: -we measure the time since last frame to update movements -we init the 3d viewport -we apply the camera (maybe an animated one) -we render and event process the root node VisRoot, which recursively renders the whole tree -we render and event process the heads up display -we filter events (see below) -we process viewpoint events

AWT input events are never consumed by VisNodes as in one frame processing the correct target cannot be determinated (visuals maybe overlapping!). they are folowed up by VisEvents when the correct target is determined. after all we clean up all AWT events and let the VisEvents enter the next frame to get processed.

Definition at line 162 of file

References org.hfbk.vis.VisClient.animateViewpoint, org.hfbk.vis.TransitionViewpoint.checkArrived(), org.hfbk.vis.VisClient.coerceEvents(), org.hfbk.vis.VisClient.dt,, org.hfbk.vis.MouseViewpoint.handleEvent(), org.hfbk.vis.VisClient.hud, org.hfbk.vis.VisClient.mouseViewpoint, org.hfbk.vis.Viewpoint.moving, org.hfbk.vis.visnode.VisHUD.notifyUser(), org.hfbk.vis.VisClient.oldEvents, org.hfbk.vis.visnode.VisHUD.render(), org.hfbk.vis.visnode.VisNode.render(), org.hfbk.vis.MouseViewpoint.render(), org.hfbk.vis.TransitionViewpoint.render(), org.hfbk.vis.VisClient.root, org.hfbk.vis.VisClient.saveVewpoint(), org.hfbk.vis.Viewpoint.set(), org.hfbk.vis.VisClient.stepViewpoint(), org.hfbk.vis.VisClient.timer, org.hfbk.vis.VisClient.timescale, org.hfbk.vis.VisClient.timeSinceVpSave, and org.hfbk.vis.VisClient.transViewpoint.

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

Here is the call graph for this function:

Here is the caller graph for this function:

void org.hfbk.vis.VisClient.coerceEvents (  )  [package]

remove double events of continous type (mouse move & drag)

Definition at line 225 of file

References, org.hfbk.vis.VisClient.lastDragEvent, org.hfbk.vis.VisClient.mouseViewpoint, and org.hfbk.vis.Viewpoint.moving.

Referenced by org.hfbk.vis.VisClient.paintGL().

Here is the caller graph for this function:

void org.hfbk.vis.VisClient.setViewpoint ( Viewpoint  vp,
float  speed 

set viewpoint softly to given vp

if we are currently in a transition we interrupt it and continue from current position.

Definition at line 238 of file

References org.hfbk.vis.VisClient.mouseViewpoint, org.hfbk.vis.Viewpoint.set(), and org.hfbk.vis.VisClient.transViewpoint.

Referenced by org.hfbk.vis.visnode.VisRoot.create(), org.hfbk.vis.visnode.VisRoot.fetch(), org.hfbk.vis.Allesfresser.friss(), org.hfbk.vis.visnode.VisKeyword.handleEvent(), org.hfbk.vis.visnode.Automator.renderSelf(), org.hfbk.vis.VisClient.setLookAt(), and org.hfbk.vis.VisClient.setViewpoint().

Here is the call graph for this function:

Here is the caller graph for this function:

void org.hfbk.vis.VisClient.setViewpoint ( Vector3f  vposition,
float  speed 

move the viewpoint to a specific position, z axis aligned


Definition at line 246 of file

References org.hfbk.vis.VisClient.setViewpoint().

Here is the call graph for this function:

void org.hfbk.vis.VisClient.setLookAt ( Vector3f  position  ) 

level and rotate the viewpoint to look at a specific position

Definition at line 253 of file

References org.hfbk.vis.VisClient.mouseViewpoint, and org.hfbk.vis.VisClient.setViewpoint().

Referenced by org.hfbk.vis.visnode.VisRoot.renderSelf().

Here is the call graph for this function:

Here is the caller graph for this function:

void org.hfbk.vis.VisClient.stepViewpoint ( int  direction  ) 

step for/backward in the viewpoint list.

direction -1 for back, 1 for forward.

Definition at line 274 of file

References org.hfbk.vis.VisClient.history, org.hfbk.vis.VisClient.mouseViewpoint, org.hfbk.vis.Viewpoint.set(), org.hfbk.vis.VisClient.transViewpoint, and org.hfbk.vis.VisClient.viewpointIndex.

Referenced by org.hfbk.vis.VisClient.animateViewpoint(), and org.hfbk.vis.VisClient.paintGL().

Here is the call graph for this function:

Here is the caller graph for this function:

boolean org.hfbk.vis.VisClient.saveVewpoint (  ) 

save the current viewpoint to our list

false if it equals last saved one and thus was not saved again.

Definition at line 290 of file

References org.hfbk.vis.Viewpoint.clone(), org.hfbk.vis.Viewpoint.equals(), org.hfbk.vis.VisClient.history, and org.hfbk.vis.VisClient.mouseViewpoint.

Referenced by org.hfbk.vis.VisClient.paintGL(), and org.hfbk.vis.visnode.VisHUD.VisHUD().

Here is the call graph for this function:

Here is the caller graph for this function:

void org.hfbk.vis.VisClient.animateViewpoint ( boolean  animate  ) 

set viewpoint animation on/off. if enabled, the camera softly fly through all saved viewpoints. if there are not eough saved vp's, animateViewpoint stays false.

if to animate

Definition at line 305 of file

References org.hfbk.vis.VisClient.animateViewpoint, org.hfbk.vis.VisClient.history, org.hfbk.vis.VisClient.mouseViewpoint, org.hfbk.vis.Viewpoint.set(), org.hfbk.vis.VisClient.stepViewpoint(), and org.hfbk.vis.VisClient.transViewpoint.

Here is the call graph for this function:

static void org.hfbk.vis.VisClient.main ( String[]  args  )  throws Exception [static]

start a whole vis/client! This only load some globals and opens a VisClientWindow, which will create a VisClientPanel and that a VisClient.


Definition at line 324 of file

Member Data Documentation

VisClientPanel org.hfbk.vis.VisClient.panel

Definition at line 34 of file

Referenced by org.hfbk.vis.visnode.VisNodeMousable.buildRay(), org.hfbk.vis.UdpListener.parseMsg(), org.hfbk.vis.BirdsEye.render(), org.hfbk.vis.visnode.Screenshooter.renderSelf(), org.hfbk.vis.VisClient.reset(), and org.hfbk.vis.VisClient.VisClient().

Timer org.hfbk.vis.VisClient.timer = new Timer() [package]

Definition at line 37 of file

Referenced by org.hfbk.vis.VisClient.paintGL().

float org.hfbk.vis.VisClient.timescale = 1

Definition at line 38 of file

Referenced by org.hfbk.vis.VisClient.paintGL(), org.hfbk.vis.visnode.VisHUD.renderSelf(), and org.hfbk.vis.VisClient.resetValues().

float org.hfbk.vis.VisClient.dt

time since last frame

Definition at line 40 of file

Referenced by org.hfbk.vis.VisTests.fps(), org.hfbk.vis.visnode.VisRiver.heightMap(), org.hfbk.vis.VisClient.paintGL(), org.hfbk.vis.visnode.VisHUD.render(), org.hfbk.vis.visnode.VisVideo.renderSelf(), org.hfbk.vis.visnode.VisUeberwach.VisSonar.renderSelf(), org.hfbk.vis.visnode.VisUeberwach.VisTrack.renderSelf(), org.hfbk.vis.visnode.VisRoute.renderSelf(), org.hfbk.vis.visnode.VisImagefield.renderSelf(), org.hfbk.vis.visnode.VisHUD.renderSelf(), org.hfbk.vis.visnode.VisHeightfield.renderSelf(), org.hfbk.vis.visnode.VisBit.renderSelf(), and org.hfbk.vis.visnode.Automator.renderSelf().

List<AWTEvent> = new LinkedList<AWTEvent>() [package]

3d space event queue

Definition at line 43 of file

Referenced by org.hfbk.vis.VisClient.coerceEvents(), org.hfbk.vis.VisClient.paintGL(), and org.hfbk.vis.VisClient.processEvent().

List<AWTEvent> org.hfbk.vis.VisClient.oldEvents = new LinkedList<AWTEvent>() [package]

Definition at line 43 of file

Referenced by org.hfbk.vis.VisClient.paintGL().

VisRoot org.hfbk.vis.VisClient.root

root of visual 3d nodes

Definition at line 46 of file

Referenced by org.hfbk.vis.VisClientWindow.buildUI(), org.hfbk.vis.Allesfresser.friss(), org.hfbk.vis.Allesfresser.frissFile(), org.hfbk.vis.visnode.VisFilesys.VisCallBall.handleEvent(), org.hfbk.vis.VisClient.init(), org.hfbk.vis.VisTests.main(), org.hfbk.vis.VisClient.paintGL(), org.hfbk.vis.UdpListener.parseMsg(), org.hfbk.vis.visnode.VisHUD.render(), org.hfbk.vis.VisClient.reset(), org.hfbk.vis.VisClientScripter.VisClientScripter(), and org.hfbk.vis.visnode.VisHUD.VisHUD().

VisHUD org.hfbk.vis.VisClient.hud

hud overlay for gui and 2d viewers

Definition at line 49 of file

Referenced by org.hfbk.vis.visnode.VisVideoImage.handleEvent(), org.hfbk.vis.visnode.VisImage.handleEvent(), org.hfbk.vis.VisClient.paintGL(), org.hfbk.vis.visnode.Automator.renderSelf(), and org.hfbk.vis.VisClient.reset().

boolean org.hfbk.vis.VisClient.hudEnabled = true

Definition at line 50 of file

Referenced by org.hfbk.vis.visnode.VisHUD.renderChildren(), and org.hfbk.vis.visnode.Screenshooter.renderSelf().

VisNodeMousable org.hfbk.vis.VisClient.hoovered = null

Definition at line 52 of file

Referenced by org.hfbk.vis.visnode.VisNodeMousable.handleEvents(), and org.hfbk.vis.visnode.VisHUD.VisHUD().

List<Viewpoint> org.hfbk.vis.VisClient.history = new ArrayList<Viewpoint>() [package]

Definition at line 55 of file

Referenced by org.hfbk.vis.VisClient.animateViewpoint(), org.hfbk.vis.VisClient.reset(), org.hfbk.vis.VisClient.saveVewpoint(), and org.hfbk.vis.VisClient.stepViewpoint().

int org.hfbk.vis.VisClient.viewpointIndex = -1 [package]

Definition at line 56 of file

Referenced by org.hfbk.vis.VisClient.stepViewpoint().

MouseViewpoint org.hfbk.vis.VisClient.mouseViewpoint = new MouseViewpoint()

the user controlled viewpoint

Definition at line 58 of file

Referenced by org.hfbk.vis.VisClient.animateViewpoint(), org.hfbk.vis.VisClient.coerceEvents(), org.hfbk.vis.Allesfresser.friss(), org.hfbk.vis.Allesfresser.frissFile(), org.hfbk.vis.visnode.VisNodeMousable.handleEvents(), org.hfbk.vis.VisTests.main(), org.hfbk.vis.VisClient.paintGL(), org.hfbk.vis.UdpListener.parseMsg(), org.hfbk.vis.VisClient.processEvent(), org.hfbk.vis.BirdsEye.render(), org.hfbk.vis.VisClient.reset(), org.hfbk.vis.VisClient.resetValues(), org.hfbk.vis.VisClient.saveVewpoint(), org.hfbk.vis.VisClient.setLookAt(), org.hfbk.vis.VisClient.setViewpoint(), org.hfbk.vis.VisClient.stepViewpoint(), org.hfbk.vis.VisClientScripter.VisClientScripter(), and org.hfbk.vis.visnode.VisRoot.visualiseTree().

TransitionViewpoint org.hfbk.vis.VisClient.transViewpoint = null

current transition between two viepoints if any

Definition at line 60 of file

Referenced by org.hfbk.vis.VisClient.animateViewpoint(), org.hfbk.vis.VisTests.main(), org.hfbk.vis.VisClient.paintGL(), org.hfbk.vis.visnode.Automator.renderSelf(), org.hfbk.vis.VisClient.reset(), org.hfbk.vis.VisClient.setViewpoint(), org.hfbk.vis.VisClient.stepViewpoint(), and org.hfbk.vis.VisTests.waitTransition().

boolean org.hfbk.vis.VisClient.animateViewpoint = false

Definition at line 61 of file

Referenced by org.hfbk.vis.VisClient.animateViewpoint(), org.hfbk.vis.VisClient.paintGL(), org.hfbk.vis.VisClient.reset(), and org.hfbk.vis.visnode.VisHUD.VisHUD().

float org.hfbk.vis.VisClient.timeSinceVpSave = 0 [package]

Definition at line 62 of file

Referenced by org.hfbk.vis.VisClient.paintGL().

AWTEvent org.hfbk.vis.VisClient.lastDragEvent = null [package]

Definition at line 123 of file

Referenced by org.hfbk.vis.VisClient.coerceEvents(), and org.hfbk.vis.VisClient.processEvent().

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