OCCT speedups and fixes
Performance improvements for the OCCT reader:
- color lookups turn out to add up a lot when they're done for every triangle of a re-meshed face.
- re-meshing can be batched instead of done for each face/edge individually.
- color lookups with
XCAFDoc_ColorToolwere also wrong in addition to being slow, usingXCAFPrsto walk down the attribute tree and collect inherited style properties is more correct and faster
all in all the 18MB step file from https://www.printables.com/model/612925-creality-k1-corexy-motion-assembly-cad/files now opens in about ~~40sec~~ 15sec instead of almost 5min
before and after:
also fixes a minor bug where progress was reported up to 150%, meaning the progress bar would look full before the actual processing was finished.
TestIGES.png baseline should not have needed an update now, but it should have been updated with the previous OCCT PR that did change the edges behavior. I guess the tiny variations from both PR just now added up past the test threshold?
Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.
Comparison is base (
a5ecb6b) 96.57% compared to head (cedca38) 96.57%. Report is 1 commits behind head on master.
| Files | Patch % | Lines |
|---|---|---|
| plugins/occt/module/vtkF3DOCCTReader.cxx | 98.82% | 1 Missing :warning: |
Additional details and impacted files
@@ Coverage Diff @@
## master #1292 +/- ##
==========================================
- Coverage 96.57% 96.57% -0.01%
==========================================
Files 138 138
Lines 8500 8553 +53
==========================================
+ Hits 8209 8260 +51
- Misses 291 293 +2
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Looks good. Why do we have a baseline change tho?
Not sure to be honest. I think it's because of the edges showing, that should have needed an update with the last PR that fixed the edges but it didn't (only the STEP one needed to be updated).
But yeah I don't know why on this PR the IGES one failed and the STEP one didn't.