# cee::vis::CameraAnimation

class `CameraAnimation`

  Support class for supplying camera positions that can be used to animate the camera from one setup to another.

  Example: Animate the change from the current camera setup to looking down the Y axis:

      cee::BoundingBox bb = m_viewerWidget->view()->boundingBox();

      cee::Vec3d dir(0, 1, 0);
      cee::Vec3d up(0, 0, 1);

      cee::Vec3d eye = m_viewerWidget->view()->camera().computeFitViewEyePosition(bb, dir, up);

      cee::vis::CameraAnimation anim(&m_viewerWidget->view()->camera(), eye, dir, up);
      anim.setTargetOrthoHeight(bb.radius() * 2.0);
      anim.setTargetFieldOfViewYDegrees(40.0);

      while (anim.updateCamera())
      {
          // An immediate redraw of the view is required
          m_viewerWidget->view()->requestImmediateRedraw();
      }

  For C#, example will look like:

      while (anim.updateCamera())
      {
          m_view.requestRedraw();
          Application.DoEvents();
      }

  Public Functions

  `CameraAnimation`(Camera *camera, const Vec3d &newPos, const Vec3d &newDir, const Vec3d &newUp)

    Creates a camera animation object.

    Send in the camera to modify and the destination camera setup.

  void `setDuration`(double seconds)

    Sets the duration (in seconds) of the animation.

  void `setTargetFieldOfViewYDegrees`(double targetFOV)

    Sets the target field of view (for perspective projections) if you want to animate the change in field of view as well as the camera position.

    Useful for zoom navigation mode.

  void `setTargetOrthoHeight`(double height)

    Sets the target field frustum height (for orthographic projections) if you want to animate the change in frustum size as well as the camera position.

    Useful for zoom navigation mode.

  bool `updateCamera`()

    Updates the camera based on the current time of the animation.

    This should be called repeatedly together with a redraw of the screen until the method returns false (animation finished).

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Envision for Desktop in your own language, or choose a sample question below to start a conversation:

What is HOOPS Envision for Desktop?
What are the latest release notes for HOOPS Envision for Desktop?
How do I start evaluating HOOPS Envision for Desktop?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...