Archived issue #0011664
New optimized bounding box types
Description
In package Bnd there should be available optimized bounding boxes with the features:
- New bounding boxes should be finite (limited in all 6 directions). This
would allow to use the symmetry of such box for faster calculations. For
instance, for box-plane intersection it will be enough to check the intersection
with only 1 diagonal, not 4 diagonals as in Bnd_Box class.
- Boxes based on single precision numbers should be available, to save the
memory in algorithms that allocate big number of boxes.
- New bounding boxes should be finite (limited in all 6 directions). This
would allow to use the symmetry of such box for faster calculations. For
instance, for box-plane intersection it will be enough to check the intersection
with only 1 diagonal, not 4 diagonals as in Bnd_Box class.
- Boxes based on single precision numbers should be available, to save the
memory in algorithms that allocate big number of boxes.
Additional information
Documentation remark, added by Author 2006-04-21 11:48:45:
New features:
Four new classes added to the package Bnd, with the aim to use them in
performance-critical algorithms
- Bnd_B2d: 2-dimensional box using double-precision floating point
- Bnd_B3d: 3-dimensional box using double-precision floating point
- Bnd_B2f: 2-dimensional box using single-precision floating point
- Bnd_B3f: 3-dimensional box using single-precision floating point
These boxes have the following differences from Bnd_Box and Bnd_Box2d:
1. New boxes are always limited, this improves the performance of some
algorithms
2. All these new types take smaller memory, particularly when single-precision
boxes are used.
3. In line-3dbox intersection (Bnd_B3x::IsOut(theLine)) there is now the 2nd
parameter telling if the line is treated as a ray; this improvement is aimed
primarily to aid in 3D visual selection.
The new box types are compatible with NCollection_UBTree, they can be used to
instantiate AABB-trees just like Bnd_Box and Bnd_Box2d.
Modified entities:
Bnd package
New features:
Four new classes added to the package Bnd, with the aim to use them in
performance-critical algorithms
- Bnd_B2d: 2-dimensional box using double-precision floating point
- Bnd_B3d: 3-dimensional box using double-precision floating point
- Bnd_B2f: 2-dimensional box using single-precision floating point
- Bnd_B3f: 3-dimensional box using single-precision floating point
These boxes have the following differences from Bnd_Box and Bnd_Box2d:
1. New boxes are always limited, this improves the performance of some
algorithms
2. All these new types take smaller memory, particularly when single-precision
boxes are used.
3. In line-3dbox intersection (Bnd_B3x::IsOut(theLine)) there is now the 2nd
parameter telling if the line is treated as a ray; this improvement is aimed
primarily to aid in 3D visual selection.
The new box types are compatible with NCollection_UBTree, they can be used to
instantiate AABB-trees just like Bnd_Box and Bnd_Box2d.
Modified entities:
Bnd package
Public activity
No public notes
Participants are labeled by their role within this record.