public override void OnMouseDrag(Event e) { SegmentEnd.RawSegmentBezier.Trajectory.GetHitPosition(Tool.Ray, out _, out var t, out _); SegmentEnd.Offset = SegmentEnd.RawSegmentBezier.Distance(0f, t).RoundToNearest(RoundTo); SegmentEnd.SetRotate(CachedRotate, true); SegmentEnd.UpdateNode(); Tool.Panel.RefreshPanel(); }
public override void OnMouseDrag(Event e) { var quaternion = Quaternion.FromToRotation(BeginDirection, CurrentDirection); var angle = (BeginRotate + quaternion.eulerAngles.y).RoundToNearest(RoundTo) % 360f; SegmentEnd.RotateAngle = angle > 180f ? angle - 360f : angle; SegmentEnd.UpdateNode(); Tool.Panel.RefreshPanel(); }
public override void OnMouseDrag(Event e) { SegmentEnd[Corner].RawBezier.Trajectory.GetHitPosition(Tool.Ray, out _, out var t, out _); var offset = SegmentEnd[Corner].RawBezier.Distance(0f, t).RoundToNearest(RoundTo); if (Corner == SideType.Left) { SegmentEnd.LeftOffset = offset; } else { SegmentEnd.RightOffset = offset; } SegmentEnd.UpdateNode(); Tool.Panel.RefreshPanel(); }