pandemonium_engine/modules/steering_ai/behaviors/gsai_avoid_collisions.h

36 lines
854 B
C++

#ifndef GSAI_AVOID_COLLISIONS_H
#define GSAI_AVOID_COLLISIONS_H
#include "core/object/reference.h"
#include "../gsai_group_behavior.h"
class GSAITargetAcceleration;
class GSAISteeringAgent;
class GSAIAvoidCollisions : public GSAIGroupBehavior {
GDCLASS(GSAIAvoidCollisions, GSAIGroupBehavior);
public:
void _calculate_steering(Ref<GSAITargetAcceleration> acceleration);
bool _report_neighbor(Ref<GSAISteeringAgent> neighbor);
GSAIAvoidCollisions();
~GSAIAvoidCollisions();
protected:
static void _bind_methods();
// Steers the agent to avoid obstacles in its path. Approximates obstacles as
// spheres.
// @category - Group behaviors
Ref<GSAISteeringAgent> _first_neighbor;
float _shortest_time;
float _first_minimum_separation;
float _first_distance;
Vector3 _first_relative_position;
Vector3 _first_relative_velocity;
};
#endif