namespace Dreamteck.Splines.Editor { using UnityEngine; using UnityEditor; using System.Collections; using System.Collections.Generic; public class PointScaleModule : PointTransformModule { public bool scaleSize = true; public bool scaleTangents = true; public PointScaleModule(SplineEditor editor) : base(editor) { } public override GUIContent GetIconOff() { return EditorGUIUtility.IconContent("ScaleTool"); } public override GUIContent GetIconOn() { return EditorGUIUtility.IconContent("ScaleTool On"); } public override void LoadState() { base.LoadState(); scaleSize = LoadBool("scaleSize"); scaleTangents = LoadBool("scaleTangents"); } public override void SaveState() { base.SaveState(); SaveBool("scaleSize", scaleSize); SaveBool("scaleTangents", scaleTangents); } protected override void OnDrawInspector() { editSpace = (EditSpace)EditorGUILayout.EnumPopup("Edit Space", editSpace); scaleSize = EditorGUILayout.Toggle("Scale Sizes", scaleSize); scaleTangents = EditorGUILayout.Toggle("Scale Tangents", scaleTangents); } protected override void OnDrawScene() { if (selectedPoints.Count == 0) return; if (eventModule.mouseLeftUp) { Reset(); } Vector3 lastScale = scale; Vector3 c = selectionCenter; scale = Handles.ScaleHandle(scale, c, rotation, HandleUtility.GetHandleSize(c)); if (lastScale != scale) { PrepareTransform(); for (int i = 0; i < selectedPoints.Count; i++) { var point = localPoints[selectedPoints[i]]; TransformPoint(ref point, false, scaleTangents, scaleSize); points[selectedPoints[i]].SetPoint(point); } RegisterChange(); SetDirty(); } } } }