4D vector. More...
#include <kanzi/core/cpp/math.hpp>
#include <kanzi/core/legacy/kzs_types.hpp>
#include <kanzi/core/legacy/wrappers/kzs_math.hpp>
Classes | |
struct | KzcVector4 |
Structure of 4D vector. More... | |
Functions | |
KZ_INLINE struct KzcVector4 | kzcVector4 (kzFloat x, kzFloat y, kzFloat z, kzFloat w) |
Creates a 4D vector. More... | |
KZ_INLINE kzFloat | kzcVector4GetX (const struct KzcVector4 *vector) |
Gets the X component of a 4D vector. More... | |
KZ_INLINE kzFloat | kzcVector4GetY (const struct KzcVector4 *vector) |
Gets the Y component of a 4D vector. More... | |
KZ_INLINE kzFloat | kzcVector4GetZ (const struct KzcVector4 *vector) |
Gets the Z component of a 4D vector. More... | |
KZ_INLINE kzFloat | kzcVector4GetW (const struct KzcVector4 *vector) |
Gets the W component of a 4D vector. More... | |
KZ_INLINE kzFloat * | kzcVector4GetComponents (struct KzcVector4 *vector) |
Gets the underlying component array of a 4D vector. More... | |
KZ_INLINE void | kzcVector4Set (struct KzcVector4 *vector, kzFloat x, kzFloat y, kzFloat z, kzFloat a) |
Sets values for 4D vector. More... | |
KZ_INLINE void | kzcVector4SetX (struct KzcVector4 *vector, kzFloat x) |
Sets X component for 4D vector. More... | |
KZ_INLINE void | kzcVector4SetY (struct KzcVector4 *vector, kzFloat y) |
Sets Y component for 4D vector. More... | |
KZ_INLINE void | kzcVector4SetZ (struct KzcVector4 *vector, kzFloat z) |
Sets Z component for 4D vector. More... | |
KZ_INLINE void | kzcVector4SetW (struct KzcVector4 *vector, kzFloat w) |
Sets W component for 4D vector. More... | |
KZ_INLINE void | kzcVector4Add (const struct KzcVector4 *first, const struct KzcVector4 *second, struct KzcVector4 *targetVector) |
Adds two 4D vectors. More... | |
KZ_INLINE void | kzcVector4Subtract (const struct KzcVector4 *first, const struct KzcVector4 *second, struct KzcVector4 *targetVector) |
Subtracts two 4D vectors. More... | |
KZ_INLINE void | kzcVector4ComponentMultiply (const struct KzcVector4 *first, const struct KzcVector4 *second, struct KzcVector4 *targetVector) |
Component-multiplies two 4D vectors. More... | |
KZ_INLINE void | kzcVector4ComponentDivide (const struct KzcVector4 *first, const struct KzcVector4 *second, struct KzcVector4 *targetVector) |
Component-divides two 4D vectors. More... | |
KZ_INLINE void | kzcVector4ComponentModulo (const struct KzcVector4 *first, const struct KzcVector4 *second, struct KzcVector4 *targetVector) |
Component-modulo of two 4D vectors. More... | |
KZ_INLINE void | kzcVector4ComponentAbs (const struct KzcVector4 *vector, struct KzcVector4 *out_vector) |
Abs of a 4D vector. More... | |
KZ_INLINE void | kzcVector4ComponentCeil (const struct KzcVector4 *vector, struct KzcVector4 *out_vector) |
Ceil of a 4D vector. More... | |
KZ_INLINE void | kzcVector4ComponentFloor (const struct KzcVector4 *vector, struct KzcVector4 *out_vector) |
Floor of a 4D vector. More... | |
KZ_INLINE void | kzcVector4ComponentRound (const struct KzcVector4 *vector, struct KzcVector4 *out_vector) |
Round of a 4D vector. More... | |
KZ_INLINE void | kzcVector4ComponentSqrt (const struct KzcVector4 *vector, struct KzcVector4 *out_vector) |
Square root of a 4D vector component-wise. More... | |
KZ_INLINE void | kzcVector4ComponentPow (const struct KzcVector4 *vector, kzFloat exponent, struct KzcVector4 *out_vector) |
Raises a 4D vector to power of 'exponent' component-wise. More... | |
KZ_INLINE void | kzcVector4Scale (const struct KzcVector4 *vector, kzFloat factor, struct KzcVector4 *targetVector) |
Scales 4D vector. More... | |
KZ_INLINE void | kzcVector4Negate (const struct KzcVector4 *vector, struct KzcVector4 *targetVector) |
Negates 4D vector. More... | |
KZ_INLINE kzFloat | kzcVector4Dot (const struct KzcVector4 *left, const struct KzcVector4 *right) |
Calculates dot product of two 4D vectors. More... | |
KZ_INLINE kzFloat | kzcVector4GetLengthSquared (const struct KzcVector4 *vector) |
Returns length squared of a 4D vector. More... | |
KZ_INLINE kzFloat | kzcVector4GetLength (const struct KzcVector4 *vector) |
Returns the length of 4D vector. More... | |
KZ_INLINE kzFloat | kzcVector4Distance (const struct KzcVector4 *vector1, const struct KzcVector4 *vector2) |
Returns the distance between two 4D point vectors. More... | |
KZ_INLINE void | kzcVector4Normalize (struct KzcVector4 *vector) |
Normalizes a 4D vector. More... | |
KZ_INLINE void | kzcVector4Reflect (const struct KzcVector4 *vector, const struct KzcVector4 *axis, struct KzcVector4 *targetVector) |
Reflects a 4D vector according to given axis vector. More... | |
KZ_INLINE kzBool | kzcVector4IsEqual (const struct KzcVector4 *first, const struct KzcVector4 *second) |
Checks if two 4D vectors are equal. More... | |
KZ_INLINE void | kzcVector4Cross (const struct KzcVector4 *left, const struct KzcVector4 *right, struct KzcVector4 *targetVector) |
Calculates cross product of two vectors. More... | |
KZ_INLINE struct KzcVector4 | kzcVector4ComponentMax (const struct KzcVector4 *vectorA, const struct KzcVector4 *vectorB) |
Returns the component maximum of two vectors. More... | |
KZ_INLINE struct KzcVector4 | kzcVector4ComponentMin (const struct KzcVector4 *vectorA, const struct KzcVector4 *vectorB) |
Returns the component minimum of two vectors. More... | |
KZ_INLINE struct KzcVector4 | kzcVector4ComponentStep (const struct KzcVector4 *vectorA, const struct KzcVector4 *vectorB) |
Returns the component-wise step() of two vectors. More... | |
void | kzcVector4SetInvalid (struct KzcVector4 *vector) |
Sets the vector components to NaN. More... | |
Variables | |
KANZI_API const struct KzcVector4 | KZC_VECTOR4_ZERO |
Constant zero 4D vector. More... | |
KANZI_API const struct KzcVector4 | KZC_VECTOR4_X_AXIS |
Constant unit 4D vector for X axis. More... | |
KANZI_API const struct KzcVector4 | KZC_VECTOR4_Y_AXIS |
Constant unit 4D vector for Y axis. More... | |
KANZI_API const struct KzcVector4 | KZC_VECTOR4_Z_AXIS |
Constant unit 4D vector for Z axis. More... | |
4D vector.
Copyright 2008-2017 by Rightware. All rights reserved.
Creates a 4D vector.
KZ_INLINE kzFloat kzcVector4GetX | ( | const struct KzcVector4 * | vector | ) |
Gets the X component of a 4D vector.
KZ_INLINE kzFloat kzcVector4GetY | ( | const struct KzcVector4 * | vector | ) |
Gets the Y component of a 4D vector.
KZ_INLINE kzFloat kzcVector4GetZ | ( | const struct KzcVector4 * | vector | ) |
Gets the Z component of a 4D vector.
KZ_INLINE kzFloat kzcVector4GetW | ( | const struct KzcVector4 * | vector | ) |
Gets the W component of a 4D vector.
KZ_INLINE kzFloat* kzcVector4GetComponents | ( | struct KzcVector4 * | vector | ) |
Gets the underlying component array of a 4D vector.
KZ_INLINE void kzcVector4Set | ( | struct KzcVector4 * | vector, |
kzFloat | x, | ||
kzFloat | y, | ||
kzFloat | z, | ||
kzFloat | a | ||
) |
Sets values for 4D vector.
KZ_INLINE void kzcVector4SetX | ( | struct KzcVector4 * | vector, |
kzFloat | x | ||
) |
Sets X component for 4D vector.
KZ_INLINE void kzcVector4SetY | ( | struct KzcVector4 * | vector, |
kzFloat | y | ||
) |
Sets Y component for 4D vector.
KZ_INLINE void kzcVector4SetZ | ( | struct KzcVector4 * | vector, |
kzFloat | z | ||
) |
Sets Z component for 4D vector.
KZ_INLINE void kzcVector4SetW | ( | struct KzcVector4 * | vector, |
kzFloat | w | ||
) |
Sets W component for 4D vector.
KZ_INLINE void kzcVector4Add | ( | const struct KzcVector4 * | first, |
const struct KzcVector4 * | second, | ||
struct KzcVector4 * | targetVector | ||
) |
Adds two 4D vectors.
KZ_INLINE void kzcVector4Subtract | ( | const struct KzcVector4 * | first, |
const struct KzcVector4 * | second, | ||
struct KzcVector4 * | targetVector | ||
) |
Subtracts two 4D vectors.
KZ_INLINE void kzcVector4ComponentMultiply | ( | const struct KzcVector4 * | first, |
const struct KzcVector4 * | second, | ||
struct KzcVector4 * | targetVector | ||
) |
Component-multiplies two 4D vectors.
KZ_INLINE void kzcVector4ComponentDivide | ( | const struct KzcVector4 * | first, |
const struct KzcVector4 * | second, | ||
struct KzcVector4 * | targetVector | ||
) |
Component-divides two 4D vectors.
KZ_INLINE void kzcVector4ComponentModulo | ( | const struct KzcVector4 * | first, |
const struct KzcVector4 * | second, | ||
struct KzcVector4 * | targetVector | ||
) |
Component-modulo of two 4D vectors.
KZ_INLINE void kzcVector4ComponentAbs | ( | const struct KzcVector4 * | vector, |
struct KzcVector4 * | out_vector | ||
) |
Abs of a 4D vector.
KZ_INLINE void kzcVector4ComponentCeil | ( | const struct KzcVector4 * | vector, |
struct KzcVector4 * | out_vector | ||
) |
Ceil of a 4D vector.
KZ_INLINE void kzcVector4ComponentFloor | ( | const struct KzcVector4 * | vector, |
struct KzcVector4 * | out_vector | ||
) |
Floor of a 4D vector.
KZ_INLINE void kzcVector4ComponentRound | ( | const struct KzcVector4 * | vector, |
struct KzcVector4 * | out_vector | ||
) |
Round of a 4D vector.
KZ_INLINE void kzcVector4ComponentSqrt | ( | const struct KzcVector4 * | vector, |
struct KzcVector4 * | out_vector | ||
) |
Square root of a 4D vector component-wise.
KZ_INLINE void kzcVector4ComponentPow | ( | const struct KzcVector4 * | vector, |
kzFloat | exponent, | ||
struct KzcVector4 * | out_vector | ||
) |
Raises a 4D vector to power of 'exponent' component-wise.
KZ_INLINE void kzcVector4Scale | ( | const struct KzcVector4 * | vector, |
kzFloat | factor, | ||
struct KzcVector4 * | targetVector | ||
) |
Scales 4D vector.
KZ_INLINE void kzcVector4Negate | ( | const struct KzcVector4 * | vector, |
struct KzcVector4 * | targetVector | ||
) |
Negates 4D vector.
KZ_INLINE kzFloat kzcVector4Dot | ( | const struct KzcVector4 * | left, |
const struct KzcVector4 * | right | ||
) |
Calculates dot product of two 4D vectors.
KZ_INLINE kzFloat kzcVector4GetLengthSquared | ( | const struct KzcVector4 * | vector | ) |
Returns length squared of a 4D vector.
KZ_INLINE kzFloat kzcVector4GetLength | ( | const struct KzcVector4 * | vector | ) |
Returns the length of 4D vector.
KZ_INLINE kzFloat kzcVector4Distance | ( | const struct KzcVector4 * | vector1, |
const struct KzcVector4 * | vector2 | ||
) |
Returns the distance between two 4D point vectors.
KZ_INLINE void kzcVector4Normalize | ( | struct KzcVector4 * | vector | ) |
Normalizes a 4D vector.
KZ_INLINE void kzcVector4Reflect | ( | const struct KzcVector4 * | vector, |
const struct KzcVector4 * | axis, | ||
struct KzcVector4 * | targetVector | ||
) |
Reflects a 4D vector according to given axis vector.
Axis has to be normalized.
KZ_INLINE kzBool kzcVector4IsEqual | ( | const struct KzcVector4 * | first, |
const struct KzcVector4 * | second | ||
) |
Checks if two 4D vectors are equal.
KZ_INLINE void kzcVector4Cross | ( | const struct KzcVector4 * | left, |
const struct KzcVector4 * | right, | ||
struct KzcVector4 * | targetVector | ||
) |
Calculates cross product of two vectors.
Uses only the first 3 parts of the vectors and sets last component to zero.
KZ_INLINE struct KzcVector4 kzcVector4ComponentMax | ( | const struct KzcVector4 * | vectorA, |
const struct KzcVector4 * | vectorB | ||
) |
Returns the component maximum of two vectors.
KZ_INLINE struct KzcVector4 kzcVector4ComponentMin | ( | const struct KzcVector4 * | vectorA, |
const struct KzcVector4 * | vectorB | ||
) |
Returns the component minimum of two vectors.
KZ_INLINE struct KzcVector4 kzcVector4ComponentStep | ( | const struct KzcVector4 * | vectorA, |
const struct KzcVector4 * | vectorB | ||
) |
Returns the component-wise step() of two vectors.
void kzcVector4SetInvalid | ( | struct KzcVector4 * | vector | ) |
Sets the vector components to NaN.
KANZI_API const struct KzcVector4 KZC_VECTOR4_ZERO |
Constant zero 4D vector.
KANZI_API const struct KzcVector4 KZC_VECTOR4_X_AXIS |
Constant unit 4D vector for X axis.
KANZI_API const struct KzcVector4 KZC_VECTOR4_Y_AXIS |
Constant unit 4D vector for Y axis.
KANZI_API const struct KzcVector4 KZC_VECTOR4_Z_AXIS |
Constant unit 4D vector for Z axis.