Class SbBox3f

    • Field Summary

      Fields 
      Modifier and Type Field Description
      float[] array  
    • Constructor Summary

      Constructors 
      Constructor Description
      SbBox3f()
      Constructor for a 3D float box.
      SbBox3f​(float[] components)  
      SbBox3f​(float xmin, float ymin, float zmin, float xmax, float ymax, float zmax)
      Constructor for a 3D float box.
      SbBox3f​(SbBox3f copyFrom)  
      SbBox3f​(SbVec3f _min, SbVec3f _max)
      Constructor for a 3D float box.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      float computeMaxDistance2​(SbVec3f p)
      Returns the squared maximum distance between a point and the 8 bounding box's vertices.
      boolean contains​(SbBox3f bb)
      Returns true if the specified box is fully contained inside this box.
      boolean equals​(java.lang.Object obj)  
      void extendBy​(SbBox3f bb)
      Extends this box (if necessary) to contain the specified box.
      void extendBy​(SbVec3f pt)
      Extends this box (if necessary) to contain the specified point.
      float[] getBounds()
      Gets the corners of the box.
      SbVec3f getCenter()
      Returns the center of the box.
      SbVec3f getClosestPoint​(SbVec3f point)
      Returns the closest point on the box to the given point.
      SbVec3f getMax()
      Returns the maximum point of the box.
      SbVec3f getMin()
      Returns the minimum point of the box.
      SbVec3f[] getMinMax()
      Gets the corners of the box.
      float[] getOrigin()
      Gets box origin which is the same as the minimum corner of the box.
      SbVec3f getSize()
      Gets box size.
      float[] getSpan​(SbVec3f direction)
      Finds the span of a box along a specified direction.
      float[] getValue()  
      float getVolume()
      Returns the volume of the box.
      boolean hasVolume()
      Returns true if all three dimensions of the box have positive size, and false otherwise.
      boolean intersect​(SbBox3f bb)
      Returns true if the specified box intersects this box.
      boolean intersect​(SbVec3f pt)
      Returns true if the specified point intersects this box.
      SbBox3f intersection​(SbBox3f box)
      Returns the intersection of the specified box with this box.
      boolean isEmpty()
      Returns true if the box is empty, and false otherwise.
      void makeEmpty()
      Makes an empty box.
      int outside​(SbMatrix MVP)
      Returns true if bounding box is completely outside the view-volume defined by the model+view+projection matrix given.
      void setBounds​(float xmin, float ymin, float zmin, float xmax, float ymax, float zmax)
      Sets the corners of the box.
      void setBounds​(SbVec3f _min, SbVec3f _max)
      Sets the corners of the box.
      SbBox3f setValue​(float[] components)  
      SbBox3f setValue​(float[] components, int startIndex)  
      void setValue​(SbBox3f copyFrom)  
      static SbBox3f[] toArray​(long nativeArray, long length)  
      void transform​(SbMatrix m)
      Transforms box by matrix, enlarging box to contain result.
      boolean triangleBoxOverlap​(SbVec3f u0, SbVec3f u1, SbVec3f u2)
      Return true if the given triangle intersects the bounding box.
      • Methods inherited from class java.lang.Object

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

      • array

        public final float[] array
    • Constructor Detail

      • SbBox3f

        public SbBox3f​(SbBox3f copyFrom)
      • SbBox3f

        public SbBox3f​(float[] components)
      • SbBox3f

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

        public SbBox3f()
        Constructor for a 3D float box. The box is initially empty.
      • SbBox3f

        public SbBox3f​(SbVec3f _min,
                       SbVec3f _max)
        Constructor for a 3D float box. m_min and m_max are the corners of the diagonal that define the box.
    • Method Detail

      • setValue

        public SbBox3f setValue​(float[] components,
                                int startIndex)
      • setValue

        public SbBox3f setValue​(float[] components)
      • getValue

        public float[] getValue()
      • setValue

        public void setValue​(SbBox3f copyFrom)
      • computeMaxDistance2

        public float computeMaxDistance2​(SbVec3f p)
        Returns the squared maximum distance between a point and the 8 bounding box's vertices.
      • transform

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

        public void extendBy​(SbBox3f bb)
        Extends this box (if necessary) to contain the specified box.
      • getVolume

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

        public boolean triangleBoxOverlap​(SbVec3f u0,
                                          SbVec3f u1,
                                          SbVec3f u2)
        Return true if the given triangle intersects the bounding box. Note that intersection considers the whole box, not just the border. Therefore a triangle completely inside the box will return true.
      • toArray

        public static SbBox3f[] toArray​(long nativeArray,
                                        long length)
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • 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.
      • 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).
      • getMax

        public SbVec3f 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​(float xmin,
                              float ymin,
                              float zmin,
                              float xmax,
                              float ymax,
                              float zmax)
        Sets the corners of the box.
      • getMin

        public SbVec3f 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.
      • setBounds

        public void setBounds​(SbVec3f _min,
                              SbVec3f _max)
        Sets the corners of the box.
      • contains

        public boolean contains​(SbBox3f bb)
        Returns true if the specified box is fully contained inside this box.
      • intersect

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

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

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

        public SbBox3f intersection​(SbBox3f box)
        Returns the intersection of the specified box with this box. Returned box is empty if there is no intersection.
      • getCenter

        public SbVec3f getCenter()
        Returns the center of the box.
      • 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.)
      • hasVolume

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

        public SbVec3f getSize()
        Gets box size.
      • getMinMax

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

        public float[] getBounds()
        Gets the corners 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.)
      • getOrigin

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