Floating point vectors in 2D
Eina » Data Types

2D vector definition and operations More...

## Data Structures

struct | _Eina_Vector2

## Macros

#define | EINA_VECTOR2(x, y)

## Typedefs

typedef struct _Eina_Vector2 | Eina_Vector2
typedef struct _Eina_Vector3 | Eina_Vector3

## Functions

static void | eina_vector2_set (Eina_Vector2 *dst, double x, double y)
| Set parameters to vector.
static void | eina_vector2_array_set (Eina_Vector2 *dst, const double *v)
| Set array to vector.
static void | eina_vector2_copy (Eina_Vector2 *dst, const Eina_Vector2 *src)
| Copy vector.
static void | eina_vector2_negate (Eina_Vector2 *out, const Eina_Vector2 *v)
| Make negative vector.
static void | eina_vector2_add (Eina_Vector2 *out, const Eina_Vector2 *a, const Eina_Vector2 *b)
| Add two vectors.
static void | eina_vector2_subtract (Eina_Vector2 *out, const Eina_Vector2 *a, const Eina_Vector2 *b)
| Subtract two vectors.
static void | eina_vector2_scale (Eina_Vector2 *out, const Eina_Vector2 *v, double scale)
| Scale vector.
static double | eina_vector2_dot_product (const Eina_Vector2 *a, const Eina_Vector2 *b)
| Return the dot product of the two vectors.
static double | eina_vector2_length_get (const Eina_Vector2 *v)
| Return the length of the given vector.
static double | eina_vector2_length_square_get (const Eina_Vector2 *v)
| Return the length in square of the given vector.
static double | eina_vector2_distance_get (const Eina_Vector2 *a, const Eina_Vector2 *b)
| Return the distance between of two vectors.
static double | eina_vector2_distance_square_get (const Eina_Vector2 *a, const Eina_Vector2 *b)
| Return the distance in square between of two vectors.
static void | eina_vector2_normalize (Eina_Vector2 *out, const Eina_Vector2 *v)
| normalize vector.
static void | eina_vector2_transform (Eina_Vector2 *out, const Eina_Matrix2 *m, const Eina_Vector2 *v)
| Transform vector.
static void | eina_vector2_homogeneous_position_transform (Eina_Vector2 *out, const Eina_Matrix3 *m, const Eina_Vector2 *v)
| Homogeneous position transform vector.
static void | eina_vector2_homogeneous_direction_transform (Eina_Vector2 *out, const Eina_Matrix3 *m, const Eina_Vector2 *v)
| Homogeneous direction transform vector.

## Detailed Description

2D vector definition and operations

## Macro Definition Documentation

## EINA_VECTOR2

#define EINA_VECTOR2 | ( |  | x,
|  |  | y )

Value:
((Eina_Vector2) {(x), (y)})

## Function Documentation

## eina_vector2_set()

void eina_vector2_set | ( | Eina_Vector2 * | dst,
|  | double | x,
|  | double | y )

inline static

Set parameters to vector.

Parameters

  [out] | dst | The resulting vector.
  [in] | x | The x component.
  [in] | y | The y component.

Since
  1.17

## eina_vector2_array_set()

void eina_vector2_array_set | ( | Eina_Vector2 * | dst,
|  | const double * | v )

inline static

Set array to vector.

Parameters

  [out] | dst | The resulting vector.
  [in] | v | The the array[2] for set.

Set to vector first 2 elements from array.

Since
  1.17

## eina_vector2_copy()

void eina_vector2_copy | ( | Eina_Vector2 * | dst,
|  | const Eina_Vector2 * | src )

inline static

Copy vector.

Parameters

  [out] | dst | The vector copy.
  [in] | src | The vector for copy.

Since
  1.17

## eina_vector2_negate()

void eina_vector2_negate | ( | Eina_Vector2 * | out,
|  | const Eina_Vector2 * | v )

inline static

Make negative vector.

Parameters

  [out] | out | The resulting vector.
  [in] | v | The current vector.

Since
  1.17

## eina_vector2_add()

