View Issue Details

IDProjectCategoryView StatusLast Update
0025631Open CASCADEOCCT:Modeling Algorithmspublic2020-12-14 12:25
ReporterpkvAssigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version6.9.0 
Target Version6.9.0Fixed in Version6.9.0 
Summary0025631: Bounding box is too big for the face.
DescriptionBounding box is too big for the face.

The goal is:
To compute bounding box more precisely
Steps To ReproduceUse the following commands to reproduce the problem:
#
restore fbx f

bounding f
# please have a look on axonometric view
# for more details
TagsNo tags attached.
Test case numberbugs moddata_3(013) bug25631

Attached Files

  • fbx (70,373 bytes)
  • boxes.PNG (20,163 bytes)
  • 25631_CutUnusedPoles.jpg (89,100 bytes)

Relationships

related to 0023446 closedbugmaster Open CASCADE Wrong bounding box calculated by BRepBndLib 
related to 0027200 closedbugmaster Community Bounding box of Surfaces 
related to 0031995 closedbugmaster Open CASCADE Modeling Data - Bounding box is wrong for face 

Activities

pkv

2014-12-19 11:24

developer  

fbx (70,373 bytes)

msv

2014-12-19 12:01

developer  

boxes.PNG (20,163 bytes)

msv

2014-12-19 12:07

developer   ~0035505

Bounding box is computed for a bspline face using poles of bspline. In the attached picture 2 boxes are shown, the larger one is computed on poles, and the smaller one is computed on triangulation nodes.
In the absence of triangulation, the larger box is computed.
In order to compute the precise bounding box, it is needed to develop a special algorithm. And most probably that it will slow down the BB computation.

msv

2014-12-22 12:38

developer   ~0035545

It is needed to make search (in the inet) for optimal methods of global optimization.
After applying it to computing minimal bounding box for a restricted bspline surface, evaluate its performance, as well the performance of OCCT libraries (grid tests) if we replace old algorithm with the new one.
If performance will be significantly decreased then create new API method for new algorithm, and use it where it is needed case by case (may be the latter will be out of scope of this bug).

git

2015-01-19 14:46

administrator   ~0036207

Branch CR25631 has been created by aml.

SHA-1: e3a57ec5999997cc72f5877c8cb4f7709506cae2


Detailed log of new commits:

Author: aml
Date: Mon Jan 19 11:48:31 2015 +0300

    0025631: Bounding box is too big for the face.
    
    Fixed start and finish idexes of poles in case of trimmed surface.

aml

2015-01-19 14:47

developer  

25631_CutUnusedPoles.jpg (89,100 bytes)

aml

2015-01-19 14:57

developer   ~0036209

Dear msv,
Please check current state of branch CR25631.
Current implementation reduce bounding box (look at attached image), using lightweight additional computations, which should not affect performance.

Algorithm with computing precise bounding box still in development now.

msv

2015-01-20 10:25

developer   ~0036238

Remarks:
- Not used variable at line 323
- Strange condition at line 302: what if we want to build box on subset of the surface parametric space? It is here regardless of the current patch.
- At line 208: please think how it will work on periodic B-splines.

git

2015-01-22 07:44

administrator   ~0036353

Branch CR25631 has been updated forcibly by aml.

SHA-1: e732d89a554eabbaa5745df417c1de4a91fa5c1f

git

2015-01-22 07:51

administrator   ~0036354

Branch CR25631 has been updated forcibly by aml.

SHA-1: 387b825db2823f02acec7c10e6ef4343e0d60902

aml

2015-01-22 08:26

developer   ~0036355

Dear msv,
Please check updated branch CR25631.

I
- Strange condition at line 302: what if we want to build box on subset of the surface parametric space? It is here regardless of the current patch.

Old:
In case when (UMin,VMin, UMax, VMax) not equal to topology borders then used default algorithm based on regular grid.
This behavior caused by properties of Bezier surface, on which trimmed case should be handled like untrimmed (all the poles used in any computations -> all the poles should be in bounding box).
That is why grid algorithm is used when parameters not equal to borders.

New:
In case of trimmed BSpline surface if (UMin,VMin, UMax, VMax) lies inside of geometry borders then modified convex hull algorithm is used.
Bezier surface handling not changed.


Conclusion:
Patch should change only BSpline surface handling.

II
- At line 208: please think how it will work on periodic B-splines.

Fixed.

msv

2015-01-22 10:00

developer   ~0036360

Reviewed.

mkv

2015-01-29 14:31

tester   ~0036821

Dear BugMaster,
Branch CR25631 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
387b825db2823f02acec7c10e6ef4343e0d60902

