Class CompileableComposite

  • All Implemented Interfaces:
    IMultiColorable, ISingleColorable, IGLRenderer, ISortableDraw

    public class CompileableComposite
    extends Wireframeable
    implements ISingleColorable, IMultiColorable
    A CompileableComposite allows storage and subsequent faster execution of individual contained instances drawing routines in an OpenGL display list. Compiling the object take the time needed to render it as a standard Composite, and rendering it once it is compiled seems to take roughly half the time up to now. Since compilation occurs during a draw(), the first call to draw() is supposed to be 1.5x longer than a standard Composite, while all next cycles would be 0.5x longer. Compilation occurs when the content or the display attributes of this Composite changes (then all add(), remove(), setColor(), setWireFrameDisplayed(), etc). One can also force rebuilding the object by calling recompile(); IMPORTANT: for the moment, CompileableComposite should not be use in a charts using a Quality superior to Intermediate, in other word, you should not desire to have alpha enabled in your scene. Indeed, alpha requires ordering of polygons each time the viewpoint changes, which would require to recompile the object. Unsupported in Android / OpenGL ES
    Author:
    Nils Hoffmann
    • Field Detail

      • color

        protected Color color
      • detailedToString

        protected boolean detailedToString
    • Constructor Detail

      • CompileableComposite

        public CompileableComposite()
    • Method Detail

      • recompile

        public void recompile()
        Force the object to be rebuilt and stored as a display list at the next call to draw().
      • draw

        public void draw​(IPainter painter)
        Reset the object if required, compile the object if it is not compiled, and execute actual rendering.
        Specified by:
        draw in interface IGLRenderer
        Specified by:
        draw in class Drawable
      • compile

        protected void compile​(IPainter painter)
        If you call compile, the display list will be regenerated.
        Parameters:
        painter - TODO
      • execute

        protected void execute​(IPainter painter)
      • reset

        protected void reset​(IPainter painter)
      • nullifyChildrenTransforms

        protected void nullifyChildrenTransforms()
        When a drawable has a null transform, no transform is applied at draw(...).
      • drawComponents

        protected void drawComponents​(IPainter painter)
      • getBounds

        public BoundingBox3d getBounds()
        Description copied from class: Drawable
        Return the BoundingBox of this object.
        Overrides:
        getBounds in class Drawable
        Returns:
        a bounding box
      • add

        public void add​(List<? extends Drawable> drawables)
        Append a list of Drawables to this composite.
      • clear

        public void clear()
        Clear the list of Drawables from this composite.
      • add

        public void add​(Drawable drawable)
        Add a Drawable to this composite.
      • remove

        public void remove​(Drawable drawable)
        Remove a Drawable from this composite.
      • get

        public Drawable get​(int p)
        Get a Drawable stored by this composite.
      • size

        public int size()
        Return the number of Drawable stored by this composite.
      • setFaceDisplayed

        public void setFaceDisplayed​(boolean status)
        Description copied from class: Wireframeable
        Set the face display status to on or off.
        Overrides:
        setFaceDisplayed in class Wireframeable
      • toString

        public String toString()
        Print out information concerning all Drawable of this composite.
        Overrides:
        toString in class Drawable
      • isDetailedToString

        public boolean isDetailedToString()
      • setDetailedToString

        public void setDetailedToString​(boolean detailedToString)
        When to true, the toString() method will give the detail of each element of this composite object in a tree like layout.