void eina_vector2_add | ( | Eina_Vector2 * | out,
|  | const Eina_Vector2 * | a,
|  | const Eina_Vector2 * | b )

inline static

Add two vectors.

Parameters

  [out] | out | The resulting vector.
  [in] | a | The first member of the add.
  [in] | b | The second member of the add.

Since
  1.17

## eina_vector2_subtract()

void eina_vector2_subtract | ( | Eina_Vector2 * | out,
|  | const Eina_Vector2 * | a,
|  | const Eina_Vector2 * | b )

inline static

Subtract two vectors.

Parameters

  [out] | out | The resulting vector
  [in] | a | The first member of the subtract
  [in] | b | The second member of the subtract

Since
  1.17

## eina_vector2_scale()

void eina_vector2_scale | ( | Eina_Vector2 * | out,
|  | const Eina_Vector2 * | v,
|  | double | scale )

inline static

Scale vector.

Parameters

  [out] | out | The resulting vector.
  [in] | v | The vector for scale.
  [in] | scale | The scale value.

Since
  1.17

## eina_vector2_dot_product()

double eina_vector2_dot_product | ( | const Eina_Vector2 * | a,
|  | const Eina_Vector2 * | b )

inline static

Return the dot product of the two vectors.

Parameters

  [in] | a | The first member.
  [in] | b | The second member.

Returns
  The dot product.

Since
  1.17

## eina_vector2_length_get()

double eina_vector2_length_get | ( | const Eina_Vector2 * | v | ) |

inline static

Return the length of the given vector.

Parameters

  [in] | v | The vector.

Returns
  The length.

Since
  1.17

## eina_vector2_length_square_get()

double eina_vector2_length_square_get | ( | const Eina_Vector2 * | v | ) |

inline static

Return the length in square of the given vector.

Parameters

  [in] | v | The vector.

Returns
  The length in square.

Since
  1.17

## eina_vector2_distance_get()

double eina_vector2_distance_get | ( | const Eina_Vector2 * | a,
|  | const Eina_Vector2 * | b )

inline static

Return the distance between of two vectors.

Parameters

  [in] | a | The first vector.
  [in] | b | The second vector.

Returns
  The distance.

Since
  1.17

## eina_vector2_distance_square_get()

double eina_vector2_distance_square_get | ( | const Eina_Vector2 * | a,
|  | const Eina_Vector2 * | b )

inline static

Return the distance in square between of two vectors.

Parameters

  [in] | a | The first vector.
  [in] | b | The second vector.

Returns
  The distance in square.

Since
  1.17

## eina_vector2_normalize()

void eina_vector2_normalize | ( | Eina_Vector2 * | out,
|  | const Eina_Vector2 * | v )

inline static

normalize vector.

Parameters

  [out] | out | The resulting vector.
  [in] | v | The vector for normalize.

Since
  1.17

## eina_vector2_transform()

void eina_vector2_transform | ( | Eina_Vector2 * | out,
|  | const Eina_Matrix2 * | m,
|  | const Eina_Vector2 * | v )

inline static

Transform vector.

Parameters

  [out] | out | The resulting vector.
  [in] | m | The matrix for transform.
  [in] | v | The vector for transform.

Since
  1.17

## eina_vector2_homogeneous_position_transform()

void eina_vector2_homogeneous_position_transform | ( | Eina_Vector2 * | out,
|  | const Eina_Matrix3 * | m,
|  | const Eina_Vector2 * | v )

inline static

Homogeneous position transform vector.

Parameters

  [out] | out | The resulting vector.
  [in] | m | The matrix for transform.
  [in] | v | The vector for transform.

Since
  1.17

## eina_vector2_homogeneous_direction_transform()

void eina_vector2_homogeneous_direction_transform | ( | Eina_Vector2 * | out,
|  | const Eina_Matrix3 * | m,
|  | const Eina_Vector2 * | v )

inline static

Homogeneous direction transform vector.

Parameters

  [out] | out | The resulting vector.
  [in] | m | The matrix for transform.
  [in] | v | The vector for transform.

Since
  1.17