summaryrefslogtreecommitdiffstats
path: root/thirdparty/rvo2/rvo2_3d/Agent3d.h
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/rvo2/rvo2_3d/Agent3d.h')
-rw-r--r--thirdparty/rvo2/rvo2_3d/Agent3d.h148
1 files changed, 83 insertions, 65 deletions
diff --git a/thirdparty/rvo2/rvo2_3d/Agent3d.h b/thirdparty/rvo2/rvo2_3d/Agent3d.h
index d99e3cac66..353d64ce82 100644
--- a/thirdparty/rvo2/rvo2_3d/Agent3d.h
+++ b/thirdparty/rvo2/rvo2_3d/Agent3d.h
@@ -1,14 +1,15 @@
/*
- * Agent.h
+ * Agent3d.h
* RVO2-3D Library
*
- * Copyright 2008 University of North Carolina at Chapel Hill
+ * SPDX-FileCopyrightText: 2008 University of North Carolina at Chapel Hill
+ * SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -27,80 +28,97 @@
* Chapel Hill, N.C. 27599-3175
* United States of America
*
- * <http://gamma.cs.unc.edu/RVO2/>
+ * <https://gamma.cs.unc.edu/RVO2/>
*/
-/**
- * \file Agent.h
- * \brief Contains the Agent class.
- */
#ifndef RVO3D_AGENT_H_
#define RVO3D_AGENT_H_
+/**
+ * @file Agent3d.h
+ * @brief Contains the Agent3D class.
+ */
+
#include <cstddef>
#include <cstdint>
#include <utility>
#include <vector>
-#include "RVOSimulator3d.h"
+#include "Plane.h"
#include "Vector3.h"
namespace RVO3D {
- /**
- * \brief Defines an agent in the simulation.
- */
- class Agent3D {
- public:
- /**
- * \brief Constructs an agent instance.
- * \param sim The simulator instance.
- */
- explicit Agent3D();
-
- /**
- * \brief Computes the neighbors of this agent.
- */
- void computeNeighbors(RVOSimulator3D *sim_);
-
- /**
- * \brief Computes the new velocity of this agent.
- */
- void computeNewVelocity(RVOSimulator3D *sim_);
-
- /**
- * \brief Inserts an agent neighbor into the set of neighbors of this agent.
- * \param agent A pointer to the agent to be inserted.
- * \param rangeSq The squared range around this agent.
- */
- void insertAgentNeighbor(const Agent3D *agent, float &rangeSq);
-
- /**
- * \brief Updates the three-dimensional position and three-dimensional velocity of this agent.
- */
- void update(RVOSimulator3D *sim_);
-
- Vector3 newVelocity_;
- Vector3 position_;
- Vector3 prefVelocity_;
- Vector3 velocity_;
- RVOSimulator3D *sim_;
- size_t id_;
- size_t maxNeighbors_;
- float maxSpeed_;
- float neighborDist_;
- float radius_;
- float timeHorizon_;
- float timeHorizonObst_;
- std::vector<std::pair<float, const Agent3D *> > agentNeighbors_;
- std::vector<Plane> orcaPlanes_;
- float height_ = 1.0;
- uint32_t avoidance_layers_ = 1;
- uint32_t avoidance_mask_ = 1;
- float avoidance_priority_ = 1.0;
-
- friend class KdTree3D;
- friend class RVOSimulator3D;
- };
-}
+class RVOSimulator3D;
+
+/**
+ * @brief Defines an agent in the simulation.
+ */
+class Agent3D {
+ public:
+ /**
+ * @brief Constructs an agent instance.
+ * @param[in] sim The simulator instance.
+ */
+ explicit Agent3D();
+
+ /**
+ * @brief Destroys this agent instance.
+ */
+ ~Agent3D();
+
+ /**
+ * @brief Computes the neighbors of this agent.
+ */
+ void computeNeighbors(RVOSimulator3D *sim_);
+
+ /**
+ * @brief Computes the new velocity of this agent.
+ */
+ void computeNewVelocity(RVOSimulator3D *sim_);
+
+ /**
+ * @brief Inserts an agent neighbor into the set of neighbors of this
+ * agent.
+ * @param[in] agent A pointer to the agent to be inserted.
+ * @param[in] rangeSq The squared range around this agent.
+ */
+ void insertAgentNeighbor(const Agent3D *agent,
+ float &rangeSq); /* NOLINT(runtime/references) */
+
+ /**
+ * @brief Updates the three-dimensional position and three-dimensional
+ * velocity of this agent.
+ */
+ void update(RVOSimulator3D *sim_);;
+
+ /* Not implemented. */
+ Agent3D(const Agent3D &other);
+
+ /* Not implemented. */
+ Agent3D &operator=(const Agent3D &other);
+
+ Vector3 newVelocity_;
+ Vector3 position_;
+ Vector3 prefVelocity_;
+ Vector3 velocity_;
+ RVOSimulator3D *sim_;
+ std::size_t id_;
+ std::size_t maxNeighbors_;
+ float maxSpeed_;
+ float neighborDist_;
+ float radius_;
+ float timeHorizon_;
+ float timeHorizonObst_;
+ std::vector<std::pair<float, const Agent3D *> > agentNeighbors_;
+ std::vector<Plane> orcaPlanes_;
+ float height_ = 1.0;
+ uint32_t avoidance_layers_ = 1;
+ uint32_t avoidance_mask_ = 1;
+ float avoidance_priority_ = 1.0;
+
+ friend class KdTree3D;
+ friend class RVOSimulator3D;
+};
+} /* namespace RVO3D */
#endif /* RVO3D_AGENT_H_ */