Class AbstractGraphicsNode

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected AbstractGraphicsNode()
      Constructs a new graphics node.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean contains​(java.awt.geom.Point2D p)
      Returns true if the specified Point2D is inside the boundary of this node, false otherwise.
      void fireGraphicsNodeChangeCompleted()  
      void fireGraphicsNodeChangeStarted()  
      void fireGraphicsNodeChangeStarted​(GraphicsNodeChangeEvent changeStartedEvent)  
      void fireGraphicsNodeChangeStarted​(GraphicsNode changeSrc)  
      java.awt.geom.Rectangle2D getBounds()
      Returns the bounds of this node in user space.
      ClipRable getClip()
      Returns the clipping filter of this node or null if any.
      java.awt.Composite getComposite()
      Returns the composite of this node or null if any.
      Filter getEnableBackgroundGraphicsNodeRable​(boolean createIfNeeded)
      Returns the GraphicsNodeRable for this node.
      Filter getFilter()
      Returns the filter of this node or null if any.
      java.awt.geom.AffineTransform getGlobalTransform()
      Returns the concatenated transform of this node.
      Filter getGraphicsNodeRable​(boolean createIfNeeded)
      Returns the GraphicsNodeRable for this node.
      java.awt.geom.AffineTransform getInverseTransform()
      Returns the inverse transform for this node.
      Mask getMask()
      Returns the mask of this node or null if any.
      CompositeGraphicsNode getParent()
      Returns the parent of this node or null if any.
      int getPointerEventType()
      Returns the type that describes how this graphics node reacts to events.
      java.awt.RenderingHints getRenderingHints()
      Returns the rendering hints of this node or null if any.
      RootGraphicsNode getRoot()
      Returns the root of the GVT tree or null if the node is not part of a GVT tree.
      java.awt.geom.AffineTransform getTransform()
      Returns the transform of this node or null if any.
      java.awt.geom.Rectangle2D getTransformedBounds​(java.awt.geom.AffineTransform txf)
      Returns the bounds of this node after applying the input transform (if any), concatenated with this node's transform (if any).
      java.awt.geom.Rectangle2D getTransformedGeometryBounds​(java.awt.geom.AffineTransform txf)
      Returns the bounds of the area covered by this node, without taking any of its rendering attribute into accoun.
      java.awt.geom.Rectangle2D getTransformedPrimitiveBounds​(java.awt.geom.AffineTransform txf)
      Returns the bounds of this node's primitivePaint after applying the input transform (if any), concatenated with this node's transform (if any).
      java.awt.geom.Rectangle2D getTransformedSensitiveBounds​(java.awt.geom.AffineTransform txf)
      Returns the bounds of the sensitive area covered by this node, This includes the stroked area but does not include the effects of clipping, masking or filtering.
      java.lang.ref.WeakReference getWeakReference()
      Returns a canonical WeakReference to this GraphicsNode.
      boolean intersects​(java.awt.geom.Rectangle2D r)
      Returns true if the interior of this node intersects the interior of a specified Rectangle2D, false otherwise.
      protected void invalidateGeometryCache()
      Invalidates the cached geometric bounds.
      protected boolean isAntialiasedClip​(java.awt.geom.AffineTransform usr2dev, java.awt.RenderingHints hints, java.awt.Shape clip)
      Returns true if there is a clip and it should be antialiased
      protected boolean isOffscreenBufferNeeded()
      Returns true of an offscreen buffer is needed to render this node, false otherwise.
      boolean isVisible()
      Returns true if this node is visible, false otherwise.
      GraphicsNode nodeHitAt​(java.awt.geom.Point2D p)
      Returns the GraphicsNode containing point p if this node or one of its children is sensitive to mouse events at p.
      protected java.awt.geom.Rectangle2D normalizeRectangle​(java.awt.geom.Rectangle2D bounds)
      This method makes sure that neither the width nor height of the rectangle is zero.
      void paint​(java.awt.Graphics2D g2d)
      Paints this node.
      void setClip​(ClipRable newClipper)
      Sets the clipping filter of this node.
      void setComposite​(java.awt.Composite newComposite)
      Sets the composite of this node.
      void setFilter​(Filter newFilter)
      Sets the filter of this node.
      void setMask​(Mask newMask)
      Sets the mask of this node.
      protected void setParent​(CompositeGraphicsNode newParent)
      Sets the parent node of this graphics node.
      void setPointerEventType​(int pointerEventType)
      Sets the type that describes how this graphics node reacts to events.
      void setRenderingHint​(java.awt.RenderingHints.Key key, java.lang.Object value)
      Maps the specified key to the specified value in the rendering hints of this node.
      void setRenderingHints​(java.awt.RenderingHints newHints)
      Sets the rendering hints of this node.
      void setRenderingHints​(java.util.Map hints)
      Copies all of the mappings from the specified Map to the rendering hints of this node.
      protected void setRoot​(RootGraphicsNode newRoot)
      Sets the root node of this graphics node.
      void setTransform​(java.awt.geom.AffineTransform newTransform)
      Sets the transform of this node.
      void setVisible​(boolean isVisible)
      Sets if this node is visible or not depending on the specified value.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • listeners

        protected javax.swing.event.EventListenerList listeners
        The listeners list.
      • transform

        protected java.awt.geom.AffineTransform transform
        The transform of this graphics node.
      • inverseTransform

        protected java.awt.geom.AffineTransform inverseTransform
        The inverse transform for this node, i.e., from parent node to this node.
      • composite

        protected java.awt.Composite composite
        The compositing operation to be used when a graphics node is painted on top of another one.
      • isVisible

        protected boolean isVisible
        This flag bit indicates whether or not this graphics node is visible.
      • clip

        protected ClipRable clip
        The clipping filter for this graphics node.
      • hints

        protected java.awt.RenderingHints hints
        The rendering hints that control the quality to use when rendering this graphics node.
      • mask

        protected Mask mask
        The mask of this graphics node.
      • filter

        protected Filter filter
        The filter of this graphics node.
      • pointerEventType

        protected int pointerEventType
        Indicates how this graphics node reacts to events.
      • graphicsNodeRable

        protected java.lang.ref.WeakReference graphicsNodeRable
        The GraphicsNodeRable for this node.
      • enableBackgroundGraphicsNodeRable

        protected java.lang.ref.WeakReference enableBackgroundGraphicsNodeRable
        The GraphicsNodeRable for this node with all filtering applied
      • weakRef

        protected java.lang.ref.WeakReference weakRef
        A Weak Reference to this.
    • Constructor Detail

      • AbstractGraphicsNode

        protected AbstractGraphicsNode()
        Constructs a new graphics node.
    • Method Detail

      • getWeakReference

        public java.lang.ref.WeakReference getWeakReference()
        Returns a canonical WeakReference to this GraphicsNode. This is suitable for use as a key value in a hash map
        Specified by:
        getWeakReference in interface GraphicsNode
      • getPointerEventType

        public int getPointerEventType()
        Returns the type that describes how this graphics node reacts to events.
        Specified by:
        getPointerEventType in interface GraphicsNode
        Returns:
        VISIBLE_PAINTED | VISIBLE_FILL | VISIBLE_STROKE | VISIBLE | PAINTED | FILL | STROKE | ALL | NONE
      • setPointerEventType

        public void setPointerEventType​(int pointerEventType)
        Sets the type that describes how this graphics node reacts to events.
        Specified by:
        setPointerEventType in interface GraphicsNode
        Parameters:
        pointerEventType - VISIBLE_PAINTED | VISIBLE_FILL | VISIBLE_STROKE | VISIBLE | PAINTED | FILL | STROKE | ALL | NONE
      • setTransform

        public void setTransform​(java.awt.geom.AffineTransform newTransform)
        Sets the transform of this node.
        Specified by:
        setTransform in interface GraphicsNode
        Parameters:
        newTransform - the new transform of this node
      • getTransform

        public java.awt.geom.AffineTransform getTransform()
        Returns the transform of this node or null if any.
        Specified by:
        getTransform in interface GraphicsNode
      • getInverseTransform

        public java.awt.geom.AffineTransform getInverseTransform()
        Returns the inverse transform for this node.
        Specified by:
        getInverseTransform in interface GraphicsNode
      • getGlobalTransform

        public java.awt.geom.AffineTransform getGlobalTransform()
        Returns the concatenated transform of this node. That is, this node's transform preconcatenated with it's parent's transforms.
        Specified by:
        getGlobalTransform in interface GraphicsNode
      • setComposite

        public void setComposite​(java.awt.Composite newComposite)
        Sets the composite of this node.
        Specified by:
        setComposite in interface GraphicsNode
        Parameters:
        newComposite - the composite of this node
      • getComposite

        public java.awt.Composite getComposite()
        Returns the composite of this node or null if any.
        Specified by:
        getComposite in interface GraphicsNode
      • setVisible

        public void setVisible​(boolean isVisible)
        Sets if this node is visible or not depending on the specified value.
        Specified by:
        setVisible in interface GraphicsNode
        Parameters:
        isVisible - If true this node is visible
      • isVisible

        public boolean isVisible()
        Returns true if this node is visible, false otherwise.
        Specified by:
        isVisible in interface GraphicsNode
      • setClip

        public void setClip​(ClipRable newClipper)
        Description copied from interface: GraphicsNode
        Sets the clipping filter of this node.
        Specified by:
        setClip in interface GraphicsNode
        Parameters:
        newClipper - the new clipping filter of this node
      • getClip

        public ClipRable getClip()
        Returns the clipping filter of this node or null if any.
        Specified by:
        getClip in interface GraphicsNode
      • setRenderingHint

        public void setRenderingHint​(java.awt.RenderingHints.Key key,
                                     java.lang.Object value)
        Maps the specified key to the specified value in the rendering hints of this node.
        Specified by:
        setRenderingHint in interface GraphicsNode
        Parameters:
        key - the key of the hint to be set
        value - the value indicating preferences for the specified hint category.
      • setRenderingHints

        public void setRenderingHints​(java.util.Map hints)
        Copies all of the mappings from the specified Map to the rendering hints of this node.
        Specified by:
        setRenderingHints in interface GraphicsNode
        Parameters:
        hints - the rendering hints to be set
      • setRenderingHints

        public void setRenderingHints​(java.awt.RenderingHints newHints)
        Sets the rendering hints of this node.
        Specified by:
        setRenderingHints in interface GraphicsNode
        Parameters:
        newHints - the new rendering hints of this node
      • getRenderingHints

        public java.awt.RenderingHints getRenderingHints()
        Returns the rendering hints of this node or null if any.
        Specified by:
        getRenderingHints in interface GraphicsNode
      • setMask

        public void setMask​(Mask newMask)
        Sets the mask of this node.
        Specified by:
        setMask in interface GraphicsNode
        Parameters:
        newMask - the new mask of this node
      • getMask

        public Mask getMask()
        Returns the mask of this node or null if any.
        Specified by:
        getMask in interface GraphicsNode
      • setFilter

        public void setFilter​(Filter newFilter)
        Sets the filter of this node.
        Specified by:
        setFilter in interface GraphicsNode
        Parameters:
        newFilter - the new filter of this node
      • getFilter

        public Filter getFilter()
        Returns the filter of this node or null if any.
        Specified by:
        getFilter in interface GraphicsNode
      • getGraphicsNodeRable

        public Filter getGraphicsNodeRable​(boolean createIfNeeded)
        Returns the GraphicsNodeRable for this node. This GraphicsNodeRable is the Renderable (Filter) before any of the filter operations have been applied.
        Specified by:
        getGraphicsNodeRable in interface GraphicsNode
      • getEnableBackgroundGraphicsNodeRable

        public Filter getEnableBackgroundGraphicsNodeRable​(boolean createIfNeeded)
        Returns the GraphicsNodeRable for this node. This GraphicsNodeRable is the Renderable (Filter) after all of the filter operations have been applied.
        Specified by:
        getEnableBackgroundGraphicsNodeRable in interface GraphicsNode
      • paint

        public void paint​(java.awt.Graphics2D g2d)
        Paints this node.
        Specified by:
        paint in interface GraphicsNode
        Parameters:
        g2d - the Graphics2D to use
      • isOffscreenBufferNeeded

        protected boolean isOffscreenBufferNeeded()
        Returns true of an offscreen buffer is needed to render this node, false otherwise.
      • isAntialiasedClip

        protected boolean isAntialiasedClip​(java.awt.geom.AffineTransform usr2dev,
                                            java.awt.RenderingHints hints,
                                            java.awt.Shape clip)
        Returns true if there is a clip and it should be antialiased
      • fireGraphicsNodeChangeStarted

        public void fireGraphicsNodeChangeStarted​(GraphicsNode changeSrc)
      • fireGraphicsNodeChangeStarted

        public void fireGraphicsNodeChangeStarted()
      • fireGraphicsNodeChangeStarted

        public void fireGraphicsNodeChangeStarted​(GraphicsNodeChangeEvent changeStartedEvent)
      • fireGraphicsNodeChangeCompleted

        public void fireGraphicsNodeChangeCompleted()
      • getRoot

        public RootGraphicsNode getRoot()
        Returns the root of the GVT tree or null if the node is not part of a GVT tree.
        Specified by:
        getRoot in interface GraphicsNode
      • setRoot

        protected void setRoot​(RootGraphicsNode newRoot)
        Sets the root node of this graphics node.
        Parameters:
        newRoot - the new root node of this node
      • setParent

        protected void setParent​(CompositeGraphicsNode newParent)
        Sets the parent node of this graphics node.
        Parameters:
        newParent - the new parent node of this node
      • invalidateGeometryCache

        protected void invalidateGeometryCache()
        Invalidates the cached geometric bounds. This method is called each time an attribute that affects the bounds of this node changed.
      • getBounds

        public java.awt.geom.Rectangle2D getBounds()
        Returns the bounds of this node in user space. This includes primitive paint, filtering, clipping and masking.
        Specified by:
        getBounds in interface GraphicsNode
      • getTransformedBounds

        public java.awt.geom.Rectangle2D getTransformedBounds​(java.awt.geom.AffineTransform txf)
        Returns the bounds of this node after applying the input transform (if any), concatenated with this node's transform (if any).
        Specified by:
        getTransformedBounds in interface GraphicsNode
        Parameters:
        txf - the affine transform with which this node's transform should be concatenated. Should not be null.
      • getTransformedPrimitiveBounds

        public java.awt.geom.Rectangle2D getTransformedPrimitiveBounds​(java.awt.geom.AffineTransform txf)
        Returns the bounds of this node's primitivePaint after applying the input transform (if any), concatenated with this node's transform (if any).
        Specified by:
        getTransformedPrimitiveBounds in interface GraphicsNode
        Parameters:
        txf - the affine transform with which this node's transform should be concatenated. Should not be null.
      • getTransformedGeometryBounds

        public java.awt.geom.Rectangle2D getTransformedGeometryBounds​(java.awt.geom.AffineTransform txf)
        Returns the bounds of the area covered by this node, without taking any of its rendering attribute into accoun. That is, exclusive of any clipping, masking, filtering or stroking, for example. The returned value is transformed by the concatenation of the input transform and this node's transform.
        Specified by:
        getTransformedGeometryBounds in interface GraphicsNode
        Parameters:
        txf - the affine transform with which this node's transform should be concatenated. Should not be null.
      • getTransformedSensitiveBounds

        public java.awt.geom.Rectangle2D getTransformedSensitiveBounds​(java.awt.geom.AffineTransform txf)
        Returns the bounds of the sensitive area covered by this node, This includes the stroked area but does not include the effects of clipping, masking or filtering. The returned value is transformed by the concatenation of the input transform and this node's transform.
        Specified by:
        getTransformedSensitiveBounds in interface GraphicsNode
        Parameters:
        txf - the affine transform with which this node's transform should be concatenated. Should not be null.
      • contains

        public boolean contains​(java.awt.geom.Point2D p)
        Returns true if the specified Point2D is inside the boundary of this node, false otherwise.
        Specified by:
        contains in interface GraphicsNode
        Parameters:
        p - the specified Point2D in the user space
      • intersects

        public boolean intersects​(java.awt.geom.Rectangle2D r)
        Returns true if the interior of this node intersects the interior of a specified Rectangle2D, false otherwise.
        Specified by:
        intersects in interface GraphicsNode
        Parameters:
        r - the specified Rectangle2D in the user node space
      • nodeHitAt

        public GraphicsNode nodeHitAt​(java.awt.geom.Point2D p)
        Returns the GraphicsNode containing point p if this node or one of its children is sensitive to mouse events at p.
        Specified by:
        nodeHitAt in interface GraphicsNode
        Parameters:
        p - the specified Point2D in the user space
      • normalizeRectangle

        protected java.awt.geom.Rectangle2D normalizeRectangle​(java.awt.geom.Rectangle2D bounds)
        This method makes sure that neither the width nor height of the rectangle is zero. But it tries to make them very small relatively speaking.