|
| | DtSimBoundingGeometry (DtSimBoundingGeometryType boundingType=BoundingTypeVolume) |
| | Constructor; By default, our geometry is a BoundingTypeVolume, for easier back-compatibility. More...
|
| |
| virtual | ~DtSimBoundingGeometry () |
| | Destructor. More...
|
| |
| | DtSimBoundingGeometry (const DtSimBoundingGeometry &orig) |
| | Copy Constructor. More...
|
| |
| const DtSimBoundingGeometry & | operator= (const DtSimBoundingGeometry &orig) |
| | Assignment Operator. More...
|
| |
| virtual DtSimBoundingGeometry * | clone () const |
| | Clone. More...
|
| |
| virtual const Dt3dBoundingVolume & | boundingVolume () const |
| | Get the bounding object. More...
|
| |
| virtual Dt3dBoundingVolume & | boundingVolume () |
| | Get the bounding object. More...
|
| |
| virtual DtSimBoundingGeometryType | boundingGeometryType () const |
| | Get the bounding geometry type. More...
|
| |
| virtual void | setBoundingGeometryType (DtSimBoundingGeometryType boundingGeometryType) |
| | Set the bounding geometry type. More...
|
| |
| virtual bool | inside (const DtVector &point, const DtVector &position, const DtDcm &orientation) const |
| |
| virtual void | setBoundingVolume (const DtDcm &localBvol, DtVector offset=DtVector::zero()) |
| |
|
| virtual void | setBoundingVolume (const Dt3dBoundingVolume &bv) |
| |
| virtual void | setBoundingVolume (double halfLength, double halfWidth, double halfHeight, const DtVector &latticeOffset) |
| |
| virtual void | setHalfLengthWidthHeight (double halfLength, double halfWidth, double halfHeight) |
| |
| virtual double | halfLength () const |
| |
| virtual double | halfWidth () const |
| |
| virtual double | halfHeight () const |
| |
Class Description: DtSimBoundingGeometry describes on objects bounding volume or bounding area (or nothing at all, for true point objects!).
If DtSimBoundingGeometryType is BoundingTypeVolume, then boundingVolume() returns a Dt3dBoundingVolume, which describes the objects bounding volume.
If DtSimBoundingGeometry is BoundingTypeArea, then only the first 2 rows and 2 columns of the DtDcm are used to define the area. The third row/ column is set to [0 0 1] to keep the Dcm a valid, orthonormal matrix. This can still be used to do bounding volume checks by setting the Z dimension as desired (for example, one could test to see if an airplane is flying over an area by supply a large Z vector (set element [2][2] to 100,000, e.g.) and then do a point in bounding volume test.
If DtSimBoundingGeometry is BoundingTypeUndefined, then no bounding information is contained (for example, a waypoint), but again, a user could supply values as desired to the Dcm to check intersections as desired.
The DtDcm supplied to either the constructor or setBoundingVolume() The radial-length (along body x), radial-width (along body y) and radial height (along body Z) centered about the object. The offset vector allows the bounding volume to be offset from the object position in X (down the body nose) Y (to the right) and Z (down).
For example, the following approximates the bounding volume of an M1 tank, whose position is indicated at the center-base of the vehicle. Note the Z offset to compensate for the difference in origin.
DtDcm Volume:
| 4.00 0.00 0.00 |
| 0.00 1.80 0.00 |
|
| 0.00 0.00 1.44 |
DtVector Offset: [0.00 0.00 -1.44]
This indicates that the entity is 8 meters long, 3.6 meters wide, and 2.88 meters high.