Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
SoLocalBBoxMatrixElement Class Reference

Stores the transformation matrix from object space to some local coordinate space during application of an SoGetBoundingBoxAction. More...

#include <Inventor/elements/SoLocalBBoxMatrixElement.h>

+ Inheritance diagram for SoLocalBBoxMatrixElement:

Public Member Functions

virtual void push (SoState *state)
 Overrides push() method to copy values from next instance in the stack.
 
virtual void print (FILE *fp) const
 Prints element (for debugging).
 
- Public Member Functions inherited from SoElement
virtual void pop (SoState *state, const SoElement *prevTopElement)
 Pops element.
 
virtual SoType getTypeId () const
 Returns type identifier for element instance.
 
- Public Member Functions inherited from SoTypedObject
SbBool isOfType (const SoType &type) const
 Returns TRUE if this object is of the type specified in type or is derived from that type.
 
template<typename TypedObjectClass >
SbBool isOfType () const
 Returns TRUE if this object is of the type of class TypedObjectClass or is derived from that class.
 

Static Public Member Functions

static SoType getClassTypeId ()
 Returns the type identifier for this class.
 
static int getClassStackIndex ()
 Returns the stack id for this element.
 
static void makeIdentity (SoState *state)
 Sets the local matrix to the identity matrix.
 
static void set (SoState *state, const SbMatrix &matrix)
 Sets the local matrix to the given matrix.
 
static void mult (SoState *state, const SbMatrix &matrix)
 Multiplies the given matrix into the local matrix.
 
static void translateBy (SoState *state, const SbVec3f &translation)
 Multiplies a matrix that performs the specified transformation into the local matrix.
 
static void rotateBy (SoState *state, const SbRotation &rotation)
 Multiplies a matrix that performs the specified transformation into the local matrix.
 
static void scaleBy (SoState *state, const SbVec3f &scaleFactor)
 Multiplies a matrix that performs the specified transformation into the local matrix.
 
static SbMatrix pushMatrix (SoState *state)
 This method is used by the TransformSeparator node.
 
static void popMatrix (SoState *state, const SbMatrix &m)
 This method is used by the TransformSeparator node.
 
static void resetAll (SoState *state)
 Resets all current instances in the state to identity.
 
static const SbMatrixget (SoState *state)
 Returns current matrix from the state.
 
- Static Public Member Functions inherited from SoElement
static SoType getClassTypeId ()
 Returns type identifier for SoElement class.
 
- Static Public Member Functions inherited from SoTypedObject
static SoType getClassTypeId ()
 Returns the type identifier for this class.
 

Detailed Description

Stores the transformation matrix from object space to some local coordinate space during application of an SoGetBoundingBoxAction.

This element stores the transformation matrix from object space to some local coordinate space during application of an SoGetBoundingBoxAction. This element is needed to allow separators (and other caching nodes) to store cached bounding boxes in their own local space. Shapes that extend the current bounding box computed by the action use this matrix to transform the bounding box into local space. Separators cache this box, then transform it into the next local space up the hierarchy.

Because this element is set to identity by separators before traversing their children, it can never have an affect on any caching separator that it is not under. Therefore, it should never be tested for cache invalidation, so its matches() method prints an error message and returns FALSE. It also means that it does not have to save node id's so there are no nodes passed in to any of the methods.

SEE ALSO

Definition at line 83 of file SoLocalBBoxMatrixElement.h.

Member Function Documentation

◆ get()

static const SbMatrix & SoLocalBBoxMatrixElement::get ( SoState state)
static

Returns current matrix from the state.

◆ getClassStackIndex()

static int SoLocalBBoxMatrixElement::getClassStackIndex ( )
static

Returns the stack id for this element.


◆ getClassTypeId()

static SoType SoLocalBBoxMatrixElement::getClassTypeId ( )
static

Returns the type identifier for this class.


◆ makeIdentity()

static void SoLocalBBoxMatrixElement::makeIdentity ( SoState state)
static

Sets the local matrix to the identity matrix.

◆ mult()

static void SoLocalBBoxMatrixElement::mult ( SoState state,
const SbMatrix matrix 
)
static

Multiplies the given matrix into the local matrix.

◆ popMatrix()

static void SoLocalBBoxMatrixElement::popMatrix ( SoState state,
const SbMatrix m 
)
static

This method is used by the TransformSeparator node.

◆ print()

virtual void SoLocalBBoxMatrixElement::print ( FILE *  fp) const
virtual

Prints element (for debugging).

Reimplemented from SoElement.

◆ push()

virtual void SoLocalBBoxMatrixElement::push ( SoState state)
virtual

Overrides push() method to copy values from next instance in the stack.

Reimplemented from SoElement.

◆ pushMatrix()

static SbMatrix SoLocalBBoxMatrixElement::pushMatrix ( SoState state)
static

This method is used by the TransformSeparator node.

◆ resetAll()

static void SoLocalBBoxMatrixElement::resetAll ( SoState state)
static

Resets all current instances in the state to identity.

◆ rotateBy()

static void SoLocalBBoxMatrixElement::rotateBy ( SoState state,
const SbRotation rotation 
)
static

Multiplies a matrix that performs the specified transformation into the local matrix.

◆ scaleBy()

static void SoLocalBBoxMatrixElement::scaleBy ( SoState state,
const SbVec3f scaleFactor 
)
static

Multiplies a matrix that performs the specified transformation into the local matrix.

◆ set()

static void SoLocalBBoxMatrixElement::set ( SoState state,
const SbMatrix matrix 
)
static

Sets the local matrix to the given matrix.

◆ translateBy()

static void SoLocalBBoxMatrixElement::translateBy ( SoState state,
const SbVec3f translation 
)
static

Multiplies a matrix that performs the specified transformation into the local matrix.


The documentation for this class was generated from the following file: