jAER project on SourceForge

net.sf.jaer.eventprocessing.tracking
Class TemplateTracker

java.lang.Object
  extended by net.sf.jaer.eventprocessing.EventFilter
      extended by net.sf.jaer.eventprocessing.EventFilter2D
          extended by net.sf.jaer.eventprocessing.tracking.TemplateTracker
All Implemented Interfaces:
java.util.Observer, FrameAnnotater

public class TemplateTracker
extends EventFilter2D
implements FrameAnnotater, java.util.Observer

Tracks Rat's Paw

Author:
rogister

Nested Class Summary
 class TemplateTracker.CustomPoint
          CustomPoint : all your data about a point in retina space
 
Field Summary
protected  AEChip chip
           
 
Fields inherited from class net.sf.jaer.eventprocessing.EventFilter2D
enclosedFilter, out
 
Fields inherited from class net.sf.jaer.eventprocessing.EventFilter
annotationEnabled, enclosedFilterChain, filterEnabled, log, perf, propertyTooltipMap, support
 
Constructor Summary
TemplateTracker(AEChip chip)
          Creates a new instance of PawTracker
 
Method Summary
 void annotate(float[][][] frame)
          annotate the rendered retina frame to show locations of clusters
 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)
          // drawing on player window
protected  float direction(float x0, float y0, float x1, float y1)
           
protected  float distanceBetween(int x1, int y1, int z1, int x2, int y2, int z2)
           
protected  void drawBox(javax.media.opengl.GL gl, int x, int x2, int y, int y2)
           
protected  void drawBoxCentered(javax.media.opengl.GL gl, int x, int y, int sx, int sy)
           
 EventPacket filterPacket(EventPacket in)
          Subclasses implement this method to define custom processing.
 java.lang.Object getFilterState()
          should return the filter state in some useful form
 int getIntensityZoom()
           
 float getParameter1()
           
 int getParameter2()
           
 void initFilter()
          this should allocate and initialize memory: it may be called when the chip e.g.
 boolean isCondition()
           
 boolean isLogDataEnabled()
           
 boolean isShowWindow()
           
protected  float orientation(int x0, int y0, int x1, int y1)
           
protected  void processEvent(BinocularEvent e)
           
 void resetFilter()
          should reset the filter to initial state
protected  int rotateXonY(int x, int z, int xRotationCenter, int zRotationCenter, float angle)
           
protected  int rotateYonX(int y, int z, int yRotationCenter, int zRotationCenter, float angle)
           
protected  int rotateZonX(int y, int z, int yRotationCenter, int zRotationCenter, float angle)
           
protected  int rotateZonY(int x, int z, int xRotationCenter, int zRotationCenter, float angle)
           
 void setCondition(boolean condition)
           
 void setIntensityZoom(int intensityZoom)
           
 void setLogDataEnabled(boolean logDataEnabled)
           
 void setParameter1(float parameter1)
           
 void setParameter2(int parameter2)
           
 void setShowWindow(boolean showWindow)
           
 java.lang.String toString()
           
 void update(java.util.Observable o, java.lang.Object arg)
           
 
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, getDescription, 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, wait, wait, wait
 
Methods inherited from interface net.sf.jaer.graphics.FrameAnnotater
isAnnotationEnabled, setAnnotationEnabled
 

Field Detail

chip

protected AEChip chip
Constructor Detail

TemplateTracker

public TemplateTracker(AEChip chip)
Creates a new instance of PawTracker

Method Detail

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

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

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

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

update

public void update(java.util.Observable o,
                   java.lang.Object arg)
Specified by:
update in interface java.util.Observer

processEvent

protected void processEvent(BinocularEvent e)

rotateYonX

protected int rotateYonX(int y,
                         int z,
                         int yRotationCenter,
                         int zRotationCenter,
                         float angle)

rotateZonX

protected int rotateZonX(int y,
                         int z,
                         int yRotationCenter,
                         int zRotationCenter,
                         float angle)

rotateXonY

protected int rotateXonY(int x,
                         int z,
                         int xRotationCenter,
                         int zRotationCenter,
                         float angle)

rotateZonY

protected int rotateZonY(int x,
                         int z,
                         int xRotationCenter,
                         int zRotationCenter,
                         float angle)

distanceBetween

protected float distanceBetween(int x1,
                                int y1,
                                int z1,
                                int x2,
                                int y2,
                                int z2)

direction

protected float direction(float x0,
                          float y0,
                          float x1,
                          float y1)

orientation

protected float orientation(int x0,
                            int y0,
                            int x1,
                            int y1)

annotate

public void annotate(java.awt.Graphics2D g)
// drawing on player window

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

drawBoxCentered

protected void drawBoxCentered(javax.media.opengl.GL gl,
                               int x,
                               int y,
                               int sx,
                               int sy)

drawBox

protected void drawBox(javax.media.opengl.GL gl,
                       int x,
                       int x2,
                       int y,
                       int y2)

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

annotate

public void annotate(float[][][] frame)
annotate the rendered retina frame to show locations of clusters

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

isLogDataEnabled

public boolean isLogDataEnabled()

setLogDataEnabled

public void setLogDataEnabled(boolean logDataEnabled)

setIntensityZoom

public void setIntensityZoom(int intensityZoom)

getIntensityZoom

public int getIntensityZoom()

setParameter1

public void setParameter1(float parameter1)

getParameter1

public float getParameter1()

setParameter2

public void setParameter2(int parameter2)

getParameter2

public int getParameter2()

isCondition

public boolean isCondition()

setCondition

public void setCondition(boolean condition)

setShowWindow

public void setShowWindow(boolean showWindow)

isShowWindow

public boolean isShowWindow()

jAER project on SourceForge