function createAnimationTemplateCV(
  camera,
  position,
  center,
  maxX,
  maxY,
  duration,
) {
  const newPosition = Cartesian3.clone(position);

  if (center.y > maxX) {
    newPosition.y -= center.y - maxX;
  } else if (center.y < -maxX) {
    newPosition.y += -maxX - center.y;
  }

  if (center.z > maxY) {
    newPosition.z -= center.z - maxY;
  } else if (center.z < -maxY) {
    newPosition.z += -maxY - center.z;
  }

  function updateCV(value) {
    const interp = Cartesian3.lerp(
      position,
      newPosition,
      value.time,
      new Cartesian3(),
    );
    camera.worldToCameraCoordinatesPoint(interp, camera.position);
  }
  return {
    easingFunction: EasingFunction.EXPONENTIAL_OUT,
    startObject: {
      time: 0.0,
    },
    stopObject: {
      time: 1.0,
    },
    duration: duration,
    update: updateCV,
  };
}
Return the pixel size in meters.

@param {BoundingSphere} boundingSphere The bounding sphere in world coordinates.
@param {number} drawingBufferWidth The drawing buffer width.
@param {number} drawingBufferHeight The drawing buffer height.
@returns {number} The pixel size in meters.