I suggest a binary search instead where any precision can be achieved depending on the number of iterations.įloat SplineUtils::GetApproxDistanceClosestToWorldLocation(FVector Pos_WS, const USplineComponent& Spline)Ĭonst auto TargetInputKey = Spline.FindInputKe圜losestToWorldLocation(Pos_WS) Ĭonst auto PointIdx = static_cast(TargetInputKey) Īuto LowDistBound_cm = Spline.GetDistanceAlongSplineAtSplinePoint(PointIdx) Īuto HighDistBound_cm = Spline.GetDistanceAlongSplineAtSplinePoint(PointIdx + 1) Īuto MiddleDistEstimate_cm = (LowDistBound_cm + HighDistBound_cm) * 0.5f Ĭonst auto& DistanceToInputMapping = įor (auto IterCount = 0 IterCount < 10 ++IterCount)Ĭonst auto MiddleInputKey = DistanceToInputMapping.Eval(MiddleDistEstimate_cm) All above answers assume spline segments are straight lines which can lead to meters of error on curved splines.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |