usually works. need to figure out what causes it to not to sometimes.
This commit is contained in:
@@ -362,28 +362,24 @@ public:
|
||||
std::abs(z - other.z) < epsilon;
|
||||
}
|
||||
|
||||
// Template friend operators to allow different scalar types
|
||||
// template<typename S>
|
||||
// friend Vec3<T> operator+(S scalar, const Vec3<T>& vec) {
|
||||
// return Vec3<T>(static_cast<T>(scalar + vec.x),
|
||||
// static_cast<T>(scalar + vec.y),
|
||||
// static_cast<T>(scalar + vec.z));
|
||||
// }
|
||||
friend Vec3<T> operator+(float scalar, const Vec3<T>& vec) {
|
||||
return Vec3<T>(static_cast<T>(scalar + vec.x),
|
||||
static_cast<T>(scalar + vec.y),
|
||||
static_cast<T>(scalar + vec.z));
|
||||
}
|
||||
|
||||
// template<typename S>
|
||||
// friend Vec3<T> operator-(S scalar, const Vec3<T>& vec) {
|
||||
// return Vec3<T>(static_cast<T>(scalar - static_cast<S>(vec.x)),
|
||||
// static_cast<T>(scalar - static_cast<S>(vec.y)),
|
||||
// static_cast<T>(scalar - static_cast<S>(vec.z)));
|
||||
// }
|
||||
friend Vec3<T> operator-(float scalar, const Vec3<T>& vec) {
|
||||
return Vec3<T>(static_cast<T>(scalar - vec.x),
|
||||
static_cast<T>(scalar - vec.y),
|
||||
static_cast<T>(scalar - vec.z));
|
||||
}
|
||||
|
||||
friend Vec3<T> operator*(float scalar, const Vec3<T>& vec) {
|
||||
return Vec3<T>(static_cast<T>(scalar * vec.x),
|
||||
static_cast<T>(scalar * vec.y),
|
||||
static_cast<T>(scalar * vec.z));
|
||||
}
|
||||
|
||||
// template<typename S>
|
||||
// friend Vec3<T> operator*(S scalar, const Vec3<T>& vec) {
|
||||
// return Vec3<T>(static_cast<T>(scalar * vec.x),
|
||||
// static_cast<T>(scalar * vec.y),
|
||||
// static_cast<T>(scalar * vec.z));
|
||||
// }
|
||||
//previously was commented because Vec3<S> was treated as friend S instead.
|
||||
friend Vec3<T> operator/(float scalar, const Vec3<T>& vec) {
|
||||
return Vec3<T>(static_cast<T>(scalar / vec.x),
|
||||
static_cast<T>(scalar / vec.y),
|
||||
|
||||
Reference in New Issue
Block a user