jAER project on SourceForge

net.sf.jaer.eventprocessing.filter
Class Info

java.lang.Object
  extended by net.sf.jaer.eventprocessing.EventFilter
      extended by net.sf.jaer.eventprocessing.EventFilter2D
          extended by net.sf.jaer.eventprocessing.filter.Info
All Implemented Interfaces:
java.beans.PropertyChangeListener, java.util.EventListener, FrameAnnotater

public class Info
extends EventFilter2D
implements FrameAnnotater, java.beans.PropertyChangeListener

Annotates the rendered data stream canvas with additional information like a clock with absolute time, a bar showing instantaneous activity rate, a graph showing historical activity over the file, etc. These features are enabled by flags of the filter.

Author:
tobi

Field Summary
 
Fields inherited from class net.sf.jaer.eventprocessing.EventFilter2D
enclosedFilter, out
 
Fields inherited from class net.sf.jaer.eventprocessing.EventFilter
annotationEnabled, chip, enclosedFilterChain, filterEnabled, log, perf, propertyTooltipMap, support
 
Constructor Summary
Info(AEChip chip)
          Creates a new instance of Info for the chip
 
Method Summary
 void annotate(float[][][] frame)
          annotate the RGB frame somehow by color pixels in the rendered pixel frame data.
 void annotate(javax.media.opengl.GLAutoDrawable drawable)
          Each annotator enters annotate with graphics context current, in coordinates with pixel 0,0 in LL corner (note opposite from Java2D) and pixel spacing 1 unit after the scaling transform (which is already active).
 void annotate(java.awt.Graphics2D g)
          each annotator is called by the relevant class (e.g.
 void doResetTime()
          Reset the time zero marker to the next packet's first timestamp
 EventPacket<?> filterPacket(EventPacket<?> in)
          Subclasses implement this method to define custom processing.
static java.lang.String getDescription()
           
 float getEventRateScaleMax()
           
 float getEventRateTauMs()
           
 java.lang.Object getFilterState()
          should return the filter state in some useful form
 int getTimeOffsetMs()
           
 float getTimestampScaleFactor()
           
 void initFilter()
          this should allocate and initialize memory: it may be called when the chip e.g.
 boolean isAbsoluteTime()
           
 boolean isAnalogClock()
           
 boolean isDate()
           
 boolean isDigitalClock()
           
 boolean isEventRate()
           
 boolean isUseLocalTimeZone()
           
 void propertyChange(java.beans.PropertyChangeEvent evt)
          handles tricky property changes coming from AEViewer and AEFileInputStream
 void resetFilter()
          should reset the filter to initial state
 void setAbsoluteTime(boolean absoluteTime)
           
 void setAnalogClock(boolean analogClock)
           
 void setDate(boolean date)
           
 void setDigitalClock(boolean digitalClock)
           
 void setEventRate(boolean eventRate)
          True to show event rate in Hz
 void setEventRateScaleMax(float eventRateScaleMax)
           
 void setEventRateTauMs(float eventRateTauMs)
          Time constant of event rate lowpass filter in ms
 void setTimeOffsetMs(int timeOffsetMs)
           
 void setTimestampScaleFactor(float timestampScaleFactor)
           
 void setUseLocalTimeZone(boolean useLocalTimeZone)
           
 
Methods inherited from class net.sf.jaer.eventprocessing.EventFilter2D
checkOutputPacketEventType, checkOutputPacketEventType, getEnclosedFilter, resetOut, setEnclosedFilter, setFilterEnabled
 
Methods inherited from class net.sf.jaer.eventprocessing.EventFilter
getChip, getEnclosedFilterChain, getEnclosingFilter, getPrefs, getPropertyChangeSupport, getPropertyTooltip, isAnnotationEnabled, isEnclosed, isFilterEnabled, prefsEnabledKey, setAnnotationEnabled, setChip, setEnclosed, setEnclosedFilter, setEnclosedFilterChain, setEnclosingFilter, setPreferredEnabledState, setPrefs, setPropertyTooltip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.jaer.graphics.FrameAnnotater
isAnnotationEnabled, setAnnotationEnabled
 

Constructor Detail

Info

public Info(AEChip chip)
Creates a new instance of Info for the chip

Parameters:
chip - the chip object
Method Detail

getDescription

public static java.lang.String getDescription()

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent evt)
handles tricky property changes coming from AEViewer and AEFileInputStream

