View Issue Details

IDProjectCategoryView StatusLast Update
0003115OpenFOAMFeaturepublic2018-12-10 10:20
Reporterbeemer252025Assigned Tohenry 
PrioritynormalSeveritytweakReproducibilityalways
Status closedResolutionsuspended 
PlatformGNU/LinuxOSUbuntuOS Version15.04
Product Version5.x 
Fixed in Version 
Summary0003115: Inconsistent definitions in the septernion class
DescriptionThe definitions for septernion::transformPoint() and septernion::operator*= do not seem to be consistent with each other, nor do they appear to accomplish the intended function. According to the class description, a septernion is a class used to represent translations and rotations in 3D space, and so the expected transform would be
t() + r().transform(v), which represents rotating the point by the defined quaternion, r, and then translating by vector t. The currently implemented definition is r().transform(v-t()), which represents an inverted translation followed by the proper rotation. When working from the standpoint of solid objects, performing the rotation first, then the translation makes the septernion much more straightforward to use than the currently implemented transform.
Additional InformationThe definition of interest is in septernionI.H. Care should be taken that all definitions (multiplication, division, inverseTransform) match the chosen definition of transform.
TagsNo tags attached.

Activities

henry

2018-11-28 19:48

manager   ~0010197

The current implementation is consistent with the way it is currently used in the code. I don't mind the operation order changing but you will need to provide a tested patch which includes both this change and the corresponding changes where the current implementation is used.

henry

2018-12-10 10:20

manager   ~0010210

Pending the contribution of a tested patch

Issue History

Date Modified Username Field Change
2018-11-28 19:30 beemer252025 New Issue
2018-11-28 19:48 henry Note Added: 0010197
2018-11-28 19:48 henry Severity major => tweak
2018-11-28 19:48 henry Category Bug => Feature
2018-12-10 10:20 henry Assigned To => henry
2018-12-10 10:20 henry Status new => closed
2018-12-10 10:20 henry Resolution open => suspended
2018-12-10 10:20 henry Note Added: 0010210