protected override bool OnTryBeginModify() { if (!Owner.IsAllowScale()) { return(false); } Axes axes = GetAxesByMousePosition(); if (axes.TrueCount != 0) { modifyPosition = Owner.GetPosition(); Vector2 screenPosition; if (CameraSettings.ProjectToScreenCoordinates(modifyPosition, out screenPosition)) { startMouseOffset = Viewport.MousePosition - screenPosition; startMousePosition = Viewport.MousePosition; //modifyScale = new Vec3( 1, 1, 1 ); selectedAxes = axes; helpText = ""; initialObjectsTransform = new TransformOfObject[Owner.Objects.Count]; for (int n = 0; n < Owner.Objects.Count; n++) { TransformToolObject obj = Owner.Objects[n]; initialObjectsTransform[n] = new TransformOfObject(obj.Position, obj.Rotation, obj.Scale); } return(true); } } return(base.OnTryBeginModify()); }
public override void OnUpdateInitialObjectsTransform() { initialObjectsTransform = new TransformOfObject[Owner.Objects.Count]; for (int n = 0; n < Owner.Objects.Count; n++) { TransformToolObject obj = Owner.Objects[n]; initialObjectsTransform[n] = new TransformOfObject(obj.Position, obj.Rotation, obj.Scale); } }
protected override bool OnTryBeginModify() { if (!Owner.IsAllowRotate()) { return(false); } Vector2 screenLinePointInPixels; Radian screenLineAngle; Axis axis = GetAxisByMousePosition(out screenLinePointInPixels, out screenLineAngle); if (axis != Axis.None) { modifyPosition = Owner.GetPosition(); Vector2 screenPosition; if (CameraSettings.ProjectToScreenCoordinates(modifyPosition, out screenPosition)) { Vector2 viewportSize = Owner.ViewportControl.Viewport.SizeInPixels.ToVector2(); selectedAxis = axis; selectedScreenLinePointInPixels = screenLinePointInPixels; selectedScreenLineAngle = screenLineAngle; mouseStartPosition = Viewport.MousePosition; //mouseStartPositionInPixels = EngineApp.Instance.MousePosition * viewportSize; helpText = ""; initialObjectsTransform = new TransformOfObject[Owner.Objects.Count]; for (int n = 0; n < Owner.Objects.Count; n++) { TransformToolObject obj = Owner.Objects[n]; initialObjectsTransform[n] = new TransformOfObject(obj.Position, obj.Rotation, obj.Scale); } return(true); } } return(base.OnTryBeginModify()); }