private Vector3 MapMeshPositionToCurve(Vector3 meshPosition, float xScale, out float t) { t = curve.DistanceToT(currentPosition + meshPosition.x * xScale); Vector3 toReturn = curve.GetPoint(t, false); toReturn += curve.GetNormal(t, false) * meshPosition.y; toReturn += curve.GetBiNormal(t, false) * meshPosition.z; return(toReturn); }
void DrawRuler() { float coveredDistance = rulerMarkerDistance; while (coveredDistance < line.CurveLength()) { float t = line.DistanceToT(coveredDistance); Vector3 lineMiddle = line.GetPoint(t); Vector3 biNormal = line.GetBiNormal(t); Handles.zTest = UnityEngine.Rendering.CompareFunction.LessEqual; Handles.color = Color.white; Handles.DrawLine(lineMiddle - biNormal * rulerMarkerLength, lineMiddle + biNormal * rulerMarkerLength); Handles.zTest = UnityEngine.Rendering.CompareFunction.Greater; Handles.color = Color.grey; Handles.DrawLine(lineMiddle - biNormal * rulerMarkerLength, lineMiddle + biNormal * rulerMarkerLength); coveredDistance += rulerMarkerDistance; Handles.zTest = UnityEngine.Rendering.CompareFunction.Always; } }