void BodySW::set_space(SpaceSW *p_space){ if (get_space()) { if (inertia_update_list.in_list()) get_space()->body_remove_from_inertia_update_list(&inertia_update_list); if (active_list.in_list()) get_space()->body_remove_from_active_list(&active_list); if (direct_state_query_list.in_list()) get_space()->body_remove_from_state_query_list(&direct_state_query_list); } _set_space(p_space); if (get_space()) { _update_inertia(); if (active) get_space()->body_add_to_active_list(&active_list); // _update_queries(); //if (is_active()) { // active=false; // set_active(true); //} } first_integration=true; }
void Body2DSW::set_space(Space2DSW *p_space){ if (get_space()) { wakeup_neighbours(); if (inertia_update_list.in_list()) get_space()->body_remove_from_inertia_update_list(&inertia_update_list); if (active_list.in_list()) get_space()->body_remove_from_active_list(&active_list); if (direct_state_query_list.in_list()) get_space()->body_remove_from_state_query_list(&direct_state_query_list); } _set_space(p_space); if (get_space()) { _update_inertia(); if (active) get_space()->body_add_to_active_list(&active_list); // _update_queries(); //if (is_active()) { // active=false; // set_active(true); //} } }
void AreaSW::set_space(SpaceSW *p_space) { if (get_space()) { if (monitor_query_list.in_list()) get_space()->area_remove_from_monitor_query_list(&monitor_query_list); if (moved_list.in_list()) get_space()->area_remove_from_moved_list(&moved_list); } monitored_bodies.clear(); _set_space(p_space); }