Elaztek Developer Hub
Blamite Game Engine - Strings  00453.06.08.26.0624.blamite
A library containing general purpose utilities and classes for use in multiple projects.
vector.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 
5 #ifdef STRINGS_EXPORTS
6 #define STRINGS_API __declspec(dllexport)
7 #else
8 #define STRINGS_API __declspec(dllimport)
9 #endif
10 
11 #define BV3_OGRE(vector3) Ogre::Vector3(vector3.x, vector3.y, vector3.z)
12 #define OGRE_BV3(vector3) BlamVector3(vector3.x, vector3.y, vector3.z)
13 #define BV2_OGRE(vector3) Ogre::Vector2(vector3.x, vector3.y)
14 #define OGRE_BV2(vector3) BlamVector2(vector3.x, vector3.y)
15 #define BV3_BX(vector3) bx::Vec3(vector3.x, vector3.y, vector3.z)
16 #define BX_BV3(vector3) BlamVector3(vector3.x, vector3.y, vector3.z)
17 
21 enum class BlamDirection
22 {
23  Forward,
24  Backward,
25  Left,
26  Right,
27  Up,
28  Down
29 };
30 
31 enum class BlamAxis
32 {
33  X,
34  Y,
35  Z,
36  XY,
37  YZ,
38  XZ,
39  ALL,
40  NONE
41 };
42 
47 {
48  float x = 0.0f;
49  float y = 0.0f;
50 
52 
53  BlamVector2(float _x, float _y);
54 
62  std::string ToString(int decimals = -1);
63 
71  float DotProduct(BlamVector2 other);
72 
79 
87  BlamVector2 operator-(const BlamVector2& vector);
88 
96  BlamVector2 operator+(const BlamVector2& vector);
97 
105  BlamVector2 operator+(const float& _float);
106 
114  BlamVector2 operator*(const BlamVector2& vector);
115 
123  BlamVector2 operator*(const float& _float);
124 };
125 
130 {
131  float x = 0.0f;
132  float y = 0.0f;
133  float z = 0.0f;
134 
139 
145  BlamVector3(BlamVector2 vec2);
146 
154  BlamVector3(float _x, float _y, float _z);
155 
161  //BlamVector3(bx::Vec3 vec3);
162 
169  BlamVector3 ConvertForBGFX();
170 
176  BlamVector3 ConvertDegreesToRadians();
177 
183  BlamVector3 ConvertRadiansToDegrees();
184 
192  bool Equals(BlamVector3 vector);
193 
201  std::string ToString(int decimals = -1);
202 
208  void Normalize();
209 
217  float DistanceTo(BlamVector3 other);
218 
227  BlamVector3 ToDirection(bool convert_to_radians = true);
228 
234  //bx::Vec3 ToBxVec3();
235 
243  BlamVector3 operator+(const BlamVector3& vector);
244 
252  BlamVector3 operator+(const float& _float);
253 
261  BlamVector3 operator-(const BlamVector3& vector);
262 
270  BlamVector3 operator*(const BlamVector3& vector);
271 
279  BlamVector3 operator*(const float& _float);
280 };
281 
287 {
288  float x = 0.0f;
289  float y = 0.0f;
290  float z = 0.0f;
291  float w = 0.0f;
292 
297 
303  BlamVector4(BlamVector3 vec3);
304 
310  BlamVector4(BlamVector2 vec2);
311 
320  BlamVector4(float _x, float _y, float _z, float _w);
321 
329  std::string ToString(int decimals = -1);
330 
338  BlamVector4 operator+(const BlamVector4& vector);
339 
347  BlamVector4 operator+(const float& _float);
348 
356  BlamVector4 operator*(const BlamVector4& vector);
357 
365  BlamVector4 operator*(const float& _float);
366 };
BlamAxis::Z
@ Z
BlamVector4::BlamVector4
BlamVector4()
Constructs a new BlamVector4.
Definition: vector.h:296
BlamVector4::operator*
BlamVector4 operator*(const BlamVector4 &vector)
Multiplies the values of two 4D vectors.
Definition: BlamVector4.cpp:65
BlamVector4::operator+
BlamVector4 operator+(const BlamVector4 &vector)
Combines the values of two 4D vectors.
Definition: BlamVector4.cpp:39
BlamVector4::ToString
std::string ToString(int decimals=-1)
Converts the vector to a string, with each value separated by commas.
Definition: BlamVector4.cpp:27
BlamVector3::ConvertDegreesToRadians
BlamVector3 ConvertDegreesToRadians()
Converts all coordinates in the vector from degrees to radians.
Definition: BlamVector3.cpp:43
BlamVector3::BlamVector3
BlamVector3()
Constructs a new BlamVector4.
Definition: vector.h:138
BlamVector4::w
float w
The W-coordinate of the 4D vector.
Definition: vector.h:291
BlamStrings::Utils::Math::FloatDegreesToRadians
STRINGS_API float FloatDegreesToRadians(float float_value)
Converts a float value from Degrees to Radians.
Definition: math.cpp:20
BlamDirection::Backward
@ Backward
Backward.
STRINGS_API
#define STRINGS_API
Definition: vector.h:8
BlamStrings::Utils::Math::FloatRadiansToDegrees
STRINGS_API float FloatRadiansToDegrees(float float_value)
Converts a float value from Radians to Degrees.
Definition: math.cpp:25
BlamDirection::Down
@ Down
Down.
BlamVector3::y
float y
The Y-coordinate of the 3D vector, representing horizontal Y (depth) position.
Definition: vector.h:132
BlamVector2::Normalize
BlamVector2 Normalize()
Normalizes the vector.
Definition: BlamVector2.cpp:26
BlamAxis::YZ
@ YZ
BlamVector3::x
float x
The X-coordinate of the 3D vector, representing horizontal X (width) position.
Definition: vector.h:131
BlamVector3
Structure representing a 3D vector.
Definition: vector.h:129
BlamVector3::operator+
BlamVector3 operator+(const BlamVector3 &vector)
Converts this vector to a bx::Vec3.
Definition: BlamVector3.cpp:134
BlamDirection::Up
@ Up
Up.
BlamVector2::ToString
std::string ToString(int decimals=-1)
Converts the vector to a string, with each value separated by commas.
Definition: BlamVector2.cpp:11
BlamVector4::y
float y
The Y-coordinate of the 4D vector.
Definition: vector.h:289
BlamDirection::Forward
@ Forward
Forward.
BlamVector3::ConvertRadiansToDegrees
BlamVector3 ConvertRadiansToDegrees()
Converts all coordinates in the vector from radians to degrees.
Definition: BlamVector3.cpp:55
BlamDirection::Left
@ Left
Left.
math.h
BlamVector3::ConvertForBGFX
BlamVector3 ConvertForBGFX()
Constructs a new BlamVector3 from an existing bx::Vec3.
Definition: BlamVector3.cpp:37
BlamVector2::DotProduct
float DotProduct(BlamVector2 other)
Calculates the dot product with another vector2.
Definition: BlamVector2.cpp:21
BlamVector3::z
float z
The Z-coordinate of the 3D vector, representing vertical position.
Definition: vector.h:133
BlamVector2::x
float x
The X-coordinate of the 2D vector, representing horizontal position.
Definition: vector.h:48
BlamVector3::operator-
BlamVector3 operator-(const BlamVector3 &vector)
Subtracts the values of two 3D vectors.
Definition: BlamVector3.cpp:158
BlamVector2::BlamVector2
BlamVector2()
Definition: vector.h:51
BlamStrings::Utils::Math::Normalize
STRINGS_API float Normalize(float value, float min, float max)
Normalizes a value between a minimum and maximum range.
Definition: math.cpp:67
BlamVector2::operator*
BlamVector2 operator*(const BlamVector2 &vector)
Multiplies the values of two 2D vectors.
Definition: BlamVector2.cpp:74
BlamVector4
Structure representing a 4D vector.
Definition: vector.h:286
BlamVector3::Equals
bool Equals(BlamVector3 vector)
Checks if this vector is equal to another.
Definition: BlamVector3.cpp:67
BlamVector2::operator-
BlamVector2 operator-(const BlamVector2 &vector)
Subtracts a vector from another vector.
Definition: BlamVector2.cpp:41
BlamAxis::NONE
@ NONE
BlamAxis::X
@ X
BlamStrings::Converters::FloatToString
STRINGS_API std::string FloatToString(float value, int max_decimals=-1)
Converts a floating-point number to a string.
Definition: converters.cpp:349
BlamVector2::operator+
BlamVector2 operator+(const BlamVector2 &vector)
Combines the values of two 2D vectors.
Definition: BlamVector2.cpp:52
BlamVector3::Normalize
void Normalize()
Normalizes the vector.
Definition: BlamVector3.cpp:87
BlamVector3::DistanceTo
float DistanceTo(BlamVector3 other)
Determines the distance between this vector and another.
Definition: BlamVector3.cpp:100
BlamAxis::ALL
@ ALL
BlamVector3::ToString
std::string ToString(int decimals=-1)
Converts the vector to a string, with each value separated by commas.
Definition: BlamVector3.cpp:26
BlamAxis::XZ
@ XZ
BlamDirection::Right
@ Right
Right.
BlamDirection
BlamDirection
Enumerator listing possible directions.
Definition: vector.h:21
BlamVector2::y
float y
The Y-coordinate of the 2D vector, representing vertical position.
Definition: vector.h:49
vector.h
BlamVector2
Structure representing a 2D vector.
Definition: vector.h:46
BlamAxis::XY
@ XY
converters.h
BlamVector3::ToDirection
BlamVector3 ToDirection(bool convert_to_radians=true)
Converts this vector to a direction vector.
Definition: BlamVector3.cpp:109
BlamVector4::x
float x
The X-coordinate of the 4D vector.
Definition: vector.h:288
BlamAxis::Y
@ Y
BlamAxis
BlamAxis
Definition: vector.h:31
BlamVector4::z
float z
The Z-coordinate of the 4D vector.
Definition: vector.h:290
BlamVector3::operator*
BlamVector3 operator*(const BlamVector3 &vector)
Multiplies the values of two 3D vectors.
Definition: BlamVector3.cpp:170