goat3d

diff libs/vmath/vector.h @ 28:9ba3e2fb8a33

modified vmath to work with vs2012, still memory corruptions in 3dsmax...
author John Tsiombikas <nuclear@member.fsf.org>
date Sun, 29 Sep 2013 08:46:19 +0300
parents 4deb0b12fe14
children
line diff
     1.1 --- a/libs/vmath/vector.h	Sun Sep 29 08:20:19 2013 +0300
     1.2 +++ b/libs/vmath/vector.h	Sun Sep 29 08:46:19 2013 +0300
     1.3 @@ -27,57 +27,57 @@
     1.4  #endif	/* __cplusplus */
     1.5  
     1.6  /* C 2D vector functions */
     1.7 -static inline vec2_t v2_cons(scalar_t x, scalar_t y);
     1.8 -static inline void v2_print(FILE *fp, vec2_t v);
     1.9 +static VMATH_INLINE vec2_t v2_cons(scalar_t x, scalar_t y);
    1.10 +static VMATH_INLINE void v2_print(FILE *fp, vec2_t v);
    1.11  
    1.12 -static inline vec2_t v2_add(vec2_t v1, vec2_t v2);
    1.13 -static inline vec2_t v2_sub(vec2_t v1, vec2_t v2);
    1.14 -static inline vec2_t v2_scale(vec2_t v, scalar_t s);
    1.15 -static inline scalar_t v2_dot(vec2_t v1, vec2_t v2);
    1.16 -static inline scalar_t v2_length(vec2_t v);
    1.17 -static inline scalar_t v2_length_sq(vec2_t v);
    1.18 -static inline vec2_t v2_normalize(vec2_t v);
    1.19 +static VMATH_INLINE vec2_t v2_add(vec2_t v1, vec2_t v2);
    1.20 +static VMATH_INLINE vec2_t v2_sub(vec2_t v1, vec2_t v2);
    1.21 +static VMATH_INLINE vec2_t v2_scale(vec2_t v, scalar_t s);
    1.22 +static VMATH_INLINE scalar_t v2_dot(vec2_t v1, vec2_t v2);
    1.23 +static VMATH_INLINE scalar_t v2_length(vec2_t v);
    1.24 +static VMATH_INLINE scalar_t v2_length_sq(vec2_t v);
    1.25 +static VMATH_INLINE vec2_t v2_normalize(vec2_t v);
    1.26  
    1.27 -static inline vec2_t v2_lerp(vec2_t v1, vec2_t v2, scalar_t t);
    1.28 +static VMATH_INLINE vec2_t v2_lerp(vec2_t v1, vec2_t v2, scalar_t t);
    1.29  
    1.30  /* C 3D vector functions */
    1.31 -static inline vec3_t v3_cons(scalar_t x, scalar_t y, scalar_t z);
    1.32 -static inline void v3_print(FILE *fp, vec3_t v);
    1.33 +static VMATH_INLINE vec3_t v3_cons(scalar_t x, scalar_t y, scalar_t z);
    1.34 +static VMATH_INLINE void v3_print(FILE *fp, vec3_t v);
    1.35  
    1.36 -static inline vec3_t v3_add(vec3_t v1, vec3_t v2);
    1.37 -static inline vec3_t v3_sub(vec3_t v1, vec3_t v2);
    1.38 -static inline vec3_t v3_neg(vec3_t v);
    1.39 -static inline vec3_t v3_mul(vec3_t v1, vec3_t v2);
    1.40 -static inline vec3_t v3_scale(vec3_t v1, scalar_t s);
    1.41 -static inline scalar_t v3_dot(vec3_t v1, vec3_t v2);
    1.42 -static inline vec3_t v3_cross(vec3_t v1, vec3_t v2);
    1.43 -static inline scalar_t v3_length(vec3_t v);
    1.44 -static inline scalar_t v3_length_sq(vec3_t v);
    1.45 -static inline vec3_t v3_normalize(vec3_t v);
    1.46 -static inline vec3_t v3_transform(vec3_t v, mat4_t m);
    1.47 +static VMATH_INLINE vec3_t v3_add(vec3_t v1, vec3_t v2);
    1.48 +static VMATH_INLINE vec3_t v3_sub(vec3_t v1, vec3_t v2);
    1.49 +static VMATH_INLINE vec3_t v3_neg(vec3_t v);
    1.50 +static VMATH_INLINE vec3_t v3_mul(vec3_t v1, vec3_t v2);
    1.51 +static VMATH_INLINE vec3_t v3_scale(vec3_t v1, scalar_t s);
    1.52 +static VMATH_INLINE scalar_t v3_dot(vec3_t v1, vec3_t v2);
    1.53 +static VMATH_INLINE vec3_t v3_cross(vec3_t v1, vec3_t v2);
    1.54 +static VMATH_INLINE scalar_t v3_length(vec3_t v);
    1.55 +static VMATH_INLINE scalar_t v3_length_sq(vec3_t v);
    1.56 +static VMATH_INLINE vec3_t v3_normalize(vec3_t v);
    1.57 +static VMATH_INLINE vec3_t v3_transform(vec3_t v, mat4_t m);
    1.58  
    1.59 -static inline vec3_t v3_rotate(vec3_t v, scalar_t x, scalar_t y, scalar_t z);
    1.60 -static inline vec3_t v3_rotate_axis(vec3_t v, scalar_t angle, scalar_t x, scalar_t y, scalar_t z);
    1.61 -static inline vec3_t v3_rotate_quat(vec3_t v, quat_t q);
    1.62 +static VMATH_INLINE vec3_t v3_rotate(vec3_t v, scalar_t x, scalar_t y, scalar_t z);
    1.63 +static VMATH_INLINE vec3_t v3_rotate_axis(vec3_t v, scalar_t angle, scalar_t x, scalar_t y, scalar_t z);
    1.64 +static VMATH_INLINE vec3_t v3_rotate_quat(vec3_t v, quat_t q);
    1.65  
    1.66 -static inline vec3_t v3_reflect(vec3_t v, vec3_t n);
    1.67 +static VMATH_INLINE vec3_t v3_reflect(vec3_t v, vec3_t n);
    1.68  
    1.69 -static inline vec3_t v3_lerp(vec3_t v1, vec3_t v2, scalar_t t);
    1.70 +static VMATH_INLINE vec3_t v3_lerp(vec3_t v1, vec3_t v2, scalar_t t);
    1.71  
    1.72  /* C 4D vector functions */
    1.73 -static inline vec4_t v4_cons(scalar_t x, scalar_t y, scalar_t z, scalar_t w);
    1.74 -static inline void v4_print(FILE *fp, vec4_t v);
    1.75 +static VMATH_INLINE vec4_t v4_cons(scalar_t x, scalar_t y, scalar_t z, scalar_t w);
    1.76 +static VMATH_INLINE void v4_print(FILE *fp, vec4_t v);
    1.77  
    1.78 -static inline vec4_t v4_add(vec4_t v1, vec4_t v2);
    1.79 -static inline vec4_t v4_sub(vec4_t v1, vec4_t v2);
    1.80 -static inline vec4_t v4_neg(vec4_t v);
    1.81 -static inline vec4_t v4_mul(vec4_t v1, vec4_t v2);
    1.82 -static inline vec4_t v4_scale(vec4_t v, scalar_t s);
    1.83 -static inline scalar_t v4_dot(vec4_t v1, vec4_t v2);
    1.84 -static inline scalar_t v4_length(vec4_t v);
    1.85 -static inline scalar_t v4_length_sq(vec4_t v);
    1.86 -static inline vec4_t v4_normalize(vec4_t v);
    1.87 -static inline vec4_t v4_transform(vec4_t v, mat4_t m);
    1.88 +static VMATH_INLINE vec4_t v4_add(vec4_t v1, vec4_t v2);
    1.89 +static VMATH_INLINE vec4_t v4_sub(vec4_t v1, vec4_t v2);
    1.90 +static VMATH_INLINE vec4_t v4_neg(vec4_t v);
    1.91 +static VMATH_INLINE vec4_t v4_mul(vec4_t v1, vec4_t v2);
    1.92 +static VMATH_INLINE vec4_t v4_scale(vec4_t v, scalar_t s);
    1.93 +static VMATH_INLINE scalar_t v4_dot(vec4_t v1, vec4_t v2);
    1.94 +static VMATH_INLINE scalar_t v4_length(vec4_t v);
    1.95 +static VMATH_INLINE scalar_t v4_length_sq(vec4_t v);
    1.96 +static VMATH_INLINE vec4_t v4_normalize(vec4_t v);
    1.97 +static VMATH_INLINE vec4_t v4_transform(vec4_t v, mat4_t m);
    1.98  
    1.99  #ifdef __cplusplus
   1.100  }	/* extern "C" */
   1.101 @@ -95,11 +95,11 @@
   1.102  	Vector2(const Vector3 &vec);
   1.103  	Vector2(const Vector4 &vec);
   1.104  
   1.105 -	inline scalar_t &operator [](int elem);
   1.106 -	inline const scalar_t &operator [](int elem) const;
   1.107 +	VMATH_INLINE scalar_t &operator [](int elem);
   1.108 +	VMATH_INLINE const scalar_t &operator [](int elem) const;
   1.109  
   1.110 -	inline scalar_t length() const;
   1.111 -	inline scalar_t length_sq() const;
   1.112 +	VMATH_INLINE scalar_t length() const;
   1.113 +	VMATH_INLINE scalar_t length_sq() const;
   1.114  	void normalize();
   1.115  	Vector2 normalized() const;
   1.116  
   1.117 @@ -114,39 +114,39 @@
   1.118  };
   1.119  
   1.120  /* unary operations */
   1.121 -inline Vector2 operator -(const Vector2 &vec);
   1.122 +VMATH_INLINE Vector2 operator -(const Vector2 &vec);
   1.123  
   1.124  /* binary vector (op) vector operations */
   1.125 -inline scalar_t dot_product(const Vector2 &v1, const Vector2 &v2);
   1.126 +VMATH_INLINE scalar_t dot_product(const Vector2 &v1, const Vector2 &v2);
   1.127  
   1.128 -inline Vector2 operator +(const Vector2 &v1, const Vector2 &v2);
   1.129 -inline Vector2 operator -(const Vector2 &v1, const Vector2 &v2);
   1.130 -inline Vector2 operator *(const Vector2 &v1, const Vector2 &v2);
   1.131 -inline Vector2 operator /(const Vector2 &v1, const Vector2 &v2);
   1.132 -inline bool operator ==(const Vector2 &v1, const Vector2 &v2);
   1.133 +VMATH_INLINE Vector2 operator +(const Vector2 &v1, const Vector2 &v2);
   1.134 +VMATH_INLINE Vector2 operator -(const Vector2 &v1, const Vector2 &v2);
   1.135 +VMATH_INLINE Vector2 operator *(const Vector2 &v1, const Vector2 &v2);
   1.136 +VMATH_INLINE Vector2 operator /(const Vector2 &v1, const Vector2 &v2);
   1.137 +VMATH_INLINE bool operator ==(const Vector2 &v1, const Vector2 &v2);
   1.138  
   1.139 -inline void operator +=(Vector2 &v1, const Vector2 &v2);
   1.140 -inline void operator -=(Vector2 &v1, const Vector2 &v2);
   1.141 -inline void operator *=(Vector2 &v1, const Vector2 &v2);
   1.142 -inline void operator /=(Vector2 &v1, const Vector2 &v2);
   1.143 +VMATH_INLINE void operator +=(Vector2 &v1, const Vector2 &v2);
   1.144 +VMATH_INLINE void operator -=(Vector2 &v1, const Vector2 &v2);
   1.145 +VMATH_INLINE void operator *=(Vector2 &v1, const Vector2 &v2);
   1.146 +VMATH_INLINE void operator /=(Vector2 &v1, const Vector2 &v2);
   1.147  
   1.148  /* binary vector (op) scalar and scalar (op) vector operations */
   1.149 -inline Vector2 operator +(const Vector2 &vec, scalar_t scalar);
   1.150 -inline Vector2 operator +(scalar_t scalar, const Vector2 &vec);
   1.151 -inline Vector2 operator -(const Vector2 &vec, scalar_t scalar);
   1.152 -inline Vector2 operator *(const Vector2 &vec, scalar_t scalar);
   1.153 -inline Vector2 operator *(scalar_t scalar, const Vector2 &vec);
   1.154 -inline Vector2 operator /(const Vector2 &vec, scalar_t scalar);
   1.155 +VMATH_INLINE Vector2 operator +(const Vector2 &vec, scalar_t scalar);
   1.156 +VMATH_INLINE Vector2 operator +(scalar_t scalar, const Vector2 &vec);
   1.157 +VMATH_INLINE Vector2 operator -(const Vector2 &vec, scalar_t scalar);
   1.158 +VMATH_INLINE Vector2 operator *(const Vector2 &vec, scalar_t scalar);
   1.159 +VMATH_INLINE Vector2 operator *(scalar_t scalar, const Vector2 &vec);
   1.160 +VMATH_INLINE Vector2 operator /(const Vector2 &vec, scalar_t scalar);
   1.161  
   1.162 -inline void operator +=(Vector2 &vec, scalar_t scalar);
   1.163 -inline void operator -=(Vector2 &vec, scalar_t scalar);
   1.164 -inline void operator *=(Vector2 &vec, scalar_t scalar);
   1.165 -inline void operator /=(Vector2 &vec, scalar_t scalar);
   1.166 +VMATH_INLINE void operator +=(Vector2 &vec, scalar_t scalar);
   1.167 +VMATH_INLINE void operator -=(Vector2 &vec, scalar_t scalar);
   1.168 +VMATH_INLINE void operator *=(Vector2 &vec, scalar_t scalar);
   1.169 +VMATH_INLINE void operator /=(Vector2 &vec, scalar_t scalar);
   1.170  
   1.171  std::ostream &operator <<(std::ostream &out, const Vector2 &vec);
   1.172  
   1.173 -inline Vector2 lerp(const Vector2 &a, const Vector2 &b, scalar_t t);
   1.174 -inline Vector2 catmull_rom_spline(const Vector2 &v0, const Vector2 &v1,
   1.175 +VMATH_INLINE Vector2 lerp(const Vector2 &a, const Vector2 &b, scalar_t t);
   1.176 +VMATH_INLINE Vector2 catmull_rom_spline(const Vector2 &v0, const Vector2 &v1,
   1.177  		const Vector2 &v2, const Vector2 &v3, scalar_t t);
   1.178  
   1.179  /* 3D Vector */
   1.180 @@ -162,11 +162,11 @@
   1.181  
   1.182  	Vector3 &operator =(const SphVector &sph);
   1.183  
   1.184 -	inline scalar_t &operator [](int elem);
   1.185 -	inline const scalar_t &operator [](int elem) const;
   1.186 +	VMATH_INLINE scalar_t &operator [](int elem);
   1.187 +	VMATH_INLINE const scalar_t &operator [](int elem) const;
   1.188  
   1.189 -	inline scalar_t length() const;
   1.190 -	inline scalar_t length_sq() const;
   1.191 +	VMATH_INLINE scalar_t length() const;
   1.192 +	VMATH_INLINE scalar_t length_sq() const;
   1.193  	void normalize();
   1.194  	Vector3 normalized() const;
   1.195  
   1.196 @@ -186,40 +186,40 @@
   1.197  };
   1.198  
   1.199  /* unary operations */
   1.200 -inline Vector3 operator -(const Vector3 &vec);
   1.201 +VMATH_INLINE Vector3 operator -(const Vector3 &vec);
   1.202  
   1.203  /* binary vector (op) vector operations */
   1.204 -inline scalar_t dot_product(const Vector3 &v1, const Vector3 &v2);
   1.205 -inline Vector3 cross_product(const Vector3 &v1, const Vector3 &v2);
   1.206 +VMATH_INLINE scalar_t dot_product(const Vector3 &v1, const Vector3 &v2);
   1.207 +VMATH_INLINE Vector3 cross_product(const Vector3 &v1, const Vector3 &v2);
   1.208  
   1.209 -inline Vector3 operator +(const Vector3 &v1, const Vector3 &v2);
   1.210 -inline Vector3 operator -(const Vector3 &v1, const Vector3 &v2);
   1.211 -inline Vector3 operator *(const Vector3 &v1, const Vector3 &v2);
   1.212 -inline Vector3 operator /(const Vector3 &v1, const Vector3 &v2);
   1.213 -inline bool operator ==(const Vector3 &v1, const Vector3 &v2);
   1.214 +VMATH_INLINE Vector3 operator +(const Vector3 &v1, const Vector3 &v2);
   1.215 +VMATH_INLINE Vector3 operator -(const Vector3 &v1, const Vector3 &v2);
   1.216 +VMATH_INLINE Vector3 operator *(const Vector3 &v1, const Vector3 &v2);
   1.217 +VMATH_INLINE Vector3 operator /(const Vector3 &v1, const Vector3 &v2);
   1.218 +VMATH_INLINE bool operator ==(const Vector3 &v1, const Vector3 &v2);
   1.219  
   1.220 -inline void operator +=(Vector3 &v1, const Vector3 &v2);
   1.221 -inline void operator -=(Vector3 &v1, const Vector3 &v2);
   1.222 -inline void operator *=(Vector3 &v1, const Vector3 &v2);
   1.223 -inline void operator /=(Vector3 &v1, const Vector3 &v2);
   1.224 +VMATH_INLINE void operator +=(Vector3 &v1, const Vector3 &v2);
   1.225 +VMATH_INLINE void operator -=(Vector3 &v1, const Vector3 &v2);
   1.226 +VMATH_INLINE void operator *=(Vector3 &v1, const Vector3 &v2);
   1.227 +VMATH_INLINE void operator /=(Vector3 &v1, const Vector3 &v2);
   1.228  
   1.229  /* binary vector (op) scalar and scalar (op) vector operations */
   1.230 -inline Vector3 operator +(const Vector3 &vec, scalar_t scalar);
   1.231 -inline Vector3 operator +(scalar_t scalar, const Vector3 &vec);
   1.232 -inline Vector3 operator -(const Vector3 &vec, scalar_t scalar);
   1.233 -inline Vector3 operator *(const Vector3 &vec, scalar_t scalar);
   1.234 -inline Vector3 operator *(scalar_t scalar, const Vector3 &vec);
   1.235 -inline Vector3 operator /(const Vector3 &vec, scalar_t scalar);
   1.236 +VMATH_INLINE Vector3 operator +(const Vector3 &vec, scalar_t scalar);
   1.237 +VMATH_INLINE Vector3 operator +(scalar_t scalar, const Vector3 &vec);
   1.238 +VMATH_INLINE Vector3 operator -(const Vector3 &vec, scalar_t scalar);
   1.239 +VMATH_INLINE Vector3 operator *(const Vector3 &vec, scalar_t scalar);
   1.240 +VMATH_INLINE Vector3 operator *(scalar_t scalar, const Vector3 &vec);
   1.241 +VMATH_INLINE Vector3 operator /(const Vector3 &vec, scalar_t scalar);
   1.242  
   1.243 -inline void operator +=(Vector3 &vec, scalar_t scalar);
   1.244 -inline void operator -=(Vector3 &vec, scalar_t scalar);
   1.245 -inline void operator *=(Vector3 &vec, scalar_t scalar);
   1.246 -inline void operator /=(Vector3 &vec, scalar_t scalar);
   1.247 +VMATH_INLINE void operator +=(Vector3 &vec, scalar_t scalar);
   1.248 +VMATH_INLINE void operator -=(Vector3 &vec, scalar_t scalar);
   1.249 +VMATH_INLINE void operator *=(Vector3 &vec, scalar_t scalar);
   1.250 +VMATH_INLINE void operator /=(Vector3 &vec, scalar_t scalar);
   1.251  
   1.252  std::ostream &operator <<(std::ostream &out, const Vector3 &vec);
   1.253  
   1.254 -inline Vector3 lerp(const Vector3 &a, const Vector3 &b, scalar_t t);
   1.255 -inline Vector3 catmull_rom_spline(const Vector3 &v0, const Vector3 &v1,
   1.256 +VMATH_INLINE Vector3 lerp(const Vector3 &a, const Vector3 &b, scalar_t t);
   1.257 +VMATH_INLINE Vector3 catmull_rom_spline(const Vector3 &v0, const Vector3 &v1,
   1.258  		const Vector3 &v2, const Vector3 &v3, scalar_t t);
   1.259  
   1.260  /* 4D Vector */
   1.261 @@ -232,11 +232,11 @@
   1.262  	Vector4(const Vector2 &vec);
   1.263  	Vector4(const Vector3 &vec);
   1.264  
   1.265 -	inline scalar_t &operator [](int elem);
   1.266 -	inline const scalar_t &operator [](int elem) const;
   1.267 +	VMATH_INLINE scalar_t &operator [](int elem);
   1.268 +	VMATH_INLINE const scalar_t &operator [](int elem) const;
   1.269  
   1.270 -	inline scalar_t length() const;
   1.271 -	inline scalar_t length_sq() const;
   1.272 +	VMATH_INLINE scalar_t length() const;
   1.273 +	VMATH_INLINE scalar_t length_sq() const;
   1.274  	void normalize();
   1.275  	Vector4 normalized() const;
   1.276  
   1.277 @@ -249,40 +249,40 @@
   1.278  
   1.279  
   1.280  /* unary operations */
   1.281 -inline Vector4 operator -(const Vector4 &vec);
   1.282 +VMATH_INLINE Vector4 operator -(const Vector4 &vec);
   1.283  
   1.284  /* binary vector (op) vector operations */
   1.285 -inline scalar_t dot_product(const Vector4 &v1, const Vector4 &v2);
   1.286 -inline Vector4 cross_product(const Vector4 &v1, const Vector4 &v2, const Vector4 &v3);
   1.287 +VMATH_INLINE scalar_t dot_product(const Vector4 &v1, const Vector4 &v2);
   1.288 +VMATH_INLINE Vector4 cross_product(const Vector4 &v1, const Vector4 &v2, const Vector4 &v3);
   1.289  
   1.290 -inline Vector4 operator +(const Vector4 &v1, const Vector4 &v2);
   1.291 -inline Vector4 operator -(const Vector4 &v1, const Vector4 &v2);
   1.292 -inline Vector4 operator *(const Vector4 &v1, const Vector4 &v2);
   1.293 -inline Vector4 operator /(const Vector4 &v1, const Vector4 &v2);
   1.294 -inline bool operator ==(const Vector4 &v1, const Vector4 &v2);
   1.295 +VMATH_INLINE Vector4 operator +(const Vector4 &v1, const Vector4 &v2);
   1.296 +VMATH_INLINE Vector4 operator -(const Vector4 &v1, const Vector4 &v2);
   1.297 +VMATH_INLINE Vector4 operator *(const Vector4 &v1, const Vector4 &v2);
   1.298 +VMATH_INLINE Vector4 operator /(const Vector4 &v1, const Vector4 &v2);
   1.299 +VMATH_INLINE bool operator ==(const Vector4 &v1, const Vector4 &v2);
   1.300  
   1.301 -inline void operator +=(Vector4 &v1, const Vector4 &v2);
   1.302 -inline void operator -=(Vector4 &v1, const Vector4 &v2);
   1.303 -inline void operator *=(Vector4 &v1, const Vector4 &v2);
   1.304 -inline void operator /=(Vector4 &v1, const Vector4 &v2);
   1.305 +VMATH_INLINE void operator +=(Vector4 &v1, const Vector4 &v2);
   1.306 +VMATH_INLINE void operator -=(Vector4 &v1, const Vector4 &v2);
   1.307 +VMATH_INLINE void operator *=(Vector4 &v1, const Vector4 &v2);
   1.308 +VMATH_INLINE void operator /=(Vector4 &v1, const Vector4 &v2);
   1.309  
   1.310  /* binary vector (op) scalar and scalar (op) vector operations */
   1.311 -inline Vector4 operator +(const Vector4 &vec, scalar_t scalar);
   1.312 -inline Vector4 operator +(scalar_t scalar, const Vector4 &vec);
   1.313 -inline Vector4 operator -(const Vector4 &vec, scalar_t scalar);
   1.314 -inline Vector4 operator *(const Vector4 &vec, scalar_t scalar);
   1.315 -inline Vector4 operator *(scalar_t scalar, const Vector4 &vec);
   1.316 -inline Vector4 operator /(const Vector4 &vec, scalar_t scalar);
   1.317 +VMATH_INLINE Vector4 operator +(const Vector4 &vec, scalar_t scalar);
   1.318 +VMATH_INLINE Vector4 operator +(scalar_t scalar, const Vector4 &vec);
   1.319 +VMATH_INLINE Vector4 operator -(const Vector4 &vec, scalar_t scalar);
   1.320 +VMATH_INLINE Vector4 operator *(const Vector4 &vec, scalar_t scalar);
   1.321 +VMATH_INLINE Vector4 operator *(scalar_t scalar, const Vector4 &vec);
   1.322 +VMATH_INLINE Vector4 operator /(const Vector4 &vec, scalar_t scalar);
   1.323  
   1.324 -inline void operator +=(Vector4 &vec, scalar_t scalar);
   1.325 -inline void operator -=(Vector4 &vec, scalar_t scalar);
   1.326 -inline void operator *=(Vector4 &vec, scalar_t scalar);
   1.327 -inline void operator /=(Vector4 &vec, scalar_t scalar);
   1.328 +VMATH_INLINE void operator +=(Vector4 &vec, scalar_t scalar);
   1.329 +VMATH_INLINE void operator -=(Vector4 &vec, scalar_t scalar);
   1.330 +VMATH_INLINE void operator *=(Vector4 &vec, scalar_t scalar);
   1.331 +VMATH_INLINE void operator /=(Vector4 &vec, scalar_t scalar);
   1.332  
   1.333  std::ostream &operator <<(std::ostream &out, const Vector4 &vec);
   1.334  
   1.335 -inline Vector4 lerp(const Vector4 &v0, const Vector4 &v1, scalar_t t);
   1.336 -inline Vector4 catmull_rom_spline(const Vector4 &v0, const Vector4 &v1,
   1.337 +VMATH_INLINE Vector4 lerp(const Vector4 &v0, const Vector4 &v1, scalar_t t);
   1.338 +VMATH_INLINE Vector4 catmull_rom_spline(const Vector4 &v0, const Vector4 &v1,
   1.339  		const Vector4 &v2, const Vector4 &v3, scalar_t t);
   1.340  
   1.341  #endif	/* __cplusplus */