static bool ray_equal (const void *p1, const void *p2) { const graphene_ray_t *a = p1; const graphene_ray_t *b = p2; return graphene_vec3_equal (&a->origin, &b->origin) && graphene_vec3_equal (&a->direction, &b->direction); }
/** * graphene_triangle_equal: * @a: a #graphene_triangle_t * @b: a #graphene_triangle_t * * Checks whether the two given #graphene_triangle_t are equal. * * Returns: `true` if the triangles are equal * * Since: 1.2 */ bool graphene_triangle_equal (const graphene_triangle_t *a, const graphene_triangle_t *b) { if (a == b) return true; if (a == NULL || b == NULL) return false; return graphene_vec3_equal (&a->a, &b->a) && graphene_vec3_equal (&a->b, &b->b) && graphene_vec3_equal (&a->c, &b->c); }
/** * graphene_euler_equal: * @a: a #graphene_euler_t * @b: a #graphene_euler_t * * Checks if two #graphene_euler_t are equal. * * Returns: `true` if the two #graphene_euler_t are equal * * Since: 1.2 */ bool graphene_euler_equal (const graphene_euler_t *a, const graphene_euler_t *b) { if (a == b) return true; if (a == NULL || b == NULL) return false; return graphene_vec3_equal (&a->angles, &b->angles) && a->order == b->order; }