Ocean
Ocean Devices Abstraction Library

The Ocean Devices Library is the base library and organizer of all libraries implementing access to devices. More...

Collaboration diagram for Ocean Devices Abstraction Library:

Modules

 Ocean Devices Android Library
 The Ocean Devices Android Library provides device access for Android platforms.
 
 Ocean Devices ARCore Library
 The Ocean Devices ARCore Library provides access to ARCore trackers.
 
 Ocean Devices ARKit Library
 The Ocean Devices ARKit Library provides access to ARKit trackers.
 
 Ocean Devices IOS Library
 The Ocean Devices IOS Library provides device access for iOS platforms.
 
 Ocean Devices MapBuilding Library
 The Ocean Devices MapBuilding Library provides feature-based tracking in the context of map building.
 
 Ocean Devices Pattern Library
 The Ocean Devices Pattern Library provides a Pattern feature based tracking library.
 
 Ocean Devices RMV Library
 The Ocean Devices RMV Library provides a RMV feature based tracking library.
 
 Ocean Devices SLAM Library
 The Ocean Devices SLAM Library provides a SLAM tracker based on feature points.
 

Data Structures

class  Ocean::Devices::AccelerationSensor3DOF
 This class is the base class for all 3DOF acceleration sensors. More...
 
class  Ocean::Devices::Device
 This class is the base class for all devices of any type. More...
 
class  Ocean::Devices::DevicePlayer
 This class implements the abstract base class for all device players. More...
 
class  Ocean::Devices::SmartDeviceRef< T >
 This class implements a smart device reference. More...
 
class  Ocean::Devices::DeviceRefManager
 This class implements a manager for device references. More...
 
class  Ocean::Devices::Factory
 This class implements a factory able to create instances of devices. More...
 
class  Ocean::Devices::GPSTracker
 This class is the base class for all gps tracker objects. More...
 
class  Ocean::Devices::GyroSensor3DOF
 This class is the base class for all 3DOF gyro sensors. More...
 
class  Ocean::Devices::MagneticTracker
 This class is the base class for all tracker using a magnetic filed as input measurements. More...
 
class  Ocean::Devices::Manager
 This class implements as singleton-based manager which allows to access all available devices. More...
 
class  Ocean::Devices::Measurement
 This class implements the base class for all devices providing measurement samples. More...
 
class  Ocean::Devices::ObjectTracker
 This class is the base class for all tracker allowing to track an object or location. More...
 
class  Ocean::Devices::OrientationTracker3DOF
 This class is the base class for all 3DOF orientation tracker objects. More...
 
class  Ocean::Devices::PositionTracker3DOF
 This class is the base class for all 3DOF position trackers. More...
 
class  Ocean::Devices::SceneTracker6DOF
 This class implements the base for all 6-DOF scene trackers. More...
 
class  Ocean::Devices::Sensor
 This class implements the base class for all sensors. More...
 
class  Ocean::Devices::Tracker
 This class implements the base class for all tracker devices. More...
 
class  Ocean::Devices::Tracker6DOF
 This class implements the base for all 6DOF trackers. More...
 
class  Ocean::Devices::VisualTracker
 This class is the base class for all tracker using visual input to create the tracking results. More...
 

Typedefs

typedef SmartDeviceRef< AccelerationSensor3DOFOcean::Devices::AccelerationSensor3DOFRef
 Definition of a smart object reference for a 3DOF acceleration sensor. More...
 
using Ocean::Devices::SharedDevicePlayer = std::shared_ptr< DevicePlayer >
 Definition of a shared pointer holding a DevicePlayer object. More...
 
typedef ObjectRef< DeviceOcean::Devices::DeviceRef
 This class implements a device reference with an internal reference counter. More...
 
typedef SmartDeviceRef< GPSTrackerOcean::Devices::GPSTrackerRef
 Definition of a smart object reference for a GPS tracker. More...
 
typedef SmartDeviceRef< GyroSensor3DOFOcean::Devices::GyroSensor3DOFRef
 Definition of a smart object reference for a 3DOF gyro sensor. More...
 
typedef SmartDeviceRef< MagneticTrackerOcean::Devices::MagneticTrackerRef
 Definition of a smart object reference for a magnetic tracker. More...
 
typedef SmartDeviceRef< MeasurementOcean::Devices::MeasurementRef
 Definition of a smart object reference for a measurement. More...
 
typedef SmartDeviceRef< ObjectTrackerOcean::Devices::ObjectTrackerRef
 Definition of a smart object reference for an ObjectTracker. More...
 
