14 #ifndef OSGUTIL_CONVERTVEC
15 #define OSGUTIL_CONVERTVEC 1
19 template <
typename InType,
typename OutType,
20 unsigned int InSize = InType::num_components,
21 unsigned int OutSize = OutType::num_components>
24 static void convert(InType & in, OutType & out)
30 template <
typename InType,
typename OutType>
33 static void convert(InType & in, OutType & out)
35 out.set(static_cast<typename OutType::value_type>(in.x()),
36 static_cast<typename OutType::value_type>(in.y()));
40 template <
typename InType,
typename OutType>
43 static void convert(InType & in, OutType & out)
45 out.set(static_cast<typename OutType::value_type>(in.x()),
46 static_cast<typename OutType::value_type>(in.y()),
47 static_cast<typename OutType::value_type>(0.0));
51 template <
typename InType,
typename OutType>
54 static void convert(InType & in, OutType & out)
56 out.set(static_cast<typename OutType::value_type>(in.x()),
57 static_cast<typename OutType::value_type>(in.y()),
58 static_cast<typename OutType::value_type>(0.0),
59 static_cast<typename OutType::value_type
>(1.0));
67 template <
typename InType,
typename OutType>
70 static void convert(InType & in, OutType & out)
72 out.set(static_cast<typename OutType::value_type>(in.x()),
73 static_cast<typename OutType::value_type>(in.y()));
77 template <
typename InType,
typename OutType>
80 static void convert(InType & in, OutType & out)
82 out.set(static_cast<typename OutType::value_type>(in.x()),
83 static_cast<typename OutType::value_type>(in.y()),
84 static_cast<typename OutType::value_type>(in.z()));
88 template <
typename InType,
typename OutType>
91 static void convert(InType & in, OutType & out)
93 out.set(static_cast<typename OutType::value_type>(in.x()),
94 static_cast<typename OutType::value_type>(in.y()),
95 static_cast<typename OutType::value_type>(in.z()),
96 static_cast<typename OutType::value_type>(1.0));
104 template <
typename InType,
typename OutType>
107 static void convert(InType & in, OutType & out)
109 out.set(static_cast<typename OutType::value_type>(in.x()/in.w()),
110 static_cast<typename OutType::value_type>(in.y()/in.w()));
114 template <
typename InType,
typename OutType>
117 static void convert(InType & in, OutType & out)
119 out.set(static_cast<typename OutType::value_type>(in.x()/in.w()),
120 static_cast<typename OutType::value_type>(in.y()/in.w()),
121 static_cast<typename OutType::value_type>(in.z()/in.w()));
125 template <
typename InType,
typename OutType>
128 static void convert(InType & in, OutType & out)
130 out.set(static_cast<typename OutType::value_type>(in.x()),
131 static_cast<typename OutType::value_type>(in.y()),
132 static_cast<typename OutType::value_type>(in.z()),
133 static_cast<typename OutType::value_type>(in.w()));
139 #endif // ** OSG_CONVERTVEC ** //
static void convert(InType &in, OutType &out)
static void convert(InType &in, OutType &out)
static void convert(InType &in, OutType &out)
static void convert(InType &in, OutType &out)
static void convert(InType &in, OutType &out)
static void convert(InType &in, OutType &out)
static void convert(InType &in, OutType &out)
static void convert(InType &in, OutType &out)
static void convert(InType &in, OutType &out)
static void convert(InType &in, OutType &out)
Shader generator framework.