C++ Java Unity
C++ Reference

C++ API Reference

The C++ API Reference documents the namespaces and classes of the Vuforia SDK along with their members.

The Vuforia SDK C++ API provides:
  • Vuforia API Libraries that expose the Vuforia APIs in C++
  • Support for all Vuforia features and Trackable types
  • High-level access to device hardware, such as the device camera
  • Support for video background and augmentation rendering in AR and VR applications.

Getting Started

If this is your first time with Vuforia, you might want to start by looking at the State class, which is your window into Vuforia's tracking functionality and the primary way to access tracking results.

If you would like to understand the lifecycle of a Vuforia app, see below. Lifecycle of a Vuforia app.

For specific details such as the projection matrices and viewport that you'll need when rendering your own content, look at the RenderingPrimitives class ("primitives" in this case means "low level information").

Key Concepts

Vuforia is designed around three main concepts: Device/Camera, Tracking, and Rendering.

Everything to do with managing the details about the hardware parts of an AR/VR system.
Everything to do with detecting and tracking specific details in the world presented to the device via the camera or other external sensors.
Everything to do with creating visual representations of the world and doing visual augmentation (registered experiences).

Lifecycle of a Vuforia app

The lifecycle outlined below is intended as reference, and is specific to a purely-AR application running on a generic mobile platform. Your particular use case may require additional steps or a different initialization process, especially if AR makes up only a part of your application.
  1. Vuforia::setInitParameters()
  2. Vuforia::init()
  3. Configure the device using the Device singleton
  4. Initialize required trackers using TrackerManager::initTracker(), ObjectTracker::createDataSet(), DataSet::load(), and ObjectTracker::activateDataSet() as applicable
  5. Create a rendering surface and use Vuforia::onSurfaceCreated() and Vuforia::onSurfaceChanged() to inform Vuforia about it and its properties
After initialization and whenever your app is resumed/unpaused
  1. Vuforia::onResume()
  2. Initialize the camera with CameraDevice::init()
  3. Start any required trackers with Tracker::start()
  4. Start the camera with CameraDevice::start()A
Before termination and whenever your app is suspended/paused
  1. Stop the camera with CameraDevice::stop()
  2. Stop any running trackers with Tracker::stop()
  3. Deinitialize the camera with CameraDevice::deinit()
  4. Vuforia::onPause()
When your app terminates
  1. Deinitialize trackers using ObjectTracker::deactivateDataSet(), ObjectTracker::destroyDataSet(), TrackerManager::deinitTracker as applicable
  2. Reset the device configuration, if necessary, using the Device singleton
  3. Vuforia::deinit()