public bool Zoom(int direction)
{
bool toReturn = false;
Vector3 newCameraPosition = cameraPosition - (normalizedViewVector * direction * ZOOM_SPEED);
if (Vector3.Distance(newCameraPosition, cameraTarget) >= ZOOM_MIN_DIST &&
Vector3.Distance(newCameraPosition, cameraTarget) <= ZOOM_MAX_DIST)
{
cameraPosition = newCameraPosition;
viewVector = cameraPosition - cameraTarget;
normalizedViewVector = Vector3.Normalize(viewVector);
toReturn = true;
}
frustum = new BoundingFrustum(camera.GetView() * camera.ProjectionMatrix);
return toReturn;
}