25#include <G3D/g3dmath.h>
72 if (std::fabs(dx) < 0.001f && std::fabs(dy) < 0.001f)
74 float angle = (float)
rand_norm()*
static_cast<float>(2 *
M_PI);
75 vcos = std::cos(angle);
76 vsin = std::sin(angle);
80 float dist = std::sqrt((dx*dx) + (dy*dy));
93 double sinVal = std::sin(rotation);
94 double cosVal = std::cos(rotation);
99 float rotX = float(center.
GetPositionX() + BoxDistX * cosVal - BoxDistY*sinVal);
100 float rotY = float(center.
GetPositionY() + BoxDistY * cosVal + BoxDistX*sinVal);
106 if ((std::fabs(dx) > xradius) ||
107 (std::fabs(dy) > yradius) ||
108 (std::fabs(dz) > zradius))
117 return IsInDist2d(center, radius) && std::abs(verticalDelta) <= height;
131 if (angle >
float(
M_PI))
132 angle -= 2.0f * float(
M_PI);
134 float lborder = -1 * (arc / border);
135 float rborder = (arc / border);
136 return ((angle >= lborder) && (angle <= rborder));
151 std::stringstream sstr;
163 mod = std::fmod(mod, 2.0f *
static_cast<float>(
M_PI));
164 mod = -mod + 2.0f *
static_cast<float>(
M_PI);
167 return std::fmod(o, 2.0f *
static_cast<float>(
M_PI));
213 buf >> x >> y >> z >> o;
226 std::stringstream sstr;
DBCStorage< MapEntry > sMapStore(MapEntryfmt)
ByteBuffer & operator>>(ByteBuffer &buf, Position::Streamer< Position::XY > const &streamer)
ByteBuffer & operator<<(ByteBuffer &buf, Position::ConstStreamer< Position::XY > const &streamer)
void appendPackXYZ(float x, float y, float z)
std::string GetDebugInfo() const
bool IsValidMapCoord(float c)
float GetExactDist2d(const float x, const float y) const
float GetRelativeAngle(float x, float y) const
std::string ToString() const
static float NormalizeOrientation(float o)
Position GetPositionWithOffset(Position const &offset) const
float GetPositionZ() const
bool HasInLine(Position const *pos, float objSize, float width) const
bool IsInDist2d(float x, float y, float dist) const
float GetOrientation() const
bool HasInArc(float arcangle, Position const *pos, float border=2.0f) const
bool IsPositionValid() const
bool IsWithinDoubleVerticalCylinder(Position const *center, float radius, float height) const
void GetSinCos(float x, float y, float &vsin, float &vcos) const
void SetOrientation(float orientation)
bool IsWithinBox(Position const ¢er, float xradius, float yradius, float zradius) const
bool operator==(Position const &a) const
float GetPositionX() const
void GetPositionOffsetTo(Position const &endPos, Position &retOffset) const
float GetPositionY() const
void RelocateOffset(Position const &offset)
void Relocate(float x, float y)