CombinedManipulator question
avgjoe wrote at 2012-03-11 18:39:
First off...Kick ass toolkit btw! The examples gave me a good starting point.
The first thing I’m attempting to do is combine the ManipulatorDemo with the ModelViewer example.
I’ve added the following code to the ModelViewer to allow the model to be repositioned and rotated. The visual rotate manipulators appear to grow in size but the translate manipulators do not. Am I missing something here?
private void ModelLoaded(object sender, RoutedEventArgs e)
{
view1.ZoomExtents();
CombinedManipulator manipulator = new CombinedManipulator();
Rect3D rect = Visual3DHelper.FindBounds(view1.Children);
manipulator.Diameter = rect.Y;
root1.Children.Add(manipulator);
manipulator.Bind(root1);
}
objo wrote at 2012-03-11 20:56:
To me it seems like the manipulation transform is applied twice to the manipulator. Adding the manipulator one level higher in the Visual3D tree should avoid it:
view1.Children.Add(manipulator);
Sorry the "ModelViewer" example is not in good shape, I am planning to improve it, hopefully this year :)
Mrme wrote at 2013-08-01 10:02:
thebestgin wrote at 2014-08-05 15:32:
The problem is the emty methode OnDiameterChanged() at line 404.
https://searchcode.com/codesearch/view/10564768/
Here my suggestion:
/// <summary>
/// The on diameter changed.
/// </summary>
protected virtual void OnDiameterChanged()
{
double radius = this.Diameter / 2;
double newArrowLength = radius + radius * 0.4;
this.TranslateXManipulator.Length = newArrowLength;
this.TranslateYManipulator.Length = newArrowLength;
this.TranslateZManipulator.Length = newArrowLength;
double newArrowDiameter = newArrowLength * 0.075;
this.TranslateXManipulator.Diameter = newArrowDiameter;
this.TranslateYManipulator.Diameter = newArrowDiameter;
this.TranslateZManipulator.Diameter = newArrowDiameter;
double newInnerDiameter = this.Diameter - this.Diameter * 0.12;
this.RotateXManipulator.InnerDiameter = newInnerDiameter;
this.RotateYManipulator.InnerDiameter = newInnerDiameter;
this.RotateZManipulator.InnerDiameter = newInnerDiameter;
}
Customer support service by UserEcho