View Issue Details

IDProjectCategoryView StatusLast Update
0025389Open CASCADEOCCT:Modeling Algorithmspublic2018-10-29 13:12
ReporternbvAssigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionno change required 
Target Version7.4.0 
Summary0025389: It is necessary to revise conformity between real transformation and status of gp_TrsfForm
DescriptionThe following moments must be determined:

1. Is it necessary to have gp_TrsfForm statuses into OCCT. Maybe it will be better to work with real transformation matrix.

2. Do these statuses conform to real transformation. Especially after applying gp_Trsf::Multiply(...) method where status "gp_Rotation" is set after two gp_Ax1Mirror transformations.

3. It is necessary to check if statuses in gp_Trsf and in gp_Trsf2d algorithms are set equally.

4. It is important to create actual tests case for every transformation type. For example, is it correct, when location is set to zero after powering matrix of gp_PntMirror transformation in even degree (here we should return to previous shape, which was before transformation).
Additional information
and documentation updates
Current algorithm of statuses setting:

    gp_Ax1Mirror
Sets in case of SetMirror in 2D or SetMirror(const gp_Ax1&) in 3D transformation.

    gp_Ax2Mirror
Sets in case of SetMirror (const gp_Ax2&) 3D-transformation.

    gp_Identity
1. Transformation matrix is identity.
2. Sets if shape was gp_Translation and if NULL-location is set for it.
3. Sets if shape was (gp_PntMirror || gp_Ax1Mirror || gp_Ax2Mirror || gp_Scale) and scale factor is set in +1.
4. Sets if matrix transformation is powered in 0-degree.
5. Sets if shape was (shape == gp_PntMirror || shape == gp_Ax1Mirror || shape == gp_Ax2Mirror) and matrix transformation is powered in even degree.

    gp_PntMirror
1. Mirror in reference of the point
2. Sets if shape was (gp_Identity || gp_Translation || gp_Scale) and scale factor is set in -1

    gp_Translation
1. SetTranslation with vector and "from point - to point"
2. Sets if shape was gp_Identity and if non-zero location is set for it.

    gp_Rotation
1. SetRotation methods for 2D and 3D

    gp_Scale
1. SetScale methods
2. Sets if shape was gp_Translation and scale factor is not set in +/- 1
3. Sets if shape was (gp_Translation || case gp_PntMirror || gp_Ax1Mirror || gp_Ax2Mirror) and scale factor is not set in +/- 1
TagsNo tags attached.
Test case number

Relationships

related to 0025374 closedbugmaster Community [6.8.0beta regression] gp_Trsf2d::SetMirror() looses transformation form 
related to 0025751 closedbugmaster Open CASCADE Eliminate GCC warning -Wunused-but-set-variable in gp_GTrsf2d.cxx for Android build 

Activities

nbv

2015-03-16 17:25

developer   ~0038407

Last edited: 2015-03-16 17:26

Attention!

gp_GTrsf2d::Trsf2d () method does not work with not-orthogonal transformation matrix - throws an exception. Is it OK?

abv

2015-03-16 20:24

manager   ~0038410

> gp_GTrsf2d::Trsf2d () method does not work with not-orthogonal transformation matrix - throws an exception. Is it OK?

Should be intentional, see 0025751

nbv

2015-03-17 09:32

developer   ~0038412

> gp_GTrsf2d::Trsf2d () method does not work with not-orthogonal transformation matrix - throws an exception. Is it OK?

> Should be intentional, see 0025751

GTrsf2d defines a non persistent transformation in 2D space (see .cdl). Consequently, this method must work well with not-orthogonal matrix. Therefore, necessity of this check is quite strange and this phenomenon should be investigated.

At present, I cannot say, it is OK or not.

msv

2015-10-28 11:00

developer   ~0047516

The method gp_GTrsf2d::Trsf2d() is to return a well defined transformation that is to be compliance with gp_Trsf2d rules. So it must throw exception if it cannot make a proper conversion.

msv

2018-10-25 16:54

developer   ~0080330

Dear bugmaster, this is not a bug. And the proposal of changes sounds very unfeasible and not needed at all. Please close it.

Issue History

Date Modified Username Field Change
2014-10-16 17:08 nbv New Issue
2014-10-16 17:08 nbv Assigned To => nbv
2014-10-16 17:09 nbv Additional Information Updated
2014-10-16 17:12 nbv Relationship added related to 0025374
2015-03-16 17:25 nbv Note Added: 0038407
2015-03-16 17:26 nbv Note Edited: 0038407
2015-03-16 20:24 abv Note Added: 0038410
2015-03-16 20:24 abv Relationship added related to 0025751
2015-03-17 09:32 nbv Note Added: 0038412
2015-10-28 11:00 msv Note Added: 0047516
2015-10-28 11:00 msv Target Version 7.0.0 => 7.1.0
2016-10-25 19:04 msv Target Version 7.1.0 => 7.2.0
2017-07-24 09:33 msv Target Version 7.2.0 => 7.3.0
2017-12-05 17:01 msv Target Version 7.3.0 => 7.4.0
2018-10-25 16:45 nbv Assigned To nbv => msv
2018-10-25 16:54 msv Note Added: 0080330
2018-10-25 16:54 msv Assigned To msv => bugmaster
2018-10-25 16:54 msv Status new => feedback
2018-10-25 17:01 msv Resolution open => no change required
2018-10-29 13:12 bugmaster Status feedback => closed