Пример #1
0
        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();
        }
Пример #2
0
        /// <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();
            }
        }
Пример #3
0
        /// <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();
            }
        }
Пример #4
0
        /// <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();
            }
        }