02-09-2018, 04:51 PM
You can get the combined transformation of the final ModelVisual3D with using Ab3d.Utilities.TransformationsHelper.GetVisual3DTotalTransform and pass A and D objects to the method - this will get you one Transform3DGroup with all transformations from A to D.
If you know that you will only get RotateTransform3D objects in the Transform3DGroup, you can read the rotations from them.
But to use any transformation, you can read the Value property of the returned Transform3D - this will give you the total transformation Matrix3D.
To get the transformation that will cancel the parent transformations, you need to inverse this matrix.
You can do this by saving the Matrix3D to local matrix variable and then calling Inverse method on the matrix.
For the inverse matrix, you can create a new Matrix3DTransform and use the new matrix for it.
If you know that you will only get RotateTransform3D objects in the Transform3DGroup, you can read the rotations from them.
But to use any transformation, you can read the Value property of the returned Transform3D - this will give you the total transformation Matrix3D.
To get the transformation that will cancel the parent transformations, you need to inverse this matrix.
You can do this by saving the Matrix3D to local matrix variable and then calling Inverse method on the matrix.
For the inverse matrix, you can create a new Matrix3DTransform and use the new matrix for it.
Andrej Benedik