Specified by:
propertyChange in interface java.beans.PropertyChangeListener

filterPacket

public EventPacket<?> filterPacket(EventPacket<?> in)
Description copied from class: EventFilter2D
Subclasses implement this method to define custom processing.

Specified by:
filterPacket in class EventFilter2D
Parameters:
in - the input packet
Returns:
the output packet

getFilterState

public java.lang.Object getFilterState()
Description copied from class: EventFilter
should return the filter state in some useful form

Specified by:
getFilterState in class EventFilter

resetFilter

public void resetFilter()
Description copied from class: EventFilter
should reset the filter to initial state

Specified by:
resetFilter in class EventFilter

initFilter

public void initFilter()
Description copied from class: EventFilter
this should allocate and initialize memory: it may be called when the chip e.g. size parameters are changed after creation of the filter

Specified by:
initFilter in class EventFilter

annotate

public void annotate(float[][][] frame)
Description copied from interface: FrameAnnotater
annotate the RGB frame somehow by color pixels in the rendered pixel frame data.

Specified by:
annotate in interface FrameAnnotater
Parameters:
frame - the RGB pixel information. First dimension is Y, second is X, third is RGB

annotate

public void annotate(java.awt.Graphics2D g)
Description copied from interface: FrameAnnotater
each annotator is called by the relevant class (e.g. EyeTracker) and enters annotate with graphics context current, in coordinates with pixel 0,0 in UL corner and pixel spacing 1 unit before scaling transform (which is already active).

Specified by:
annotate in interface FrameAnnotater
Parameters:
g - the Graphics2D context

annotate

public void annotate(javax.media.opengl.GLAutoDrawable drawable)
Description copied from interface: FrameAnnotater
Each annotator enters annotate with graphics context current, in coordinates with pixel 0,0 in LL corner (note opposite from Java2D) and pixel spacing 1 unit after the scaling transform (which is already active). The FrameAnnotater then can use JOGL calls to render to the screen by getting the GL context, e.g. the following code, used in the context of an AEChip object, draws a golden lines from LL to UR of the pixel array.
        GL gl = drawable.getGL();
        gl.glBegin(GL.GL_LINES);
        gl.glColor3f(.5f, .5f, 0);
        gl.glVertex2f(0, 0);
        gl.glVertex2f(getSizeX() - 1, getSizeY() - 1);
        gl.glEnd();
 

Specified by:
annotate in interface FrameAnnotater
Parameters:
drawable - the OpenGL drawable components, e.g., GLCanvas

isAnalogClock

public boolean isAnalogClock()

setAnalogClock

public void setAnalogClock(boolean analogClock)

isDigitalClock

public boolean isDigitalClock()

setDigitalClock

public void setDigitalClock(boolean digitalClock)

isDate

public boolean isDate()

setDate

public void setDate(boolean date)

isAbsoluteTime

public boolean isAbsoluteTime()

setAbsoluteTime

public void setAbsoluteTime(boolean absoluteTime)

isEventRate

public boolean isEventRate()

setEventRate

public void setEventRate(boolean eventRate)
True to show event rate in Hz


getEventRateTauMs

public float getEventRateTauMs()

setEventRateTauMs

public void setEventRateTauMs(float eventRateTauMs)
Time constant of event rate lowpass filter in ms


doResetTime

public void doResetTime()
Reset the time zero marker to the next packet's first timestamp


isUseLocalTimeZone

public boolean isUseLocalTimeZone()

setUseLocalTimeZone

public void setUseLocalTimeZone(boolean useLocalTimeZone)

getTimeOffsetMs

public int getTimeOffsetMs()

setTimeOffsetMs

public void setTimeOffsetMs(int timeOffsetMs)

getTimestampScaleFactor

public float getTimestampScaleFactor()

setTimestampScaleFactor

public void setTimestampScaleFactor(float timestampScaleFactor)

getEventRateScaleMax

public float getEventRateScaleMax()
Returns:
the eventRateScaleMax

setEventRateScaleMax

public void setEventRateScaleMax(float eventRateScaleMax)
Parameters:
eventRateScaleMax - the eventRateScaleMax to set

jAER project on SourceForge