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); }