DiscussionsIssue archiveOCCT:Foundation Classes

Archived issue #0011664

New optimized bounding box types

Open CASCADEOCCT:Foundation Classesclosed0 public notes

Search issues

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.

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

Public activity

No public notes

Participants are labeled by their role within this record.