public override void postprocess_target_objects() { // turn on xform gizmo Scene.Context.TransformManager.PopOverrideGizmoType(); Scene.Context.TransformManager.PushOverrideGizmoType(TransformManager.DefaultGizmoType); PlaneOriginS = Vector3d.Zero; PlaneNormalS = Vector3d.AxisY; foreach (var obj in TargetObjects) { PlaneOriginS += SceneTransforms.ObjectToSceneP(obj.SO, obj.SO.Mesh.CachedBounds.Center); } PlaneOriginS /= TargetObjects.Count; gizmoSO = new PlaneCutPivotSO(); gizmoSO.Create(Scene.PivotSOMaterial, Scene.FrameSOMaterial); gizmoSO.OnTransformModified += GizmoSO_OnTransformModified; Scene.AddSceneObject(gizmoSO); Frame3f cutFrameS = new Frame3f(PlaneOriginS, PlaneNormalS); gizmoSO.SetLocalFrame(cutFrameS, CoordSpace.SceneCoords); set_plane_origin(PlaneOriginS); set_plane_normal(PlaneNormalS); set_allow_selection_changes(true); Scene.Select(gizmoSO, true); set_allow_selection_changes(false); }
public override void Shutdown() { if (gizmoSO != null) { set_allow_selection_changes(true); Scene.RemoveSceneObject(gizmoSO, true); set_allow_selection_changes(false); gizmoSO = null; } base.Shutdown(); }