t3.hrd.renderer
Class ProjectorTransforms
java.lang.Object
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:
- UOGL: 2D homogenous unwarped OpenGL.
- (planar homography)
- WOGL: 2D homogenous warped OpenGL.
- (set z=zconst)
- TOGL: 3D homogenous warped OpenGL. What you actually draw in with OpenGL commands.
- (OpenGL's projective transform)
- FB: 3D homogenous framebuffer space
- (throw away z component)
- FBT: 2D homogenous framebuffer space
- (planar homography caused by projector positioning and optics wrt surface)
- DESK: 2D homogenous, in mm, on the display surface, as defined by the primary point input device
(or 2D unhomogenous DESKU)
- ()
DESK to UOGL should therefore be just a translation and a positive scale
- Author:
- pjt40
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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
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)