Class PerspectiveCamera
- All Implemented Interfaces:
Styleable
,EventTarget
This camera defines a viewing volume for a perspective projection;
a truncated right pyramid.
The fieldOfView
value can be used to change viewing volume.
By default, this camera is located at center of the scene and looks along the
positive z-axis. The coordinate system defined by this camera has its
origin in the upper left corner of the panel with the Y-axis pointing
down and the Z axis pointing away from the viewer (into the screen).
If a PerspectiveCamera
node is added to the scene graph,
the transformed position and orientation of the camera will define the
position of the camera and the direction that the camera is looking.
In the default camera, where fixedEyeAtCameraZero is false, the Z value
of the eye position is adjusted in Z such that the projection matrix generated
using the specified fieldOfView
will produce units at
Z = 0 (the projection plane), in device-independent pixels, matches that of
the ParallelCamera.
When the Scene is resized,
the objects in the scene at the projection plane (Z = 0) will stay the same size,
but more or less content of the scene is viewable.
If fixedEyeAtCameraZero is true, the eye position is fixed at (0, 0, 0)
in the local coordinates of the camera. The projection matrix is generated
using the specified fieldOfView
and the projection volume is mapped
onto the viewport (window) such that it is stretched over more or fewer
device-independent pixels at the projection plane.
When the Scene is resized,
the objects in the scene will shrink or grow proportionally,
but the visible portion of the content is unchanged.
We recommend setting fixedEyeAtCameraZero to true if you are going to transform (move) the camera. Transforming the camera when fixedEyeAtCameraZero is set to false may lead to results that are not intuitive.
Note that this is a conditional feature. See
ConditionalFeature.SCENE3D
for more information.
- Since:
- JavaFX 2.0
-
Property Summary
TypePropertyDescriptionfinal DoubleProperty
Specifies the field of view angle of the camera's projection, measured in degrees.final BooleanProperty
Defines whether thefieldOfView
property will apply to the vertical dimension of the projection.Properties declared in class javafx.scene.Node
accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, focusVisible, focusWithin, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible
-
Field Summary
Fields declared in class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
-
Constructor Summary
ConstructorDescriptionCreates an empty instance of PerspectiveCamera.PerspectiveCamera
(boolean fixedEyeAtCameraZero) Constructs a PerspectiveCamera with the specified fixedEyeAtCameraZero flag. -
Method Summary
Modifier and TypeMethodDescriptionfinal DoubleProperty
Specifies the field of view angle of the camera's projection, measured in degrees.final double
Gets the value of thefieldOfView
property.final boolean
Returns a flag indicating whether this camera uses a fixed eye position at the origin of the camera.final boolean
Gets the value of theverticalFieldOfView
property.final void
setFieldOfView
(double value) Sets the value of thefieldOfView
property.final void
setVerticalFieldOfView
(boolean value) Sets the value of theverticalFieldOfView
property.final BooleanProperty
Defines whether thefieldOfView
property will apply to the vertical dimension of the projection.Methods declared in class javafx.scene.Camera
farClipProperty, getFarClip, getNearClip, nearClipProperty, setFarClip, setNearClip
Methods declared in class javafx.scene.Node
accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, focusVisibleProperty, focusWithinProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBaselineOffset, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClassCssMetaData, getClip, getContentBias, getCssMetaData, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isFocusVisible, isFocusWithin, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isResizable, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookup, lookupAll, managedProperty, maxHeight, maxWidth, minHeight, minWidth, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, prefHeight, prefWidth, pressedProperty, pseudoClassStateChanged, queryAccessibleAttribute, relocate, removeEventFilter, removeEventHandler, requestFocus, requestFocusTraversal, resize, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods declared in interface javafx.css.Styleable
getStyleableNode
-
Property Details
-
fieldOfView
Specifies the field of view angle of the camera's projection, measured in degrees.- Default value:
- 30.0
- See Also:
-
verticalFieldOfView
Defines whether thefieldOfView
property will apply to the vertical dimension of the projection. If it is false,fieldOfView
will apply to the horizontal dimension of the projection.- Default value:
- true
- Since:
- JavaFX 8.0
- See Also:
-
-
Constructor Details
-
PerspectiveCamera
public PerspectiveCamera()Creates an empty instance of PerspectiveCamera. -
PerspectiveCamera
public PerspectiveCamera(boolean fixedEyeAtCameraZero) Constructs a PerspectiveCamera with the specified fixedEyeAtCameraZero flag.In the default camera, where fixedEyeAtCameraZero is false, the Z value of the eye position is adjusted in Z such that the projection matrix generated using the specified
fieldOfView
will produce units at Z = 0 (the projection plane), in device-independent pixels, matches that of the ParallelCamera. When the Scene is resized, the objects in the scene at the projection plane (Z = 0) will stay the same size, but more or less content of the scene is viewable.If fixedEyeAtCameraZero is true, the eye position is fixed at (0, 0, 0) in the local coordinates of the camera. The projection matrix is generated using the specified
fieldOfView
and the projection volume is mapped onto the viewport (window) such that it is stretched over more or fewer device-independent pixels at the projection plane. When the Scene is resized, the objects in the scene will shrink or grow proportionally, but the visible portion of the content is unchanged.We recommend setting fixedEyeAtCameraZero to true if you are going to transform (move) the camera. Transforming the camera when fixedEyeAtCameraZero is set to false may lead to results that are not intuitive.
- Parameters:
fixedEyeAtCameraZero
- true if the the eye position is fixed at (0, 0, 0) in the local coordinates of the camera.- Since:
- JavaFX 8.0
-
-
Method Details
-
setFieldOfView
public final void setFieldOfView(double value) Sets the value of thefieldOfView
property.- Property description:
- Specifies the field of view angle of the camera's projection, measured in degrees.
- Default value:
- 30.0
- Parameters:
value
- the value for thefieldOfView
property- See Also:
-
getFieldOfView
public final double getFieldOfView()Gets the value of thefieldOfView
property.- Property description:
- Specifies the field of view angle of the camera's projection, measured in degrees.
- Default value:
- 30.0
- Returns:
- the value of the
fieldOfView
property - See Also:
-
fieldOfViewProperty
Specifies the field of view angle of the camera's projection, measured in degrees.- Default value:
- 30.0
- Returns:
- the
fieldOfView
property - See Also:
-
setVerticalFieldOfView
public final void setVerticalFieldOfView(boolean value) Sets the value of theverticalFieldOfView
property.- Property description:
- Defines whether the
fieldOfView
property will apply to the vertical dimension of the projection. If it is false,fieldOfView
will apply to the horizontal dimension of the projection. - Default value:
- true
- Parameters:
value
- the value for theverticalFieldOfView
property- Since:
- JavaFX 8.0
- See Also:
-
isVerticalFieldOfView
public final boolean isVerticalFieldOfView()Gets the value of theverticalFieldOfView
property.- Property description:
- Defines whether the
fieldOfView
property will apply to the vertical dimension of the projection. If it is false,fieldOfView
will apply to the horizontal dimension of the projection. - Default value:
- true
- Returns:
- the value of the
verticalFieldOfView
property - Since:
- JavaFX 8.0
- See Also:
-
verticalFieldOfViewProperty
Defines whether thefieldOfView
property will apply to the vertical dimension of the projection. If it is false,fieldOfView
will apply to the horizontal dimension of the projection.- Default value:
- true
- Returns:
- the
verticalFieldOfView
property - Since:
- JavaFX 8.0
- See Also:
-
isFixedEyeAtCameraZero
public final boolean isFixedEyeAtCameraZero()Returns a flag indicating whether this camera uses a fixed eye position at the origin of the camera. IffixedEyeAtCameraZero
istrue
, the the eye position is fixed at (0, 0, 0) in the local coordinates of the camera. This attribute is immutable.- Returns:
- a flag indicating whether this camera uses a fixed eye position at the origin of the camera
- Since:
- JavaFX 8.0
-