Make vector float constructors `explicit`

This commit is contained in:
Jack Andersen 2017-12-17 16:54:05 -10:00
parent 1535b3efcd
commit 9ab271cd04
5 changed files with 12 additions and 14 deletions

View File

@ -45,10 +45,12 @@ public:
CVector3f max;
// set default AABox to insane inverse min/max to allow for accumulation
inline CAABox() : min(1e16f), max(-1e16f) {}
CAABox() : CAABox(1e16f, -1e16f) {}
CAABox(const CVector3f& min, const CVector3f& max) : min(min), max(max) {}
CAABox(float min, float max) : min(CVector3f(min)), max(CVector3f(max)) {}
CAABox(float minX, float minY, float minZ, float maxX, float maxY, float maxZ)
: min(minX, minY, minZ), max(maxX, maxY, maxZ)
{

View File

@ -89,7 +89,7 @@ public:
}
#endif
CVector2f(float xy) { splat(xy); }
explicit CVector2f(float xy) { splat(xy); }
void assign(float x, float y)
{
v[0] = x;
@ -262,7 +262,7 @@ public:
{
float mag = magnitude();
mag = 1.f / mag;
*this *= mag;
*this *= CVector2f(mag);
}
inline CVector2f normalized() const

View File

@ -33,7 +33,7 @@ public:
}
#endif
CVector3d(double xyz) { splat(xyz); }
explicit CVector3d(double xyz) { splat(xyz); }
CVector3d(const CVector3f& vec)
{
@ -63,11 +63,7 @@ public:
CVector3f asCVector3f()
{
CVector3f ret;
ret.x = float(x);
ret.y = float(y);
ret.z = float(z);
return ret;
return CVector3f(float(x), float(y), float(z));
}
double magSquared() const

View File

@ -89,7 +89,7 @@ public:
CVector3f(const CVector3d& vec);
CVector3f(float xyz) { splat(xyz); }
explicit CVector3f(float xyz) { splat(xyz); }
void assign(float x, float y, float z)
{
v[0] = x;
@ -261,7 +261,7 @@ public:
{
float mag = magnitude();
mag = 1.f / mag;
*this *= mag;
*this *= CVector3f(mag);
}
inline CVector3f normalized() const
{
@ -354,7 +354,7 @@ public:
length = std::sqrt(length);
float scalar = newLength / length;
*this *= scalar;
*this *= CVector3f(scalar);
}
inline CVector3f scaledToLength(float newLength) const

View File

@ -78,7 +78,7 @@ public:
}
#endif
CVector4f(float xyzw) { splat(xyzw); }
explicit CVector4f(float xyzw) { splat(xyzw); }
void assign(float x, float y, float z, float w)
{
v[0] = x;
@ -299,7 +299,7 @@ public:
{
float mag = magnitude();
mag = 1.f / mag;
*this *= mag;
*this *= CVector4f(mag);
}
inline CVector4f normalized() const
{