PathEngine home | previous: | next: |
Post process path smoothing.
Returns a new path based on a 'base path',
but with corners smoothed according to supplied parameters.
std::unique_ptr<iPath> generateCurvedPath_WithEndVector(const iShape& shape, iPath* basePath, const iCollisionContext* context, int32_t startVectorX, int32_t startVectorY, int32_t endVectorX, int32_t endVectorY, int32_t sectionLength, float turnRatio1, float turnRatio2) const |
shape | The collision shape to use for this query. | ||
basePath |
A straight line path from which to generate the curved path. A null pointer may be passed in to this argument (in which case the result will also be a null pointer). | ||
context |
The state of dynamic collision that will apply for this query. An empty context can be specified by passing nullptr for this argument. | ||
startVectorX |
X component of a start vector to incorporate into the curved path. Must be in the range -1500000 to 1500000. | ||
startVectorY |
Y component of a start vector to incorporate into the curved path. Must be in the range -1500000 to 1500000. | ||
endVectorX |
X component of an end vector to incorporate into the curved path. Must be in the range -1500000 to 1500000. | ||
endVectorY |
Y component of an end vector to incorporate into the curved path. Must be in the range -1500000 to 1500000. | ||
sectionLength | Desired minimum section length for the curved path. | ||
turnRatio1 | Desired maximum turn angle for a first pass, specified as a ratio. | ||
turnRatio2 | Desired maximum turn angle for a second pass, specified as a ratio. |
Setting both startVectorX and startVectorY to zero indicates no start vector.
Setting both endVectorX and endVectorY to zero indicates no end vector.
See
Collision is only checked for curved sections.
The sections already present in base_path are assumed to be non-colliding.
If no curved sections can be generated to smooth a given corner then the algorithm
falls back on the sections from the base path.
This way, the function is always guaranteed to succeed.
(But it is possible in pathological situations that the resulting path
is exactly the same as the path passed in.)
Path generateCurvedPath_WithEndVector(Shape shape, Path basePath, CollisionContext context, int startVectorX, int startVectorY, int endVectorX, int endVectorY, int sectionLength, float turnRatio1, float turnRatio2); |
Documentation for PathEngine release 6.04 - Copyright © 2002-2024 PathEngine | next: |