typedef SmartObjectRef< OrientationTracker3DOF, DeviceOcean::Devices::OrientationTracker3DOFRef
 Definition of a 3DOF orientation tracker reference object. More...
 
typedef SmartDeviceRef< PositionTracker3DOFOcean::Devices::PositionTracker3DOFRef
 Definition of a smart object reference for a 3DOF position tracker. More...
 
typedef SmartDeviceRef< SceneTracker6DOFOcean::Devices::SceneTracker6DOFRef
 Definition of a smart object reference for a 6-DOF scene tracker. More...
 
typedef SmartObjectRef< Sensor, DeviceOcean::Devices::SensorRef
 Definition of a sensor reference object. More...
 
typedef SmartDeviceRef< TrackerOcean::Devices::TrackerRef
 Definition of a smart object reference for a tracker. More...
 
typedef SmartDeviceRef< Tracker6DOFOcean::Devices::Tracker6DOFRef
 Definition of a smart object reference for a 6DOF tracker. More...
 
typedef SmartDeviceRef< VisualTrackerOcean::Devices::VisualTrackerRef
 Definition of a smart object reference for a visual tracker. More...
 

Detailed Description

The Ocean Devices Library is the base library and organizer of all libraries implementing access to devices.

This library mainly implements the interfaces for all devices like sensors or trackers and provides the plugin mechanism so that platform-specific devices can be accessed though the same functions and interfaces.

The Devices::Manager allows to access the individual devices. Here is the code which allows to access a GPS tracker on any platform (as long as a GPS tracker is available).

...
// we request a GPS tracker
Devices::GPSTrackerRef gpsTracker = Manager::get().device(GPSTracker::deviceTypeGPSTracker());
if (gpsTracker)
{
// the resulting object is valid so that we can start the GPS tracker
gpsTracker->start();
...
// access the latest GPS sample
GPSTracker::GPSTrackerSampleRef gpsSample = gpsTracker->sample();
if (gpsSample)
{
size_t numberLocations = gpsSample->locations().size();
...
}
}
virtual bool start()
Starts the device.
static DeviceType deviceTypeGPSTracker()
Returns the device type of this tracker.
Definition: GPSTracker.h:360
SmartObjectRef< GPSTrackerSample, Sample > GPSTrackerSampleRef
Definition of a smart object reference for GPS tracker samples.
Definition: GPSTracker.h:203
DeviceRef device(const std::string &name, const bool useExclusive=false)
Returns a specific device.
static Manager & get()
Returns a reference to the unique object.
Definition: Singleton.h:115

Currently the following devices are available:

