public Quaternion RotationAtDistance(float distance) { Line nextLine; DeltaLine deltaLine = CurrentDeltaLine(distance, out nextLine); if (!deltaLine.valid) { return(Quaternion.identity); } if (nextLine == null) { return(deltaLine.DeltaRotation()); } float normalizedDistance = deltaLine.deltaDistance / deltaLine.line.distance; Quaternion rot = Quaternion.Slerp(deltaLine.line.lookRotation, nextLine.lookRotation, normalizedDistance); return(rot); }
public Vector3 PositionAtDistance(float distance) { Line nextLine; DeltaLine deltaLine = CurrentDeltaLine(distance, out nextLine); if (!deltaLine.valid) { return(Vector3.zero); } if (distance <= 0.0f) { return(deltaLine.line.start); } if (distance >= this.Distance) { return(deltaLine.line.end); } return(deltaLine.DeltaPosition()); }