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
invalid @link
setData()
method. A Tube is a Wireframeable and support only one color that is defined trough its
invalid @link
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 Details

    • 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 Details

    • 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
    • applyGeometryTransform

      public void applyGeometryTransform(Transform transform)
      Specified by:
      applyGeometryTransform in class Drawable
    • updateBounds

      public void updateBounds()
      Specified by:
      updateBounds 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
    • setColor

      public void setColor(Color color)
      Description copied from interface: ISingleColorable
      Set the color.
      Specified by:
      setColor in interface ISingleColorable
      Parameters:
      color - the color
    • getColor

      public Color getColor()
      Description copied from interface: ISingleColorable
      Get the color.
      Specified by:
      getColor in interface ISingleColorable
      Returns:
      color the color.