Class Drawable

  • All Implemented Interfaces:
    IGLRenderer, ISortableDraw
    Direct Known Subclasses:
    AbstractDrawableGraph2d, CoplanarityManager, DrawableImage, DrawableTextWrapper, DrawableVBO, MultiDrawable, Point, Scatter, ScatterMultiColor, ScatterMultiColorList, ScatterPoint, Texture3D, Volume, Wireframeable

    public abstract class Drawable
    extends Object
    implements IGLRenderer, ISortableDraw
    A Drawable defines objects that may be rendered into an OpenGL context provided by a ICanvas. A Drawable must basically provide a rendering function called draw() that receives a reference to a GL2 and a GLU context. It may also use a reference to a Camera in order to implement specific behaviors according to the Camera position. A Drawable provides services for setting the transformation factor that is used inside the draw function, as well as a getter of the object's BoundingBox3d. Note that the BoundingBox must be set by a concrete descendant of a Drawable. A good practice is to define a setData function for initializing a Drawable and building its polygons. Since each class may have its own inputs, setData is not part of the interface but should be used as a convention. When not defining a setData function, a Drawable may have its data loaded by an add(Drawable) function. Note: A Drawable may last provide the information whether it is displayed or not, according to a rendering into the FeedBack buffer. This is currently supported specifically for the AxisBox object but could be extended with some few more algorithm for referencing all GL2 polygons.
    Author:
    Martin Pernollet
    • Field Detail

      • transformBefore

        protected Transform transformBefore
      • hasListeners

        protected boolean hasListeners
      • displayed

        protected boolean displayed
      • legendDisplayed

        protected boolean legendDisplayed
      • boundingBoxDisplayed

        protected boolean boundingBoxDisplayed
      • boundingBoxColor

        protected Color boundingBoxColor
    • Constructor Detail

      • Drawable

        public Drawable()
    • Method Detail

      • dispose

        public void dispose()
        Performs all required operation to cleanup the Drawable.
      • draw

        public abstract void draw​(IPainter painter)
        Call OpenGL2 routines for rendering the object.
        Specified by:
        draw in interface IGLRenderer
      • applyGeometryTransform

        public abstract void applyGeometryTransform​(Transform transform)
      • updateBounds

        public abstract void updateBounds()
      • doTransform

        public void doTransform​(IPainter painter)
      • doDrawBoundsIfDisplayed

        protected void doDrawBoundsIfDisplayed​(IPainter painter)
      • setTransform

        public void setTransform​(Transform transform)
        Set object's transformation that is applied at the beginning of a call to draw(IPainter).
        Parameters:
        transform -
      • getTransform

        public Transform getTransform()
        Get object's transformation that is applied at the beginning of a call to draw(IPainter).
        Returns:
        transform
      • getTransformBefore

        public Transform getTransformBefore()
      • setTransformBefore

        public void setTransformBefore​(Transform transformBefore)
      • getBounds

        public BoundingBox3d getBounds()
        Return the BoundingBox of this object.
        Returns:
        a bounding box
      • getBarycentre

        public Coord3d getBarycentre()
        Return the barycentre of this object, which is computed as the center of its bounding box. If the bounding box is not available, the returned value is Coord3d.INVALID
        Returns:
        the center of the bounding box, or Coord3d.INVALID.
      • setDisplayed

        public void setDisplayed​(boolean status)
        Set to true or false the displayed status of this object.
        Parameters:
        status -
      • isDisplayed

        public boolean isDisplayed()
        Return the display status of this object.
      • setLegend

        public void setLegend​(ILegend legend)
      • getLegend

        public ILegend getLegend()
      • hasLegend

        public boolean hasLegend()
      • setLegendDisplayed

        public void setLegendDisplayed​(boolean status)
      • isLegendDisplayed

        public boolean isLegendDisplayed()
      • isBoundingBoxDisplayed

        public boolean isBoundingBoxDisplayed()
      • setBoundingBoxDisplayed

        public void setBoundingBoxDisplayed​(boolean boundingBoxDisplayed)
      • getBoundingBoxColor

        public Color getBoundingBoxColor()
      • setBoundingBoxColor

        public void setBoundingBoxColor​(Color boundingBoxColor)
      • setSpaceTransformer

        public void setSpaceTransformer​(SpaceTransformer spaceTransformer)
      • addDrawableListener

        public void addDrawableListener​(IDrawableListener listener)
      • removeDrawableListener

        public void removeDrawableListener​(IDrawableListener listener)
      • fireDrawableChanged

        protected void fireDrawableChanged​(int eventType)
      • toString

        public String toString​(int depth)