19#if AGX_USE_AGXSENSOR()
26 #include <unordered_map>
29#if AGX_USE_AGXSENSOR()
46 osg::Group* sceneGraph, osg::Node* sceneNode,
agxSDK::Simulation* simulation =
nullptr,
bool override =
false);
76 SINGLETON_CLASSNAME_METHOD();
78 virtual
void shutdown() override;
87 using NeoCameraSensorColorOutputMap =
std::unordered_map<
90 static
void synchronize(
agxSensor::Camera* camera,
agx::Real dt);
91 static
void execute(
agxSensor::Camera* camera,
agx::Real dt);
92 static
void complete(
agxSensor::Camera* camera);
93 static
void result(
agxSensor::Camera* camera,
agx::Real dt);
94 static
void synchronizeGraphics(
agxSensor::Camera* camera,
agxSensor::Matrix4x4* viewMatrix);
95 static
void cleanup(
agxSensor::Camera* camera);
97 static
void setCameraLensSingleElement(
99 agxSensor::CameraLensSingleElementParameters* parameters);
100 static
void setCameraCMOSSensor(
102 agxSensor::CameraCMOSSensorParameters* parameters);
104 static
void setCameraLensDistortionNone(
agxSensor::Camera* camera,
agxSensor::CameraLens* lens);
105 static
void setCameraLensDistortionBrownConrady(
107 agxSensor::LensDistortionBrownConradyCoefficients* coefficients);
109 static
void setCameraColorOutput(
111 agxSensor::CameraColorOutputParameters* parameters);
112 static
void setCameraColorOutputAddress(
113 agxSensor::Camera* camera,
agxSensor::CameraColorOutput* output,
void* outputAddress);
114 static
void captureCameraColorOutput(
agxSensor::Camera* camera,
agxSensor::CameraColorOutput* output);
115 static
bool hasCameraColorOutputUnreadData(
122 void eraseBackendCameraOfInternal(
agxSensor::Camera* camera);
123 bool hasBackendCameraInternal(
agxSensor::Camera* camera);
130 NeoCameraSensorMap m_sensorMap;
131 NeoCameraSensorColorOutputMap m_sensorColorOutputMap;
133 osg::ref_ptr<osg::Group> m_sceneGraph;
134 osg::ref_ptr<osg::Node> m_sceneNode;
135 agxSDK::SimulationObserver m_simulation;
Outputs the NeoCamera color feed to an image buffer of the specified format and color mapping matrix.
The agxSensor camera backend for use of the agxOSG NeoCamera/agxViewer.
static void configure(osg::Group *sceneGraph, osg::Node *sceneNode, agxSDK::Simulation *simulation=nullptr, bool override=false)
Configure this backend for the given scene graph, and optionally simulation.
static void eraseBackendCameraOf(agxSensor::Camera *camera)
Delete the current backend for the given AGX camera.
static bool hasBackendCamera(agxSensor::Camera *camera)
Check if the given AGX camera has a current backend.
static NeoCamera * getOrCreateBackendCameraFor(agxSensor::Camera *camera)
Fetch or create a backend for the given AGX camera.
static void injectAsCameraDefault()
Set this backend as the default for the agxSensor Camera.
A new (as of 2026) extended camera type, allowing for more "cinematic"-like effects.
Simulation is a class that bridges the collision space agxCollide::Space and the dynamic simulation s...
Camera instance class defined by a frame/transform and a model.
Base class for Singletons that should have its shutdown called explicitly before exit of the applicat...
Smart pointer for handling referenced counted objects.
#define DOXYGEN_END_INTERNAL_BLOCK()
#define DOXYGEN_START_INTERNAL_BLOCK()
The agxOSG namespace provides functionality for visualizing AGX simulations with OpenSceneGraph.
The agxSDK namespace contain classes to bridge the collision detection system and the dynamical simul...
The agxSensor namespace contains components to model real-time sensors connected to the physics of AG...
The agx namespace contains the dynamics/math part of the AGX Dynamics API.