Name Category Platforms Implementation Description
"Android 3DOF Acceleration Sensor" Sensor Android Devices::Android::AndroidAccelerationSensor3DOF Sensor providing access to the acceleration force that is applied to a device on all three physical axes, including the force of gravity, with Android's sensor enum TYPE_ACCELEROMETER
"Android 3DOF Linear Acceleration Sensor" Sensor Android Devices::Android::AndroidAccelerationSensor3DOF Sensor providing access to the acceleration force that is applied to a device on all three physical axes, excluding the force of gravity, with Android's sensor enum TYPE_LINEAR_ACCELERATION
"Android GPS Tracker" Tracker Android Devices::Android::AndroidGPSTracker Tracker providing GPS locations
"Android 3DOF Gravity Tracker" Tracker Android Devices::Android::AndroidGravityTracker3DOF 3-DOF orientation tracker providing gravity (direction to ground), with Android's sensor enum TYPE_GRAVITY
"Android 3DOF Gyro Raw Sensor" Sensor Android Devices::Android::AndroidGyroSensor3DOF
"Android 3DOF Gyro Unbiased Sensor" Sensor Android Devices::Android::AndroidGyroSensor3DOF Sensor providing access to a device's rate of rotation around each of the three physical axes, with Android's enum TYPE_GYROSCOPE
"Android 3DOF Heading Tracker" Tracker Android Devices::Android::AndroidHeadingTracker3DOF 3-DOF orientation tracker providing heading (direction to north), with Android's sensor enum TYPE_ROTATION_VECTOR
"Android 3DOF Orientation Tracker" Tracker Android Devices::Android::AndroidOrientationTracker3DOF 3-DOF orientation tracker providing the device's attitude, with Android's sensor enum TYPE_GAME_ROTATION_VECTOR
"ARCore 6DOF World Tracker" Tracker Android Devices::ARCore::ACWorldTracker6DOF 6-DOF SLAM tracker provided via ARCore
"ARKit 6DOF Geo Anchors Tracker" Tracker iOS Devices::ARKit::AKGeoAnchorsTracker6DOF 6-DOF SLAM tracker anchored at GPS locations
"ARKit 6DOF World Tracker" Tracker iOS Devices::ARKit::AKWorldTracker6DOF 6-DOF SLAM tracker provided via ARKit
"IOS 3DOF Acceleration Sensor" Sensor iOS Devices::IOS::IOSAccelerationSensor3DOF Sensor providing access to the acceleration force that is applied to a device on all three physical axes, including the force of gravity
"IOS 3DOF Linear Acceleration Sensor" Sensor iOS Devices::IOS::IOSAccelerationSensor3DOF Sensor providing access to the acceleration force that is applied to a device on all three physical axes, excluding the force of gravity
"IOS GPS Tracker" Tracker iOS Devices::IOS::IOSGPSTracker Tracker providing GPS locations
"IOS 3DOF Gravity Tracker" Tracker iOS Devices::IOS::IOSGravityTracker3DOF 3-DOF orientation tracker providing gravity (direction to ground)
"IOS 3DOF Gyro Raw Sensor" Sensor iOS Devices::IOS::IOSGyroSensor3DOF
"IOS 3DOF Gyro Unbiased Sensor" Sensor iOS Devices::IOS::IOSGyroSensor3DOF Sensor providing access to a device's rate of rotation around each of the three physical axes
"IOS 3DOF Heading Tracker" Tracker iOS Devices::IOS::IOSHeadingTracker3DOF 3-DOF orientation tracker providing heading (direction to north)
"IOS 3DOF Orientation Tracker" Tracker iOS Devices::IOS::IOSOrientationTracker3DOF 3-DOF orientation tracker providing the device's attitude
"Headset 6DOF Tracker" Tracker Quest Devices::Quest::VrApi::HeadsetTracker6DOF 6-DOF tracker for the headset
"Quest Controller 6DOF Tracker" Tracker Quest Devices::Quest::VrApi::ControllerTracker6DOF 6-DOF tracker for controllers
"Floor 6DOF Tracker" Tracker Quest Devices::Quest::VrApi::FloorTracker6DOF 6-DOF tracker for the floor
"Pattern 6DOF Tracker" Tracker any Devices::Pattern::PatternTracker6DOF 6-DOF tracker for dynamic/moving images
"Static Pattern 6DOF Tracker" Tracker any Devices::Pattern::StaticPatternTracker6DOF 6-DOF tracker for mainly static images also using SLAM
See also
Manager, Device.

Typedef Documentation

◆ AccelerationSensor3DOFRef

Definition of a smart object reference for a 3DOF acceleration sensor.

See also
AccelerationSensor3DOF.

◆ DeviceRef

This class implements a device reference with an internal reference counter.

See also
Device

◆ GPSTrackerRef

Definition of a smart object reference for a GPS tracker.

See also
GPSTracker.

◆ GyroSensor3DOFRef

Definition of a smart object reference for a 3DOF gyro sensor.

See also
GyroSensor3DOF.

◆ MagneticTrackerRef

Definition of a smart object reference for a magnetic tracker.

See also
MagneticTracker.

◆ MeasurementRef

Definition of a smart object reference for a measurement.

See also
Measurement.

◆ ObjectTrackerRef

Definition of a smart object reference for an ObjectTracker.

See also
ObjectTracker.

◆ OrientationTracker3DOFRef

Definition of a 3DOF orientation tracker reference object.

See also
OrientationTracker3DOF.

◆ PositionTracker3DOFRef

Definition of a smart object reference for a 3DOF position tracker.

See also
PositionTracker3DOF.

◆ SceneTracker6DOFRef

Definition of a smart object reference for a 6-DOF scene tracker.

See also
SceneTracker6DOF.

◆ SensorRef

Definition of a sensor reference object.

See also
Sensor.

◆ SharedDevicePlayer

using Ocean::Devices::SharedDevicePlayer = typedef std::shared_ptr<DevicePlayer>

Definition of a shared pointer holding a DevicePlayer object.

See also
DevicePlayer.

◆ Tracker6DOFRef

Definition of a smart object reference for a 6DOF tracker.

See also
Tracker6DOF.

◆ TrackerRef

Definition of a smart object reference for a tracker.

See also
Tracker.

◆ VisualTrackerRef

Definition of a smart object reference for a visual tracker.

See also
VisualTracker.