public static void Render(RenderManager.CameraInfo cameraInfo, AngleMeasurement angle) { if (angle.HideOverlay) return; var renderManager = RenderManager.instance; var centreAngle = Vector3.Angle(Vector3.right, angle.AngleNormal); if (Vector3.Cross(Vector3.right, angle.AngleNormal).y > 0f) centreAngle = -centreAngle; var arcs = BezierUtil.CreateArc(angle.Position, GetAngleDistance(angle.Flags), centreAngle - angle.AngleSize*.5f, centreAngle + angle.AngleSize*.5f); for (var i = 0; i < arcs.Count; i++) { var isFirst = i == 0; var isLast = i == arcs.Count - 1; renderManager.OverlayEffect.DrawBezier(cameraInfo, GetAngleColor(angle.Flags), arcs[i], .7f, 0f, 0f, angle.Position.y - 20f, angle.Position.y + 20f, false, true); } }
public static Vector3 GetLabelWorldPosition(AngleMeasurement angle) { return angle.Position + angle.AngleNormal*GetAngleDistance(angle.Flags); }