Simbody 3.7
Loading...
Searching...
No Matches
SimTK::Geo::OrientedBox_< P > Class Template Reference

TODO: A 3d box oriented and positioned with respect to an unspecified frame F. More...

#include <Geo_Box.h>

Public Member Functions

 OrientedBox_ ()
 Construct an uninitialized OrientedBox object; the dimensions and pose will be garbage.
 
 OrientedBox_ (const TransformP &X_FB, const Geo::Box_< P > &box)
 Construct an OrientedBox with the given box shape with positioned and oriented according to the given Transform X_FB which gives the box local frame B (at the box center) in an unspecifed frame F.
 
 OrientedBox_ (const TransformP &X_FB, const Vec3P &halfLengths)
 Construct an OrientedBox with the given location and half-dimensions.
 
OrientedBox_setTransform (const TransformP &newX_FB)
 Change the pose of this box.
 
OrientedBox_setHalfLengths (const Vec3P &halfLengths)
 Change the dimensions of this box.
 
const Vec3PgetCenter () const
 
Vec3PupdCenter ()
 
const RotationPgetOrientation () const
 
RotationPupdOrientation ()
 
const TransformPgetTransform () const
 
TransformPupdTransform ()
 
const Vec3PgetHalfLengths () const
 
const Box_< P > & getBox () const
 
Box_< P > & updBox ()
 
bool containsPoint (const Vec3P &pt_F) const
 Given a point measured and expressed in the base frame F, determine whether it is strictly contained in the box (just touching doesn't count).
 
OrientedBox_stretchBoundary ()
 Stretch this box in place by a small amount to ensure that there will be no roundoff problems if this is used as a bounding box.
 

Detailed Description

template<class P>
class SimTK::Geo::OrientedBox_< P >

TODO: A 3d box oriented and positioned with respect to an unspecified frame F.

Constructor & Destructor Documentation

◆ OrientedBox_() [1/3]

template<class P >
SimTK::Geo::OrientedBox_< P >::OrientedBox_ ( )
inline

Construct an uninitialized OrientedBox object; the dimensions and pose will be garbage.

◆ OrientedBox_() [2/3]

template<class P >
SimTK::Geo::OrientedBox_< P >::OrientedBox_ ( const TransformP X_FB,
const Geo::Box_< P > &  box 
)
inline

Construct an OrientedBox with the given box shape with positioned and oriented according to the given Transform X_FB which gives the box local frame B (at the box center) in an unspecifed frame F.

◆ OrientedBox_() [3/3]

template<class P >
SimTK::Geo::OrientedBox_< P >::OrientedBox_ ( const TransformP X_FB,
const Vec3P halfLengths 
)
inline

Construct an OrientedBox with the given location and half-dimensions.

Member Function Documentation

◆ setTransform()

template<class P >
OrientedBox_ & SimTK::Geo::OrientedBox_< P >::setTransform ( const TransformP newX_FB)
inline

Change the pose of this box.

◆ setHalfLengths()

template<class P >
OrientedBox_ & SimTK::Geo::OrientedBox_< P >::setHalfLengths ( const Vec3P halfLengths)
inline

Change the dimensions of this box.

◆ getCenter()

template<class P >
const Vec3P & SimTK::Geo::OrientedBox_< P >::getCenter ( ) const
inline

◆ updCenter()

template<class P >
Vec3P & SimTK::Geo::OrientedBox_< P >::updCenter ( )
inline

◆ getOrientation()

template<class P >
const RotationP & SimTK::Geo::OrientedBox_< P >::getOrientation ( ) const
inline

◆ updOrientation()

template<class P >
RotationP & SimTK::Geo::OrientedBox_< P >::updOrientation ( )
inline

◆ getTransform()

template<class P >
const TransformP & SimTK::Geo::OrientedBox_< P >::getTransform ( ) const
inline

◆ updTransform()

template<class P >
TransformP & SimTK::Geo::OrientedBox_< P >::updTransform ( )
inline

◆ getHalfLengths()

template<class P >
const Vec3P & SimTK::Geo::OrientedBox_< P >::getHalfLengths ( ) const
inline

◆ getBox()

template<class P >
const Box_< P > & SimTK::Geo::OrientedBox_< P >::getBox ( ) const
inline

◆ updBox()

template<class P >
Box_< P > & SimTK::Geo::OrientedBox_< P >::updBox ( )
inline

◆ containsPoint()

template<class P >
bool SimTK::Geo::OrientedBox_< P >::containsPoint ( const Vec3P pt_F) const
inline

Given a point measured and expressed in the base frame F, determine whether it is strictly contained in the box (just touching doesn't count).

Cost is about 23 flops.

◆ stretchBoundary()

template<class P >
OrientedBox_ & SimTK::Geo::OrientedBox_< P >::stretchBoundary ( )
inline

Stretch this box in place by a small amount to ensure that there will be no roundoff problems if this is used as a bounding box.

The amount to stretch depends on the default tolerance for this precision, the dimensions, and the position of the box in space. A very large box, or a box that is very far from the origin, must be stretched more than a small one at the origin. Cost is 6 flops.

See also
Geo class for tolerance information.

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