private void ACTsetRotationAxis(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
        {
            if (!(e.AddedItems[0] is TextBlock))
            {
                return;
            }

            String              s   = (String)(((TextBlock)(e.AddedItems[0])).Tag);
            ComboBox            cb  = (ComboBox)(((TextBlock)(e.AddedItems[0])).Parent);
            RotateTransform3D   rt  = (RotateTransform3D)(cb.Tag);
            AxisAngleRotation3D aar = (AxisAngleRotation3D)(rt.Rotation);

            switch (s)
            {
            case "X":
                aar.Axis = new Vector3D(1, 0, 0);
                break;

            case "Y":
                aar.Axis = new Vector3D(0, 1, 0);
                break;

            case "Z":
                aar.Axis = new Vector3D(0, 0, 1);
                break;
            }
            RotationAxisDisplay.UpdateLocation();
        }
        private void ACTsetRotateCenterpoint(object sender, System.Windows.Controls.TextChangedEventArgs e)
        {
            TextBox           tb    = (TextBox)sender;
            RotateTransform3D rot   = (RotateTransform3D)(((TextBox)sender).Tag);
            Point3D           newpt = new Point3D();

            try
            {
                newpt       = Point3D.Parse(tb.Text);
                rot.CenterX = newpt.X;
                rot.CenterY = newpt.Y;
                rot.CenterZ = newpt.Z;
            }
            catch (Exception)
            {
                return;
            }

            RotationAxisDisplay.UpdateLocation();
        }
        private void ACTtreeviewSelectedItemChanged
            (object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            if (e.NewValue is RotateTransform3D)
            {
                RotationAxisDisplay.Start(StuffOnTurntable, (RotateTransform3D)(e.NewValue));
                return;
            }
            else
            {
                RotationAxisDisplay.Stop(StuffOnTurntable);
            }



            if (e.NewValue is TRVU_GeometryMesh)
            {
                RemoveObjectHighlights();
                AddObjectHighlights((e.NewValue as TRVU_GeometryMesh).parent);
                return;
            }

            if (e.NewValue is TRVU_GeometryModel3D)
            {
                RemoveObjectHighlights();
                AddObjectHighlights((e.NewValue as TRVU_GeometryModel3D));
                return;
            }

            if ((e.NewValue is BindingList <object>))
            {
                RemoveObjectHighlights();
                AddObjectHighlights(e.NewValue as BindingList <object>);
                return;
            }

            e.Handled = true;
        }