View Issue Details

IDProjectCategoryView StatusLast Update
0030270Open CASCADEOCCT:Modeling Algorithmspublic2024-01-19 17:15
Reporterkgv Assigned Toapn  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
Target Version7.4.0Fixed in Version7.4.0 
Summary0030270: Modeling Algorithms - BRepBndLib should provide an option for skipping infinite entities
DescriptionCurrently, 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.
Steps To Reproduce
pload MODELING
restore screw_inf.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

TagsNo tags attached.
Test case numberbugs modalg_7 bug30270

Attached Files

  • screw_inf.brep (79,905 bytes)
  • scew_finite_aabb.png (32,153 bytes)

Activities

kgv

2018-10-19 11:51

developer  

screw_inf.brep (79,905 bytes)

git

2018-10-23 17:41

administrator   ~0080236

Branch CR30270 has been created by kgv.

SHA-1: e8ffc08c4080dc38ef27c736c3787b4212384053


Detailed log of new commits:

Author: kgv
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.

git

2018-10-23 17:45

administrator   ~0080237

Branch CR30270 has been updated forcibly by kgv.

SHA-1: a6bfdfbfe245679b70598fd85333ad7d5b331930

git

2018-10-23 20:21

administrator   ~0080244

Branch CR30270 has been updated forcibly by kgv.

SHA-1: 62bf1059d48f8cc8d56ce8669c6646e4f57d89cf

kgv

2018-10-23 20:22

developer  

scew_finite_aabb.png (32,153 bytes)

kgv

2018-10-24 08:39

developer   ~0080246

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 screw_inf.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

kgv

2018-10-24 08:40

developer   ~0080247

Patch is ready for review.

http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30270-master-KGV/

git

2018-10-24 11:45

administrator   ~0080258

Branch CR30270 has been updated by kgv.

SHA-1: 2d9e8691b16247b688f2b753223b4d61fb96d0ab


Detailed log of new commits:

Author: kgv
Date: Wed Oct 24 11:44:27 2018 +0300

    # remarks

git

2018-10-24 11:46

administrator   ~0080259

Branch CR30270_1 has been created by kgv.

SHA-1: f617d992ccb69a30e430f5972b61aa876b06fcaa


Detailed log of new commits:

Author: kgv
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.

kgv

2018-10-24 11:46

developer   ~0080260

Patch has been updated following remarks.

msv

2018-10-24 11:49

developer   ~0080261

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.

msv

2018-10-24 11:52

developer   ~0080263

Reviewed.

apn

2018-10-24 12:09

administrator   ~0080265

Combination -
OCCT branch : CR30270 SHA - 62bf1059d48f8cc8d56ce8669c6646e4f57d89cf
Products branch : master SHA - 35af85def09c66ceeaf90b4e4fb8b54e68d5e98c
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

git

2018-10-24 18:20

administrator   ~0080284

Branch CR30270_1 has been updated by kgv.

SHA-1: b3baf815521defe3d1e6e369be38c68a44ba7d46


Detailed log of new commits:

Author: kgv
Date: Wed Oct 24 18:04:06 2018 +0300

    # BndLib::Add() - fixed Bnd_Box misuse

git

2018-10-24 18:21

administrator   ~0080285

Branch CR30270_2 has been created by kgv.

SHA-1: 938e646bf1f0bbe28d0c0e6ecde19b6f38f1f50c


Detailed log of new commits:

Author: kgv
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.

git

2018-10-28 16:13

administrator   ~0080408

Branch CR30270_2 has been deleted by inv.

SHA-1: 938e646bf1f0bbe28d0c0e6ecde19b6f38f1f50c

git

2018-10-28 16:13

administrator   ~0080409

Branch CR30270_1 has been deleted by inv.

SHA-1: b3baf815521defe3d1e6e369be38c68a44ba7d46

git

2018-10-28 16:13

administrator   ~0080412

Branch CR30270 has been deleted by inv.

SHA-1: 2d9e8691b16247b688f2b753223b4d61fb96d0ab

Related Changesets

occt: master 04f0f1b0

2018-10-23 14:39:36

kgv


Committer: apn Details Diff
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.
Affected Issues
0030270
mod - src/Bnd/Bnd_Box.cxx Diff File
mod - src/Bnd/Bnd_Box.hxx Diff File
mod - src/BndLib/BndLib.cxx Diff File
mod - src/BRepTest/BRepTest_BasicCommands.cxx Diff File
mod - src/Prs3d/Prs3d.cxx Diff File
add - tests/bugs/modalg_7/bug30270 Diff File

Issue History

Date Modified Username Field Change
2018-10-19 11:50 kgv New Issue
2018-10-19 11:50 kgv Assigned To => msv
2018-10-19 11:51 kgv File Added: screw_inf.brep
2018-10-19 11:52 kgv Steps to Reproduce Updated
2018-10-19 11:52 kgv Steps to Reproduce Updated
2018-10-23 17:41 git Note Added: 0080236
2018-10-23 17:45 git Note Added: 0080237
2018-10-23 20:21 git Note Added: 0080244
2018-10-23 20:22 kgv File Added: scew_finite_aabb.png
2018-10-24 08:39 kgv Note Added: 0080246
2018-10-24 08:40 kgv Note Added: 0080247
2018-10-24 08:40 kgv Status new => resolved
2018-10-24 08:40 kgv Severity minor => feature
2018-10-24 08:40 kgv Product Version 7.3.0 =>
2018-10-24 11:45 git Note Added: 0080258
2018-10-24 11:46 git Note Added: 0080259
2018-10-24 11:46 kgv Note Added: 0080260
2018-10-24 11:49 msv Note Added: 0080261
2018-10-24 11:50 msv Assigned To msv => kgv
2018-10-24 11:50 msv Status resolved => assigned
2018-10-24 11:52 msv Assigned To kgv => msv
2018-10-24 11:52 msv Status assigned => resolved
2018-10-24 11:52 msv Note Added: 0080263
2018-10-24 11:52 msv Assigned To msv => bugmaster
2018-10-24 11:52 msv Status resolved => reviewed
2018-10-24 12:09 apn Test case number => bugs modalg_7 bug30270
2018-10-24 12:09 apn Note Added: 0080265
2018-10-24 12:09 apn Status reviewed => tested
2018-10-24 18:20 git Note Added: 0080284
2018-10-24 18:21 git Note Added: 0080285
2018-10-28 13:20 apn Changeset attached => occt master 04f0f1b0
2018-10-28 13:20 apn Assigned To bugmaster => apn
2018-10-28 13:20 apn Status tested => verified
2018-10-28 13:20 apn Resolution open => fixed
2018-10-28 16:13 git Note Added: 0080408
2018-10-28 16:13 git Note Added: 0080409
2018-10-28 16:13 git Note Added: 0080412