Class used to compute a CircleArcSpline in a Channel.
|
void | ComputeOptimalSpline (const StringPulledBubbleList &stringPulledBubbleList, RadiusProfileCircleArcSplineComputerOutput &output, const RadiusProfile &radiusProfile) |
|
CircleArcSplineComputationResult | ConvertStringPulledBubbleListIntoTurnList (const StringPulledBubbleList &stringPulledBubbleList, TurnList &turnList) |
|
CircleArcSplineComputationResult | AdjustTurnListToRadiusProfile (const RadiusProfile &radiusProfile, TurnList &turnList, KyUInt32 &warningFlags) |
|
CircleArcSplineComputationResult | ConvertTurnListIntoCircleArcSpline (const TurnList &turnList, CircleArcSpline &m_circleArcSpline, KyUInt32 &warningFlags) |
|
NextChannelTurnRangeSearchResult | GetNextChannelTurnRange (const Channel *channel, KyUInt32 currentIdx, KyUInt32 lastIdx, KyUInt32 &nextTurnStartIdx, KyUInt32 &nextTurnEndIdx) |
|
KyResult | UpdateBubbleMaxRadius (const Vec3f ¢er, const Vec3f &constrainingPosition, const Vec3f &oppositeCorner, KyFloat32 &maxBubbleRadius) const |
|
KyResult | CapBubblesRadiiAccordinglyToStartAndEndPositions (const Channel *channel, KyUInt32 gateIdx, KyFloat32 &leftCornerMaxRadius, KyFloat32 &rightCornerMaxRadius) const |
|
void | AddCornerBubble (const Vec3f &channelCorner, KyFloat32 BubbleRadius, RotationDirection rotationDirection, BubbleArray &bubbleArray) |
|
KyResult | AddIntermediaryGateBubbles (const Channel *channel, KyUInt32 gateIdx, BubbleArray &bubbleArray) |
|
KyResult | AddNextChannelTurnBubbles (const Channel *channel, KyUInt32 nextTurnStartIdx, KyUInt32 nextTurnEndIdx, BubbleArray &bubbleArray) |
|
void | EnsureBubbleArrayIsStringPullable (BubbleArray &bubbleArray) |
|
void | AdjustBubbleRadiusRelativelyToNearbyBubble (const Bubble *nearbyBubble, Bubble &bubble) |
|
void | EnsureBubbleArrayIsStringPullable_ForwardPass (BubbleArray &bubbleArray, const KyUInt32 firstCornerBubbleIdx, const KyUInt32 lastCornerBubbleIdx) |
|
void | EnsureBubbleArrayIsStringPullable_BackwardPass (BubbleArray &bubbleArray, const KyUInt32 firstCornerBubbleIdx, const KyUInt32 lastCornerBubbleIdx) |
|
void | ComputeInitialTurnsForStartAndEndConstraints (TurnList &turnList, KyFloat32 startRadius, KyFloat32 endRadius, CircleArcSplineComputationResult &result, KyUInt32 &warningFlags) |
|
bool | AdjustFirstTurnToStartConstraintAndThisRadius (TurnList &turnList, const RadiusProfile &radiusProfile, KyUInt32 radiusIdx, CircleArcSplineComputationResult &result, KyUInt32 &warningFlags) |
|
bool | AdjustLastTurnToEndConstraintAndThisRadius (TurnList &turnList, const RadiusProfile &radiusProfile, KyUInt32 radiusIdx, CircleArcSplineComputationResult &result, KyUInt32 &warningFlags) |
|
ChangeTurnBubbleResult | ChangeTurnBubble (TurnList &turnList, TurnList::Iterator turnIt, const Bubble &candidate, const RadiusProfile &radiusProfile, KyUInt32 radiusIndexInProfile, CircleArcSplineComputationResult &result, KyUInt32 &warningFlags) |
|
KyResult | FindNewPrevTurn (TurnList &turnList, const TurnList::Iterator &turnIt, const CircleArcSplineTurn &curTurn, const Bubble &turnBubbleCdt, const RotationDirection rotDir, ScopedDisplayList *displayListPtr, TurnList::Iterator &prevTurnIt, TurnListEdge &incomingEdge, const RadiusProfile &radiusProfile, KyUInt32 radiusIndexInProfile, Bubble &newStartBubble, KyUInt32 &newStartBubbleRadiusIndexInProfile) |
|
KyResult | FindNewNextTurn (TurnList &turnList, const TurnList::Iterator &turnIt, const CircleArcSplineTurn &curTurn, const Bubble &turnBubbleCdt, const TurnListEdge &incomingEdge, const RotationDirection rotDir, ScopedDisplayList *displayListPtr, TurnList::Iterator &nextTurnIt, TurnListEdge &outgoingEdge, const RadiusProfile &radiusProfile, KyUInt32 radiusIndexInProfile, Bubble &newEndBubble, KyUInt32 &newEndBubbleRadiusIndexInProfile) |
|
KyResult | TryFirstTurnWithRelaxedStartConstraint (Bubble &newStartBubble, KyUInt32 &newStartBubbleRadiusIndexInProfile, const CircleArcSplineTurn &curTurn, StringPulledEdge &edge, const Bubble &turnBubbleCdt, const RotationDirection rotDir, ScopedDisplayList *displayListPtr, TurnListEdge &incomingEdge, TurnList::Iterator &prevTurnIt, TurnList::Iterator prevTurnCdtIt) |
|
KyResult | TryLastTurnCandidateWithRelaxedEndConstraint (Bubble &newEndBubble, KyUInt32 &newEndBubbleRadiusIndexInProfile, const CircleArcSplineTurn &curTurn, StringPulledEdge &edge, const Bubble &turnBubbleCdt, const RotationDirection rotDir, ScopedDisplayList *displayListPtr, const TurnListEdge &incomingEdge, TurnListEdge &outgoingEdge, TurnList::Iterator &nextTurnIt, TurnList::Iterator nextTurnCdtIt) |
|
NeighborTurnValidationResult | ValidatePrevTurnCandidate (const CircleArcSplineTurn &curTurn, const Bubble &turnBubbleCdt, const CircleArcSplineTurn &prevTurnCdtTurn, const RotationDirection rotDir, ScopedDisplayList *displayListPtr, TurnListEdge &incomingEdge, KyFloat32 &skippedTurnAngleRadSum, NeighborTurnArcValidationMode neighborTurnArcValidationMode) |
|
NeighborTurnValidationResult | ValidateNextTurnCandidate (const CircleArcSplineTurn &curTurn, const Bubble &turnBubbleCdt, const CircleArcSplineTurn &nextTurnCdtTurn, const RotationDirection rotDir, ScopedDisplayList *displayListPtr, const TurnListEdge &incomingEdge, TurnListEdge &outgoingEdge, KyFloat32 &skippedTurnAngleRadSum, NeighborTurnArcValidationMode neighborTurnArcValidationMode) |
|
bool | DoesSegmentRespectDistanceToChannelBorder (const Channel *channel, const Vec3f &from, KyUInt32 fromSectionIdx, const Vec3f &to, KyUInt32 &toSectionIdx) const |
|
bool | DoesCircleArcRespectDistanceToChannelBorder (const Channel *channel, const Bubble &circleArcBubble, const Vec3f &from, KyUInt32 fromSectionIdx, const Vec3f &to, KyUInt32 toSectionIdx) const |
|