mirror of
https://github.com/MartinOpat/cuda-based-raytrace.git
synced 2025-06-07 02:13:10 +02:00
Added support for float multiplication of vec3
This commit is contained in:
@@ -20,6 +20,12 @@ struct Vec3 { // TODO: Maybe make this into a class ... maybe
|
||||
|
||||
__host__ __device__ Vec3 operator*(double b) const { return Vec3::init(x * b, y * b, z * b); }
|
||||
__host__ __device__ Vec3& operator*=(double b) { x *= b; y *= b; z *= b; return *this; }
|
||||
__host__ __device__ Vec3 operator*(float b) const { return Vec3::init(x * b, y * b, z * b); }
|
||||
__host__ __device__ Vec3& operator*=(float b) { x *= b; y *= b; z *= b; return *this; }
|
||||
friend __host__ __device__ Vec3 operator*(float a, const Vec3& b) {
|
||||
return Vec3::init(a * b.x, a * b.y, a * b.z);
|
||||
}
|
||||
|
||||
|
||||
__host__ __device__ double dot(const Vec3& b) const { return x * b.x + y * b.y + z * b.z; }
|
||||
__host__ __device__ Vec3 cross(const Vec3& b) const { return Vec3::init(y * b.z - z * b.y, z * b.x - x * b.z, x * b.y - y * b.x); }
|
||||
|
||||
Reference in New Issue
Block a user