Elaztek Developer Hub
Blamite Game Engine - Strings  00449.01.12.26.0555.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 
19 enum class BlamDirection
20 {
21  Forward,
22  Backward,
23  Left,
24  Right,
25  Up,
26  Down
27 };
28 
29 enum class BlamAxis
30 {
31  X,
32  Y,
33  Z,
34  XY,
35  YZ,
36  XZ,
37  ALL,
38  NONE
39 };
40 
45 {
46  float x = 0.0f;
47  float y = 0.0f;
48 
50 
51  BlamVector2(float _x, float _y);
52 
60  std::string ToString(int decimals = -1);
61 
69  BlamVector2 operator-(const BlamVector2& vector);
70 
78  BlamVector2 operator+(const BlamVector2& vector);
79 
87  BlamVector2 operator+(const float& _float);
88 
96  BlamVector2 operator*(const BlamVector2& vector);
97 
105  BlamVector2 operator*(const float& _float);
106 };
107 
112 {
113  float x = 0.0f;
114  float y = 0.0f;
115  float z = 0.0f;
116 
121 
127  BlamVector3(BlamVector2 vec2);
128 
136  BlamVector3(float _x, float _y, float _z);
137 
144  BlamVector3 ConvertForBGFX();
145 
151  BlamVector3 ConvertDegreesToRadians();
152 
158  BlamVector3 ConvertRadiansToDegrees();
159 
167  bool Equals(BlamVector3 vector);
168 
176  std::string ToString(int decimals = -1);
177 
181  void Normalize();
182 
190  BlamVector3 operator+(const BlamVector3& vector);
191 
199  BlamVector3 operator+(const float& _float);
200 
208  BlamVector3 operator-(const BlamVector3& vector);
209 
217  BlamVector3 operator*(const BlamVector3& vector);
218 
226  BlamVector3 operator*(const float& _float);
227 };
228 
234 {
235  float x = 0.0f;
236  float y = 0.0f;
237  float z = 0.0f;
238  float w = 0.0f;
239 
244 
250  BlamVector4(BlamVector3 vec3);
251 
257  BlamVector4(BlamVector2 vec2);
258 
267  BlamVector4(float _x, float _y, float _z, float _w);
268 
276  std::string ToString(int decimals = -1);
277 
285  BlamVector4 operator+(const BlamVector4& vector);
286 
294  BlamVector4 operator+(const float& _float);
295 
303  BlamVector4 operator*(const BlamVector4& vector);
304 
312  BlamVector4 operator*(const float& _float);
313 };
BlamAxis::Z
@ Z
BlamVector4::BlamVector4
BlamVector4()
Constructs a new BlamVector4.
Definition: vector.h:243
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:36
BlamVector3::BlamVector3
BlamVector3()
Constructs a new BlamVector4.
Definition: vector.h:120
BlamVector4::w
float w
The W-coordinate of the 4D vector.
Definition: vector.h:238
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:114
BlamAxis::YZ
@ YZ
BlamVector3::x
float x
The X-coordinate of the 3D vector, representing horizontal X (width) position.
Definition: vector.h:113
BlamVector3
Structure representing a 3D vector.
Definition: vector.h:111
BlamVector3::operator+
BlamVector3 operator+(const BlamVector3 &vector)
Combines the values of two 3D vectors.
Definition: BlamVector3.cpp:93
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:236
BlamDirection::Forward
@ Forward
Forward.
BlamVector3::ConvertRadiansToDegrees
BlamVector3 ConvertRadiansToDegrees()
Converts all coordinates in the vector from radians to degrees.
Definition: BlamVector3.cpp:48
BlamDirection::Left
@ Left
Left.
math.h
BlamVector3::ConvertForBGFX
BlamVector3 ConvertForBGFX()
Converts the X/Y/Z coordinate directions from Blamite's coordinate system to the internal coordinate ...
Definition: BlamVector3.cpp:30
BlamVector3::z
float z
The Z-coordinate of the 3D vector, representing vertical position.
Definition: vector.h:115
BlamVector2::x
float x
The X-coordinate of the 2D vector, representing horizontal position.
Definition: vector.h:46
BlamVector3::operator-
BlamVector3 operator-(const BlamVector3 &vector)
Subtracts the values of two 3D vectors.
Definition: BlamVector3.cpp:117
BlamVector2::BlamVector2
BlamVector2()
Definition: vector.h:49
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:54
BlamVector4
Structure representing a 4D vector.
Definition: vector.h:233
BlamVector3::Equals
bool Equals(BlamVector3 vector)
Checks if this vector is equal to another.
Definition: BlamVector3.cpp:60
BlamVector2::operator-
BlamVector2 operator-(const BlamVector2 &vector)
Subtracts a vector from another vector.
Definition: BlamVector2.cpp:21
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:32
BlamVector3::Normalize
void Normalize()
Normalizes the vector.
Definition: BlamVector3.cpp:80
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:19
BlamAxis::XZ
@ XZ
BlamDirection::Right
@ Right
Right.
BlamDirection
BlamDirection
Enumerator listing possible directions.
Definition: vector.h:19
BlamVector2::y
float y
The Y-coordinate of the 2D vector, representing vertical position.
Definition: vector.h:47
vector.h
BlamVector2
Structure representing a 2D vector.
Definition: vector.h:44
BlamAxis::XY
@ XY
converters.h
BlamVector4::x
float x
The X-coordinate of the 4D vector.
Definition: vector.h:235
BlamAxis::Y
@ Y
BlamAxis
BlamAxis
Definition: vector.h:29
BlamVector4::z
float z
The Z-coordinate of the 4D vector.
Definition: vector.h:237
BlamVector3::operator*
BlamVector3 operator*(const BlamVector3 &vector)
Multiplies the values of two 3D vectors.
Definition: BlamVector3.cpp:129