| 12345678910111213141516171819202122232425262728293031323334353637383940 | 
							- #pragma once
 
- struct Vector3f
 
- {
 
-     float x, y, z;
 
- };
 
- inline float VecDotProduct(const Vector3f& v1, const Vector3f& v2)
 
- {
 
-     return v1.x * v2.x + v1.y * v2.y + v1.z * v2.z;
 
- }
 
- inline float VecMagnitude(const Vector3f& v)
 
- {
 
-     return sqrtf(VecDotProduct(v, v));
 
- }
 
- inline Vector3f VecMake(float x, float y, float z)
 
- {
 
-     Vector3f v = {x, y, z};
 
-     return v;
 
- }
 
- inline Vector3f VecCrossProduct(const Vector3f& v1, const Vector3f& v2)
 
- {
 
-     return VecMake(
 
-         v1.y * v2.z - v1.z * v2.y,
 
-         v1.z * v2.x - v1.x * v2.z,
 
-         v1.x * v2.y - v1.y * v2.x);
 
- }
 
- inline Vector3f VecScale(float s, const Vector3f& v)
 
- {
 
-     return VecMake(s * v.x, s * v.y, s * v.z);
 
- }
 
- inline Vector3f VecNormalize(const Vector3f& v)
 
- {
 
-     return VecScale(1.0f / VecMagnitude(v), v);
 
- }
 
 
  |