이 파일의 문서화 페이지로 가기
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;
511 return fabs(
X - b.
X) <= tolerance && fabs(
Y - b.
Y) <= tolerance && fabs(
Z - b.
Z) <= tolerance;
528 const TDataType azimuth,
529 const TDataType elevation)
545 return (a.
X*b.
Y*c.
Z + a.
Y*b.
Z*c.
X + a.
Z*b.
X*c.
Y) -
546 (a.
Z*b.
Y*c.
X + a.
Y*b.
X*c.
Z + a.
X*b.
Z*c.
Y);
561 v.
X =
static_cast<TDataType
>(0.0); v.
Y =
static_cast<TDataType
>(0.0); v.
Z =
static_cast<TDataType
>(0.0);
570 TDataType oneover_d =
static_cast<TDataType
>(1.0) / d;
576 v.
X =
X * invA.
X +
Y * invB.
X +
Z * invC.
X;
577 v.
Y =
X * invA.
Y +
Y * invB.
Y +
Z * invC.
Y;
578 v.
Z =
X * invA.
Z +
Y * invB.
Z +
Z * invC.
Z;
588 if (l !=
static_cast<TDataType
>(0.0))
596 X =
static_cast<TDataType
>(0.0);
597 Y =
static_cast<TDataType
>(0.0);
598 Z =
static_cast<TDataType
>(0.0);
610 return X*v2.
X +
Y*v2.
Y +
Z*v2.
Z;
624 uxv.
X = u.
Y*v.
Z - u.
Z*v.
Y;
625 uxv.
Y = u.
Z*v.
X - u.
X*v.
Z;
626 uxv.
Z = u.
X*v.
Y - u.
Y*v.
X;
652 abs.
X = (TDataType)fabs(abs.
X);
653 abs.
Y = (TDataType)fabs(abs.
Y);
654 abs.
Z = (TDataType)fabs(abs.
Z);
671 template<
typename TDataType>
677 template<
typename TDataType>
700 template<
typename TDataType>
701 template<
typename TVectorType>
705 v.X =
static_cast<typename TVectorType::data_type
>(X);
706 v.Y =
static_cast<typename TVectorType::data_type
>(Y);
707 v.Z =
static_cast<typename TVectorType::data_type
>(Z);
772 return b.
X ==
X && b.
Y ==
Y;
777 return b.
X !=
X && b.
Y !=
Y;
782 return sqrtf(
X*
X+
Y*
Y);
790 AkReal32 r = sqrtf( in_Cartesian.
X*in_Cartesian.
X + in_Cartesian.
Y*in_Cartesian.
Y + in_Cartesian.
Z*in_Cartesian.
Z);
793 X = atan2f(in_Cartesian.
Y, in_Cartesian.
X);
794 Y = asinf(in_Cartesian.
Z / r);
812 v.
X = 0.0f; v.
Y = 0.0f;
823 v.
X =
X * invA.
X +
Y * invB.
X;
824 v.
Y =
X * invA.
Y +
Y * invB.
Y;
881 const AkReal32 POSITIVE_TEST_EPSILON = 0.00001f;
882 return X >= -POSITIVE_TEST_EPSILON &&
883 Y >= -POSITIVE_TEST_EPSILON;
894 static const int MAX_SIZE = 16;
905 for (
int i = 0; i < MAX_SIZE; i++)
913 for (
int i = 0; i < MAX_SIZE; i++)
955 for (
int i = 0; i < 3; i++)
957 for (
int j = 0; j < 3; j++)
967 return m_Data[column][row];
972 return m_Data[column][row];
986 Add(*
this, *
this, in_rhs);
992 #define ADD(i,j) out_res(i,j) = in_m0(i,j) + in_m1(i,j)
1009 out_mat(0, 0) = in_f; out_mat(0, 1) = 0.f; out_mat(0, 2) = 0.f;
1010 out_mat(1, 0) = 0.f; out_mat(1, 1) = in_f; out_mat(1, 2) = 0.f;
1011 out_mat(2, 0) = 0.f; out_mat(2, 1) = 0.f; out_mat(2, 2) = in_f;
1017 out_mat(0, 0) = 0.f; out_mat(0, 1) = -in_u.
Z; out_mat(0, 2) = in_u.
Y;
1018 out_mat(1, 0) = in_u.
Z; out_mat(1, 1) = 0.f; out_mat(1, 2) = -in_u.
X;
1019 out_mat(2, 0) = -in_u.
Y; out_mat(2, 1) = in_u.
X; out_mat(2, 2) = 0.f;
1024 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;
1025 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;
1026 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;
1031 Rotation(out_mat, sinf(in_angle), cosf(in_angle), in_axis);
1040 outer *= (1.f - in_cos);
1070 AkReal32 trace = in_mat(0,0) + in_mat(1, 1) + in_mat(2, 2);
1077 q.
X = (in_mat(2, 1) - in_mat(1, 2)) * s;
1078 q.
Y = (in_mat(0, 2) - in_mat(2, 0)) * s;
1079 q.
Z = (in_mat(1, 0) - in_mat(0, 1)) * s;
1086 if (in_mat(1, 1) > in_mat(0, 0))
1088 if (in_mat(2, 2) > in_mat(i, i))
1094 AkReal32 s = sqrtf( in_mat(i, i) - in_mat(j, j) - in_mat(k, k) + 1.0f );
1095 AkReal32 t = (s == 0.f) ? 0.f : (0.5f / s);
1100 qt[j] = (in_mat(j, i) + in_mat(i, j)) * t;
1101 qt[k] = (in_mat(k, i) + in_mat(i, k)) * t;
1102 qt[3] = (in_mat(k, j) - in_mat(j, k)) * t;
1128 q.
W = cr * cp * cy + sr * sp * sy;
1129 q.
X = sr * cp * cy - cr * sp * sy;
1130 q.
Y = cr * sp * cy + sr * cp * sy;
1131 q.
Z = cr * cp * sy - sr * sp * cy;
1140 AkReal32 sa = sinf(in_angle / 2.f);
1141 q.
W = cosf(in_angle / 2.f);
1142 q.
X = in_axis.
X * sa;
1143 q.
Y = in_axis.
Y * sa;
1144 q.
Z = in_axis.
Z * sa;
1151 return sqrtf(
W*
W +
X*
X +
Y*
Y +
Z*
Z );
1202 AkReal32 sqrt = sqrtf((1.f + dot) * 2.f);
1218 AkReal32 cosHalfAngle = cosf(in_angle / 2.f);
1220 X = cosHalfAngle*in_axis.
X;
1221 Y = cosHalfAngle*in_axis.
Y;
1222 Z = cosHalfAngle*in_axis.
Z;
1256 u * u.
Dot(in_v) * 2.f
1257 + in_v * (
W *
W - u.
Dot(u))
1258 + u.
Cross(in_v) *
W * 2.0f;
1287 mint(1.175494351e-38F),
1288 maxt(3.402823466e+38F)
1295 mint(1.175494351e-38F),
1296 maxt(3.402823466e+38F)
1340 AkReal32 distsqrd = ((P2 + V2*s) - (P1 + V1*t)).LengthSquared();
1346 #ifdef AKPORTALS_DEBUG
1365 #ifdef AKPORTALS_DEBUG
1401 AKASSERT(in_p1.
X < 100000 && in_p1.
X > -100000);
1402 AKASSERT(in_p1.
Y < 100000 && in_p1.
Y > -100000);
1403 AKASSERT(in_p1.
Z < 100000 && in_p1.
Z > -100000);
1405 AKASSERT(in_p2.
X < 100000 && in_p2.
X > -100000);
1406 AKASSERT(in_p2.
Y < 100000 && in_p2.
Y > -100000);
1407 AKASSERT(in_p2.
Z < 100000 && in_p2.
Z > -100000);
1409 AKASSERT(in_p4.
X < 100000 && in_p4.
X > -100000);
1410 AKASSERT(in_p4.
Y < 100000 && in_p4.
Y > -100000);
1411 AKASSERT(in_p4.
Z < 100000 && in_p4.
Z > -100000);
1421 D = -(N.
X*p1.
X) - (N.
Y*p1.
Y) - (N.
Z*p1.
Z);
1424 #define EPSILON 0.01f
1445 if (dot < EPSILON && dot > -
EPSILON)
1447 intersect = in_Origin;
1452 out_Intersection = p1;
1465 if ((A*ray.
X + B*ray.
Y + C*ray.
Z) == 0.0f)
1468 AkReal32 t = -(A*in_Origin.X + B*in_Origin.Y + C*in_Origin.Z + D) / (A*ray.
X + B*ray.
Y + C*ray.
Z);
1469 intersect =
Ak3DVector(in_Origin.X + ray.
X*t, in_Origin.Y + ray.
Y*t, in_Origin.Z + ray.
Z*t);
1470 out_Intersection = intersect;
1476 AkReal32 t = -(A*in_Origin.X + B*in_Origin.Y + C*in_Origin.Z + D) / (A*ray.
X + B*ray.
Y + C*ray.
Z);
1479 if (t < -EPSILON || t >(rayLength +
EPSILON))
1482 intersect =
Ak3DVector(in_Origin.X + ray.
X*t, in_Origin.Y + ray.
Y*t, in_Origin.Z + ray.
Z*t);
1483 out_Intersection = intersect;
1488 intersect =
Ak3DVector(in_Origin.X + ray.
X*t, in_Origin.Y + ray.
Y*t, in_Origin.Z + ray.
Z*t);
1517 out_Intersection = intersect;
1529 pointToPlane *= distance;
1531 out_B = in_P + pointToPlane;
1555 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;
1556 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;
1557 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;
1558 out_mat[0 + 12] = 0; out_mat[1 + 12] = 0; out_mat[2 + 12] = 0; out_mat[3 + 12] = 1;
1568 out_Intrs.
count = 0;
1611 point.
Y = (N1.
Z*D2 - N2.
Z*D1) / L.
X;
1612 point.
Z = (N2.
Y*D1 - N1.
Y*D2) / L.
X;
1616 point.
X = (N1.
Z*D2 - N2.
Z*D1) / L.
Y;
1618 point.
Z = (N2.
X*D1 - N1.
X*D2) / L.
Y;
1622 point.
X = (N1.
Y*D2 - N2.
Y*D1) / L.
Z;
1623 point.
Y = (N2.
X*D1 - N1.
X*D2) / L.
Z;
1642 #ifdef AKPORTALS_DEBUG
1666 #ifdef AKPORTALS_DEBUG
1678 if (cpt < 2 || cpt2 < 2)
1680 #ifdef AKPORTALS_DEBUG
1692 #ifdef AKPORTALS_DEBUG
1709 out_Intrs.
points[0] = minPoint;
1710 out_Intrs.
points[1] = maxPoint;
1711 out_Intrs.
count = 2;
1760 template<
typename TReal>
1798 return in_Point >=
m_Min && in_Point <=
m_Max;
1852 AKASSERT(fabs(in_Front.
Dot(in_Up) - 0.f) < 0.001);
1854 m_Center = in_center;
1855 m_Extent = in_extent;
1859 m_X = m_Z.
Cross(m_Y);
1865 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;
1882 return size.
X * size.
Y * size.
Z;
1887 const AkBox& B)
const
1890 const AkBox& A = *
this;
1921 AkReal32 right = dpax + dpay + dpaz + dpbx + dpby + dpbz;
1923 return left > right;
1929 out_aabb.
Update(m_Center + x);
1930 out_aabb.
Update(m_Center - x);
1932 out_aabb.
Update(m_Center + y);
1933 out_aabb.
Update(m_Center - y);
1935 out_aabb.
Update(m_Center + Z);
1936 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 bool Equals(const T3DVector &b, const TDataType tolerance=static_cast< TDataType >(0.0)) 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를 시작해 보세요