View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0032716 | Open CASCADE | OCCT:Modeling Algorithms | public | 2021-12-06 21:23 | 2024-01-29 21:49 |
Reporter | kgv | Assigned To | abulyche | ||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Product Version | 7.6.0 | ||||
Target Version | 7.7.0 | Fixed in Version | 7.6.3 | ||
Summary | 0032716: Modeling Algorithms - BRepBuilderAPI_Transform discards triangulation | ||||
Description | BRepBuilderAPI_ModifyShape has severe issue in handling faces - existing triangulation is always removed. This leads to two issues: - User has to re-triangulate shape, which might be much more expensive than transforming triangulation nodes. - Triangulation-only shapes are corrupted or lead to NULL-dereference in algorithm. | ||||
Steps To Reproduce | pload MODELING psphere s 1 incmesh s 1 trinfo s tscale s 0 0 0 0.5 trinfo s # KO - triangulation is empty incmesh s 1 tclean -geom s tscale s 0 0 0 0.5 # KO - crash in the algorithm trinfo s | ||||
Tags | No tags attached. | ||||
Test case number | bugs/modalg_8/bug32716_1, bug32716_2, bug32716_3, bug32716_4 | ||||
parent of | 0033049 | closed | Open CASCADE | Command 'tclean -geom' does not remove all geometric objects from the shape | |
related to | 0031479 | closed | Community | Modeling Algorithms - exception on geometry transformation of triangulation-only shapes (without geometry surface) | |
child of | 0028125 | new | Open CASCADE | Modeling Algorithms - support of BRep shapes based on tessellated geometry |
|
Branch CR32716 has been created by AndreyLA. SHA-1: 6260a581acda84cfc96c5c2589b21b36dd09651a Detailed log of new commits: Author: Andrei LATYSHEV Date: Fri Apr 1 16:45:02 2022 +0300 0032716: Modeling Algorithms - BRepBuilderAPI_Transform discards triangulation The methods for BRepTools_TrsfModification are defined and modified to keep the triangulation during 'tscale' operation. |
|
+ //Applying the transformation to each node of triangulation + aP = theTriangulation->Node(i).Transformed(myTrsf); + theTriangulation->SetNode(i, aP); It might be better adding the method `Poly_Triangulation::Transform (const gp_Trsf& theT)` / `Poly_Polygon3D::Transform()`. It is not enough transforming triangulation nodes, normals should be transformed as well. +Standard_EXPORT Standard_Boolean BRepTools_TrsfModification::NewPolygon `Standard_EXPORT` should not appear in .cxx files. + TColgp_Array1OfPnt aNodesArray = aPolygon->Nodes(); Would be nice adding `Poly_Polygon3D::Copy()` for consistency with other classes. |
|
Branch CR32716 has been updated by AndreyLA. SHA-1: f103aaf0b774ec20944279f60fbb6ba484712a57 Detailed log of new commits: Author: Andrei LATYSHEV Date: Mon Apr 4 11:28:10 2022 +0300 0031479: Modeling Algorithms - exception on geometry transformation of triangulation-only shapes (without geometry surface) Added test for user's problem case |
|
Branch CR32716 has been updated forcibly by AndreyLA. SHA-1: 032b35fe3756570da94b8000b649d90af95c768c |
|
+ aV = gp_Vec(myNormals(i).x(), myNormals(i).y(), myNormals(i).z()).Transformed(theT); + Standard_Real aCoef = aV.Magnitude(); + aV = aV / aCoef; Normal vectors couldn't be transformed like that - see gp_Dir::Transform() implementation. + // Apply the transformation to the triangulation + Standard_EXPORT void Transform(const gp_Trsf& theT); `//!` + for (Standard_Integer i = 1; i < myNodes.Length(); ++i) + { Indexation of `myNodes` doesn't start from `1`. +//function : RemoveNormals +//purpose : +//======================================================================= +void Poly_Triangulation::Transform(const gp_Trsf& theT) Inconsistent header. |
|
Branch CR32716 has been updated forcibly by AndreyLA. SHA-1: 18006ef5d72ea6c26c6db5d286523b8771b26b8c |
|
Branch CR32716_1 has been created by abulychev-ext. SHA-1: ab0770a8a2ece7d17f10b87bb66999d6232c35d9 Detailed log of new commits: Author: abulyche Date: Wed Apr 20 17:14:07 2022 +0300 0032716: Modeling Algorithms - BRepBuilderAPI_Transform discards triangulation Added the test to reproduce this problem. The methods for BRepTools_TrsfModification are defined and modified to keep the triangulation during 'tscale' operation. |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: c60dffcbd8213545868226ea5988cb3d1d56ed8a |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: 0f03881816c15a866589716244c521a54ee9b3cd |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: bc663ebe7339d8506c1f7151760e279f3ca26c79 |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: 119d50b9108dafa8cccddc29b7ba3fcb0f3768ca |
|
It is desired to create screenshots within the test to be able to verify visually that transformed mesh has correct vertex normals.+++ b/tests/bugs/mesh/bug32716 |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: 4f79f2608234a088a9e62f6d87505d525f795b5c |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: fccc483a4a4d1e50fe65d67666cc04b3c5cdcb7d |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: d0f2f33afec724c570e5cb7481b5d94367b1313b |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: da5f2b9674fe02cd4cf70e2e60fc78b9e484682b |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: b4f9584d53ed31ef06f75003d2dc1566a9b67c65 |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: 50c778f9d6f5066db7fcfd15fd5f2b2eac013a5d |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: 14eee5b59de84f112300a254e5bb8836aa52f5bb |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: 0c861e6b8a99885e88059b55e42835f425e8fa0b |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: 0dd0b1ec845d99ab28c370ec480e6bce09e2521a |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: 3855a11c154f1b22b957d2bd373a62e0fc977535 |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: b8c3da059ea2621a9031019e452b90443de74233 |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: 99fcf3aa9364c61c678a4c0ef930e73b91fd9435 |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: 5b8f46c19fd3ecb5a158cab171f3a78b5962999f |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: e80a0b1a353e173418656e3e2ab75f12d846cae8 |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: 2030e2083801a1b5c2c8c10d3ce10eed7c58496c |
|
Branch CR32716_1 has been updated forcibly by abulychev-ext. SHA-1: 78c7d475fe418b97948ad20cf139d4dc0370c90f |
|
Branch CR32716_2 has been created by azv. SHA-1: 1dfb856ec0f454231556deddf6caa6447d2ec5d0 Detailed log of new commits: Author: azv Date: Fri Jul 1 16:46:55 2022 +0300 0031479: Modeling Algorithms - exception on geometry transformation of triangulation-only shapes (without geometry surface) * Avoid crash in BRepBuilderAPI_GTransform algorithm. The crash in BRepBuilder_Transform has been solved by 0032716. * Move copying modifier to BRepTools package. * Implement transformation of a triangulation in BRepTools_GTrsfModification. Author: abulyche Date: Wed Apr 20 17:14:07 2022 +0300 0032716: Modeling Algorithms - BRepBuilderAPI_Transform discards triangulation * Implement methods for copying tessellation to BRepTools_TrsfModification to keep the triangulation during transformation. * Add tests to reproduce the problem. Author: azv Date: Fri Jul 1 15:59:40 2022 +0300 0033049: Command 'tclean -geom' does not remove all geometric objects from the shape Remove unused P-curves when cleaning the geometry |
|
Branch CR32716_2 has been updated forcibly by azv. SHA-1: 878195b296d3ed3e8e51221f1a21d4410c572b9a |
|
Please, review OCCT branch CR32716_2. Test results: http://jenkins-test-occt/view/CR32716_2-master-AZV/view/COMPARE/ |
|
It is needed to invalidate myCachedMinMax of the copy.theTriangulation = theTriangulation->Copy(); Use const& Poly_Triangle aTria = theTriangulation->Triangle(anInd); In the method BRepTools_TrsfModification::NewPolygon it is needed to transform parameters if the edge has 3D curve. Please update description, as there is no more "Copy" argument, but there are two new ones: //! of T is equal to 1., and if Copy equals false (the ... const Standard_Boolean theCopyGeom = Standard_False, const Standard_Boolean theCopyMesh = Standard_False); |
|
Branch CR32716_2 has been updated by azv. SHA-1: 5a6d2cf817e775fd29686f42de2430c7f1e16bb2 Detailed log of new commits: Author: azv Date: Wed Jul 6 17:25:10 2022 +0300 # remarks |
|
Branch CR32716_3 has been created by azv. SHA-1: adca922a1eb5a38893835ee3fe64fe18f7fcacc6 Detailed log of new commits: Author: azv Date: Fri Jul 1 16:46:55 2022 +0300 0031479: Modeling Algorithms - exception on geometry transformation of triangulation-only shapes (without geometry surface) * Avoid crash in BRepBuilderAPI_GTransform algorithm. The crash in BRepBuilder_Transform has been solved by 0032716. * Move copying modifier to BRepTools package. * Implement copying of triangulation in BRepTools_NurbsConvertModification. * Implement transformation of a triangulation in BRepTools_GTrsfModification. * Update test case bugs/mesh/bug22778 to clean the triangulation after conversion to NURBS (reproduce the same behavior as before). Author: abulyche Date: Wed Apr 20 17:14:07 2022 +0300 0032716: Modeling Algorithms - BRepBuilderAPI_Transform discards triangulation * Implement methods for copying tessellation to BRepTools_TrsfModification to keep the triangulation during transformation. * Add tests to reproduce the problem. |
|
>>> Use const& >>> >>> Poly_Triangle aTria = theTriangulation->Triangle(anInd); It is not possible here, because aTria is updated below. |
|
The option -copymesh takes effect only with -copy. Please reflect this in the help. |
|
Branch CR32716_2 has been updated forcibly by azv. SHA-1: e753eca36bcc9ff210e075a654aeddb94ef1b8ea |
|
Branch CR32716_3 has been updated forcibly by azv. SHA-1: b6d3143e9b4357e2efe86d3ee16073ebb8b2fbaa |
|
Branch CR32716_3 has been updated forcibly by azv. SHA-1: 91cfe0b4dd6f7bb51d71332a4c72495e2fcd359b |
|
Branch CR32716_2 has been updated forcibly by azv. SHA-1: 85993c194f8ec3b381b299c16f0ea2bba4db9dfc |
|
Branch CR32716_3 has been updated forcibly by azv. SHA-1: e8788af60496918e7ac1a3f0ac51e2b6ad3a3596 |
|
Mikhail, please review OCCT branch CR32716_2. Branch CR32716_3 contains the same changes, but squashed to a single commit. Test results: http://jenkins-test-occt/view/CR32716_3-master-AZV/view/COMPARE/ |
|
Branch CR32716_3 has been updated forcibly by azv. SHA-1: ce767f06bddc0efbc8e90fc19f6ea538076a22e5 |
|
For integration: occt - CR32716_3 products - none |
|
Combination - OCCT branch : IR-2022-07-08 master SHA - changes and them, and you can discard any commits you make in this 33c8a72788661285860902f261062e39f32a2d46 changes and them, and you can discard any commits you make in this e0ceb716c70188b98130b1550914140d0502a6f9 Products branch : IR-2022-07-08 SHA - 79a687f1cd4081ec53ec08c201360e89fce62abc 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 CPU differences: Debian80-64: OCCT Total CPU difference: 18685.930000000586 / 18908.870000000694 [-1.18%] Products Total CPU difference: 11796.890000000125 / 11832.130000000114 [-0.30%] Windows-64-VC14: OCCT Total CPU difference: 20784.828125 / 20752.59375 [+0.16%] Products Total CPU difference: 13361.3125 / 13368.90625 [-0.06%] Image differences : No differences that require special attention Memory differences : No differences that require special attention |
|
Branch CR32716 has been deleted by mnt. SHA-1: 18006ef5d72ea6c26c6db5d286523b8771b26b8c |
|
Branch CR32716_1 has been deleted by mnt. SHA-1: 78c7d475fe418b97948ad20cf139d4dc0370c90f |
|
Branch CR32716_2 has been deleted by mnt. SHA-1: 85993c194f8ec3b381b299c16f0ea2bba4db9dfc |
|
Branch CR32716_3 has been deleted by mnt. SHA-1: ce767f06bddc0efbc8e90fc19f6ea538076a22e5 |
occt: master 315ed0be 2022-04-20 17:14:07 Committer: |
0032716: Modeling Algorithms - BRepBuilderAPI_Transform discards triangulation * Implement methods for copying tessellation to BRepTools_TrsfModification to keep the triangulation during transformation. * Add tests to reproduce the problem. |
Affected Issues 0032716 |
|
mod - src/BRepBuilderAPI/BRepBuilderAPI_Transform.cxx | Diff File | ||
mod - src/BRepBuilderAPI/BRepBuilderAPI_Transform.hxx | Diff File | ||
mod - src/BRepTest/BRepTest_BasicCommands.cxx | Diff File | ||
mod - src/BRepTools/BRepTools_TrsfModification.cxx | Diff File | ||
mod - src/BRepTools/BRepTools_TrsfModification.hxx | Diff File | ||
add - tests/bugs/modalg_8/bug32716_1 | Diff File | ||
add - tests/bugs/modalg_8/bug32716_2 | Diff File | ||
add - tests/bugs/modalg_8/bug32716_3 | Diff File | ||
add - tests/bugs/modalg_8/bug32716_4 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2021-12-06 21:23 | kgv | New Issue | |
2021-12-06 21:23 | kgv | Assigned To | => msv |
2021-12-06 21:24 | kgv | Relationship added | child of 0028125 |
2022-03-21 20:25 |
|
Assigned To | msv => AndreyLA |
2022-03-21 20:25 |
|
Status | new => assigned |
2022-03-24 11:54 |
|
Relationship added | related to 0031479 |
2022-04-01 16:45 | git | Note Added: 0107545 | |
2022-04-03 15:02 | kgv | Note Added: 0107572 | |
2022-04-04 11:28 | git | Note Added: 0107584 | |
2022-04-04 18:54 | git | Note Added: 0107598 | |
2022-04-04 19:32 | kgv | Note Added: 0107600 | |
2022-04-05 13:15 | git | Note Added: 0107637 | |
2022-04-15 12:42 |
|
Assigned To | AndreyLA => abulychev-ext |
2022-04-20 17:14 | git | Note Added: 0108051 | |
2022-04-25 11:43 | git | Note Added: 0108143 | |
2022-04-27 20:51 | git | Note Added: 0108229 | |
2022-04-28 03:00 | git | Note Added: 0108230 | |
2022-05-03 14:23 | git | Note Added: 0108284 | |
2022-05-04 14:42 | kgv | Note Added: 0108303 | |
2022-05-05 01:50 | git | Note Added: 0108330 | |
2022-05-16 14:55 | git | Note Added: 0108443 | |
2022-05-16 16:47 | git | Note Added: 0108447 | |
2022-05-17 20:07 | git | Note Added: 0108476 | |
2022-05-18 15:36 | git | Note Added: 0108485 | |
2022-05-25 13:03 | git | Note Added: 0108608 | |
2022-05-25 15:16 | git | Note Added: 0108611 | |
2022-05-25 16:46 | git | Note Added: 0108613 | |
2022-05-26 20:05 | git | Note Added: 0108633 | |
2022-05-30 11:31 | git | Note Added: 0108742 | |
2022-05-31 15:47 | git | Note Added: 0108758 | |
2022-06-08 11:51 | git | Note Added: 0108902 | |
2022-06-08 11:52 | git | Note Added: 0108903 | |
2022-06-09 10:26 | git | Note Added: 0108928 | |
2022-06-29 12:21 | git | Note Added: 0109369 | |
2022-06-29 16:10 | git | Note Added: 0109390 | |
2022-07-01 15:08 |
|
Relationship added | parent of 0033049 |
2022-07-02 15:40 | git | Note Added: 0109515 | |
2022-07-02 15:45 |
|
Assigned To | abulychev-ext => azv |
2022-07-05 10:00 | git | Note Added: 0109555 | |
2022-07-05 12:41 |
|
Assigned To | azv => msv |
2022-07-05 12:41 |
|
Status | assigned => resolved |
2022-07-05 12:41 |
|
Note Added: 0109565 | |
2022-07-06 15:28 |
|
Note Added: 0109614 | |
2022-07-06 15:28 |
|
Assigned To | msv => abulychev-ext |
2022-07-06 15:28 |
|
Status | resolved => assigned |
2022-07-06 15:29 |
|
Assigned To | abulychev-ext => azv |
2022-07-06 17:25 | git | Note Added: 0109620 | |
2022-07-06 17:28 | git | Note Added: 0109621 | |
2022-07-06 17:33 |
|
Note Added: 0109622 | |
2022-07-06 17:47 |
|
Note Added: 0109623 | |
2022-07-06 18:05 | git | Note Added: 0109625 | |
2022-07-06 22:28 | git | Note Added: 0109633 | |
2022-07-07 07:11 | git | Note Added: 0109644 | |
2022-07-07 09:43 | git | Note Added: 0109650 | |
2022-07-07 16:50 | git | Note Added: 0109673 | |
2022-07-07 21:53 |
|
Assigned To | azv => msv |
2022-07-07 21:53 |
|
Status | assigned => resolved |
2022-07-07 21:53 |
|
Note Added: 0109677 | |
2022-07-07 21:55 |
|
Test case number | => bugs/modalg_8/bug32716_1, bug32716_2, bug32716_3, bug32716_4 |
2022-07-08 06:24 | git | Note Added: 0109681 | |
2022-07-08 15:49 |
|
Assigned To | msv => bugmaster |
2022-07-08 15:49 |
|
Status | resolved => reviewed |
2022-07-08 15:49 |
|
Note Added: 0109697 | |
2022-07-10 11:22 |
|
Status | reviewed => tested |
2022-07-10 11:22 |
|
Note Added: 0109719 | |
2022-07-10 12:03 |
|
Changeset attached | => occt master 315ed0be |
2022-07-10 12:03 | abulyche | Assigned To | bugmaster => abulyche |
2022-07-10 12:03 | abulyche | Status | tested => verified |
2022-07-10 12:03 | abulyche | Resolution | open => fixed |
2022-07-10 12:08 | git | Note Added: 0109724 | |
2022-07-10 12:08 | git | Note Added: 0109725 | |
2022-07-10 12:08 | git | Note Added: 0109726 | |
2022-07-10 12:08 | git | Note Added: 0109727 | |
2023-03-19 19:29 | vglukhik | Status | verified => closed |
2023-03-19 19:29 | vglukhik | Fixed in Version | => 7.6.3 |