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);
	
}
示例#3
0
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);
}
示例#4
0
void matrix3_inv(struct matrix3 *dst, const struct matrix3 *m)
{
	matrix4_inv((struct matrix4*)dst, (struct matrix4*)m);
}