Esempio n. 1
0
marisa::Key* get_key(JNIEnv *env, jobject pthis) {
	jlong handle = get_handle_value(env, pthis, "Ljp/marisa/KeyNative;");
	if (handle == -1) {
		return NULL;
	}

	return (marisa::Key*)(handle);
}
Esempio n. 2
0
marisa::Agent* get_agent(JNIEnv *env, jobject pthis) {
	jlong handle = get_handle_value(env, pthis, "Ljp/marisa/AgentNative;");
	if (handle == -1) {
		return NULL;
	}

	return (marisa::Agent*)(handle);
}
Esempio n. 3
0
marisa::Agent* ensure_create_agent(JNIEnv *env, jobject pthis) {
	jlong handle = get_handle_value(env, pthis, "Ljp/marisa/AgentNative;");
	if (handle == -1) {
		marisa::Agent* agent = new marisa::Agent();
		set_handle_value(env, pthis, "Ljp/marisa/AgentNative;", (jlong)agent);
		return agent;
	}

	return (marisa::Agent*)(handle);
}
Esempio n. 4
0
marisa::Keyset* ensure_create_keyset(JNIEnv *env, jobject pthis) {
	jlong handle = get_handle_value(env, pthis, "Ljp/marisa/KeysetNative;");
	if (handle == -1) {
		marisa::Keyset* keyset = new marisa::Keyset();
		set_handle_value(env, pthis, "Ljp/marisa/KeysetNative;", (jlong)keyset);
		return keyset;
	}

	return (marisa::Keyset*)(handle);
}
bool CollisionShape2DEditor::forward_input_event(const InputEvent& p_event) {

	if (!node) {
		return false;
	}

	if (!node->get_shape().is_valid()) {
		return false;
	}

	if (shape_type == -1) {
		return false;
	}

	switch( p_event.type ) {
		case InputEvent::MOUSE_BUTTON: {
			const InputEventMouseButton& mb = p_event.mouse_button;

			Matrix32 gt = canvas_item_editor->get_canvas_transform() * node->get_global_transform();

			Point2 gpoint(mb.x,mb.y);

			if (mb.button_index == BUTTON_LEFT) {
				if (mb.pressed) {
					for (int i = 0; i < handles.size(); i++) {
						if (gt.xform(handles[i]).distance_to(gpoint) < 8) {
							edit_handle = i;

							break;
						}
					}

					if (edit_handle==-1) {
						pressed = false;

						return false;
					}

					original = get_handle_value(edit_handle);
					pressed = true;

					return true;

				} else {
					if (pressed) {
						commit_handle(edit_handle, original);

						edit_handle = -1;
						pressed = false;

						return true;
					}
				}
			}

			return false;

		} break;

		case InputEvent::MOUSE_MOTION: {
			const InputEventMouseMotion& mm = p_event.mouse_motion;

			if (edit_handle == -1 || !pressed) {
				return false;
			}

			Point2 gpoint = Point2(mm.x,mm.y);
			Point2 cpoint = canvas_item_editor->get_canvas_transform().affine_inverse().xform(gpoint);
			cpoint = canvas_item_editor->snap_point(cpoint);
			cpoint = node->get_global_transform().affine_inverse().xform(cpoint);

			set_handle(edit_handle, cpoint);

			return true;

		} break;
	}

	return false;
}