Class PjEventCamera
- java.lang.Object
-
- jv.object.PsObject
-
- jv.project.PjProject
-
- vgp.tutor.eventCamera.PjEventCamera
-
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, PsTimeListenerIf, PsUpdateIf, PvCameraListenerIf, PvPickListenerIf
public class PjEventCamera extends PjProject implements PvCameraListenerIf
Demo project shows how to handle camera events issued from a JavaView display. In this example the events are used to steer the camera in a second window.The camera events from one window are used to steer the camera in the other window such that a stereo effect is produced. Note, the viewing direction of the left camera is slightly rotated around the up-vector of the camera by about 6 degrees.
- See Also:
PvCameraEvent,PvCameraListenerIf,PvDisplayIf, Serialized Form- Author:
- Konrad Polthier
- Version:
- 05.11.06, 2.10 revised (kp) Appearance of surface adjusted.
14.12.03, 2.00 revised (kp) Full revision.
25.07.00, 1.00 created (kp)
-
-
Field Summary
Fields Modifier and Type Field and Description static intSTEREO_CROSSCross eye stereo projection.static intSTEREO_PARALLELParallel eye stereo projection.static intSTEREO_REDGREENRed green painting of stereo projection.-
Fields inherited from class jv.object.PsObject
HAS_BOUNDARY_PANEL, HAS_CONFIG_PANEL, HAS_INFO_PANEL, HAS_LABEL_PANEL, HAS_MATERIAL_PANEL, HAS_TEXTURE_PANEL, HAS_VECTOR_PANEL, INSPECTOR_INFO, INSPECTOR_INFO_EXT, IS_DELETED, IS_FIXED, IS_FOCUSSED, IS_PICKED, IS_SELECTED, IS_USED, NUM_TAGS
-
-
Constructor Summary
Constructors Constructor and Description PjEventCamera()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voiddragCamera(PvCameraEvent pos)Get camera events resulting from dragging the mouse.PvDisplayIfgetLeftDisplay()PvDisplayIfgetRightDisplay()intgetStereoType()Get type of stereo projection.voidinit()Initialize and reset project, stops the running animation if any.voidpickCamera(PvCameraEvent pos)Get camera events resulting from picking the mouse.voidreset()voidsetStereoType(int type)Set type of stereo projection.voidstart()Method is invoked during loading of a project in JavaView.booleanupdate(java.lang.Object event)Update all inspector panels, send update to all registered update listeners and finally update parent.-
Methods inherited from class jv.project.PjProject
addDisplay, addGeometry, addGeometry, dispose, dragDisplay, dragInitial, dragVertex, fitDisplays, getAnimation, getDisplay, getDisplays, getGeometry, getGeometry, getNumGeometries, getParameter, getParameterInfo, getViewer, hasAnimation, hasDisplay, isEnabledAutoFit, markVertices, pickDisplay, pickInitial, pickVertex, removeDisplay, removeGeometries, removeGeometry, selectDisplay, selectGeometry, setAnimation, setBackColor, setBorderType, setDisplay, setEnabledAutoFit, setGeometry, setParameterInfo, setTime, setViewer, stop, unmarkVertices
-
Methods inherited from class jv.object.PsObject
addInspector, addUpdateListener, assureInspector, clearTag, clone, clone, clone, copy, getFather, getInfoPanel, getInspector, getName, getNumObjects, getSymbol, hasInspector, hasTag, hasUpdateListener, instanceOf, instanceOf, newInspector, newInspector, removeInspector, removeInspector, removeUpdateListener, setName, setParent, setSymbol, setTag, toString, updatePanels
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface jv.project.PvCameraListenerIf
getName
-
Methods inherited from interface jv.anim.PsTimeListenerIf
getName
-
Methods inherited from interface jv.project.PvPickListenerIf
getName
-
-
-
-
Field Detail
-
STEREO_CROSS
public static final int STEREO_CROSS
Cross eye stereo projection.- See Also:
- Constant Field Values
-
STEREO_PARALLEL
public static final int STEREO_PARALLEL
Parallel eye stereo projection.- See Also:
- Constant Field Values
-
STEREO_REDGREEN
public static final int STEREO_REDGREEN
Red green painting of stereo projection.- See Also:
- Constant Field Values
-
-
Method Detail
-
init
public void init()
Description copied from class:PjProjectInitialize and reset project, stops the running animation if any. Does not reset any registered display nor geometry. They must be reset individually in each subclass.
-
start
public void start()
Description copied from class:PjProjectMethod is invoked during loading of a project in JavaView.If a project has an animation object, then the animation panel is shown when the project's this start() method is invoked during loading of the project. Use
setAnimation(PsAnimation)to register an animation.If auto fit is enabled then scenery is scaled to fit in each display.
- Overrides:
startin classPjProject- See Also:
PvViewerIf.start(),PjProject.isEnabledAutoFit()
-
reset
public void reset()
-
update
public boolean update(java.lang.Object event)
Description copied from class:PsObjectUpdate all inspector panels, send update to all registered update listeners and finally update parent. Each of those updates has this object as event independent of the argument of this method.Central update method of this object. Must be overwritten if this class receives unknown events, say, from new children. Any subclass must class invoke super.update(event) on all events it does handle itself.
- Specified by:
updatein interfacePsUpdateIf- Overrides:
updatein classPsObject- Parameters:
event- carries a lot of information- Returns:
- true if event has been handled, otherwise false
- See Also:
PsObject.setParent(PsUpdateIf),PsObject.getFather(),PsObject.addUpdateListener(PsUpdateIf)
-
getRightDisplay
public PvDisplayIf getRightDisplay()
-
getLeftDisplay
public PvDisplayIf getLeftDisplay()
-
getStereoType
public int getStereoType()
Get type of stereo projection.- Returns:
- stereo projection type, see
STEREO_CROSSand similar.
-
setStereoType
public void setStereoType(int type)
Set type of stereo projection.- Parameters:
type- stereo projection type, seeSTEREO_CROSSand similar.
-
pickCamera
public void pickCamera(PvCameraEvent pos)
Get camera events resulting from picking the mouse. Use information about camera in one display to adjust the camera in the other window. But previously rotate the camera position around the line given by interest+t*upVector by -6 degrees.- Specified by:
pickCamerain interfacePvCameraListenerIf- Parameters:
pos- Pick event issued by the display- See Also:
PvCameraListenerIf
-
dragCamera
public void dragCamera(PvCameraEvent pos)
Get camera events resulting from dragging the mouse. This method just calls the method pickCamera which does all the work.- Specified by:
dragCamerain interfacePvCameraListenerIf- Parameters:
pos- Drag event issued by the display- See Also:
PvCameraListenerIf
-
-
"