diff options
author | Sergeanur <s.anureev@yandex.ua> | 2020-06-04 03:32:49 +0200 |
---|---|---|
committer | Sergeanur <s.anureev@yandex.ua> | 2020-06-04 03:32:49 +0200 |
commit | 07d336ddf01bd7f95cca22c85daa8c8cf1c87a5c (patch) | |
tree | d49a72b048fb98b89ced48689d53caa0782ecebd /src/core | |
parent | fixed CPed::AddInCarAnims (diff) | |
parent | Restore original logic of CPed::WanderRange (diff) | |
download | re3-07d336ddf01bd7f95cca22c85daa8c8cf1c87a5c.tar re3-07d336ddf01bd7f95cca22c85daa8c8cf1c87a5c.tar.gz re3-07d336ddf01bd7f95cca22c85daa8c8cf1c87a5c.tar.bz2 re3-07d336ddf01bd7f95cca22c85daa8c8cf1c87a5c.tar.lz re3-07d336ddf01bd7f95cca22c85daa8c8cf1c87a5c.tar.xz re3-07d336ddf01bd7f95cca22c85daa8c8cf1c87a5c.tar.zst re3-07d336ddf01bd7f95cca22c85daa8c8cf1c87a5c.zip |
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/Range2D.cpp | 28 | ||||
-rw-r--r-- | src/core/Range2D.h | 11 | ||||
-rw-r--r-- | src/core/Range3D.cpp | 30 | ||||
-rw-r--r-- | src/core/Range3D.h | 11 |
4 files changed, 80 insertions, 0 deletions
diff --git a/src/core/Range2D.cpp b/src/core/Range2D.cpp new file mode 100644 index 00000000..33eafd0e --- /dev/null +++ b/src/core/Range2D.cpp @@ -0,0 +1,28 @@ +#include "common.h" +#include "Range2D.h" +#include "General.h" + +CRange2D::CRange2D(CVector2D _min, CVector2D _max) : min(_min), max(_max) {} + +bool +CRange2D::IsInRange(CVector2D vec) +{ + return min.x < vec.x && max.x > vec.x && min.y < vec.y && max.y > vec.y; +} + +void +CRange2D::DebugShowRange(float, int) +{ +} + +CVector2D +CRange2D::GetRandomPointInRange() +{ + int distX = Abs(max.x - min.x); + int distY = Abs(max.y - min.y); + + float outX = CGeneral::GetRandomNumber() % distX + min.x; + float outY = CGeneral::GetRandomNumber() % distY + min.y; + + return CVector2D(outX, outY); +} diff --git a/src/core/Range2D.h b/src/core/Range2D.h new file mode 100644 index 00000000..f239e7de --- /dev/null +++ b/src/core/Range2D.h @@ -0,0 +1,11 @@ +#pragma once + +class CRange2D +{ + CVector2D min, max; +public: + CRange2D(CVector2D _min, CVector2D _max); + bool IsInRange(CVector2D vec); + void DebugShowRange(float, int); + CVector2D GetRandomPointInRange(); +};
\ No newline at end of file diff --git a/src/core/Range3D.cpp b/src/core/Range3D.cpp new file mode 100644 index 00000000..7fa28d67 --- /dev/null +++ b/src/core/Range3D.cpp @@ -0,0 +1,30 @@ +#include "common.h" +#include "Range3D.h" +#include "General.h" + +CRange3D::CRange3D(CVector _min, CVector _max) : min(_min), max(_max) {} + +bool +CRange3D::IsInRange(CVector vec) +{ + return min.x < vec.x && max.x > vec.x && min.y < vec.y && max.y > vec.y && min.z < vec.z && max.z > vec.z; +} + +void +CRange3D::DebugShowRange(float, int) +{ +} + +CVector +CRange3D::GetRandomPointInRange() +{ + int distX = Abs(max.x - min.x); + int distY = Abs(max.y - min.y); + int distZ = Abs(max.z - min.z); + + float outX = CGeneral::GetRandomNumber() % distX + min.x; + float outY = CGeneral::GetRandomNumber() % distY + min.y; + float outZ = CGeneral::GetRandomNumber() % distZ + min.z; + + return CVector(outX, outY, outZ); +} diff --git a/src/core/Range3D.h b/src/core/Range3D.h new file mode 100644 index 00000000..f42b523b --- /dev/null +++ b/src/core/Range3D.h @@ -0,0 +1,11 @@ +#pragma once + +class CRange3D +{ + CVector min, max; +public: + CRange3D(CVector _min, CVector _max); + bool IsInRange(CVector vec); + void DebugShowRange(float, int); + CVector GetRandomPointInRange(); +};
\ No newline at end of file |