12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using UnityEngine;
- namespace UnityEditor.U2D.Animation
- {
- internal enum SkeletonAction
- {
- None = 0,
- Select = 1 << 0,
- RotateBone = 1 << 2,
- MoveBone = 1 << 3,
- FreeMoveBone = 1 << 4,
- MoveEndPosition = 1 << 5,
- MoveJoint = 1 << 6,
- ChangeLength = 1 << 7,
- CreateBone = 1 << 8,
- SplitBone = 1 << 9,
- Remove = 1 << 10,
- }
- internal enum SkeletonMode
- {
- Disabled = SkeletonAction.None,
- Selection = SkeletonAction.Select,
- EditPose = Selection | SkeletonAction.RotateBone | SkeletonAction.MoveBone,
- EditJoints = Selection | SkeletonAction.FreeMoveBone | SkeletonAction.MoveEndPosition | SkeletonAction.MoveJoint | SkeletonAction.Remove,
- CreateBone = Selection | SkeletonAction.MoveJoint | SkeletonAction.Remove | SkeletonAction.CreateBone,
- SplitBone = Selection | SkeletonAction.MoveEndPosition | SkeletonAction.MoveJoint | SkeletonAction.Remove | SkeletonAction.SplitBone,
- }
- internal interface ISkeletonView
- {
- int InvalidID { get; set; }
- SkeletonMode mode { get; set; }
- int defaultControlID { get; set; }
- int hoveredBoneID { get; }
- int hoveredJointID { get; }
- int hoveredBodyID { get; }
- int hoveredTailID { get; }
- int hotBoneID { get; }
- void BeginLayout();
- void EndLayout();
- bool CanLayout();
- Vector3 GetMouseWorldPosition(Vector3 planeNormal, Vector3 planePosition);
- void LayoutBone(int id, Vector3 position, Vector3 endPosition, Vector3 forward, Vector3 up, Vector3 right, bool isChainEnd);
- bool DoSelectBone(out int id, out bool additive);
- bool DoRotateBone(Vector3 pivot, Vector3 normal, out float deltaAngle);
- bool DoMoveBone(out Vector3 deltaPosition);
- bool DoFreeMoveBone(out Vector3 deltaPosition);
- bool DoMoveJoint(out Vector3 deltaPosition);
- bool DoMoveEndPosition(out Vector3 endPosition);
- bool DoChangeLength(out Vector3 endPosition);
- bool DoCreateBoneStart(out Vector3 position);
- bool DoCreateBone(out Vector3 position);
- bool DoSplitBone(out int id, out Vector3 position);
- bool DoRemoveBone();
- bool DoCancelMultistepAction(bool force);
- bool IsActionActive(SkeletonAction action);
- bool IsActionHot(SkeletonAction action);
- bool IsActionTriggering(SkeletonAction action);
- bool IsActionFinishing(SkeletonAction action);
- bool IsRepainting();
- void DrawBone(Vector3 position, Vector3 right, Vector3 forward, float length, Color color, bool isChained, bool isSelected, bool isJointHovered, bool isTailHovered, bool isHot);
- void DrawBoneParentLink(Vector3 parentPosition, Vector3 position, Vector3 forward, Color color);
- void DrawBoneOutline(Vector3 position, Vector3 right, Vector3 forward, float length, Color color, float outlineScale);
- void DrawCursors(bool canBeActive);
- }
- }
|