public void Update(double timeDelta)
	{
		m_collidedLastFrame = false;
		if (m_interType == InteractionType.Kinetic || m_interType == InteractionType.Ghost || m_velocityX != 0.0 || m_velocityY != 0.0)
			m_physicsModel.PerformCollisionFor(this);
		
		double dX = m_velocityX * timeDelta + m_accelX * timeDelta * timeDelta * 0.5, dY = m_velocityY * timeDelta + m_accelY * timeDelta * timeDelta * 0.5,
		friction = Math.pow(m_physicsModel.m_friction, timeDelta);
		if (m_bounds.m_boundsType == BoundsType.Circle)
		{
			m_bounds.m_circle.X += dX;
			m_bounds.m_circle.Y += dY;
		}
		else
		{
			m_bounds.m_rect.m_x += dX;
			m_bounds.m_rect.m_y += dY;
			m_bounds.m_rect.m_right = m_bounds.m_rect.m_x + m_bounds.m_rect.m_width;
			m_bounds.m_rect.m_bottom = m_bounds.m_rect.m_y + m_bounds.m_rect.m_height;
		}
		m_posX += dX;
		m_posY += dY;
		m_velocityX = m_velocityX * friction + m_accelX * timeDelta;
		m_velocityY = m_velocityY * friction + m_accelY * timeDelta;
		m_accelX = m_accelY = 0;
	}