Esempio n. 1
0
/**
 * graphene_vec2_equal:
 * @v1: a #graphene_vec2_t
 * @v2: a #graphene_vec2_t
 *
 * Checks whether the two given #graphene_vec2_t are equal.
 *
 * Returns: `true` if the two vectors are equal, and false otherwise
 *
 * Since: 1.2
 */
bool
graphene_vec2_equal (const graphene_vec2_t *v1,
                     const graphene_vec2_t *v2)
{
  if (v1 == v2)
    return true;

  if (v1 == NULL || v2 == NULL)
    return false;

  if (graphene_simd4f_cmp_eq (v1->value, v2->value))
    return true;

  return graphene_vec2_near (v1, v2, GRAPHENE_FLOAT_EPSILON);
}
Esempio n. 2
0
/**
 * graphene_quaternion_equal:
 * @a: a #graphene_quaternion_t
 * @b: a #graphene_quaternion_t
 *
 * Checks whether the given quaternions are equal.
 *
 * Returns: `true` if the quaternions are equal
 *
 * Since: 1.0
 */
bool
graphene_quaternion_equal (const graphene_quaternion_t *a,
                           const graphene_quaternion_t *b)
{
  graphene_simd4f_t v_a, v_b;

  if (a == b)
    return true;

  if (a == NULL || b == NULL)
    return false;

  v_a = graphene_simd4f_init (a->x, a->y, a->z, a->w);
  v_b = graphene_simd4f_init (b->x, b->y, b->z, b->w);

  return graphene_simd4f_cmp_eq (v_a, v_b);
}
Esempio n. 3
0
/**
 * graphene_simd4f_cmp_eq:
 * @a: a #graphene_simd4f_t
 * @b: a #graphene_simd4f_t
 *
 * Checks if the two given #graphene_simd4f_t are equal.
 *
 * Returns: `true` if the values of the vectors are equal
 *
 * Since: 1.0
 */
bool
(graphene_simd4f_cmp_eq) (const graphene_simd4f_t a,
                          const graphene_simd4f_t b)
{
  return graphene_simd4f_cmp_eq (a, b);
}