MCPcopy Create free account
hub / github.com/RenderKit/embree / rtcSetGeometryTransformQuaternion

Function rtcSetGeometryTransformQuaternion

kernels/common/rtcore.cpp:1453–1485  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1451 }
1452
1453 RTC_API void rtcSetGeometryTransformQuaternion(RTCGeometry hgeometry, unsigned int timeStep, const RTCQuaternionDecomposition* qd)
1454 {
1455 Geometry* geometry = (Geometry*) hgeometry;
1456 RTC_CATCH_BEGIN;
1457 RTC_TRACE(rtcSetGeometryTransformQuaternion);
1458 RTC_VERIFY_HANDLE(hgeometry);
1459 RTC_VERIFY_HANDLE(qd);
1460
1461 AffineSpace3fx transform;
1462 transform.l.vx.x = qd->scale_x;
1463 transform.l.vy.y = qd->scale_y;
1464 transform.l.vz.z = qd->scale_z;
1465 transform.l.vy.x = qd->skew_xy;
1466 transform.l.vz.x = qd->skew_xz;
1467 transform.l.vz.y = qd->skew_yz;
1468 transform.l.vx.y = qd->translation_x;
1469 transform.l.vx.z = qd->translation_y;
1470 transform.l.vy.z = qd->translation_z;
1471 transform.p.x = qd->shift_x;
1472 transform.p.y = qd->shift_y;
1473 transform.p.z = qd->shift_z;
1474
1475 // normalize quaternion
1476 Quaternion3f q(qd->quaternion_r, qd->quaternion_i, qd->quaternion_j, qd->quaternion_k);
1477 q = normalize(q);
1478 transform.l.vx.w = q.i;
1479 transform.l.vy.w = q.j;
1480 transform.l.vz.w = q.k;
1481 transform.p.w = q.r;
1482
1483 geometry->setQuaternionDecomposition(transform, timeStep);
1484 RTC_CATCH_END2(geometry);
1485 }
1486
1487 RTC_API void rtcGetGeometryTransform(RTCGeometry hgeometry, float time, RTCFormat format, void* xfm)
1488 {

Callers 3

runMethod · 0.85
updateTransformationFunction · 0.85
commitMethod · 0.85

Calls 2

normalizeFunction · 0.50

Tested by

no test coverage detected