Skip to content

Commit

Permalink
Added explicit constructor for vectors
Browse files Browse the repository at this point in the history
  • Loading branch information
eduardodoria committed Jul 6, 2024
1 parent e217d16 commit 5a09a04
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 25 deletions.
4 changes: 2 additions & 2 deletions engine/core/math/Vector2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ Vector2::Vector2() : x(0), y(0){ }

Vector2::Vector2(const float fX, const float fY ): x( fX ), y( fY ){ }

Vector2::Vector2( const Vector2& v ): x( v.x ), y( v.y ){ }

Vector2::Vector2( const float scaler ): x( scaler), y( scaler ){ }

Vector2::Vector2( const float afCoordinate[2] ): x( afCoordinate[0] ),y( afCoordinate[1] ){ }
Expand All @@ -28,8 +30,6 @@ Vector2::Vector2( const int afCoordinate[2] ){

Vector2::Vector2( float* const r ): x( r[0] ), y( r[1] ){ }

Vector2::Vector2( const Vector2& v ): x( v.x ), y( v.y ){ }

Vector2::Vector2( const Vector3& vec3 ){
x = vec3.x;
y = vec3.y;
Expand Down
12 changes: 6 additions & 6 deletions engine/core/math/Vector2.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ namespace Supernova {

Vector2();
Vector2( const float fX, const float fY );
Vector2( const float scaler );
Vector2( const float afCoordinate[2] );
Vector2( const int afCoordinate[2] );
Vector2( float* const r );
Vector2( const Vector2& v );
Vector2( const Vector3& vec3 );
Vector2( const Vector4& vec4 );
explicit Vector2( const float scaler );
explicit Vector2( const float afCoordinate[2] );
explicit Vector2( const int afCoordinate[2] );
explicit Vector2( float* const r );
explicit Vector2( const Vector3& vec3 );
explicit Vector2( const Vector4& vec4 );

std::string toString() const;

Expand Down
8 changes: 5 additions & 3 deletions engine/core/math/Vector3.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,17 @@ Vector3::Vector3()

Vector3::Vector3( const float nx, const float ny, const float nz ) : x(nx), y(ny), z(nz) {}

Vector3::Vector3( const Vector3& v ) : x(v.x), y(v.y), z(v.z) {}

Vector3::Vector3( const float v[3] ) : x(v[0]), y(v[1]), z(v[2]) {}

Vector3::Vector3( int v[3] ): x((float)v[0]), y((float)v[1]), z((float)v[2]) {}
Vector3::Vector3( const int v[3] ): x((float)v[0]), y((float)v[1]), z((float)v[2]) {}

Vector3::Vector3( float* const v ) : x(v[0]), y(v[1]), z(v[2]) {}

Vector3::Vector3( const Vector2& vec2, const float nz ) : x(vec2.x), y(vec2.y), z(nz) {}
Vector3::Vector3( const float scaler ): x( scaler ), y( scaler ), z( scaler ){ }

Vector3::Vector3( const Vector3& v ) : x(v.x), y(v.y), z(v.z) {}
Vector3::Vector3( const Vector2& vec2, const float nz ) : x(vec2.x), y(vec2.y), z(nz) {}

Vector3::Vector3( const Vector4& vec4 ) : x(vec4.x), y(vec4.y), z(vec4.z) {}

Expand Down
11 changes: 6 additions & 5 deletions engine/core/math/Vector3.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,13 @@ namespace Supernova {

Vector3();
Vector3( const float nx, const float ny, const float nz );
Vector3( const float v[3] );
Vector3( int v[3] );
Vector3( float* const v );
Vector3( const Vector2& vec2, const float nz );
Vector3( const Vector3& v );
Vector3( const Vector4& vec4 );
explicit Vector3( const float v[3] );
explicit Vector3( const int v[3] );
explicit Vector3( float* const v );
explicit Vector3( const float scaler );
explicit Vector3( const Vector2& vec2, const float nz );
explicit Vector3( const Vector4& vec4 );

std::string toString() const;

Expand Down
4 changes: 2 additions & 2 deletions engine/core/math/Vector4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ Vector4::Vector4() : x(0), y(0), z(0), w(0){ }

Vector4::Vector4( const float fX, const float fY, const float fZ, const float fW ): x( fX ), y( fY ), z( fZ ), w( fW){ }

Vector4::Vector4( const Vector4& rhs ): x(rhs.x), y(rhs.y), z(rhs.z), w(rhs.w){ }

Vector4::Vector4( const float afCoordinate[4] ): x( afCoordinate[0] ),y( afCoordinate[1] ),z( afCoordinate[2] ),w( afCoordinate[3] ){ }

Vector4::Vector4( const int afCoordinate[4] ){
Expand All @@ -34,8 +36,6 @@ Vector4::Vector4( const Vector2& rhs, const float fZ, const float fW ): x(rhs.x)

Vector4::Vector4( const Vector3& rhs, const float fW ): x(rhs.x), y(rhs.y), z(rhs.z), w(fW){ }

Vector4::Vector4( const Vector4& rhs ): x(rhs.x), y(rhs.y), z(rhs.z), w(rhs.w){ }

std::string Vector4::toString() const{
return "Vector4(" + std::to_string(x) + ", " + std::to_string(y) + ", " + std::to_string(z) + ", " + std::to_string(w) + ")";
}
Expand Down
13 changes: 6 additions & 7 deletions engine/core/math/Vector4.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,14 @@ namespace Supernova {
static const Vector4 UNIT_SCALE;

Vector4();

Vector4( const float fX, const float fY, const float fZ, const float fW );
Vector4( const float afCoordinate[4] );
Vector4( const int afCoordinate[4] );
Vector4( float* const r );
Vector4( const float scaler );
Vector4( const Vector2& rhs, const float fZ, const float fW );
Vector4( const Vector3& rhs, const float fW );
Vector4( const Vector4& rhs );
explicit Vector4( const float afCoordinate[4] );
explicit Vector4( const int afCoordinate[4] );
explicit Vector4( float* const r );
explicit Vector4( const float scaler );
explicit Vector4( const Vector2& rhs, const float fZ, const float fW );
explicit Vector4( const Vector3& rhs, const float fW );

std::string toString() const;

Expand Down

0 comments on commit 5a09a04

Please sign in to comment.