Number of compiler warnings:

occt component :
Linux: 18 (18 on master)
Windows: 0 (0 on master)

products component :
Linux: 11 (11 on master)
Windows: 1 (1 on master)

Regressions/Differences:
No regressions/differences

Testing cases:
http://occt-tests/CR25631-master-occt/Debian60-64/bugs/moddata_3/bug25631.html
http://occt-tests/CR25631-master-occt/Windows-32-VC10/bugs/moddata_3/bug25631.html
bugs moddata_3(013) bug25631: OK

Testing on Linux:
occt component :
Total MEMORY difference: 370237700 / 369907280
Total CPU difference: 47707.11 / 46828.580000000045
products component :
Total MEMORY difference: 110073812 / 110058756
Total CPU difference: 16423.76999999998 / 15822.439999999979

Testing on Windows:
occt component :
Total MEMORY difference: 276749496 / 276885156
Total CPU difference: 36273.15625 / 39964.359375
products component :
Total MEMORY difference: 72465040 / 71278224
Total CPU difference: 12933.75 / 10959.0625

There are no differences in images found by testdiff.

git

2015-01-29 14:32

administrator   ~0036822

Branch CR25631 has been updated by mkv.

SHA-1: 0fc247a77852345b87cf36a9e924a78c400dbe05


Detailed log of new commits:

Author: mkv
Date: Thu Jan 29 13:42:21 2015 +0300

    Test case for issue CR25631

git

2015-03-18 13:34

administrator   ~0038534

Branch CR25631 has been deleted by inv.

SHA-1: 0fc247a77852345b87cf36a9e924a78c400dbe05

Related Changesets

occt: master 9bf0740b

2015-01-29 12:09:51

aml


Committer: bugmaster Details Diff
0025631: Bounding box is too big for the face.

Fixed start and finish indexes of poles in case of trimmed bspline surface.

Test case for issue CR25631
Affected Issues
0025631
mod - src/BndLib/BndLib_AddSurface.cxx Diff File
add - tests/bugs/moddata_3/bug25631 Diff File

Issue History

Date Modified Username Field Change
2014-12-19 11:24 pkv New Issue
2014-12-19 11:24 pkv Assigned To => msv
2014-12-19 11:24 pkv File Added: fbx
2014-12-19 11:24 pkv Status new => assigned
2014-12-19 12:01 msv File Added: boxes.PNG
2014-12-19 12:07 msv Note Added: 0035505
2014-12-22 12:32 msv Assigned To msv => aml
2014-12-22 12:38 msv Note Added: 0035545
2015-01-19 14:46 git Note Added: 0036207
2015-01-19 14:47 aml File Added: 25631_CutUnusedPoles.jpg
2015-01-19 14:57 aml Note Added: 0036209
2015-01-19 14:57 aml Assigned To aml => msv
2015-01-19 14:57 aml Status assigned => resolved
2015-01-20 10:25 msv Note Added: 0036238
2015-01-20 10:25 msv Assigned To msv => aml
2015-01-20 10:25 msv Status resolved => assigned
2015-01-22 07:44 git Note Added: 0036353
2015-01-22 07:51 git Note Added: 0036354
2015-01-22 08:26 aml Note Added: 0036355
2015-01-22 08:26 aml Assigned To aml => msv
2015-01-22 08:26 aml Status assigned => resolved
2015-01-22 10:00 msv Note Added: 0036360
2015-01-22 10:00 msv Assigned To msv => bugmaster
2015-01-22 10:00 msv Status resolved => reviewed
2015-01-27 13:08 msv Relationship added related to 0023446
2015-01-28 18:01 mkv Assigned To bugmaster => mkv
2015-01-29 14:31 mkv Note Added: 0036821
2015-01-29 14:32 git Note Added: 0036822
2015-01-29 14:32 mkv Test case number => bugs moddata_3(013) bug25631
2015-01-29 14:32 mkv Assigned To mkv => bugmaster
2015-01-29 14:32 mkv Status reviewed => tested
2015-01-30 14:00 bugmaster Changeset attached => occt master 9bf0740b
2015-01-30 14:00 bugmaster Status tested => verified
2015-01-30 14:00 bugmaster Resolution open => fixed
2015-03-18 13:34 git Note Added: 0038534
2015-05-14 15:29 aiv Status verified => closed
2015-05-14 15:32 aiv Fixed in Version => 6.9.0
2016-02-24 18:25 msv Relationship added related to 0027200
2020-12-14 12:25 ifv Relationship added related to 0031995