| 185 | |
| 186 | template<typename U> |
| 187 | void operator() ( U * data ) |
| 188 | { |
| 189 | assert( data ); |
| 190 | |
| 191 | switch ( matrix->typeId() ) |
| 192 | { |
| 193 | case M33fDataTypeId: |
| 194 | multiply33<M33f, U>( data, boost::static_pointer_cast< const M33fData >( matrix )->readable() ); |
| 195 | break; |
| 196 | case M33dDataTypeId: |
| 197 | multiply33<M33d, U>( data, boost::static_pointer_cast< const M33dData >( matrix )->readable() ); |
| 198 | break; |
| 199 | case M44fDataTypeId: |
| 200 | multiply<M44f, U>( data, boost::static_pointer_cast< const M44fData >( matrix )->readable() ); |
| 201 | break; |
| 202 | case M44dDataTypeId: |
| 203 | multiply<M44d, U>( data, boost::static_pointer_cast< const M44dData >( matrix )->readable() ); |
| 204 | break; |
| 205 | case TransformationMatrixfDataTypeId: |
| 206 | multiply<M44f, U>( data, boost::static_pointer_cast< const TransformationMatrixfData >( matrix )->readable().transform() ); |
| 207 | break; |
| 208 | case TransformationMatrixdDataTypeId: |
| 209 | multiply<M44d, U>( data, boost::static_pointer_cast< const TransformationMatrixdData >( matrix )->readable().transform() ); |
| 210 | break; |
| 211 | default: |
| 212 | throw InvalidArgumentException( "Data supplied is not a known matrix type." ); |
| 213 | } |
| 214 | } |
| 215 | |
| 216 | }; |
| 217 |
nothing calls this directly
no test coverage detected