Kaim::CircleArcSplineComputer Class Reference

Kaim::CircleArcSplineComputer Class Reference

#include <circlearcsplinecomputer.h>

Class Description

Class used to compute a CircleArcSpline in a Channel.

Last steps: computed for each RadiusProfile

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 &center, 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
 

to be removed

bool TestCircleArcCanGoWithSampling (const Bubble &circleArcBubble, const Vec3f &from, const Vec3f &to, const KyFloat32 circleRadius, KyUInt32 fromSectionIdx, const Channel *channel, KyUInt32 toSectionIdx) const
 

For internal use only

bool m_isInComputingSpline
 

The documentation for this class was generated from the following file: