static void handle_drop(GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint info, guint time) { gboolean success = FALSE; if (gtk_selection_data_get_length (data) >= 0 && gtk_selection_data_get_format (data) == 8) { ObjectList_t *list = get_shapes(); Object_t *obj; x = get_real_coord(x); y = get_real_coord(y); obj = object_list_find(list, x, y); if (obj && !obj->locked) { command_list_add(edit_object_command_new(obj)); object_set_url(obj, (const gchar *) gtk_selection_data_get_data (data)); object_emit_update_signal(obj); success = TRUE; } } gtk_drag_finish(context, success, FALSE, time); }
BC_PHYSICSIMP_DLL void bc_platform_rigid_actor< g_api_physx >::set_notify_flag(bc_shape_notify_flag p_flag, bool p_value) noexcept { auto l_buffer_size = get_shape_count(); auto* l_buffer = static_cast< bc_shape* > ( bcAlloc(sizeof(bc_shape*) * l_buffer_size, core::bc_alloc_type::frame) ); get_shapes(l_buffer, l_buffer_size); for (bcUINT32 i = 0; i < l_buffer_size; ++i) { l_buffer[i].set_notify_flag(p_flag, p_value); } bcFree(l_buffer); }
BC_PHYSICSIMP_DLL void bc_platform_rigid_actor< g_api_physx >::set_collision_group(bc_collision_filter p_filter) noexcept { auto l_buffer_size = get_shape_count(); auto* l_buffer = static_cast< bc_shape* > ( bcAlloc(sizeof(bc_shape*) * l_buffer_size, core::bc_alloc_type::frame) ); get_shapes(l_buffer, l_buffer_size); for (bcUINT32 i = 0; i < l_buffer_size; ++i) { l_buffer[i].set_collision_group(p_filter); } bcFree(l_buffer); }