View Issue Details

IDProjectCategoryView StatusLast Update
0032570CommunityOCCT:Visualizationpublic2022-11-25 12:00
Reporterkgv Assigned Tovpozdyayev  
PrioritynormalSeverityfeature 
Status assignedResolutionopen 
Product Version7.1.0 
Target Version7.8.0 
Summary0032570: Visualization, AIS_AnimationObject - define rotation around axis
DescriptionCurrently AIS_AnimationObject is defined as linear interpolation of gp_Trsf decomposition (scale, translation, rotation).

Due to generalized gp_Trsf definition as 3x3 matrix and translation vector, transformation defined by axis and rotation angle ends up as additional translation and rotation around object center.
In this case, original intention (rotating around specific axis) is lost, although final transformation is the same, which doesn't make any problem when gp_Trsf is used as designed.
However, when using rotation transformation for defining animation via AIS_AnimationObject, such disparity leads to unexpected transition.

Therefore, it is proposed extended AIS_AnimationObject with a syntax defining rotation around specific point explicitly (and maybe some other specific transitions) which would internally implement expected interpolation.

The interpolation itself might be defined to handle specifically rotation or other scenarios, or it might be possible defining an anchor point / local coordinate system of the object to apply general gp_Trsf transformation.

https://dev.opencascade.org/content/aisanimation-how-rotation-arround-axis-parallel-y-axis
Steps To Reproduce
pload MODELING VISUALIZATION
box b1 2 100 100 -preview
box b2 2 100 100 -preview

vinit View1
vpoint p0 2 100 0
vpoint p1 2 100 100
vsegment s p0 p1
vdisplay b1 -dispMode 0

vdisplay b2 -dispMode 1
vlocation b2

vlocation b2 -reset -rotate 2 100 0 0 0 1 90
vlocation b2
vfit

vlocation b2 -reset
#vanim a -object b2 -loc1 0 0 0 -loc2 102 98 0
vanim a -object b2 -loc1 0 0 0 -rot1 0 0 0 1 -loc2 102 98 0 -rot2 0 0 0.707107 0.707107
vanim a -play 0 10
TagsNo tags attached.
Test case number

Relationships

child of 0027764 closedapn Open CASCADE Visualization - add functionality for animation of 3D camera and interactive objects 

Activities

git

2021-12-28 03:01

administrator   ~0106222

Branch CR32570 has been created by CheskoArt.

SHA-1: 02a3d45883c7ef14826e3727ec4ced0fab7631fa


Detailed log of new commits:

Author: achesnok
Date: Tue Dec 28 02:57:13 2021 +0300

    0032570: Visualization, AIS_AnimationObject - define rotation around axis

CheskoArt

2021-12-28 03:10

reporter   ~0106223

Please review the patch.

szy

2022-10-04 16:53

manager   ~0111389

Review request.

vpozdyayev

2022-10-10 11:46

administrator   ~0111450

Please fix typos and inconsistent formatting: "{0.0 , 0.0}", "roation", "roatation".

Rather than the "proposed extended AIS_AnimationObject", the current implementation effectively provides a separate object animation type, which deserves a separate class. I.e., instead of manually dispatching on ''myToUseLerp'', we should dispatch via vtables.

That said, implementing a custom anchor point seems to be a more natural solution.

git

2022-11-18 17:29

administrator   ~0112175

Branch CR32570 has been updated forcibly by mzernova.

SHA-1: 7351039b7d7afa2a7e514daf643c986262b18ccc

mzernova

2022-11-18 17:29

developer   ~0112176

http://jenkins-test-occt.nnov.opencascade.com/view/CR32570-master-mzernova/

git

2022-11-18 20:01

administrator   ~0112177

Branch CR32570 has been updated forcibly by mzernova.

SHA-1: 621482111d3240932437c9098c2852f215d8d773

git

2022-11-18 20:02

administrator   ~0112178

Branch CR32570_1 has been created by mzernova.

SHA-1: 97a4f5f0fe886d8687b3a960a9d02175ac3ef5c2


Detailed log of new commits:

Author: achesnok
Date: Tue Dec 28 02:57:13 2021 +0300

    0032570: Visualization, AIS_AnimationObject - define rotation around axis

git

2022-11-18 20:12

administrator   ~0112179

Branch CR32570_1 has been updated forcibly by mzernova.

SHA-1: fcf10261922d6fca957b4fff10b782f2c60c5cae

git

2022-11-18 20:12

administrator   ~0112180

Branch CR32570 has been updated forcibly by mzernova.

SHA-1: 24c4e0e8b003f8321c07c8a36893bd9e9018d1fb

mzernova

2022-11-19 11:38

developer   ~0112185

OCCT Branch: CR32570_1

mzernova

2022-11-19 11:39

developer   ~0112186

Ready for review

vpozdyayev

2022-11-25 12:00

administrator   ~0112301

Do we expect `AIS_BaseAnimationObject::invalidateViewer` to be useful to derived classes, or would it be better off as a private function?

Issue History

Date Modified Username Field Change
2021-09-15 10:21 kgv New Issue
2021-09-15 10:21 kgv Assigned To => kgv
2021-09-15 10:30 kgv Description Updated
2021-09-15 10:30 kgv Steps to Reproduce Updated
2021-09-15 10:33 kgv Relationship added child of 0027764
2021-09-15 10:33 kgv Product Version 7.5.0 => 7.1.0
2021-10-22 15:54 age Assigned To kgv => CheskoArt
2021-12-28 03:01 git Note Added: 0106222
2021-12-28 03:04 CheskoArt Assigned To CheskoArt => kgv
2021-12-28 03:10 CheskoArt Note Added: 0106223
2022-01-14 13:15 bugmaster Status new => resolved
2022-10-04 16:53 szy Assigned To kgv => vpozdyayev
2022-10-04 16:53 szy Note Added: 0111389
2022-10-10 11:46 vpozdyayev Note Added: 0111450
2022-10-10 15:56 vpozdyayev Assigned To vpozdyayev => mzernova
2022-10-10 15:57 vpozdyayev Status resolved => assigned
2022-10-24 10:43 szy Target Version 7.7.0 => 7.8.0
2022-11-18 17:29 git Note Added: 0112175
2022-11-18 17:29 mzernova Note Added: 0112176
2022-11-18 20:01 git Note Added: 0112177
2022-11-18 20:02 git Note Added: 0112178
2022-11-18 20:12 git Note Added: 0112179
2022-11-18 20:12 git Note Added: 0112180
2022-11-19 11:38 mzernova Note Added: 0112185
2022-11-19 11:39 mzernova Assigned To mzernova => vpozdyayev
2022-11-19 11:39 mzernova Status assigned => resolved
2022-11-19 11:39 mzernova Note Added: 0112186
2022-11-25 12:00 vpozdyayev Note Added: 0112301
2022-11-25 12:00 vpozdyayev Status resolved => assigned