I think I might rephrase my question now that it has changed a bit...
I have a Delta method that gets fired by my InertiaProcessor. The processor has a DesiredDeceleration property which I have set to 0.0001, this identifies how fast the inertia will stop, and hence how often the Delta method gets called.
The Delta method needs to rotate the Sphere.
This is the signature of the method:
private void Inertia_OnManipulationDelta(object sender, Affine2DOperationDeltaEventArgs e)
The
goal of this method is to change the class field member: "_rotation" which has Axis(Vector3D) and Angle(double) properties.
The
Affine2DOperationDeltaEventArgs class has the following properties (from the API doco):
AngularVelocity Gets the current rate of rotational change, in clockwise degrees per millisecond.
CumulativeExpansion Gets the change in the average radius, since the manipulation started.
CumulativeRotation Gets the amount of rotational change, in degrees clockwise, since the manipulation started.
CumulativeScale Gets the amount of scale change, as a percentage, since the manipulation started.
CumulativeTranslation Gets the amount of translational change since the manipulation started.
Delta Gets the amount of translational change since the last event.
ExpansionDelta Gets the change in the average radius since the last event.
ExpansionVelocity Gets the current rate of scale change, in device-independent units per millisecond.
ManipulationOrigin Gets the new coordinates of the composite position of the manipulation.
RotationDelta Gets the amount of rotational change, in degrees clockwise, since the last event.
ScaleDelta Gets the amount of scale change as a multiplier of the previous scale.
Velocity Gets the current rate of translational change, in device-independent units per millisecond.
So as you can see, Ive got the building blocks available to me, I just dont know how to apply them to rotate a sphere...
Currently, when I just rotate the sphere with the mouse (i.e. no inertia) Im using _current and _previous mouse positions, and mapping them to spots on the sphere using a little helper method, but I cannot get that to work when the points reach the back of the sphere!
Any ideas would be greatly appreciated!
Thanks
Mark