Beispiel #1
0
 public void RedoPosRotMoveTo(ProceduralObject obj)
 {
     if (type == StepType.position || type == StepType.moveTo)
     {
         obj.SetPosition(positions.Value);
     }
     if (type == StepType.rotation || type == StepType.moveTo)
     {
         obj.SetRotation(rotations.Value);
     }
 }
        public static void SetObjOrigin(ProceduralObject obj, Vertex[] buffer, Vector3 center, bool registerHistory)
        {
            if (registerHistory)
            {
                obj.historyEditionBuffer.InitializeNewStep(EditingStep.StepType.vertices, buffer);
            }
            var centerWorldSpace = VertexWorldPosition(center, obj);

            foreach (Vertex v in buffer)
            {
                v.Position -= center;
            }
            if (registerHistory)
            {
                obj.historyEditionBuffer.ConfirmNewStep(buffer);
                obj.historyEditionBuffer.InitializeNewStep(EditingStep.StepType.position, buffer);
            }
            obj.SetPosition(centerWorldSpace);
            if (registerHistory)
            {
                obj.historyEditionBuffer.ConfirmNewStep(buffer);
            }
        }
 public static void SnapToGround(this ProceduralObject obj)
 {
     obj.historyEditionBuffer.InitializeNewStep(EditingStep.StepType.position, null);
     obj.SetPosition(NearestGroundPointVertical(obj.m_position));
     obj.historyEditionBuffer.ConfirmNewStep(null);
 }