3D vector definition and operations More...
Data Structures | |
struct | _Eina_Vector3 |
Functions | |
static void | eina_vector3_set (Eina_Vector3 *dst, double x, double y, double z) |
Set parameters to vector. More... | |
static void | eina_vector3_array_set (Eina_Vector3 *dst, const double *v) |
Set array to vector. More... | |
static void | eina_vector3_copy (Eina_Vector3 *dst, const Eina_Vector3 *src) |
Copy vector. More... | |
static void | eina_vector3_negate (Eina_Vector3 *out, const Eina_Vector3 *v) |
Make negative vector. More... | |
static void | eina_vector3_add (Eina_Vector3 *out, const Eina_Vector3 *a, const Eina_Vector3 *b) |
Add two vectors. More... | |
static void | eina_vector3_subtract (Eina_Vector3 *out, const Eina_Vector3 *a, const Eina_Vector3 *b) |
Subtract two vectors. More... | |
static void | eina_vector3_scale (Eina_Vector3 *out, const Eina_Vector3 *v, double scale) |
Scale vector. More... | |
static void | eina_vector3_multiply (Eina_Vector3 *out, const Eina_Vector3 *a, const Eina_Vector3 *b) |
Multiply two vectors. More... | |
static double | eina_vector3_dot_product (const Eina_Vector3 *a, const Eina_Vector3 *b) |
Return the dot product of the two vectors. More... | |
static void | eina_vector3_cross_product (Eina_Vector3 *out, const Eina_Vector3 *a, const Eina_Vector3 *b) |
Create the cross product of the two vectors. More... | |
static double | eina_vector3_length_get (const Eina_Vector3 *v) |
Return the length of the given vector. More... | |
static double | eina_vector3_length_square_get (const Eina_Vector3 *v) |
Return the length in square of the given vector. More... | |
static double | eina_vector3_distance_get (const Eina_Vector3 *a, const Eina_Vector3 *b) |
Return the distance between of two vectors. More... | |
static double | eina_vector3_distance_square_get (const Eina_Vector3 *a, const Eina_Vector3 *b) |
Return the distance in square between of two vectors. More... | |
static double | eina_vector3_angle_get (const Eina_Vector3 *a, const Eina_Vector3 *b) |
Return the angle between of two vectors. More... | |
static void | eina_vector3_normalize (Eina_Vector3 *out, const Eina_Vector3 *v) |
normalize vector. More... | |
static void | eina_vector3_transform (Eina_Vector3 *out, const Eina_Matrix3 *m, const Eina_Vector3 *v) |
Transform vector. More... | |
static void | eina_vector3_homogeneous_direction_transform (Eina_Vector3 *out, const Eina_Matrix4 *m, const Eina_Vector3 *v) |
Homogeneous direction transform vector. More... | |
static void | eina_vector3_homogeneous_position_transform (Eina_Vector3 *out, const Eina_Matrix4 *m, const Eina_Vector3 *v) |
Homogeneous position transform vector. More... | |
static void | eina_vector3_quaternion_rotate (Eina_Vector3 *out, const Eina_Vector3 *v, const Eina_Quaternion *q) |
Rotate vector. More... | |
static void | eina_vector3_orthogonal_projection_on_plane (Eina_Vector3 *out, const Eina_Vector3 *v, const Eina_Vector3 *normal) |
Create orthogonal projection on plane between vector and normal. More... | |
static void | eina_vector3_plane_by_points (Eina_Quaternion *out, const Eina_Vector3 *a, const Eina_Vector3 *b, const Eina_Vector3 *c) |
Plane by points between three vectors. More... | |
static void | eina_vector3_homogeneous_position_set (Eina_Vector3 *out, const Eina_Quaternion *v) |
Homogeneous position set. More... | |
static void | eina_vector3_homogeneous_direction_set (Eina_Vector3 *out, const Eina_Quaternion *v) |
Homogeneous direction set. More... | |
static Eina_Bool | eina_vector3_equivalent (Eina_Vector3 *a, const Eina_Vector3 *b) |
Check the equivalent between of two vectors. More... | |
static Eina_Bool | eina_vector3_triangle_equivalent (Eina_Vector3 *v0, Eina_Vector3 *v1, Eina_Vector3 *v2, Eina_Vector3 *w0, Eina_Vector3 *w1, Eina_Vector3 *w2) |
Check the equivalent between of two triangles of vectors. More... | |
3D vector definition and operations
|
inlinestatic |
Set parameters to vector.
[out] | dst | The resulting vector. |
[in] | x | The x component. |
[in] | y | The y component. |
[in] | z | The z component. |
|
inlinestatic |
Set array to vector.
[out] | dst | The resulting vector. |
[in] | v | The the array[3] for set. |
Set to vector first 3 elements from array.
|
inlinestatic |
Copy vector.
[out] | dst | The vector copy. |
[in] | src | The vector for copy. |
|
inlinestatic |
Make negative vector.
[out] | out | The resulting vector. |
[in] | v | The current vector. |
|
inlinestatic |
Add two vectors.
[out] | out | The resulting vector. |
[in] | a | The first member of the add. |
[in] | b | The second member of the add. |
|
inlinestatic |
Subtract two vectors.
[out] | out | The resulting vector |
[in] | a | The first member of the subtract |
[in] | b | The second member of the subtract |
|
inlinestatic |
Scale vector.
[out] | out | The resulting vector. |
[in] | v | The vector for scale. |
[in] | scale | The scale value. |
|
inlinestatic |
Multiply two vectors.
[out] | out | The resulting vector |
[in] | a | The first member |
[in] | b | The second member |
|
inlinestatic |
Return the dot product of the two vectors.
[in] | a | The first member. |
[in] | b | The second member. |
|
inlinestatic |
Create the cross product of the two vectors.
[out] | out | The resulting vector. |
[in] | a | The first member. |
[in] | b | The second member. |
|
inlinestatic |
Return the length of the given vector.
[in] | v | The vector. |
|
inlinestatic |
Return the length in square of the given vector.
[in] | v | The vector. |
|
inlinestatic |
Return the distance between of two vectors.
[in] | a | The first vector. |
[in] | b | The second vector. |
|
inlinestatic |
Return the distance in square between of two vectors.
[in] | a | The first vector. |
[in] | b | The second vector. |
|
inlinestatic |
Return the angle between of two vectors.
[in] | a | The first vector. |
[in] | b | The second vector. |
|
inlinestatic |
normalize vector.
[out] | out | The resulting vector. |
[in] | v | The not NULL vector for normalize. |
|
inlinestatic |
Transform vector.
[out] | out | The resulting vector. |
[in] | m | The matrix for transform. |
[in] | v | The vector for transform. |
|
inlinestatic |
Homogeneous direction transform vector.
[out] | out | The resulting vector. |
[in] | m | The matrix for transform. |
[in] | v | The vector for transform. |
|
inlinestatic |
Homogeneous position transform vector.
[out] | out | The resulting vector. |
[in] | m | The matrix for transform. |
[in] | v | The vector for transform. |
|
inlinestatic |
Rotate vector.
[out] | out | The resulting vector. |
[in] | v | The vector for rotate. |
[in] | q | The quaternion in radians for rotate. |
|
inlinestatic |
Create orthogonal projection on plane between vector and normal.
[out] | out | The resulting vector. |
[in] | v | The vector for projection. |
[in] | normal | The normal for projection. |
|
inlinestatic |
Plane by points between three vectors.
[out] | out | The resulting quaternion of plane. |
[in] | a | The first member. |
[in] | b | The second member. |
[in] | c | The third member. |
|
inlinestatic |
Homogeneous position set.
[out] | out | The resulting vector. |
[in] | v | The quaternion for position. |
|
inlinestatic |
Homogeneous direction set.
[out] | out | The resulting vector. |
[in] | v | The quaternion for direction. |
|
inlinestatic |
Check the equivalent between of two vectors.
[in] | a | The first vector. |
[in] | b | The second vector. |
|
inlinestatic |
Check the equivalent between of two triangles of vectors.
[in] | v0 | The first member of first triangle. |
[in] | v1 | The second member of first triangle. |
[in] | v2 | The third member of first triangle. |
[in] | w0 | The first member of second triangle. |
[in] | w1 | The second member of second triangle. |
[in] | w2 | The third member of second triangle. |