15 #ifndef MOTIVE_MATH_VECTOR_CONVERTER_H
16 #define MOTIVE_MATH_VECTOR_CONVERTER_H
18 #include "mathfu/glsl_mappings.h"
29 typedef mathfu::vec2 Vector2;
30 typedef mathfu::vec3 Vector3;
31 typedef mathfu::vec4 Vector4;
32 typedef mathfu::mat4 Matrix4;
34 static float* ToPtr(
float& f) {
return &f; }
35 static float* ToPtr(Vector2& v) {
return &v[0]; }
36 static float* ToPtr(Vector3& v) {
return &v[0]; }
37 static float* ToPtr(Vector4& v) {
return &v[0]; }
38 static float* ToPtr(Matrix4& m) {
return &m(0); }
40 static const float* ToPtr(
const float& f) {
return &f; }
41 static const float* ToPtr(
const Vector2& v) {
return &v[0]; }
42 static const float* ToPtr(
const Vector3& v) {
return &v[0]; }
43 static const float* ToPtr(
const Vector4& v) {
return &v[0]; }
44 static const float* ToPtr(
const Matrix4& m) {
return &m(0); }
46 static float FromPtr(
const float* f,
float) {
return *f; }
47 static Vector2 FromPtr(
const float* f,
const Vector2&) {
return Vector2(f); }
48 static Vector3 FromPtr(
const float* f,
const Vector3&) {
return Vector3(f); }
49 static Vector4 FromPtr(
const float* f,
const Vector4&) {
return Vector4(f); }
50 static Matrix4 FromPtr(
const float* f,
const Matrix4&) {
return Matrix4(f); }
55 template <
class VectorConverter,
int>
59 template <
class VectorConverter>
63 template <
class VectorConverter>
65 typedef typename VectorConverter::Vector2 type;
67 template <
class VectorConverter>
69 typedef typename VectorConverter::Vector3 type;
71 template <
class VectorConverter>
73 typedef typename VectorConverter::Vector4 type;
78 #endif // MOTIVE_MATH_VECTOR_CONVERTER_H
Definition: vector_converter.h:56
Convert mathfu types to float pointers.
Definition: vector_converter.h:27