Package cz.cuni.amis.nb.pogamut.unreal.timeline.map

Package class diagram package cz.cuni.amis.nb.pogamut.unreal.timeline.map
I will write this stuff AFTER I have working version and no major architectural changes.

See:
          Description

Interface Summary
IFadeLine Interface for fade line of an agent in the map.
IRenderableUTAgent This interface is used for passing info about agent to EntityRenderer.
ISubGLRenderer<T> This is a subrenderer, it's job is to render some stuff.
MapViewpoint.ViewpointListener  
 

Class Summary
DefaultFadeLine FadeLine that is used when there is not fade line.
EnvironmentRenderer Renderer renders the environment of the unreal map according to passed arguments in the constructor.
EnvironmentRenderer.SelectionHit  
GlColor AWT provided Color class is not very suitable for OpenGl color manipulation so this class is supposed to remedy it.
GLRendererCollection<T> Basically list of ISubGLRenderers with stuff for manipulating it and rendering it.
GLTextWindow Window for text
GLTools  
MapController Class for controling viewport in map.
MapRenderer Renderer of map.
MapViewpoint Representation of where is observer in map and where does he look, what is its POV angle ect.
TLFadeLine More or less dummy class representing fade line for entity.
TLMapGLPanel Panel that is rendering map structure and agents inside.
UTAgentSubGLRenderer Sub-renderer for object IRenderableUTAgent Implementation note: be careful when asking twice for same field of agent (like agent.getRotation()), because it is dependant on time when you ask and returned value is not guaranteed to be same (like first can be valid and second null).
 

Package cz.cuni.amis.nb.pogamut.unreal.timeline.map Description

I will write this stuff AFTER I have working version and no major architectural changes. In the meantime the only thing here are meaningless mumbles.

How does rendering of map works?

For entity like this:
TLEntity<-TLRenderableUTAgent<-ISubGLRenderer<-map

When entity is supposed tobe added, in TLMapGLPanel updateEntities is called and new renderer is created and added to GLRenderCollection.

How is it all connected

Graph here, ASCII art for now
    
TLMapGLPanel
     ||
     \/
GLRendererCollection =======================================================
        ||                    ||                     ||                    ||
        ||                    ||                     ||                    ||
UTAgentSubGLRenderer   UTAgentSubGLRenderer   UTAgentSubGLRenderer   UTAgentSubGLRenderer
        ||                    ||                     ||                    ||
        \/                    \/                     \/                    \/
 TLRenderableUTAgent   TLRenderableUTAgent TLRenderableUTAgent   TLRenderableUTAgent
        ||                    ||                     ||                    ||
        \/                    \/                     \/                    \/
    TLEntity               TLEntity               TLEntity               TLEntity

When is map re-rendered?

When database emits onChangedCurrentTime(), one of listeners is TLMapGLPanel. It updates map entities and other stuff and calls display which rerenders all GLEventListeners of the panel.



Copyright © 2013 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.