Class SbBox3s

java.lang.Object
com.openinventor.inventor.SbBasic
com.openinventor.inventor.SbBox3s

public class SbBox3s extends SbBasic
3D box class. 3D box which has planes parallel to the major axes and is specified by two points on a diagonal. This class is part of the standard Open Inventor datatype classes and is used as input and output to geometry operations (see SoGetBoundingBoxAction).

See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final short[]
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor for a 3D short box.
    SbBox3s(short[] components)
     
    SbBox3s(short xmin, short ymin, short zmin, short xmax, short ymax, short zmax)
    Constructor for a 3D short box.
    Constructor given an SbBox3i32 (adapter).
    SbBox3s(SbBox3s copyFrom)
     
    SbBox3s(SbVec3s _min, SbVec3s _max)
    Constructor for a 3D short box.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Returns true if the specified box is fully contained inside this box.
    boolean
     
    void
    Extends this box (if necessary) to contain the specified box.
    void
    Extends this box (if necessary) to contain the specified point.
    short[]
    Gets the corners of the box.
    Returns the center of the box.
    Returns the closest point on the box to the given point.
    Returns the maximum point of the box.
    Returns the minimum point of the box.
    Gets the corners of the box.
    short[]
    Gets box origin which is the same as the minimum corner of the box.
    short[]
    Gets box size.
    float[]
    getSpan(SbVec3f direction)
    Finds the span of a box along a specified direction.
    short[]
     
    float
    Returns the volume of the box.
    boolean
    Returns true if all three dimensions of the box have positive size, and false otherwise.
    boolean
    Returns true if the specified box intersects this box.
    boolean
    Returns true if the specified point intersects this box.
    Returns the intersection of the specified box with this box.
    boolean
    Returns true if the box is empty, and false otherwise.
    void
    Makes an empty box.
    int
    Returns true if bounding box is completely outside the view-volume defined by the model+view+projection matrix given.
    void
    setBounds(short xmin, short ymin, short zmin, short xmax, short ymax, short zmax)
    Sets the corners of the box.
    void
    setBounds(SbVec3s _min, SbVec3s _max)
    Sets the corners of the box.
    setValue(short[] components)
     
    setValue(short[] components, int startIndex)
     
    void
    setValue(SbBox3s copyFrom)
     
    static SbBox3s[]
    toArray(long nativeArray, long length)
     
    void
    Transforms box by matrix, enlarging box to contain result.

    Methods inherited from class java.lang.Object

    getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • array

      public final short[] array
  • Constructor Details

    • SbBox3s

      public SbBox3s(SbBox3s copyFrom)
    • SbBox3s

      public SbBox3s(short[] components)
    • SbBox3s

      public SbBox3s()
      Constructor for a 3D short box. The box is initially empty.
    • SbBox3s

      public SbBox3s(short xmin, short ymin, short zmin, short xmax, short ymax, short zmax)
      Constructor for a 3D short box. xmin , ymin , zmin , xmax , ymax and zmax are the bounds of the box.
    • SbBox3s

      public SbBox3s(SbBox3i32 box)
      Constructor given an SbBox3i32 (adapter). Note possible loss of data.
    • SbBox3s

      public SbBox3s(SbVec3s _min, SbVec3s _max)
      Constructor for a 3D short box. m_min and m_max are the corners of the diagonal that define the box.
  • Method Details

    • getValue

      public short[] getValue()
    • setValue

      public SbBox3s setValue(short[] components, int startIndex)
    • setValue

      public void setValue(SbBox3s copyFrom)
    • setValue

      public SbBox3s setValue(short[] components)
    • getSpan

      public float[] getSpan(SbVec3f direction)
      Finds the span of a box along a specified direction. The span is the total distance the box occupies along a given direction. The total distance is returned in the form of a minimum and maximum distance from the origin of each of the corners of the box along the given direction. The difference between these two values is the span.
    • hasVolume

      public boolean hasVolume()
      Returns true if all three dimensions of the box have positive size, and false otherwise.
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toArray

      public static SbBox3s[] toArray(long nativeArray, long length)
    • transform

      public void transform(SbMatrix m)
      Transforms box by matrix, enlarging box to contain result.
    • getVolume

      public float getVolume()
      Returns the volume of the box.
    • outside

      public int outside(SbMatrix MVP)
      Returns true if bounding box is completely outside the view-volume defined by the model+view+projection matrix given. "cullBits" keeps track of which view-volume clipping planes the box is completely inside of; if a 'parent' bounding box of this bounding box was found to be completely inside the left/right clipping planes, the low bit of cullBits will be set to zero, and this routine will not test this box against those planes. When cullBits is zero, it is a waste of time to call this function! Before calling this the first time, set cullBits to 7 (SoGLRenderAction and SoSeparator will handle this automatically for render culling).
    • setBounds

      public void setBounds(short xmin, short ymin, short zmin, short xmax, short ymax, short zmax)
      Sets the corners of the box.
    • extendBy

      public void extendBy(SbVec3f pt)
      Extends this box (if necessary) to contain the specified point.
    • getCenter

      public SbVec3f getCenter()
      Returns the center of the box.
    • getMax

      public SbVec3s getMax()
      Returns the maximum point of the box. The maximum point is the corner of the box with the highest X, Y, and Z values.
    • setBounds

      public void setBounds(SbVec3s _min, SbVec3s _max)
      Sets the corners of the box.
    • intersect

      public boolean intersect(SbBox3s bb)
      Returns true if the specified box intersects this box.
    • intersection

      public SbBox3s intersection(SbBox3s box)
      Returns the intersection of the specified box with this box. Returned box is empty if there is no intersection.
    • contains

      public boolean contains(SbBox3s bb)
      Returns true if the specified box is fully contained inside this box.
    • extendBy

      public void extendBy(SbBox3s bb)
      Extends this box (if necessary) to contain the specified box.
    • intersect

      public boolean intersect(SbVec3f pt)
      Returns true if the specified point intersects this box.
    • getSize

      public short[] getSize()
      Gets box size.
    • makeEmpty

      public void makeEmpty()
      Makes an empty box.
    • isEmpty

      public boolean isEmpty()
      Returns true if the box is empty, and false otherwise. Note: Setting the box to all zeros does not make it "empty". Use the makeEmpty() method. (This method only returns true if the maximum X value is less than the minimum X value.)
    • getMin

      public SbVec3s getMin()
      Returns the minimum point of the box. The minimum point is the corner of the box with the lowest X, Y, and Z values.
    • getBounds

      public short[] getBounds()
      Gets the corners of the box.
    • getMinMax

      public SbVec3s[] getMinMax()
      Gets the corners of the box.
    • getOrigin

      public short[] getOrigin()
      Gets box origin which is the same as the minimum corner of the box.
    • getClosestPoint

      public SbVec3f getClosestPoint(SbVec3f point)
      Returns the closest point on the box to the given point. (Returns the point on the center of the Z face if passed the center.)