| 1406 | } |
| 1407 | |
| 1408 | AffineSpace3fa loadTransform(RTCFormat format, const float* xfm) |
| 1409 | { |
| 1410 | AffineSpace3fa space = one; |
| 1411 | switch (format) |
| 1412 | { |
| 1413 | case RTC_FORMAT_FLOAT3X4_ROW_MAJOR: |
| 1414 | space = AffineSpace3fa(Vec3fa(xfm[ 0], xfm[ 4], xfm[ 8]), |
| 1415 | Vec3fa(xfm[ 1], xfm[ 5], xfm[ 9]), |
| 1416 | Vec3fa(xfm[ 2], xfm[ 6], xfm[10]), |
| 1417 | Vec3fa(xfm[ 3], xfm[ 7], xfm[11])); |
| 1418 | break; |
| 1419 | |
| 1420 | case RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR: |
| 1421 | space = AffineSpace3fa(Vec3fa(xfm[ 0], xfm[ 1], xfm[ 2]), |
| 1422 | Vec3fa(xfm[ 3], xfm[ 4], xfm[ 5]), |
| 1423 | Vec3fa(xfm[ 6], xfm[ 7], xfm[ 8]), |
| 1424 | Vec3fa(xfm[ 9], xfm[10], xfm[11])); |
| 1425 | break; |
| 1426 | |
| 1427 | case RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR: |
| 1428 | space = AffineSpace3fa(Vec3fa(xfm[ 0], xfm[ 1], xfm[ 2]), |
| 1429 | Vec3fa(xfm[ 4], xfm[ 5], xfm[ 6]), |
| 1430 | Vec3fa(xfm[ 8], xfm[ 9], xfm[10]), |
| 1431 | Vec3fa(xfm[12], xfm[13], xfm[14])); |
| 1432 | break; |
| 1433 | |
| 1434 | default: |
| 1435 | throw_RTCError(RTC_ERROR_INVALID_OPERATION, "invalid matrix format"); |
| 1436 | break; |
| 1437 | } |
| 1438 | return space; |
| 1439 | } |
| 1440 | |
| 1441 | RTC_API void rtcSetGeometryTransform(RTCGeometry hgeometry, unsigned int timeStep, RTCFormat format, const void* xfm) |
| 1442 | { |
no test coverage detected