Class Tube

  • All Implemented Interfaces:
    ISingleColorable, IGLRenderer, ISortableDraw

    public class Tube
    extends Wireframeable
    implements ISingleColorable
    A Tube may be used to render cylinders or pyramids, according to its input parameters.
    The position and shape of a Tube is defined through its setData() method. A Tube is a Wireframeable and support only one color that is defined trough its setColor() method. Being backed by a GLU cylinder, its normals are automatically processed which make the object able to reflect light.
    Author:
    Martin Pernollet
    • Constructor Detail

      • Tube

        public Tube()
        Initialize a Cylinder at the origin.
      • Tube

        public Tube​(Coord3d position,
                    float radius,
                    float height,
                    int hslicing,
                    int vslicing,
                    Color color)
        Initialize a cylinder with the given parameters.
    • Method Detail

      • draw

        public void draw​(IPainter painter)
        Description copied from class: Drawable
        Call OpenGL2 routines for rendering the object.
        Specified by:
        draw in interface IGLRenderer
        Specified by:
        draw in class Drawable
      • setData

        public void setData​(Coord3d position,
                            float radiusBottom,
                            float radiusTop,
                            float height,
                            int slices,
                            int stacks)
        Set the Tube data.
        Parameters:
        position - cylinder position (may be handled diffrently in future version)
        radiusBottom - radius of the bottom circle
        radiusTop - radius of the top circle
        height - height of the cylinder
        slices - number of vertical slices (i.e. wireframes)
        stacks - number of horizontal stacks (i.e. wireframes)
      • setPosition

        public void setPosition​(Coord3d position)
        Set the position of the Cylinder and the dimensions of its boundingbox. Note that this position will be use to translate the object before drawing it (meaning a glTranslate(position) is performed right after the Translate.execute).
        Parameters:
        position -
      • setVolume

        public void setVolume​(float radiusBottom,
                              float radiusTop,
                              float height)
        Set the top and bottom radius of the cylinder, its height, and the dimensions of its boundingbox.
        Parameters:
        radiusBottom -
        radiusTop -
        height -
      • setSlicing

        public void setSlicing​(int verticalWires,
                               int horizontalWires)
        Set the cylinder slicing parameters, i.e. the subtlety of the circle estimation.
        Parameters:
        verticalWires - number of vertical slices
        horizontalWires - number of horizontal slices