Archived issue #0030270
Modeling Algorithms - BRepBndLib should provide an option for skipping infinite entities
Description
Currently, BRepBndLib for a shape having infinite sub-shapes (usually issues coming from Data Exchange - invalid files, or extra entities not expected to be displayed) returns an infinite Bounding Box.
This has several side effects on consequential usage of this Bounding Box in algorithms:
- Estimating relative Linear Deflection parameter for BRepMesh is not possible.
- Efficient spatial splitting of the model is not possible.
It is proposed adding a new mode to BRepBndLib allowing to skip infinite elements within the shape or reporting them independently as two bounding boxes.
This has several side effects on consequential usage of this Bounding Box in algorithms:
- Estimating relative Linear Deflection parameter for BRepMesh is not possible.
- Efficient spatial splitting of the model is not possible.
It is proposed adding a new mode to BRepBndLib allowing to skip infinite elements within the shape or reporting them independently as two bounding boxes.
Steps to reproduce
pload MODELING restore Attachment 2 (BREP) s bounding s bounding s -obb
Output:
AABB: -1e+100 -1e+100 -1e+100 1e+100 1e+100 1e+100 OBB: Oriented bounding box Center: 0 0 0 X-axis: 1 0 0 Y-axis: 0 1 0 Z-axis: 0 0 1 Half X: 1e+100 Half Y: 1e+100 Half Z: 1e+100
Public activity
16 archived notes
Participants are labeled by their role within this record.
Branch [archived branch] has been created by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Oct 23 17:39:36 2018 +0300
0030270: Modeling Algorithms - BRepBndLib should provide an option for skipping infinite entities
Bnd_Box now keeps calculating of finite part of bounding box after specifying it to be Open in some direction.
The finite part can be retrieved using new method Bnd_Box::FinitePart().
Prs3d::GetDeflection() now uses Bnd_Box::FinitePart() when applying relative deflection.
Draw Harness command bounding has been extended with option -finite returing a finite part of AABB.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Oct 23 17:39:36 2018 +0300
0030270: Modeling Algorithms - BRepBndLib should provide an option for skipping infinite entities
Bnd_Box now keeps calculating of finite part of bounding box after specifying it to be Open in some direction.
The finite part can be retrieved using new method Bnd_Box::FinitePart().
Prs3d::GetDeflection() now uses Bnd_Box::FinitePart() when applying relative deflection.
Draw Harness command bounding has been extended with option -finite returing a finite part of AABB.
Branch [archived branch] has been updated forcibly by Author.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Author.
[revision removed]
[revision removed]
pload MODELING restore [locate_data_file bug27448_b1255.brep] s bounding s -print
Output:
Axes-aligned bounding box X-range: -1e+100 1e+100 Y-range: -51.436175481590702 -4.8637965353791994 Z-range: -1e+100 1e+100 Finite part X-range: -545.91626374705004 13.037164480842099 Y-range: -51.436175481590702 -4.8637965353791994 Z-range: -13.037164480842099 411.65056290693906
pload MODELING restore Attachment 2 (BREP) s bounding s -print
Output:
Axes-aligned bounding box X-range: -1e+100 1e+100 Y-range: -1e+100 1e+100 Z-range: -1e+100 1e+100 Finite part X-range: -0.049719769446288579 -0.038880230553711419 Y-range: 0.0044607606027138886 0.011500299495291081 Z-range: 0.020980230553711419 0.028019769446288582
Patch is ready for review.
http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30270-master-KGV/
http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30270-master-KGV/
Branch [archived branch] has been updated by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Wed Oct 24 11:44:27 2018 +0300
# remarks
[revision removed]
Detailed log of new commits:
Author: Author
Date: Wed Oct 24 11:44:27 2018 +0300
# remarks
Branch [archived branch] has been created by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Oct 23 17:39:36 2018 +0300
0030270: Modeling Algorithms - BRepBndLib should provide an option for skipping infinite entities
Bnd_Box now keeps calculating of finite part of bounding box after specifying it to be Open in some direction.
The finite part can be retrieved using new method Bnd_Box::FinitePart().
Prs3d::GetDeflection() now uses Bnd_Box::FinitePart() when applying relative deflection.
Draw Harness command bounding has been extended with option -finite returing a finite part of AABB.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Oct 23 17:39:36 2018 +0300
0030270: Modeling Algorithms - BRepBndLib should provide an option for skipping infinite entities
Bnd_Box now keeps calculating of finite part of bounding box after specifying it to be Open in some direction.
The finite part can be retrieved using new method Bnd_Box::FinitePart().
Prs3d::GetDeflection() now uses Bnd_Box::FinitePart() when applying relative deflection.
Draw Harness command bounding has been extended with option -finite returing a finite part of AABB.
Patch has been updated following remarks.
src/Bnd/Bnd_Box.cxx
- 81: use the same logic as in other Update method: first check IsVoid().
tests/bugs/modalg_7/bug30270
- 10: use smallview instead of axo to reduce snapshot size.
- 81: use the same logic as in other Update method: first check IsVoid().
tests/bugs/modalg_7/bug30270
- 10: use smallview instead of axo to reduce snapshot size.
Reviewed.
Combination -
OCCT branch : [archived branch] SHA - [revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.
Number of compiler warnings:
No new/fixed warnings
Regressions/Differences/Improvements:
No regressions/differences
Test cases:
bugs modalg_7 bug30270 - OK
CPU differences:
Debian80-64:
OCCT
Total CPU difference: 17580.3099999998 / 17520.90999999988 [+0.34%]
Products
Total CPU difference: 7445.660000000032 / 7462.09000000004 [-0.22%]
Windows-64-VC14:
OCCT
Total CPU difference: 17488.07090229844 / 17666.582846598394 [-1.01%]
Products
Total CPU difference: 8364.243216599998 / 8372.402068899986 [-0.10%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
OCCT branch : [archived branch] SHA - [revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.
Number of compiler warnings:
No new/fixed warnings
Regressions/Differences/Improvements:
No regressions/differences
Test cases:
bugs modalg_7 bug30270 - OK
CPU differences:
Debian80-64:
OCCT
Total CPU difference: 17580.3099999998 / 17520.90999999988 [+0.34%]
Products
Total CPU difference: 7445.660000000032 / 7462.09000000004 [-0.22%]
Windows-64-VC14:
OCCT
Total CPU difference: 17488.07090229844 / 17666.582846598394 [-1.01%]
Products
Total CPU difference: 8364.243216599998 / 8372.402068899986 [-0.10%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
Branch [archived branch] has been updated by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Wed Oct 24 18:04:06 2018 +0300
# BndLib::Add() - fixed Bnd_Box misuse
[revision removed]
Detailed log of new commits:
Author: Author
Date: Wed Oct 24 18:04:06 2018 +0300
# BndLib::Add() - fixed Bnd_Box misuse
Branch [archived branch] has been created by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Oct 23 17:39:36 2018 +0300
0030270: Modeling Algorithms - BRepBndLib should provide an option for skipping infinite entities
Bnd_Box now keeps calculating of finite part of bounding box after specifying it to be Open in some direction.
The finite part can be retrieved using new method Bnd_Box::FinitePart().
Prs3d::GetDeflection() now uses Bnd_Box::FinitePart() when applying relative deflection.
Draw Harness command bounding has been extended with option -finite returing a finite part of AABB.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Oct 23 17:39:36 2018 +0300
0030270: Modeling Algorithms - BRepBndLib should provide an option for skipping infinite entities
Bnd_Box now keeps calculating of finite part of bounding box after specifying it to be Open in some direction.
The finite part can be retrieved using new method Bnd_Box::FinitePart().
Prs3d::GetDeflection() now uses Bnd_Box::FinitePart() when applying relative deflection.
Draw Harness command bounding has been extended with option -finite returing a finite part of AABB.
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]