이 파일의 문서화 페이지로 가기
46 #define AKVECTORS_PI (3.1415926535897932384626433832795f)
47 #define AKVECTORS_TWOPI (6.283185307179586476925286766559f)
48 #define AKVECTORS_PIOVERTWO (1.5707963267948966192313216916398f)
49 #define AKVECTORS_EPSILON (1.0e-38f) // epsilon value for fast log(0)
98 p.
v[0] =
v[0] - b.
v[0];
99 p.
v[1] =
v[1] - b.
v[1];
100 p.
v[2] =
v[2] - b.
v[2];
101 p.
v[3] =
v[3] - b.
v[3];
147 return !(((*(
AkUInt32*)&in_val) & 0x7fffffff) >= 0x7f800000);
150 static constexpr
AkReal32 POSITIVE_EPSILON = 0.00001f;
167 return !(((*(
AkUInt64*)&in_val) & 0x7fffffffffffffff) >= 0x7ff0000000000000);
170 static constexpr
AkReal64 POSITIVE_EPSILON = 0.000000000001f;
182 template<
typename TFromReal,
typename TToReal>
185 out_to =
static_cast<TToReal
>(in_from);
199 template<
typename TReal>
209 template<
typename TDataType>
226 X(static_cast<TDataType>(0.0)),
227 Y(static_cast<TDataType>(0.0)),
228 Z(static_cast<TDataType>(0.0))
231 T3DVector(TDataType in_x, TDataType in_y, TDataType in_z) :
239 template<
typename TFromDataType>
291 template<
typename TVectorType>
331 X =
static_cast<TDataType
>(0.0);
332 Y =
static_cast<TDataType
>(0.0);
333 Z =
static_cast<TDataType
>(0.0);
340 return X == b.
X &&
Y == b.
Y &&
Z == b.
Z;
345 return X != b.
X ||
Y != b.
Y ||
Z != b.
Z;
350 return X < b.
X &&
Y < b.
Y &&
Z < b.
Z;
355 return X <= b.
X &&
Y <= b.
Y &&
Z <= b.
Z;
360 return X > b.
X &&
Y > b.
Y &&
Z > b.
Z;
365 return X >= b.
X &&
Y >= b.
Y &&
Z >= b.
Z;
379 TDataType oneoverf =
static_cast<TDataType
>(1.0) / f;
424 TDataType oneoverf =
static_cast<TDataType
>(1.0) / f;
523 const TDataType azimuth,
524 const TDataType elevation)
540 return (a.
X*b.
Y*c.
Z + a.
Y*b.
Z*c.
X + a.
Z*b.
X*c.
Y) -
541 (a.
Z*b.
Y*c.
X + a.
Y*b.
X*c.
Z + a.
X*b.
Z*c.
Y);
556 v.
X =
static_cast<TDataType
>(0.0); v.
Y =
static_cast<TDataType
>(0.0); v.
Z =
static_cast<TDataType
>(0.0);
565 TDataType oneover_d =
static_cast<TDataType
>(1.0) / d;
571 v.
X =
X * invA.
X +
Y * invB.
X +
Z * invC.
X;
572 v.
Y =
X * invA.
Y +
Y * invB.
Y +
Z * invC.
Y;
573 v.
Z =
X * invA.
Z +
Y * invB.
Z +
Z * invC.
Z;
583 if (l !=
static_cast<TDataType
>(0.0))
591 X =
static_cast<TDataType
>(0.0);
592 Y =
static_cast<TDataType
>(0.0);
593 Z =
static_cast<TDataType
>(0.0);
605 return X*v2.
X +
Y*v2.
Y +
Z*v2.
Z;
619 uxv.
X = u.
Y*v.
Z - u.
Z*v.
Y;
620 uxv.
Y = u.
Z*v.
X - u.
X*v.
Z;
621 uxv.
Z = u.
X*v.
Y - u.
Y*v.
X;
647 abs.
X = (TDataType)fabs(abs.
X);
648 abs.
Y = (TDataType)fabs(abs.
Y);
649 abs.
Z = (TDataType)fabs(abs.
Z);
666 template<
typename TDataType>
672 template<
typename TDataType>
695 template<
typename TDataType>
696 template<
typename TVectorType>
700 v.X =
static_cast<typename TVectorType::data_type
>(X);
701 v.Y =
static_cast<typename TVectorType::data_type
>(Y);
702 v.Z =
static_cast<typename TVectorType::data_type
>(Z);
767 return b.
X ==
X && b.
Y ==
Y;
772 return b.
X !=
X && b.
Y !=
Y;
777 return sqrtf(
X*
X+
Y*
Y);
785 AkReal32 r = sqrtf( in_Cartesian.
X*in_Cartesian.
X + in_Cartesian.
Y*in_Cartesian.
Y + in_Cartesian.
Z*in_Cartesian.
Z);
788 X = atan2f(in_Cartesian.
Y, in_Cartesian.
X);
789 Y = asinf(in_Cartesian.
Z / r);
807 v.
X = 0.0f; v.
Y = 0.0f;
818 v.
X =
X * invA.
X +
Y * invB.
X;
819 v.
Y =
X * invA.
Y +
Y * invB.
Y;
876 const AkReal32 POSITIVE_TEST_EPSILON = 0.00001f;
877 return X >= -POSITIVE_TEST_EPSILON &&
878 Y >= -POSITIVE_TEST_EPSILON;
889 static const int MAX_SIZE = 16;
900 for (
int i = 0; i < MAX_SIZE; i++)
908 for (
int i = 0; i < MAX_SIZE; i++)
950 for (
int i = 0; i < 3; i++)
952 for (
int j = 0; j < 3; j++)
962 return m_Data[column][row];
967 return m_Data[column][row];
981 Add(*
this, *
this, in_rhs);
987 #define ADD(i,j) out_res(i,j) = in_m0(i,j) + in_m1(i,j)
1004 out_mat(0, 0) = in_f; out_mat(0, 1) = 0.f; out_mat(0, 2) = 0.f;
1005 out_mat(1, 0) = 0.f; out_mat(1, 1) = in_f; out_mat(1, 2) = 0.f;
1006 out_mat(2, 0) = 0.f; out_mat(2, 1) = 0.f; out_mat(2, 2) = in_f;
1012 out_mat(0, 0) = 0.f; out_mat(0, 1) = -in_u.
Z; out_mat(0, 2) = in_u.
Y;
1013 out_mat(1, 0) = in_u.
Z; out_mat(1, 1) = 0.f; out_mat(1, 2) = -in_u.
X;
1014 out_mat(2, 0) = -in_u.
Y; out_mat(2, 1) = in_u.
X; out_mat(2, 2) = 0.f;
1019 out_mat(0, 0) = in_v0.
X*in_v1.
X; out_mat(0, 1) = in_v0.
X*in_v1.
Y; out_mat(0, 2) = in_v0.
X*in_v1.
Z;
1020 out_mat(1, 0) = in_v0.
Y*in_v1.
X; out_mat(1, 1) = in_v0.
Y*in_v1.
Y; out_mat(1, 2) = in_v0.
Y*in_v1.
Z;
1021 out_mat(2, 0) = in_v0.
Z*in_v1.
X; out_mat(2, 1) = in_v0.
Z*in_v1.
Y; out_mat(2, 2) = in_v0.
Z*in_v1.
Z;
1026 Rotation(out_mat, sinf(in_angle), cosf(in_angle), in_axis);
1035 outer *= (1.f - in_cos);
1065 AkReal32 trace = in_mat(0,0) + in_mat(1, 1) + in_mat(2, 2);
1072 q.
X = (in_mat(2, 1) - in_mat(1, 2)) * s;
1073 q.
Y = (in_mat(0, 2) - in_mat(2, 0)) * s;
1074 q.
Z = (in_mat(1, 0) - in_mat(0, 1)) * s;
1081 if (in_mat(1, 1) > in_mat(0, 0))
1083 if (in_mat(2, 2) > in_mat(i, i))
1089 AkReal32 s = sqrtf( in_mat(i, i) - in_mat(j, j) - in_mat(k, k) + 1.0f );
1090 AkReal32 t = (s == 0.f) ? 0.f : (0.5f / s);
1095 qt[j] = (in_mat(j, i) + in_mat(i, j)) * t;
1096 qt[k] = (in_mat(k, i) + in_mat(i, k)) * t;
1097 qt[3] = (in_mat(k, j) - in_mat(j, k)) * t;
1123 q.
W = cr * cp * cy + sr * sp * sy;
1124 q.
X = sr * cp * cy - cr * sp * sy;
1125 q.
Y = cr * sp * cy + sr * cp * sy;
1126 q.
Z = cr * cp * sy - sr * sp * cy;
1135 AkReal32 sa = sinf(in_angle / 2.f);
1136 q.
W = cosf(in_angle / 2.f);
1137 q.
X = in_axis.
X * sa;
1138 q.
Y = in_axis.
Y * sa;
1139 q.
Z = in_axis.
Z * sa;
1146 return sqrtf(
W*
W +
X*
X +
Y*
Y +
Z*
Z );
1197 AkReal32 sqrt = sqrtf((1.f + dot) * 2.f);
1213 AkReal32 cosHalfAngle = cosf(in_angle / 2.f);
1215 X = cosHalfAngle*in_axis.
X;
1216 Y = cosHalfAngle*in_axis.
Y;
1217 Z = cosHalfAngle*in_axis.
Z;
1251 u * u.
Dot(in_v) * 2.f
1252 + in_v * (
W *
W - u.
Dot(u))
1253 + u.
Cross(in_v) *
W * 2.0f;
1282 mint(1.175494351e-38F),
1283 maxt(3.402823466e+38F)
1290 mint(1.175494351e-38F),
1291 maxt(3.402823466e+38F)
1335 AkReal32 distsqrd = ((P2 + V2*s) - (P1 + V1*t)).LengthSquared();
1341 #ifdef AKPORTALS_DEBUG
1360 #ifdef AKPORTALS_DEBUG
1396 AKASSERT(in_p1.
X < 100000 && in_p1.
X > -100000);
1397 AKASSERT(in_p1.
Y < 100000 && in_p1.
Y > -100000);
1398 AKASSERT(in_p1.
Z < 100000 && in_p1.
Z > -100000);
1400 AKASSERT(in_p2.
X < 100000 && in_p2.
X > -100000);
1401 AKASSERT(in_p2.
Y < 100000 && in_p2.
Y > -100000);
1402 AKASSERT(in_p2.
Z < 100000 && in_p2.
Z > -100000);
1404 AKASSERT(in_p4.
X < 100000 && in_p4.
X > -100000);
1405 AKASSERT(in_p4.
Y < 100000 && in_p4.
Y > -100000);
1406 AKASSERT(in_p4.
Z < 100000 && in_p4.
Z > -100000);
1416 D = -(N.
X*p1.
X) - (N.
Y*p1.
Y) - (N.
Z*p1.
Z);
1419 #define EPSILON 0.01f
1440 if (dot < EPSILON && dot > -
EPSILON)
1442 intersect = in_Origin;
1447 out_Intersection = p1;
1460 if ((A*ray.
X + B*ray.
Y + C*ray.
Z) == 0.0f)
1463 AkReal32 t = -(A*in_Origin.X + B*in_Origin.Y + C*in_Origin.Z + D) / (A*ray.
X + B*ray.
Y + C*ray.
Z);
1464 intersect =
Ak3DVector(in_Origin.X + ray.
X*t, in_Origin.Y + ray.
Y*t, in_Origin.Z + ray.
Z*t);
1465 out_Intersection = intersect;
1471 AkReal32 t = -(A*in_Origin.X + B*in_Origin.Y + C*in_Origin.Z + D) / (A*ray.
X + B*ray.
Y + C*ray.
Z);
1474 if (t < -EPSILON || t >(rayLength +
EPSILON))
1477 intersect =
Ak3DVector(in_Origin.X + ray.
X*t, in_Origin.Y + ray.
Y*t, in_Origin.Z + ray.
Z*t);
1478 out_Intersection = intersect;
1483 intersect =
Ak3DVector(in_Origin.X + ray.
X*t, in_Origin.Y + ray.
Y*t, in_Origin.Z + ray.
Z*t);
1512 out_Intersection = intersect;
1524 pointToPlane *= distance;
1526 out_B = in_P + pointToPlane;
1550 out_mat[0] = 1 - 2 * N.
X*N.
X; out_mat[1] = -2 * N.
X*N.
Y; out_mat[2] = -2 * N.
X*N.
Z; out_mat[3] = -2 * N.
X*d;
1551 out_mat[0 + 4] = -2 * N.
X*N.
Y; out_mat[1 + 4] = 1 - 2 * N.
Y*N.
Y; out_mat[2 + 4] = -2 * N.
Y*N.
Z; out_mat[3 + 4] = -2 * N.
Y*d;
1552 out_mat[0 + 8] = -2 * N.
X*N.
Z; out_mat[1 + 8] = -2 * N.
Y*N.
Z; out_mat[2 + 8] = 1 - 2 * N.
Z*N.
Z; out_mat[3 + 8] = -2 * N.
Z*d;
1553 out_mat[0 + 12] = 0; out_mat[1 + 12] = 0; out_mat[2 + 12] = 0; out_mat[3 + 12] = 1;
1563 out_Intrs.
count = 0;
1606 point.
Y = (N1.
Z*D2 - N2.
Z*D1) / L.
X;
1607 point.
Z = (N2.
Y*D1 - N1.
Y*D2) / L.
X;
1611 point.
X = (N1.
Z*D2 - N2.
Z*D1) / L.
Y;
1613 point.
Z = (N2.
X*D1 - N1.
X*D2) / L.
Y;
1617 point.
X = (N1.
Y*D2 - N2.
Y*D1) / L.
Z;
1618 point.
Y = (N2.
X*D1 - N1.
X*D2) / L.
Z;
1637 #ifdef AKPORTALS_DEBUG
1661 #ifdef AKPORTALS_DEBUG
1673 if (cpt < 2 || cpt2 < 2)
1675 #ifdef AKPORTALS_DEBUG
1687 #ifdef AKPORTALS_DEBUG
1704 out_Intrs.
points[0] = minPoint;
1705 out_Intrs.
points[1] = maxPoint;
1706 out_Intrs.
count = 2;
1755 template<
typename TReal>
1793 return in_Point >=
m_Min && in_Point <=
m_Max;
1847 AKASSERT(fabs(in_Front.
Dot(in_Up) - 0.f) < 0.001);
1849 m_Center = in_center;
1850 m_Extent = in_extent;
1854 m_X = m_Z.
Cross(m_Y);
1860 return fabs(pt.
Dot(m_X)) <= m_Extent.
X && fabs(pt.
Dot(m_Y)) <= m_Extent.
Y && fabs(pt.
Dot(m_Z)) <= m_Extent.
Z;
1877 return size.
X * size.
Y * size.
Z;
1882 const AkBox& B)
const
1885 const AkBox& A = *
this;
1916 AkReal32 right = dpax + dpay + dpaz + dpbx + dpby + dpbz;
1918 return left > right;
1924 out_aabb.
Update(m_Center + x);
1925 out_aabb.
Update(m_Center - x);
1927 out_aabb.
Update(m_Center + y);
1928 out_aabb.
Update(m_Center - y);
1930 out_aabb.
Update(m_Center + Z);
1931 out_aabb.
Update(m_Center - Z);
AkMatrix3x3 & operator/=(const AkReal32 f)
AkForceInline T3DVector & operator*=(const TDataType f)
AkForceInline AkQuaternion & Normalize()
T3DVector< AkReal32 > Ak3DVector
bool FindIntersectionPoints(const AkPlane &in_PlaneB, AkIntersectionPoints &out_Intrs) const
T3DVector(const AkVector &in_vector)
AkReal32 DistPoint_to_Plane(Ak3DVector in_P, Ak3DVector &out_B) const
T3DVector(TDataType in_x, TDataType in_y, TDataType in_z)
AkForceInline T3DVector Abs() const
static AkReal64 ACos(AkReal64 in_value)
AkForceInline bool operator==(const T3DVector &b) const
AkForceInline bool IsWithin(const TBoundingBox &in_BB) const
AkForceInline Ak2DVector operator=(const Ak2DVector &b)
TBoundingBox< AkReal32 > AkBoundingBox
T3DVector< AkReal64 > Ak3DVector64
Ak3DVector PointAt(AkReal32 t) const
bool Intersect(Ak3DVector A, Ak3DVector B)
Ak4DVector operator-(const Ak4DVector &b) const
bool SeparatingAxisExists(const Ak3DVector &L, const AkBox &B) const
AkSafeConversion TTypeConverter
bool IsPointInBox(const Ak3DVector &in_Point) const
static AkReal64 Cos(AkReal64 in_value)
static bool IsFinite(AkReal64 in_val)
AkForceInline AkQuaternion Inverse() const
AkForceInline AkQuaternion operator*(const AkQuaternion &Q) const
Quaternion multiplication.
Ak4DVector & operator/=(const AkReal32 f)
Ak3DIntVector(AkInt32 x, AkInt32 y, AkInt32 z)
static AkQuaternion FromRotationMatrix(const AkMatrix3x3 &in_mat)
void SetPlane(Ak3DVector in_p1, Ak3DVector in_p2, Ak3DVector in_p4)
void OutputDebugMsg(const char *in_pszMsg)
Output a debug message on the console (Ansi string)
static AkForceInline void Diagonal(AkMatrix3x3 &out_mat, AkReal32 in_f)
T3DVector(TDataType in_scalar)
AkForceInline bool IsEmpty() const
T3DVector< AkReal32 > Ak3DVector32
static void Rotation(AkMatrix3x3 &out_mat, AkReal32 in_sin, AkReal32 in_cos, const Ak3DVector &in_axis)
AkForceInline bool operator==(const Ak2DVector &b) const
uint8_t AkUInt8
Unsigned 8-bit integer
void UpdateBoundingBox(AkBoundingBox &out_aabb) const
static AkReal64 Sqrt(AkReal64 in_value)
Ak3DVector GetCenter() const
static AkForceInline TDataType Determinant(const T3DVector &a, const T3DVector &b, const T3DVector &c)
float AkReal32
32-bit floating point
Ak2DVector & operator/=(const AkReal32 f)
AkForceInline T3DVector LinearCombination(const T3DVector &A, const T3DVector &B, const T3DVector &C) const
static AkReal32 Sqrt(AkReal32 in_value)
int32_t AkInt32
Signed 32-bit integer
static AkMatrix3x3 FromColumnVectors(const Ak3DVector &in_col0, const Ak3DVector &in_col1, const Ak3DVector &in_col2)
TBoundingBox Intersect(const TBoundingBox &in_BB) const
AkForceInline TDataType DotProduct(const T3DVector &v2) const
AkForceInline T3DVector operator-(const T3DVector &b) const
AkForceInline T3DVector & operator/=(const TDataType f)
AkForceInline T3DVector operator*(const T3DVector v2) const
#define AKVECTORS_PIOVERTWO
AkForceInline bool IsFinite() const
Ak4DVector & operator=(const Ak4DVector &b)
AkForceInline bool operator!=(const Ak2DVector &b) const
AkForceInline void Convert(AkReal64 &out_to, AkReal32 in_from)
AkForceInline bool IsAllPositive() const
AkForceInline AkReal32 Length() const
Ak3DVector GetSide() const
Ak2DVector(AkReal32 x, AkReal32 y)
static AkReal64 Sin(AkReal64 in_value)
AkForceInline AkMatrix3x3 & operator*=(const AkReal32 &in_f)
AkMatrix4x4 & operator=(AkReal32 *in_Data)
void Update(const TVectorType &in_point)
static AkQuaternion FromAngleAndAxis(AkReal32 in_angle, const Ak3DVector &in_axis)
AkForceInline TDataType LengthSquared() const
AkReal32 GetVolume() const
AkForceInline TDataType Dot(const T3DVector &v2) const
AkForceInline bool operator!=(const T3DVector &b) const
Ak2DVector operator-(const Ak2DVector &b) const
#define AKSIMD_GETELEMENT_V4F32(__vName, __num__)
Get the element at index num in vector __vName
AkReal32 m_Data[MAX_SIZE]
AkForceInline T3DVector operator+(const TDataType f) const
AkForceInline T3DVector< TDataType > operator*(const TDataType f, const T3DVector< TDataType > &v)
#define AKASSERT(Condition)
AkForceInline T3DVector operator-(const TDataType f) const
static AkForceInline T3DVector Min(const T3DVector &A, const T3DVector &B)
AkForceInline T3DVector SphericalToCartesian(const TDataType azimuth, const TDataType elevation)
AkForceInline AKSIMD_V4F32 PointV4F32() const
static AkForceInline void OuterProduct(AkMatrix3x3 &out_mat, const Ak3DVector &in_v0, const Ak3DVector &in_v1)
AkForceInline void Convert(TReal &out_to, TReal in_from)
Ak3DVector GetFront() const
AkForceInline T3DVector operator+(const T3DVector &b) const
static AkForceInline void Add(AkMatrix3x3 &out_res, const AkMatrix3x3 &in_m0, const AkMatrix3x3 &in_m1)
AkMatrix4x4 & operator/=(const AkReal32 f)
TBoundingBox< AkReal64 > AkBoundingBox64
AkForceInline Ak3DVector UnrotateVector(const Ak3DVector32 &in_v) const
AkForceInline AkReal32 & operator()(const AkUInt32 row, const AkUInt32 column)
AkQuaternion(AkReal32 in_angle, const Ak3DVector &in_axis)
AkForceInline T3DVector< TDataType > operator/(const TDataType f, const T3DVector< TDataType > &v)
AkLine(Ak3DVector in_L, Ak3DVector in_P)
static AkQuaternion FromEulers(AkReal32 in_x, AkReal32 in_y, AkReal32 in_z)
double AkReal64
64-bit floating point
static AkForceInline void CrossProductMatrix(AkMatrix3x3 &out_mat, const Ak3DVector &in_u)
bool DoesRayIntersect(const Ak3DVector &in_Origin, const Ak3DVector &in_Destination, Ak3DVector &out_Intersection) const
AkForceInline Ak3DVector32 operator*(const Ak3DVector32 &in_v) const
AkForceInline bool operator<(const T3DVector &b) const
static AkReal32 Cos(AkReal32 in_value)
AkForceInline Ak2DVector NormalizeSpherical() const
AkForceInline bool IsWithin(const TVectorType &in_Point) const
uint64_t AkUInt64
Unsigned 64-bit integer
AkForceInline void NormalizeSpherical()
static AkForceInline void Rotation(AkMatrix3x3 &out_mat, AkReal32 in_angle, const Ak3DVector &in_axis)
#define AKVECTORS_EPSILON
AkForceInline T3DVector Rotate180X_90Y() const
static AkReal32 Sin(AkReal32 in_value)
void Init(const Ak3DVector &in_center, const Ak3DVector &in_extent, const Ak3DVector &in_Front, const Ak3DVector &in_Up)
AkForceInline AkMatrix3x3 & operator+=(const AkMatrix3x3 &in_rhs)
AkForceInline bool IsValid() const
AkForceInline const AkReal32 & operator()(const AkUInt32 row, const AkUInt32 column) const
AkForceInline bool operator>=(const T3DVector &b) const
AkForceInline T3DVector operator/(const TDataType f) const
3D 64-bit vector. Intended as storage for world positions of sounds and objects, benefiting from 64-b...
AkForceInline Ak2DVector & CartesianToSpherical(const Ak3DVector &in_Cartesian)
AkPlane(Ak3DVector in_p1, Ak3DVector in_p2, Ak3DVector in_p4)
uint32_t AkUInt32
Unsigned 32-bit integer
AkQuaternion(const Ak3DVector &in_v0, const Ak3DVector &in_v1)
static AkReal32 ACos(AkReal32 in_value)
AkForceInline T3DVector operator/(const T3DVector in_rhs) const
3D vector for some operations in 3D space. Typically intended only for localized calculations due to ...
Ak3DVector GetSize() const
T3DVector(const AKSIMD_V4F32 &in_v4f32)
AkForceInline bool IsAllPositive() const
AkForceInline TDataType HorizontalMax() const
AkForceInline void Convert(TToReal &out_to, TFromReal in_from)
AkForceInline TDataType L2_Norm() const
AkForceInline AkReal32 Length() const
AkForceInline T3DVector operator*(const TDataType f) const
static AkForceInline T3DVector Max(const T3DVector &A, const T3DVector &B)
void SetReflection(AkReal32 *out_mat) const
AkForceInline bool operator<=(const T3DVector &b) const
AkForceInline Ak3DVector operator*(const Ak3DVector &in_rhs) const
Ak4DVector(const AkVector &b)
AkForceInline T3DVector & Normalize()
Ak2DVector & operator*=(const AkReal32 f)
AkForceInline Ak3DVector RotateVector(const Ak3DVector32 &in_v) const
T3DVector(const T3DVector< TFromDataType > &in_vector)
AkForceInline T3DVector Cross(const T3DVector &v) const
AkForceInline Ak2DVector operator=(const AkSphericalCoord &b)
AkForceInline bool operator>(const T3DVector b) const
AkForceInline TDataType HorizontalMin() const
AkForceInline Ak2DVector LinearCombination(const Ak2DVector &A, const Ak2DVector &B) const
static bool IsFinite(AkReal32 in_val)
AkQuaternion(AkReal32 in_W, AkReal32 in_X, AkReal32 in_Y, AkReal32 in_Z)
AkForceInline TDataType Length() const
T3DVector(const AkVector64 &in_vector)
AkForceInline AKSIMD_V4F32 VectorV4F32() const
TBoundingBox(const TVectorType &in_min, const TVectorType &in_max)
지원이 필요하신가요?
질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!
지원 페이지를 방문해 주세요
작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요