private float GetBoneRadiusForPicking(Vector3 position) { if (m_GUIWrapper.HasCurrentCamera()) { return(0.1f * m_GUIWrapper.GetHandleSize(position)); } return(kPickingRadius); }
public void SetupBase() { m_EventType = EventType.Layout; m_NearestDistance = kPickDistance; m_NearestControl = GetDefaultControlID(); m_CurrentControlID = 0; m_MousePosition = Vector2.zero; m_HotControl = 0; m_GUIWrapper = Substitute.For <IGUIWrapper>(); m_GUIWrapper.GetControlID(Arg.Any <int>(), Arg.Any <FocusType>()).Returns(x => GetControlID((int)x[0], (FocusType)x[1])); m_GUIWrapper.mousePosition.Returns(x => m_MousePosition); m_GUIWrapper.eventType.Returns(x => m_EventType); m_GUIWrapper.GUIToWorld(Arg.Any <Vector2>()).Returns(x => (Vector3)(Vector2)x[0]); m_GUIWrapper.GUIToWorld(Arg.Any <Vector2>(), Arg.Any <Vector3>(), Arg.Any <Vector3>()).Returns(x => (Vector3)(Vector2)x[0]); m_GUIWrapper.IsControlNearest(Arg.Any <int>()).Returns(x => (int)x[0] == nearestControl); m_GUIWrapper.IsControlHot(Arg.Any <int>()).Returns(x => (int)x[0] == m_HotControl); m_GUIWrapper.When(x => m_GUIWrapper.LayoutControl(Arg.Any <int>(), Arg.Any <float>())).Do(x => { if (m_EventType != EventType.Layout) { return; } int controlId = (int)x[0]; float distance = (float)x[1]; if (distance <= m_NearestDistance) { m_NearestDistance = distance; m_NearestControl = controlId; } }); m_GUIWrapper.DistanceToCircle(Arg.Any <Vector3>(), Arg.Any <float>()).Returns(x => { Vector2 center = (Vector3)x[0]; float radius = (float)x[1]; float dist = (center - m_MousePosition).magnitude; if (dist < radius) { return(0f); } return(dist - radius); }); m_GUIWrapper.DistanceToSegment(Arg.Any <Vector3>(), Arg.Any <Vector3>()).Returns(x => HandleUtility.DistancePointToLineSegment(m_MousePosition, (Vector3)x[0], (Vector3)x[1])); m_GUIWrapper.DistanceToSegmentClamp(Arg.Any <Vector3>(), Arg.Any <Vector3>()).Returns(x => MathUtility.DistanceToSegmentClamp(m_MousePosition, (Vector3)x[0], (Vector3)x[1])); Vector3 sliderPos; m_GUIWrapper.DoSlider(Arg.Any <int>(), Arg.Any <SliderData>(), out sliderPos).ReturnsForAnyArgs(x => (int)x[0] == nearestControl); m_GUIWrapper.GetHandleSize(Arg.Any <Vector3>()).ReturnsForAnyArgs(x => 1f); }
public float GetHandleSize(Vector3 position) { return(m_GUIWapper.GetHandleSize(position)); }