private Segment GetSegmentNearPosition(Vector2 position)
{
float selectDistance = HandleUtility.GetHandleSize(position) * baseSelectDistance;
int minIndex = -1;
float minValue = float.MaxValue;
float distance = 0;
for(int i = 0; i < segments.Count; i++) {
distance = HandleUtility.DistancePointToLineSegment(position, segments[i].first.position, segments[i].second.position);
if(distance < minValue) {
minValue = distance;
minIndex = i;
}
}
if(minValue > selectDistance) return null;
if(minIndex < 0) return null;
segments[minIndex].index = minIndex;
return segments[minIndex];
}