public static void OnApply_SetBasePoint(SurfacePointTool tool, SceneObject targetSO) { Frame3f frame = tool.SurfacePointSceneFrame; DMeshSO so = targetSO as DMeshSO; if (so == null) { return; } OrientationChanges.SetBasePoint(CC.ActiveScene, so, frame, false); CC.ActiveScene.History.PushInteractionCheckpoint(); }
/// <summary> /// flip between Z-up and Y-up /// </summary> public static void SwapCurrentUpDirections(bool bInteractive) { List <PrintMeshSO> targets = CC.ActiveScene.FindSceneObjectsOfType <PrintMeshSO>(true); if (targets.Count == 0) { targets.AddRange(CC.Objects.PrintMeshes); } if (targets.Count == 0) { return; } OrientationChanges.SwapUpDirection(CC.ActiveScene, targets); if (bInteractive) { CC.ActiveScene.History.PushInteractionCheckpoint(); } }
/// <summary> /// reverse object /// </summary> public static void Mirror(bool bInteractive) { List <PrintMeshSO> targets = CC.ActiveScene.FindSceneObjectsOfType <PrintMeshSO>(true); if (targets.Count == 0) { targets.AddRange(CC.Objects.PrintMeshes); } if (targets.Count == 0) { return; } foreach (var meshSO in targets) { OrientationChanges.Mirror(CC.ActiveScene, meshSO, false); } if (bInteractive) { CC.ActiveScene.History.PushInteractionCheckpoint(); } }
/// <summary> /// Translate objects so that their bbox center is at x=0, y=0 /// </summary> public static void ResetCurrentPivots(bool bInteractive) { List <PrintMeshSO> targets = CC.ActiveScene.FindSceneObjectsOfType <PrintMeshSO>(true); if (targets.Count == 0) { targets.AddRange(CC.Objects.PrintMeshes); } if (targets.Count == 0) { return; } foreach (var meshSO in targets) { OrientationChanges.RecenterPivot(CC.ActiveScene, meshSO, PivotLocation.BaseCenter, false); } if (bInteractive) { CC.ActiveScene.History.PushInteractionCheckpoint(); } }