19#ifndef DETOUROBSTACLEAVOIDANCE_H
20#define DETOUROBSTACLEAVOIDANCE_H
44 bool init(
const int maxSamples);
46 void addSample(
const float* vel,
const float ssize,
const float pen,
47 const float vpen,
const float vcpen,
const float spen,
const float tpen);
49 void normalizeSamples();
51 inline int getSampleCount()
const {
return m_nsamples; }
52 inline const float* getSampleVelocity(
const int i)
const {
return &m_vel[i*3]; }
53 inline float getSampleSize(
const int i)
const {
return m_ssize[i]; }
54 inline float getSamplePenalty(
const int i)
const {
return m_pen[i]; }
55 inline float getSampleDesiredVelocityPenalty(
const int i)
const {
return m_vpen[i]; }
56 inline float getSampleCurrentVelocityPenalty(
const int i)
const {
return m_vcpen[i]; }
57 inline float getSamplePreferredSidePenalty(
const int i)
const {
return m_spen[i]; }
58 inline float getSampleCollisionTimePenalty(
const int i)
const {
return m_tpen[i]; }
80static const int DT_MAX_PATTERN_DIVS = 32;
81static const int DT_MAX_PATTERN_RINGS = 4;
103 bool init(
const int maxCircles,
const int maxSegments);
107 void addCircle(
const float* pos,
const float rad,
108 const float* vel,
const float* dvel);
110 void addSegment(
const float* p,
const float* q);
112 int sampleVelocityGrid(
const float* pos,
const float rad,
const float vmax,
113 const float* vel,
const float* dvel,
float* nvel,
117 int sampleVelocityAdaptive(
const float* pos,
const float rad,
const float vmax,
118 const float* vel,
const float* dvel,
float* nvel,
122 inline int getObstacleCircleCount()
const {
return m_ncircles; }
123 const dtObstacleCircle* getObstacleCircle(
const int i) {
return &m_circles[i]; }
125 inline int getObstacleSegmentCount()
const {
return m_nsegments; }
126 const dtObstacleSegment* getObstacleSegment(
const int i) {
return &m_segments[i]; }
133 void prepare(
const float* pos,
const float* dvel);
135 float processSample(
const float* vcand,
const float cs,
136 const float* pos,
const float rad,
137 const float* vel,
const float* dvel,
138 const float minPenalty,
142 float m_invHorizTime;
Definition DetourObstacleAvoidance.h:39
Definition DetourObstacleAvoidance.h:98
Definition DetourObstacleAvoidance.h:84
unsigned char gridSize
grid
Definition DetourObstacleAvoidance.h:91
unsigned char adaptiveDepth
adaptive
Definition DetourObstacleAvoidance.h:94
unsigned char adaptiveDivs
adaptive
Definition DetourObstacleAvoidance.h:92
unsigned char adaptiveRings
adaptive
Definition DetourObstacleAvoidance.h:93
Definition DetourObstacleAvoidance.h:23
float np[3]
Use for side selection during sampling.
Definition DetourObstacleAvoidance.h:28
float p[3]
Position of the obstacle.
Definition DetourObstacleAvoidance.h:24
float dvel[3]
Velocity of the obstacle.
Definition DetourObstacleAvoidance.h:26
float vel[3]
Velocity of the obstacle.
Definition DetourObstacleAvoidance.h:25
float rad
Radius of the obstacle.
Definition DetourObstacleAvoidance.h:27
Definition DetourObstacleAvoidance.h:32
float q[3]
End points of the obstacle segment.
Definition DetourObstacleAvoidance.h:33