Package javafx.scene

Class SubScene

  • All Implemented Interfaces:
    Styleable, EventTarget

    public class SubScene
    extends Node
    The SubScene class is the container for content in a scene graph. SubScene provides separation of different parts of a scene, each of which can be rendered with a different camera, depth buffer, or scene anti-aliasing. A SubScene is embedded into the main scene or another sub-scene.

    An application may request depth buffer support or scene anti-aliasing support at the creation of a SubScene. A sub-scene with only 2D shapes and without any 3D transforms does not need a depth buffer nor scene anti-aliasing support. A sub-scene containing 3D shapes or 2D shapes with 3D transforms may use depth buffer support for proper depth sorted rendering; to avoid depth fighting (also known as Z fighting), disable depth testing on 2D shapes that have no 3D transforms. See depthTest for more information. A sub-scene with 3D shapes may enable scene anti-aliasing to improve its rendering quality.

    The depthBuffer and antiAliasing flags are conditional features. With the respective default values of: false and SceneAntialiasing.DISABLED. See ConditionalFeature.SCENE3D for more information.

    Possible use cases are:

    • Mixing 2D and 3D content
    • Overlay for UI controls
    • Underlay for background
    • Heads-up display

    A default headlight will be added to a SubScene that contains one or more Shape3D nodes, but no light nodes. This light source is a Color.WHITE PointLight placed at the camera position.

    Since:
    JavaFX 8.0
    • Constructor Detail

      • SubScene

        public SubScene​(Parent root,
                        double width,
                        double height)
        Creates a SubScene for a specific root Node with a specific size.
        Parameters:
        root - The root node of the scene graph
        width - The width of the sub-scene
        height - The height of the sub-scene
        Throws:
        NullPointerException - if root is null
      • SubScene

        public SubScene​(Parent root,
                        double width,
                        double height,
                        boolean depthBuffer,
                        SceneAntialiasing antiAliasing)
        Constructs a SubScene consisting of a root, with a dimension of width and height, specifies whether a depth buffer is created for this scene and specifies whether scene anti-aliasing is requested.

        A sub-scene with only 2D shapes and without any 3D transforms does not need a depth buffer nor scene anti-aliasing support. A sub-scene containing 3D shapes or 2D shapes with 3D transforms may use depth buffer support for proper depth sorted rendering; to avoid depth fighting (also known as Z fighting), disable depth testing on 2D shapes that have no 3D transforms. See depthTest for more information. A sub-scene with 3D shapes may enable scene anti-aliasing to improve its rendering quality.

        Parameters:
        root - The root node of the scene graph
        width - The width of the sub-scene
        height - The height of the sub-scene
        depthBuffer - The depth buffer flag
        antiAliasing - The sub-scene anti-aliasing attribute. A value of null is treated as DISABLED.

        The depthBuffer and antiAliasing flags are conditional features. With the respective default values of: false and SceneAntialiasing.DISABLED. See ConditionalFeature.SCENE3D for more information.

        Throws:
        NullPointerException - if root is null
        See Also:
        Node.setDepthTest(DepthTest)
    • Method Detail

      • getAntiAliasing

        public final SceneAntialiasing getAntiAliasing()
        Return the defined SceneAntialiasing for this SubScene.

        Note: this is a conditional feature. See ConditionalFeature.SCENE3D and SceneAntialiasing for more information.

        Returns:
        the SceneAntialiasing for this sub-scene
        Since:
        JavaFX 8.0
      • isDepthBuffer

        public final boolean isDepthBuffer()
        Retrieves the depth buffer attribute for this SubScene.
        Returns:
        the depth buffer attribute.
      • setRoot

        public final void setRoot​(Parent value)
        Sets the value of the property root.
        Property description:
        Defines the root Node of the SubScene scene graph. If a Group is used as the root, the contents of the scene graph will be clipped by the SubScene's width and height. SubScene doesn't accept null root.
      • getRoot

        public final Parent getRoot()
        Gets the value of the property root.
        Property description:
        Defines the root Node of the SubScene scene graph. If a Group is used as the root, the contents of the scene graph will be clipped by the SubScene's width and height. SubScene doesn't accept null root.
      • rootProperty

        public final ObjectProperty<Parent> rootProperty()
        Defines the root Node of the SubScene scene graph. If a Group is used as the root, the contents of the scene graph will be clipped by the SubScene's width and height. SubScene doesn't accept null root.
        See Also:
        getRoot(), setRoot(Parent)
      • setCamera

        public final void setCamera​(Camera value)
        Sets the value of the property camera.
        Property description:
        Specifies the type of camera use for rendering this SubScene. If camera is null, a parallel camera is used for rendering. It is illegal to set a camera that belongs to other Scene or SubScene.

        Note: this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

        Default value:
        null
      • getCamera

        public final Camera getCamera()
        Gets the value of the property camera.
        Property description:
        Specifies the type of camera use for rendering this SubScene. If camera is null, a parallel camera is used for rendering. It is illegal to set a camera that belongs to other Scene or SubScene.

        Note: this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

        Default value:
        null
      • cameraProperty

        public final ObjectProperty<Camera> cameraProperty()
        Specifies the type of camera use for rendering this SubScene. If camera is null, a parallel camera is used for rendering. It is illegal to set a camera that belongs to other Scene or SubScene.

        Note: this is a conditional feature. See ConditionalFeature.SCENE3D for more information.

        Default value:
        null
        See Also:
        getCamera(), setCamera(Camera)
      • setWidth

        public final void setWidth​(double value)
        Sets the value of the property width.
        Property description:
        Defines the width of this SubScene
        Default value:
        0.0
      • getWidth

        public final double getWidth()
        Gets the value of the property width.
        Property description:
        Defines the width of this SubScene
        Default value:
        0.0
      • setHeight

        public final void setHeight​(double value)
        Sets the value of the property height.
        Property description:
        Defines the height of this SubScene
        Default value:
        0.0
      • getHeight

        public final double getHeight()
        Gets the value of the property height.
        Property description:
        Defines the height of this SubScene
        Default value:
        0.0
      • setFill

        public final void setFill​(Paint value)
        Sets the value of the property fill.
        Property description:
        Defines the background fill of this SubScene. Both a null value meaning paint no background and a Paint with transparency are supported. The default value is null.
        Default value:
        null
      • getFill

        public final Paint getFill()
        Gets the value of the property fill.
        Property description:
        Defines the background fill of this SubScene. Both a null value meaning paint no background and a Paint with transparency are supported. The default value is null.
        Default value:
        null
      • fillProperty

        public final ObjectProperty<Paint> fillProperty()
        Defines the background fill of this SubScene. Both a null value meaning paint no background and a Paint with transparency are supported. The default value is null.
        Default value:
        null
        See Also:
        getFill(), setFill(Paint)
      • getUserAgentStylesheet

        public final String getUserAgentStylesheet()
        Get the URL of the user-agent stylesheet that will be used by this SubScene. If the URL has not been set, the platform-default user-agent stylesheet will be used.

        For additional information about using CSS with the scene graph, see the CSS Reference Guide.

        Returns:
        The URL of the user-agent stylesheet that will be used by this SubScene, or null if has not been set.
        Since:
        JavaFX 8u20
      • setUserAgentStylesheet

        public final void setUserAgentStylesheet​(String url)
        Set the URL of the user-agent stylesheet that will be used by this SubScene in place of the the platform-default user-agent stylesheet. If the URL does not resolve to a valid location, the platform-default user-agent stylesheet will be used.

        For additional information about using CSS with the scene graph, see the CSS Reference Guide.

        Parameters:
        url - The URL is a hierarchical URI of the form [scheme:][//authority][path]. If the URL does not have a [scheme:] component, the URL is considered to be the [path] component only. Any leading '/' character of the [path] is ignored and the [path] is treated as a path relative to the root of the application's classpath.
        Since:
        JavaFX 8u20