public void DrawBone(Vector2 position, Vector2 endPosition, bool isSelected, bool isHovered, Color color) { color.a = boneOpacity; Color outlineColor = Color.black; outlineColor.a = boneOpacity * boneOpacity; if (isSelected || (isHovered && IsActionActive(BindPoseAction.SelectBone))) { outlineColor = Color.yellow; } Color nodeColor = Color.black; if (isHovered && IsActionActive(BindPoseAction.MoveBone) || isSelected && IsActionHot(BindPoseAction.MoveBone)) { nodeColor = Color.yellow; } nodeColor.a = boneOpacity; BoneDrawingUtility.DrawBoneOutline(position, endPosition, outlineColor); BoneDrawingUtility.DrawBoneBody(position, endPosition, color); BoneDrawingUtility.DrawBoneNodeOutline(position, color); BoneDrawingUtility.DrawBoneNode(position, nodeColor.AlphaMultiplied(0.5f)); }
public void DrawBone(Vector3 position, Vector3 right, Vector3 forward, float length, Color color, bool isChained, bool isSelected, bool isJointHovered, bool isTailHovered, bool isHot) { var endPosition = position + right * length; var rotation = Quaternion.LookRotation(forward, Vector3.Cross(right, forward)); var boneBodyColor = color; var boneJointColor = new Color(0f, 0f, 0f, 0.75f * color.a); var tailColor = new Color(0f, 0f, 0f, 0.75f * color.a); var hoveredColor = Handles.preselectionColor; var selectedColor = Handles.selectedColor; var drawRectCap = false; if (isJointHovered) { boneJointColor = hoveredColor; } if (isHot && (IsActionHot(SkeletonAction.MoveBone) || IsActionHot(SkeletonAction.MoveJoint))) { boneJointColor = selectedColor; } if (mode == SkeletonMode.EditPose || mode == SkeletonMode.CreateBone) { if (isJointHovered || isSelected) { drawRectCap = true; } } else if (mode == SkeletonMode.EditJoints || mode == SkeletonMode.SplitBone) { rotation = Quaternion.identity; drawRectCap = true; } if (drawRectCap) { Handles.RectangleHandleCap(0, position, rotation, BoneDrawingUtility.GetBoneRadius(position), EventType.Repaint); } BoneDrawingUtility.DrawBone(position, endPosition, forward, boneBodyColor); BoneDrawingUtility.DrawBoneNode(position, forward, boneJointColor); if (!isChained && (IsCapable(SkeletonAction.ChangeLength) || IsCapable(SkeletonAction.MoveEndPosition))) { if (isTailHovered) { tailColor = hoveredColor; } if (isHot && (IsActionHot(SkeletonAction.ChangeLength) || IsActionHot(SkeletonAction.MoveEndPosition))) { tailColor = selectedColor; } BoneDrawingUtility.DrawBoneNode(endPosition, forward, tailColor); } }
public void DrawTip(IBone bone) { if (Event.current == null || Event.current.type != EventType.Repaint) { return; } BoneDrawingUtility.DrawBoneNodeOutline(bone.tip, Styles.tipColor, GetScale() * 0.5f); }
public void DrawPreviewLinkFromBone(IBone bone) { if (Event.current == null || Event.current.type != EventType.Repaint) { return; } var mousePosition = GetMouseWorldPosition(); BoneDrawingUtility.DrawParentLink(mousePosition, bone.position, Styles.previewColor, GetScale()); }
public void DrawLinkToParent(IBone bone, bool selected) { if (Event.current == null || Event.current.type != EventType.Repaint) { return; } var pointingTo = bone.parent.position; BoneDrawingUtility.DrawParentLink(bone.position, pointingTo, selected ? Styles.selectedParentLinkColor : color, GetScale()); }
public void DrawPreviewTipFromTip(IBone bone) { if (Event.current == null || Event.current.type != EventType.Repaint) { return; } var mousePosition = GetMouseWorldPosition(); var scale = GetScale(bone.tip, mousePosition); BoneDrawingUtility.DrawBoneBody(bone.tip, mousePosition, Styles.previewColor, scale); BoneDrawingUtility.DrawBoneNodeOutline(bone.tip, Styles.previewColor, scale); }
public void DrawBone(IBone bone, bool selected) { if (Event.current == null || Event.current.type != EventType.Repaint) { return; } var scale = GetScale(bone.position, bone.tip); BoneDrawingUtility.DrawBoneNodeOutline(bone.position, selected ? Styles.selectedBoneColor : color, scale); BoneDrawingUtility.DrawBoneBody(bone.position, bone.tip, selected ? Styles.selectedBoneColor : color, scale); BoneDrawingUtility.DrawBoneNode(bone.position, selected ? Styles.selectedNodeColor : Styles.nodeColor, scale); }
public float GetBoneRadius() { return(BoneDrawingUtility.GetBoneRadius(GetScale())); }
public void DrawBoneOutline(Vector3 position, Vector3 right, Vector3 forward, float length, Color color, float outlineScale) { BoneDrawingUtility.DrawBoneOutline(position, position + right * length, forward, color, outlineScale); }
public void DrawBoneParentLink(Vector3 parentPosition, Vector3 position, Vector3 forward, Color color) { BoneDrawingUtility.DrawBone(position, parentPosition, forward, color); }