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); }
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); }
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); }
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; }