static bool FindItemAtPos(obs_scene_t scene, obs_sceneitem_t item, void *param) { SceneFindData *data = reinterpret_cast<SceneFindData*>(param); matrix4 transform; vec3 transformedPos; vec3 pos3; vec3_set(&pos3, data->pos.x, data->pos.y, 0.0f); obs_sceneitem_get_box_transform(item, &transform); matrix4_inv(&transform, &transform); vec3_transform(&transformedPos, &pos3, &transform); if (transformedPos.x >= 0.0f && transformedPos.x <= 1.0f && transformedPos.y >= 0.0f && transformedPos.y <= 1.0f) { if (data->selectBelow && obs_sceneitem_selected(item)) { if (data->item) return false; else data->selectBelow = false; } data->item = item; } UNUSED_PARAMETER(scene); return true; }
static inline jboolean wrapped_Java_com_badlogic_gdx_math_Matrix4_inv (JNIEnv* env, jclass clazz, jfloatArray obj_values, float* values) { //@line:961 return matrix4_inv(values); }
bool bounds_intersects_obb(const struct bounds *b, const struct bounds *test, const struct matrix4 *m, float epsilon) { struct bounds b_tr, test_tr; struct matrix4 m_inv; matrix4_inv(&m_inv, m); bounds_transform(&b_tr, b, m); bounds_transform(&test_tr, test, &m_inv); return bounds_intersects(b, &test_tr, epsilon) && bounds_intersects(&b_tr, test, epsilon); }
void matrix3_inv(struct matrix3 *dst, const struct matrix3 *m) { matrix4_inv((struct matrix4*)dst, (struct matrix4*)m); }