initial commit, 4.5 stable
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled
This commit is contained in:
101
thirdparty/embree/include/embree4/rtcore_quaternion.h
vendored
Normal file
101
thirdparty/embree/include/embree4/rtcore_quaternion.h
vendored
Normal file
@@ -0,0 +1,101 @@
|
||||
// Copyright 2009-2021 Intel Corporation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "rtcore_common.h"
|
||||
|
||||
RTC_NAMESPACE_BEGIN
|
||||
|
||||
/*
|
||||
* Structure for transformation representation as a matrix decomposition using
|
||||
* a quaternion
|
||||
*/
|
||||
struct RTC_ALIGN(16) RTCQuaternionDecomposition
|
||||
{
|
||||
float scale_x;
|
||||
float scale_y;
|
||||
float scale_z;
|
||||
float skew_xy;
|
||||
float skew_xz;
|
||||
float skew_yz;
|
||||
float shift_x;
|
||||
float shift_y;
|
||||
float shift_z;
|
||||
float quaternion_r;
|
||||
float quaternion_i;
|
||||
float quaternion_j;
|
||||
float quaternion_k;
|
||||
float translation_x;
|
||||
float translation_y;
|
||||
float translation_z;
|
||||
};
|
||||
|
||||
RTC_FORCEINLINE void rtcInitQuaternionDecomposition(struct RTCQuaternionDecomposition* qdecomp)
|
||||
{
|
||||
qdecomp->scale_x = 1.f;
|
||||
qdecomp->scale_y = 1.f;
|
||||
qdecomp->scale_z = 1.f;
|
||||
qdecomp->skew_xy = 0.f;
|
||||
qdecomp->skew_xz = 0.f;
|
||||
qdecomp->skew_yz = 0.f;
|
||||
qdecomp->shift_x = 0.f;
|
||||
qdecomp->shift_y = 0.f;
|
||||
qdecomp->shift_z = 0.f;
|
||||
qdecomp->quaternion_r = 1.f;
|
||||
qdecomp->quaternion_i = 0.f;
|
||||
qdecomp->quaternion_j = 0.f;
|
||||
qdecomp->quaternion_k = 0.f;
|
||||
qdecomp->translation_x = 0.f;
|
||||
qdecomp->translation_y = 0.f;
|
||||
qdecomp->translation_z = 0.f;
|
||||
}
|
||||
|
||||
RTC_FORCEINLINE void rtcQuaternionDecompositionSetQuaternion(
|
||||
struct RTCQuaternionDecomposition* qdecomp,
|
||||
float r, float i, float j, float k)
|
||||
{
|
||||
qdecomp->quaternion_r = r;
|
||||
qdecomp->quaternion_i = i;
|
||||
qdecomp->quaternion_j = j;
|
||||
qdecomp->quaternion_k = k;
|
||||
}
|
||||
|
||||
RTC_FORCEINLINE void rtcQuaternionDecompositionSetScale(
|
||||
struct RTCQuaternionDecomposition* qdecomp,
|
||||
float scale_x, float scale_y, float scale_z)
|
||||
{
|
||||
qdecomp->scale_x = scale_x;
|
||||
qdecomp->scale_y = scale_y;
|
||||
qdecomp->scale_z = scale_z;
|
||||
}
|
||||
|
||||
RTC_FORCEINLINE void rtcQuaternionDecompositionSetSkew(
|
||||
struct RTCQuaternionDecomposition* qdecomp,
|
||||
float skew_xy, float skew_xz, float skew_yz)
|
||||
{
|
||||
qdecomp->skew_xy = skew_xy;
|
||||
qdecomp->skew_xz = skew_xz;
|
||||
qdecomp->skew_yz = skew_yz;
|
||||
}
|
||||
|
||||
RTC_FORCEINLINE void rtcQuaternionDecompositionSetShift(
|
||||
struct RTCQuaternionDecomposition* qdecomp,
|
||||
float shift_x, float shift_y, float shift_z)
|
||||
{
|
||||
qdecomp->shift_x = shift_x;
|
||||
qdecomp->shift_y = shift_y;
|
||||
qdecomp->shift_z = shift_z;
|
||||
}
|
||||
|
||||
RTC_FORCEINLINE void rtcQuaternionDecompositionSetTranslation(
|
||||
struct RTCQuaternionDecomposition* qdecomp,
|
||||
float translation_x, float translation_y, float translation_z)
|
||||
{
|
||||
qdecomp->translation_x = translation_x;
|
||||
qdecomp->translation_y = translation_y;
|
||||
qdecomp->translation_z = translation_z;
|
||||
}
|
||||
|
||||
RTC_NAMESPACE_END
|
||||
|
Reference in New Issue
Block a user