t3.hrd.renderer
Class ProjectorTransforms

java.lang.Object
  extended by t3.hrd.renderer.ProjectorTransforms

public class ProjectorTransforms
extends java.lang.Object

Class stores all transforms necessary for a single projector and also computes these transforms based on the ProjectorConfig.ProjectorTransformConfig object supplied. This includes calculating a least squares solution for the planar homography based on the calibration points supplied in the ProjectorConfig object.

Coordinate spaces we use:

DESK to UOGL should therefore be just a translation and a positive scale

Author:
pjt40

Field Summary
static boolean BLEND
           
static boolean BLEND_USES_HARVILLE
           
static boolean DEBUG_OUTPUT_BLEND_IMAGES
           
 int fbHeight
           
 int fbWidth
           
 java.awt.geom.GeneralPath gpDESKcornersOfProjectorLimitClockwiseInWOGL
           
 Jama.Matrix[] mDESKcornersOfProjectorLimitClockwiseInWOGL
           
 Jama.Matrix mDESKtoFB
           
 Jama.Matrix mDESKtoFBT
           
 Jama.Matrix mDESKtoTOGL
           
 Jama.Matrix mDESKtoUOGLpositiveScaleAndTranslateOnly
           
static Jama.Matrix mFBtoFBT
           
 Jama.Matrix mFBtoTOGL
           
 Jama.Matrix mFBTtoDESK
           
static Jama.Matrix[] mTOGLcornersOfProjectorLimitClockwise
           
 Jama.Matrix mTOGLtoFB
           
 Jama.Matrix mUOGLtoTOGL
           
 Jama.Matrix mUOGLtoWOGL
           
static Jama.Matrix[] mWOGLcornersOfProjectorLimitClockwise
           
static Jama.Matrix mWOGLtoTOGL
           
static double openGlView_bottom
           
static double openGlView_depthRangeF
           
static double openGlView_depthRangeN
           
static double openGlView_far
           
static double openGlView_height
           
static double openGlView_left
           
static double openGlView_near
           
static double openGlView_width
           
static double openGlView_z
           
 ProjectorConfig projectorConfig
           
 java.awt.geom.Rectangle2D rDESKdeskSpaceAlignedRect
           
 boolean UOGLtoWOGLflipsHoriz
           
 boolean UOGLtoWOGLflipsVert
           
 double UOGLtoWOGLrotation
           
 
Method Summary
 double[] d2hUOGLtoD3hTOGL(double[] d2hUOGL)
           
 double[][] dDESKsTodTOGLs(double[][] dDESKs)
           
 double[] dDESKtoDTOGL(double[] d2hUOGL)
           
static Jama.Matrix[] getmWOGLcornersClockwise()
           
 void paintBlendImage(BlendOptions bo, java.awt.Graphics2D g, java.util.List<Projector> projectorsInBlackingOrder, boolean doInColorChannelsForDebugNotAlphaChannel)
           
static double paintBlendImageNewAlg_adjustAlpha(double a)
           
static double paintBlendImageNewAlg_alpha(double DESKpx, double DESKpy, ProjectorTransforms i)
           
static void setNonBlackedAreas(java.util.List<ProjectorTransforms> projectorTransformsInBlackingOrder, BlendOptions bo)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BLEND

public static final boolean BLEND
See Also:
Constant Field Values

openGlView_left

public static final double openGlView_left
See Also:
Constant Field Values

openGlView_width

public static final double openGlView_width
See Also:
Constant Field Values

openGlView_bottom

public static final double openGlView_bottom
See Also:
Constant Field Values

openGlView_height

public static final double openGlView_height
See Also:
Constant Field Values

openGlView_z

public static final double openGlView_z
See Also:
Constant Field Values

openGlView_near

public static final double openGlView_near
See Also:
Constant Field Values

openGlView_far

public static final double openGlView_far
See Also:
Constant Field Values

openGlView_depthRangeF

public static final double openGlView_depthRangeF
See Also:
Constant Field Values

openGlView_depthRangeN

public static final double openGlView_depthRangeN
See Also:
Constant Field Values

mFBtoFBT

public static final Jama.Matrix mFBtoFBT

mWOGLtoTOGL

public static final Jama.Matrix mWOGLtoTOGL

mWOGLcornersOfProjectorLimitClockwise

public static final Jama.Matrix[] mWOGLcornersOfProjectorLimitClockwise

mTOGLcornersOfProjectorLimitClockwise

public static final Jama.Matrix[] mTOGLcornersOfProjectorLimitClockwise

projectorConfig

public final ProjectorConfig projectorConfig

rDESKdeskSpaceAlignedRect

public final java.awt.geom.Rectangle2D rDESKdeskSpaceAlignedRect

mDESKcornersOfProjectorLimitClockwiseInWOGL

public final Jama.Matrix[] mDESKcornersOfProjectorLimitClockwiseInWOGL

gpDESKcornersOfProjectorLimitClockwiseInWOGL

public final java.awt.geom.GeneralPath gpDESKcornersOfProjectorLimitClockwiseInWOGL

UOGLtoWOGLflipsVert

public final boolean UOGLtoWOGLflipsVert

UOGLtoWOGLflipsHoriz

public final boolean UOGLtoWOGLflipsHoriz

UOGLtoWOGLrotation

public final double UOGLtoWOGLrotation

fbWidth

public final int fbWidth

fbHeight

public final int fbHeight

mUOGLtoWOGL

public final Jama.Matrix mUOGLtoWOGL

mUOGLtoTOGL

public final Jama.Matrix mUOGLtoTOGL

mDESKtoUOGLpositiveScaleAndTranslateOnly

public final Jama.Matrix mDESKtoUOGLpositiveScaleAndTranslateOnly

mTOGLtoFB

public final Jama.Matrix mTOGLtoFB

mDESKtoTOGL

public final Jama.Matrix mDESKtoTOGL

mDESKtoFB

public final Jama.Matrix mDESKtoFB

mFBtoTOGL

public final Jama.Matrix mFBtoTOGL

mFBTtoDESK

public final Jama.Matrix mFBTtoDESK

mDESKtoFBT

public final Jama.Matrix mDESKtoFBT

DEBUG_OUTPUT_BLEND_IMAGES

public static final boolean DEBUG_OUTPUT_BLEND_IMAGES
See Also:
Constant Field Values

BLEND_USES_HARVILLE

public static final boolean BLEND_USES_HARVILLE
See Also:
Constant Field Values
Method Detail

d2hUOGLtoD3hTOGL

public double[] d2hUOGLtoD3hTOGL(double[] d2hUOGL)

dDESKtoDTOGL

public double[] dDESKtoDTOGL(double[] d2hUOGL)

dDESKsTodTOGLs

public double[][] dDESKsTodTOGLs(double[][] dDESKs)

getmWOGLcornersClockwise

public static Jama.Matrix[] getmWOGLcornersClockwise()

setNonBlackedAreas

public static void setNonBlackedAreas(java.util.List<ProjectorTransforms> projectorTransformsInBlackingOrder,
                                      BlendOptions bo)

paintBlendImage

public void paintBlendImage(BlendOptions bo,
                            java.awt.Graphics2D g,
                            java.util.List<Projector> projectorsInBlackingOrder,
                            boolean doInColorChannelsForDebugNotAlphaChannel)

paintBlendImageNewAlg_adjustAlpha

public static double paintBlendImageNewAlg_adjustAlpha(double a)

paintBlendImageNewAlg_alpha

public static double paintBlendImageNewAlg_alpha(double DESKpx,
                                                 double DESKpy,
                                                 ProjectorTransforms i)