View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0032570 | Community | OCCT:Visualization | public | 2021-09-15 10:21 | 2023-02-12 18:17 |
Reporter | kgv | Assigned To | mzernova | ||
Priority | normal | Severity | feature | ||
Status | verified | Resolution | fixed | ||
Product Version | 7.1.0 | ||||
Target Version | 7.8.0 | ||||
Summary | 0032570: Visualization, AIS_AnimationObject - define rotation around axis | ||||
Description | Currently 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 -duration 2 vanim a -play 0 10 | ||||
Tags | No tags attached. | ||||
Test case number | v3d bugs bug32570 | ||||
|
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 |
|
Please review the patch. |
|
Review request. |
|
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. |
|
Branch CR32570 has been updated forcibly by mzernova. SHA-1: 7351039b7d7afa2a7e514daf643c986262b18ccc |
|
http://jenkins-test-occt.nnov.opencascade.com/view/CR32570-master-mzernova/ |
|
Branch CR32570 has been updated forcibly by mzernova. SHA-1: 621482111d3240932437c9098c2852f215d8d773 |
|
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 |
|
Branch CR32570_1 has been updated forcibly by mzernova. SHA-1: fcf10261922d6fca957b4fff10b782f2c60c5cae |
|
Branch CR32570 has been updated forcibly by mzernova. SHA-1: 24c4e0e8b003f8321c07c8a36893bd9e9018d1fb |
|
OCCT Branch: CR32570_1 |
|
Ready for review |
|
Do we expect `AIS_BaseAnimationObject::invalidateViewer` to be useful to derived classes, or would it be better off as a private function? |
|
Branch CR32570_1 has been updated forcibly by mzernova. SHA-1: 6ca533a4bd24afb87199e3b1046d08d78e99418b |
|
Dear rodrlyra, please review OCCT - CR32570_1 Tests: http://jenkins-test-10.nnov.opencascade.com/view/CR32570-master-mzernova/view/COMPARE/ Some tests are failed for technical reasons. |
|
Dear @mzernova, there are few only style remarks. Please check ( it is only recommendations ) Please update year in the new created files // Copyright (c) 2022 OPEN CASCADE SAS src / AIS / AIS_AnimationAxisRotation.hxx It is not correct doxygen style, please use 26 //! Constructor with initialization. 27 //! @param theAnimationName animation identifier -> 26 //! Constructor with initialization. 27 //! @param[in] theAnimationName animation identifier @param[in] or @param[out] The best practices is use protected method and privet fields, so. I very recommented to update your new classes accrording this point 40 protected: 41 42 //! Update the progress. 43 Standard_EXPORT virtual void update (const AIS_AnimationProgress& theProgress) Standard_OVERRIDE; 44 45 protected: 46 47 gp_Ax1 myRotAxis; //!< rotation axis 48 Standard_Real myAngleStart; //!< start angle for rotation 49 Standard_Real myAngleEnd; //!< end angle for rotation Artefact, do not needed 53 DEFINE_STANDARD_HANDLE(AIS_AnimationAxisRotation, AIS_BaseAnimationObject) Update an author please. author achesnok <achesnok@opencascade.com> Mon, 27 Dec 2021 23:57:13 +0000 (23:57 +0000) |
|
Branch CR32570_1 has been updated forcibly by mzernova. SHA-1: 840d976d45afc1543970c9d5e5f0a1cca14d713b |
|
Dear @dpasukhi, @rodrlyra The branch has been updated in accordance with the remarks. |
|
Branch CR32570_1 has been updated forcibly by mzernova. SHA-1: 53a424aedbef8b5e8b2c5832edc8ebe0f8b78d20 |
|
Branch CR32570_1 has been updated forcibly by mzernova. SHA-1: 383c246244b468dc05d2afdcbeadb4bf6d125cd1 |
|
No remarks. Dear bugmaster, please integrate: OCCT - CR32570_1 |
|
IR-2023-02-03 Number of compiler warnings: No new/fixed warnings Regressions/Differences/Improvements: No regressions/differences CPU differences: Ubuntu2004-64: OCCT Total CPU difference: 18415.850000000257 / 19028.28000000029 [-3.22%] Products Total CPU difference: 12109.420000000147 / 11752.84000000013 [+3.03%] Windows-64-VC142: OCCT Total CPU difference: 20947.078125 / 20944.328125 [+0.01%] Products Total CPU difference: 13490.453125 / 13069.734375 [+3.22%] Image differences : No differences that require special attention Memory differences : No differences that require special attention |
|
Branch CR32570 has been deleted by mnt. SHA-1: 24c4e0e8b003f8321c07c8a36893bd9e9018d1fb |
|
Branch CR32570_1 has been deleted by mnt. SHA-1: 383c246244b468dc05d2afdcbeadb4bf6d125cd1 |
occt: master 53eae1a9 2021-12-28 02:57:13 Committer: vglukhik Details Diff |
0032570: Visualization, AIS_AnimationObject - define rotation around axis When using AIS_AnimationObject, linear interpolation is performed from one gp_Trsf transformation to another. But when an object rotates around a specific axis, the object moves not along a linear trajectory, but along a circle. Therefore, a separate class AIS_AnimationAxisRotation was created that allows to animate rotation around a specific axis. Test case tests/v3d/bugs/bug32570 was added. |
Affected Issues 0032570 |
|
add - src/AIS/AIS_AnimationAxisRotation.cxx | Diff File | ||
add - src/AIS/AIS_AnimationAxisRotation.hxx | Diff File | ||
mod - src/AIS/AIS_AnimationObject.cxx | Diff File | ||
mod - src/AIS/AIS_AnimationObject.hxx | Diff File | ||
add - src/AIS/AIS_BaseAnimationObject.cxx | Diff File | ||
add - src/AIS/AIS_BaseAnimationObject.hxx | Diff File | ||
mod - src/AIS/FILES | Diff File | ||
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx | Diff File | ||
add - tests/v3d/bugs/bug32570 | Diff File |
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 |
|
Assigned To | kgv => CheskoArt |
2021-12-28 03:01 | git | Note Added: 0106222 | |
2021-12-28 03:04 |
|
Assigned To | CheskoArt => kgv |
2021-12-28 03:10 |
|
Note Added: 0106223 | |
2022-01-14 13:15 | bugmaster | Status | new => resolved |
2022-10-04 16:53 |
|
Assigned To | kgv => vpozdyayev |
2022-10-04 16:53 |
|
Note Added: 0111389 | |
2022-10-10 11:46 |
|
Note Added: 0111450 | |
2022-10-10 15:56 |
|
Assigned To | vpozdyayev => mzernova |
2022-10-10 15:57 |
|
Status | resolved => assigned |
2022-10-24 10:43 |
|
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 |
|
Note Added: 0112301 | |
2022-11-25 12:00 |
|
Status | resolved => assigned |
2022-12-29 10:56 |
|
Assigned To | vpozdyayev => mzernova |
2023-01-30 12:36 | git | Note Added: 0113017 | |
2023-01-31 03:06 | mzernova | Assigned To | mzernova => rodrlyra |
2023-01-31 03:06 | mzernova | Status | assigned => resolved |
2023-01-31 03:06 | mzernova | Note Added: 0113023 | |
2023-01-31 13:18 | dpasukhi | Note Added: 0113024 | |
2023-01-31 15:20 | git | Note Added: 0113029 | |
2023-01-31 15:22 | mzernova | Note Added: 0113030 | |
2023-01-31 15:31 | git | Note Added: 0113031 | |
2023-01-31 15:49 | git | Note Added: 0113032 | |
2023-02-02 01:13 | rodrlyra | Steps to Reproduce Updated | |
2023-02-02 01:13 | rodrlyra | Test case number | => v3d bugs bug32570 |
2023-02-02 01:28 | rodrlyra | Assigned To | rodrlyra => bugmaster |
2023-02-02 01:28 | rodrlyra | Status | resolved => reviewed |
2023-02-02 01:28 | rodrlyra | Note Added: 0113041 | |
2023-02-05 16:31 | vglukhik | Note Added: 0113071 | |
2023-02-05 16:32 | vglukhik | Changeset attached | => occt master 53eae1a9 |
2023-02-05 16:32 | mzernova | Assigned To | bugmaster => mzernova |
2023-02-05 16:32 | mzernova | Status | reviewed => verified |
2023-02-05 16:32 | mzernova | Resolution | open => fixed |
2023-02-12 18:17 | git | Note Added: 0113125 | |
2023-02-12 18:17 | git | Note Added: 0113126 |