18 #ifndef viskores_Transform3D_h
19 #define viskores_Transform3D_h
85 return viskores::Vec<T, 3>(homogeneousVector[0], homogeneousVector[1], homogeneousVector[2]);
99 scaleMatrix(0, 0) = scaleX;
100 scaleMatrix(1, 1) = scaleY;
101 scaleMatrix(2, 2) = scaleZ;
102 scaleMatrix(3, 3) = T(1);
111 template <
typename T>
122 template <
typename T>
130 template <
typename T>
137 translateMatrix(0, 3) = x;
138 translateMatrix(1, 3) = y;
139 translateMatrix(2, 3) = z;
140 return translateMatrix;
142 template <
typename T>
155 template <
typename T>
160 T angleRadians = viskores::Pi_180<T>() * angleDegrees;
167 matrix(0, 0) = normAxis[0] * normAxis[0] * (1 - cosAngle) + cosAngle;
168 matrix(0, 1) = normAxis[0] * normAxis[1] * (1 - cosAngle) - normAxis[2] * sinAngle;
169 matrix(0, 2) = normAxis[0] * normAxis[2] * (1 - cosAngle) + normAxis[1] * sinAngle;
172 matrix(1, 0) = normAxis[1] * normAxis[0] * (1 - cosAngle) + normAxis[2] * sinAngle;
173 matrix(1, 1) = normAxis[1] * normAxis[1] * (1 - cosAngle) + cosAngle;
174 matrix(1, 2) = normAxis[1] * normAxis[2] * (1 - cosAngle) - normAxis[0] * sinAngle;
177 matrix(2, 0) = normAxis[2] * normAxis[0] * (1 - cosAngle) - normAxis[1] * sinAngle;
178 matrix(2, 1) = normAxis[2] * normAxis[1] * (1 - cosAngle) + normAxis[0] * sinAngle;
179 matrix(2, 2) = normAxis[2] * normAxis[2] * (1 - cosAngle) + cosAngle;
189 template <
typename T>
199 template <
typename T>
209 template <
typename T>
219 template <
typename T>
227 #endif //viskores_Transform3D_h