14#ifndef OSGUTIL_CONVERTVEC
15#define OSGUTIL_CONVERTVEC 1
19template <
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)
30template <
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()));
40template <
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));
51template <
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));
67template <
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()));
77template <
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()));
88template <
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));
104template <
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()));
114template <
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()));
125template <
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()));
Shader generator framework.
Definition NodeVisitor:25
static void convert(InType &in, OutType &out)
Definition ConvertVec:33
static void convert(InType &in, OutType &out)
Definition ConvertVec:43
static void convert(InType &in, OutType &out)
Definition ConvertVec:54
static void convert(InType &in, OutType &out)
Definition ConvertVec:70
static void convert(InType &in, OutType &out)
Definition ConvertVec:80
static void convert(InType &in, OutType &out)
Definition ConvertVec:91
static void convert(InType &in, OutType &out)
Definition ConvertVec:107
static void convert(InType &in, OutType &out)
Definition ConvertVec:117
static void convert(InType &in, OutType &out)
Definition ConvertVec:128
static void convert(InType &in, OutType &out)
Definition ConvertVec:24