Example #1
0
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;

}
Example #2
0
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);
		//}

	}

}
Example #3
0
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);
}