Simbody
3.4 (development)
|
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 Vec3P & | getCenter () const |
Vec3P & | updCenter () |
const RotationP & | getOrientation () const |
RotationP & | updOrientation () |
const TransformP & | getTransform () const |
TransformP & | updTransform () |
const Vec3P & | getHalfLengths () 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. |
TODO: A 3d box oriented and positioned with respect to an unspecified frame F.
SimTK::Geo::OrientedBox_< P >::OrientedBox_ | ( | ) | [inline] |
Construct an uninitialized OrientedBox object; the dimensions and pose will be garbage.
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.
SimTK::Geo::OrientedBox_< P >::OrientedBox_ | ( | const TransformP & | X_FB, |
const Vec3P & | halfLengths | ||
) | [inline] |
Construct an OrientedBox with the given location and half-dimensions.
OrientedBox_& SimTK::Geo::OrientedBox_< P >::setTransform | ( | const TransformP & | newX_FB | ) | [inline] |
Change the pose of this box.
OrientedBox_& SimTK::Geo::OrientedBox_< P >::setHalfLengths | ( | const Vec3P & | halfLengths | ) | [inline] |
Change the dimensions of this box.
const Vec3P& SimTK::Geo::OrientedBox_< P >::getCenter | ( | ) | const [inline] |
Vec3P& SimTK::Geo::OrientedBox_< P >::updCenter | ( | ) | [inline] |
const RotationP& SimTK::Geo::OrientedBox_< P >::getOrientation | ( | ) | const [inline] |
RotationP& SimTK::Geo::OrientedBox_< P >::updOrientation | ( | ) | [inline] |
const TransformP& SimTK::Geo::OrientedBox_< P >::getTransform | ( | ) | const [inline] |
TransformP& SimTK::Geo::OrientedBox_< P >::updTransform | ( | ) | [inline] |
const Vec3P& SimTK::Geo::OrientedBox_< P >::getHalfLengths | ( | ) | const [inline] |
const Box_<P>& SimTK::Geo::OrientedBox_< P >::getBox | ( | ) | const [inline] |
Box_<P>& SimTK::Geo::OrientedBox_< P >::updBox | ( | ) | [inline] |
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.
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.