Class RMScene3D

All Implemented Interfaces:
RMArchiver.Archiving, Cloneable
Direct Known Subclasses:
RMGraphBarView3D, RMGraphContent, RMGraphPieView3D

public class RMScene3D extends RMShape
This class manages a list of children and transforms them to 3D representations for display based on X and Y axis rotations.

ReportMill 3D conventions:

Coordinate system: Right handed (not left handed) Polygon front: Right hand rule (counter-clockwise defined polygons face forward) Transforms: Row major notation (as opposed to column major, points are assumed row vectors)

  • Field Details

  • Constructor Details

    • RMScene3D

      public RMScene3D()
      Creates a new Scene3d.
  • Method Details

    • getDepth

      public float getDepth()
      Returns the depth of the scene.
    • setDepth

      public void setDepth(float aDepth)
      Sets the depth of the scene.
    • getOrigin

      public RMPoint3D getOrigin()
      Returns the scene's origin.
    • getYaw

      public float getYaw()
      Returns the rotation about the Y axis in degrees.
    • setYaw

      public void setYaw(float aValue)
      Sets the rotation about the Y axis in degrees.
    • getPitch

      public float getPitch()
      Returns the rotation about the X axis in degrees.
    • setPitch

      public void setPitch(float aValue)
      Sets the rotation about the X axis in degrees.
    • getZRoll

      public float getZRoll()
      Returns the rotation about the Z axis in degrees.
    • setZRoll

      public void setZRoll(float aValue)
      Sets the rotation about the Z axis in degrees.
    • getFocalLength

      public float getFocalLength()
      Returns the focal length of the camera (derived from the field of view and with view size).
    • setFocalLength

      public void setFocalLength(float aValue)
      Sets the focal length of the camera. Two feet is normal (1728 points).
    • getOffsetZ

      public float getOffsetZ()
      Returns the Z offset of the scene (for zooming).
    • setOffsetZ

      public void setOffsetZ(float aValue)
      Sets the Z offset of the scene (for zooming).
    • isPseudo3D

      public boolean isPseudo3D()
      Returns whether scene is rendered in pseudo 3d.
    • setPseudo3D

      public void setPseudo3D(boolean aFlag)
      Sets whether scene is rendered in pseudo 3d.
    • getPseudoSkewX

      public float getPseudoSkewX()
      Returns the skew angle for X by Z.
    • setPseudoSkewX

      public void setPseudoSkewX(float anAngle)
      Sets the skew angle for X by Z.
    • getPseudoSkewY

      public float getPseudoSkewY()
      Returns the skew angle for Y by Z.
    • setPseudoSkewY

      public void setPseudoSkewY(float anAngle)
      Sets the skew angle for Y by Z.
    • getFieldOfView

      public float getFieldOfView()
      Returns the field of view of the camera (derived from focalLength).
    • setFieldOfView

      public void setFieldOfView(float aValue)
      Sets the field of view of the camera.
    • getCamera

      public RMVector3D getCamera()
      Returns the camera as a vector.
    • getLight

      public RMVector3D getLight()
      Returns the scene light as a vector.
    • getShape

      public RMShape getShape(int anIndex)
      Returns the specific shape at the given index from the shape list.
    • getShapeCount

      public int getShapeCount()
      Returns the number of shapes in the shape list.
    • addShape

      public void addShape(RMShape aShape)
      Adds a shape to the end of the shape list.
    • addShape

      public void addShape(RMShape aShape, int anIndex)
      Adds a shape to the shape list at the given index.
    • removeShape

      public void removeShape(int anIndex)
      Removes the shape at the given index from the shape list.
    • getTransform3D

      public RMTransform3D getTransform3D()
      Returns the transform 3d for the scene's camera.
    • rebuild

      public void rebuild()
      Rebuilds 3D representation of shapes from shapes list.
    • addChild3D

      protected RMScene3D.RMShape3D addChild3D(RMShape aShape, float z1, float z2)
      Adds a given shape in 3D.
    • addChild3D

      protected RMScene3D.RMShape3D addChild3D(RMShape aShape, float z1, float z2, boolean fixupEdges, boolean axisAlign)
      Adds a given shape in 3D. fixupEdges flag indicates wheter or not to stroke the polygons created during extrusion, to try to make them mesh better. The axisAlign flag can be set to true to make sure the shape's coordinate system is aligned with the screen.
    • setFillAndStroke

      public void setFillAndStroke(RMScene3D.RMShape3D aShape3D, RMShape aShape)
      Sets the fill and stroke of a 3D shape from a 2D shape.
    • setColor

      public void setColor(RMScene3D.RMShape3D aShape3D, RMColor aColor)
      Sets the color for a 3d shape from a base color.
    • resort

      public void resort()
      Resorts child shapes from back to front.
    • getBoundsSuperSelected

      public RMRect getBoundsSuperSelected()
      Returns the bounds of the shape in parect coords when super selected (same as getBoundsMarked by default).
      Overrides:
      getBoundsSuperSelected in class RMShape
    • getBoundsMarked

      public RMRect getBoundsMarked()
      Overrides shape implementation to reflect that transformed children may extend outside bounds.
      Overrides:
      getBoundsMarked in class RMShape
    • canBeUngrouped

      public boolean canBeUngrouped()
      Editor method - declares that this shape can't be ungrouped.
      Overrides:
      canBeUngrouped in class RMShape
    • superSelectable

      public boolean superSelectable()
      Editor method - indicates that scene 3d is super selectable.
      Overrides:
      superSelectable in class RMShape
    • acceptsMouse

      public boolean acceptsMouse()
      Viewer method.
      Overrides:
      acceptsMouse in class RMShape
    • mousePressed

      public void mousePressed(RMViewer aViewer, MouseEvent anEvent)
      Viewer method.
      Overrides:
      mousePressed in class RMShape
    • mouseDragged

      public void mouseDragged(RMViewer aViewer, MouseEvent anEvent)
      Viewer method.
      Overrides:
      mouseDragged in class RMShape
    • mouseReleased

      public void mouseReleased(RMViewer aViewer, MouseEvent anEvent)
      Viewer method.
      Overrides:
      mouseReleased in class RMShape
    • getChildrenWhoHitTest

      public List getChildrenWhoHitTest()
      Editor method - declares that no child of this shape can be selected.
      Overrides:
      getChildrenWhoHitTest in class RMShape
    • equals

      public boolean equals(Object anObj)
      Standard equals implementation.
      Overrides:
      equals in class RMShape
    • copy

      public void copy(Object anObj)
      Copies the attributes from the given object.
      Overrides:
      copy in class RMShape
    • toXML

      public RXElement toXML(RXArchiver anArchiver)
      XML archival.
      Overrides:
      toXML in class RMShape
    • fromXML

      public Object fromXML(RXArchiver anArchiver, RXElement anElement)
      XML unarchival.
      Overrides:
      fromXML in class RMShape