LightBase (JavaFX 17)

Module javafx.graphics
Package javafx.scene

## Class LightBase

- java.lang.Object
- - javafx.scene.Node
  - - javafx.scene.LightBase

- All Implemented Interfaces:
    `Styleable`, `EventTarget`
  Direct Known Subclasses:
    `AmbientLight`, `PointLight`

      public abstract class LightBase
      extends Node

  The `LightBase` class provides definitions of common properties for objects that represent a form of light source. These properties include:
  - `color` - the color of the light source
  - `scope` - a list of nodes the light source affects
  - `exlusionScope` - a list of nodes the light source does not affect

  A node can exist in only one of the lists, if it is added to one, it is silently removed from the other. If a node does not exist in any list, it inherits its affected state from its parent, recursively. An exception to this is that a light with an empty `scope` affects all nodes in its scene/subscene implicitly (except for those in its `exlusionScope`) as if the root of the scene is in the `scope`.
  The `exlusionScope` is useful only for nodes that would otherwise be in scope of the light. Excluding a node is a convenient alternative to traversing the scenegraph hierarchy and adding all of the other nodes to the light's scope. Instead, the scope can remain wide and specific nodes can be excluded.

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

  An application should not extend the `LightBase` class directly. Doing so may lead to an `UnsupportedOperationException` being thrown.

  Since:
    JavaFX 8.0

- - ### Property Summary

    Properties
    Type | Property | Description
    --- | --- | ---
    `ObjectProperty<Color>` | `color` | Specifies the color of light source.
    `BooleanProperty` | `lightOn` | Defines the light on or off.

    - ### 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, 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

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `LightBase()` | Creates a new instance of `LightBase` class with a default Color.WHITE light source.
    `protected` | `LightBase​(Color color)` | Creates a new instance of `LightBase` class using the specified color.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `ObjectProperty<Color>` | `colorProperty()` | Specifies the color of light source.
    `Color` | `getColor()` | Gets the value of the property color.
    `ObservableList<Node>` | `getExclusionScope()` | Gets the list of nodes that specifies the hierarchical exclusion scope of this light.
    `ObservableList<Node>` | `getScope()` | Gets the list of nodes that specifies the hierarchical scope of this light.
    `boolean` | `isLightOn()` | Gets the value of the property lightOn.
    `BooleanProperty` | `lightOnProperty()` | Defines the light on or off.
    `void` | `setColor​(Color value)` | Sets the value of the property color.
    `void` | `setLightOn​(boolean value)` | Sets the value of the property lightOn.

    - ### 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, 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, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, 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, 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, getStyleClass`

- - ### Property Detail

    - #### color

          public final ObjectProperty<Color> colorProperty

      Specifies the color of light source.
      Default value:
        null
      See Also:
        `getColor()`, `setColor(Color)`

    - #### lightOn

          public final BooleanProperty lightOnProperty

      Defines the light on or off.
      Default value:
        true
      See Also:
        `isLightOn()`, `setLightOn(boolean)`

  - ### Constructor Detail

    - #### LightBase

          protected LightBase()

      Creates a new instance of `LightBase` class with a default Color.WHITE light source.

    - #### LightBase

          protected LightBase​(Color color)

      Creates a new instance of `LightBase` class using the specified color.
      Parameters:
        `color` - the color of the light source

  - ### Method Detail

    - #### setColor

          public final void setColor​(Color value)

      Sets the value of the property color.
      Property description:
        Specifies the color of light source.
      Default value:
        null

    - #### getColor

          public final Color getColor()

      Gets the value of the property color.
      Property description:
        Specifies the color of light source.
      Default value:
        null

    - #### colorProperty

          public final ObjectProperty<Color> colorProperty()

      Specifies the color of light source.
      Default value:
        null
      See Also:
        `getColor()`, `setColor(Color)`

    - #### setLightOn

          public final void setLightOn​(boolean value)

      Sets the value of the property lightOn.
      Property description:
        Defines the light on or off.
      Default value:
        true

    - #### isLightOn

          public final boolean isLightOn()

      Gets the value of the property lightOn.
      Property description:
        Defines the light on or off.
      Default value:
        true

    - #### lightOnProperty

          public final BooleanProperty lightOnProperty()

      Defines the light on or off.
      Default value:
        true
      See Also:
        `isLightOn()`, `setLightOn(boolean)`

    - #### getScope

          public ObservableList<Node> getScope()

      Gets the list of nodes that specifies the hierarchical scope of this light. Any `Shape3D`s in this list or under a `Parent` in this list are affected by this light, unless a closer parent exists in the `exclusionScope` list. If the list is empty, all nodes under the light's scene/subscene are affected by it (unless they are in the `exclusionScope`).
      Returns:
        the list of nodes that specifies the hierarchical scope of this light
      See Also:
        `getExclusionScope()`

    - #### getExclusionScope

          public ObservableList<Node> getExclusionScope()

      Gets the list of nodes that specifies the hierarchical exclusion scope of this light. Any `Shape3D`s in this list or under a `Parent` in this list are not affected by this light, unless a closer parent exists in the `scope` list.
      This is a convenience list for excluding nodes that would otherwise be in scope of the light.
      Returns:
        the list of nodes that specifies the hierarchical exclusion scope of this light
      Since:
        13
      See Also:
        `getScope()`