initial commit, 4.5 stable
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled
This commit is contained in:
110
thirdparty/rvo2/rvo2_2d/Definitions.h
vendored
Normal file
110
thirdparty/rvo2/rvo2_2d/Definitions.h
vendored
Normal file
@@ -0,0 +1,110 @@
|
||||
/*
|
||||
* Definitions.h
|
||||
* RVO2 Library
|
||||
*
|
||||
* Copyright 2008 University of North Carolina at Chapel Hill
|
||||
*
|
||||
* 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
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* Please send all bug reports to <geom@cs.unc.edu>.
|
||||
*
|
||||
* The authors may be contacted via:
|
||||
*
|
||||
* Jur van den Berg, Stephen J. Guy, Jamie Snape, Ming C. Lin, Dinesh Manocha
|
||||
* Dept. of Computer Science
|
||||
* 201 S. Columbia St.
|
||||
* Frederick P. Brooks, Jr. Computer Science Bldg.
|
||||
* Chapel Hill, N.C. 27599-3175
|
||||
* United States of America
|
||||
*
|
||||
* <http://gamma.cs.unc.edu/RVO2/>
|
||||
*/
|
||||
|
||||
#ifndef RVO2D_DEFINITIONS_H_
|
||||
#define RVO2D_DEFINITIONS_H_
|
||||
|
||||
/**
|
||||
* \file Definitions.h
|
||||
* \brief Contains functions and constants used in multiple classes.
|
||||
*/
|
||||
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <limits>
|
||||
#include <vector>
|
||||
|
||||
#include "Vector2.h"
|
||||
|
||||
/**
|
||||
* \brief A sufficiently small positive number.
|
||||
*/
|
||||
const float RVO_EPSILON = 0.00001f;
|
||||
|
||||
namespace RVO2D {
|
||||
class Agent2D;
|
||||
class Obstacle2D;
|
||||
class RVOSimulator2D;
|
||||
|
||||
/**
|
||||
* \brief Computes the squared distance from a line segment with the
|
||||
* specified endpoints to a specified point.
|
||||
* \param a The first endpoint of the line segment.
|
||||
* \param b The second endpoint of the line segment.
|
||||
* \param c The point to which the squared distance is to
|
||||
* be calculated.
|
||||
* \return The squared distance from the line segment to the point.
|
||||
*/
|
||||
inline float distSqPointLineSegment(const Vector2 &a, const Vector2 &b,
|
||||
const Vector2 &c)
|
||||
{
|
||||
const float r = ((c - a) * (b - a)) / absSq(b - a);
|
||||
|
||||
if (r < 0.0f) {
|
||||
return absSq(c - a);
|
||||
}
|
||||
else if (r > 1.0f) {
|
||||
return absSq(c - b);
|
||||
}
|
||||
else {
|
||||
return absSq(c - (a + r * (b - a)));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Computes the signed distance from a line connecting the
|
||||
* specified points to a specified point.
|
||||
* \param a The first point on the line.
|
||||
* \param b The second point on the line.
|
||||
* \param c The point to which the signed distance is to
|
||||
* be calculated.
|
||||
* \return Positive when the point c lies to the left of the line ab.
|
||||
*/
|
||||
inline float leftOf(const Vector2 &a, const Vector2 &b, const Vector2 &c)
|
||||
{
|
||||
return det(a - c, b - a);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Computes the square of a float.
|
||||
* \param a The float to be squared.
|
||||
* \return The square of the float.
|
||||
*/
|
||||
inline float sqr(float a)
|
||||
{
|
||||
return a * a;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* RVO2D_DEFINITIONS_H_ */
|
Reference in New Issue
Block a user