AGX Dynamics 2.42.3.0
Loading...
Searching...
No Matches
agxSensor::CameraColorOutput Class Reference

Color image, or frame-by-frame video, output specification for a camera. More...

#include <CameraColorOutput.h>

+ Inheritance diagram for agxSensor::CameraColorOutput:

Public Types

enum  ChannelType : int32_t {
  I8 = 1 , U8 = 2 , I16 = 4 , U16 = 5 ,
  I32 = 7 , U32 = 8 , F32 = 9 , I64 = 10 ,
  U64 = 11 , F64 = 12
}
 Allowed output type of each channel element. More...
 

Public Member Functions

 CameraColorOutput ()
 Default constructor.
 
virtual void capture () override
 Tell the output to capture a frame.
 
size_t getChannelCount () const
 
ChannelType getChannelType () const
 
agx::Matrix4x4 getColorMappingMatrix () const
 
virtual const BinaryOutputBuffer & getData () override
 Returns access to the sensor output data.
 
virtual size_t getElementSize () const override
 Element size is the data size of one pixel of the camera output frame.
 
virtual OptionalFramerate getFramerate () const override
 
agx::Real getGamma () const
 
agx::RangeReal getRelativeIlluminanceCutoff () const
 
virtual agx::Vec2i getResolution () const override
 
virtual bool hasUnreadData (bool markAsRead=true) override
 
virtual bool isConstantlyCapturing () const override
 
void setChannelCount (size_t channels)
 Set the number of active output channels.
 
void setChannelType (ChannelType type)
 Set the type for the output channel elements.
 
void setColorMappingMatrix (const agx::Matrix4x4 &matrix)
 Set the matrix for remapping color channels from linear RGB to the output linear space.
 
virtual void setConstantCapture (agx::Real framerate) override
 Set the output to constantly capture at the specified framerate.
 
void setGamma (agx::Real gamma)
 Set the output gamma correction value.
 
virtual void setManualCapture () override
 Set the output to use manual capture.
 
void setRelativeIlluminanceCutoff (const agx::RangeReal &range)
 Set output value cutoff based on output-relative illuminance.
 
virtual void setResolution (const agx::Vec2i &resolution) override
 Set the horizontal and vertical resolution of the camera output.
 
- Public Member Functions inherited from agxSensor::ICameraOutput
 ICameraOutput ()=default
 Default constructor.
 
virtual void capture ()=0
 Tell the output to capture a frame.
 
virtual const BinaryOutputBuffer & getData () override=0
 Returns access to the sensor output data.
 
virtual size_t getElementSize () const override=0
 "Element size" is the summed data size of the currently added sensor output fields.
 
virtual OptionalFramerate getFramerate () const =0
 
virtual agx::Vec2i getResolution () const =0
 
virtual bool hasUnreadData (bool markAsRead=true) override=0
 
virtual bool isConstantlyCapturing () const =0
 
virtual void setConstantCapture (agx::Real framerate)=0
 Set the output to constantly capture at the specified framerate.
 
virtual void setManualCapture ()=0
 Set the output to use manual capture.
 
virtual void setResolution (const agx::Vec2i &resolution)=0
 Set the horizontal and vertical resolution of the camera output.
 
- Public Member Functions inherited from agxSensor::SystemNode
 SystemNode (const SystemNode &)=delete
 Disallow direct copying of nodes.
 
virtual ~SystemNode ()=default
 
bool addChild (SystemNode *child)
 Add unique child to this node.
 
virtual bool addNotification ()
 Called when this system node has been added to a sensor environment.
 
bool appendChild (SystemNode *child)
 Append child to vector of children, silently.
 
virtual void cleanup ()=0
 The sensor environment is being put down, clean everything.
 
virtual void complete ()
 Complete the execution of this system, finishing the integration forward in time.
 
bool detachChild (SystemNode *child)
 Detach/erase child from vector of children, silently.
 
virtual bool eraseAndConnect ()
 Erase this node from the tree and connect its children to the current parent of this node.
 
virtual void execute (const CallbackData &data)
 Execute this system, integrating it data.dt forward in time.
 
template<typename T >
T * findChild (bool recurse=true) const
 Find child of given type.
 
template<typename PredicateT >
SystemNode * findChild (PredicateT pred, bool recurse=true) const
 Find child given predicate pred.
 
template<typename T >
T * findParent () const
 
template<typename PredicateT >
SystemNode * findParent (PredicateT pred) const
 Find parent given predicate.
 
template<typename T >
T * getChild () const
 Searches children for a node of given type.
 
SystemNode * getChild (size_t index) const
 
bool getEnable () const
 
Environment * getEnvironment () const
 
const agx::Name & getName () const
 
size_t getNumChildren () const
 
SystemNode * getParent () const
 
SystemNode * getRoot () const
 
bool hasChild (const SystemNode *child, bool recurse=true) const
 
virtual bool insertParent (SystemNode &parent)
 Inserts new parent to this node.
 
virtual bool onAdd (agx::Referenced &instance)
 Called when an object has been added to the sensor environment.
 
virtual void onChildAdded (SystemNode &child)
 Called when child has been added to this parent.
 
virtual void onChildRemoved (SystemNode &child)
 Called when child has been removed from this parent.
 
virtual bool onRemove (agx::Referenced &instance)
 Called when an object has been removed from the sensor environment.
 
bool removeChild (SystemNode *child)
 Remove child from this node.
 
virtual void removeNotification ()
 Called when this system node is being removed from a sensor environment.
 
virtual void result (const CallbackData &data)
 If necessary assemble, and fetch results related to this system node after a step by data.dt has been completed.
 
void setEnable (bool enable)
 Enable/disable this node.
 
void setName (const agx::Name &name)
 Assign name to this node.
 
virtual void synchronize (const CallbackData &data)
 Synchronization from the main thread.
 
virtual void synchronizeGraphics (const agxRender::RenderManager &renderManager)
 At the very end of a step, synchronize any graphics related aspects of the system node.
 
template<typename VisitorT >
SystemNode * visitBf (VisitorT visitor) const
 Visit the tree from, including, this node until callback returns true - using breadth first traversal.
 
template<typename VisitorT >
void visitChildren (VisitorT visitor, bool recurse=true) const
 Visit all children with func as void( const SystemNode& child ).
 
template<typename VisitorT >
SystemNode * visitChildrenBf (VisitorT visitor) const
 Visit the tree from the children of this node until callback returns true - using breadth first traversal.
 
template<typename VisitorT >
SystemNode * visitChildrenDf (VisitorT visitor) const
 Visit the tree from the children of this node until callback returns true - using depth first traversal.
 
template<typename T , typename VisitorT >
void visitChildrenOfType (VisitorT visitor, bool recurse=true) const
 Visit all children with func as void( const T& child ).
 
template<typename VisitorT >
SystemNode * visitDf (VisitorT visitor) const
 Visit the tree from, including, this node until callback returns true - using depth first traversal.
 
- Public Member Functions inherited from agx::Referenced
 Referenced ()
 Default constructor.
 
 Referenced (const Referenced &)
 
template<typename T >
T * as ()
 Subclass casting.
 
template<typename T >
const T * as () const
 
template<typename T >
T * asSafe ()
 Safe subclass casting, return nullptr if template type does not match.
 
template<typename T >
const T * asSafe () const
 
int getReferenceCount () const
 
template<typename T >
bool is () const
 Subclass test.
 
Referenced & operator= (const Referenced &)
 Assignment operator. Will increment the number of references to the referenced object.
 
void reference (void *ptr=nullptr) const
 Explicitly increment the reference count by one, indicating that this object has another pointer which is referencing it.
 
void unreference (void *ptr=nullptr) const
 Decrement the reference count by one, indicating that a pointer to this object is referencing it.
 
void unreference_nodelete () const
 Decrement the reference count by one, indicating that a pointer to this object is referencing it.
 
- Public Member Functions inherited from agxStream::Serializable
virtual ~Serializable ()
 Destructor for normal C++ use but hidden from SWIG bindings.
 
virtual const char * getClassName () const
 
bool getEnableSerialization () const
 
bool getEnableUuidGeneration ()
 
agx::UInt32 getIndex () const
 This index is given at creation of this object.
 
virtual StorageAgent * getStorageAgent () const =0
 
agx::Uuid getUuid () const
 
bool isFinished () const
 
void setEnableSerialization (bool flag)
 Set to false to disable serialization of this object.
 
void setFinished ()
 Tells this class that it is restored correctly and should not be deleted during destruction of an Archive.
 
void setUuid (const agx::Uuid &uuid)
 Explicitly set a Uuid on a serializable object.
 
- Public Member Functions inherited from agxSensor::ISensorOutput
 ISensorOutput ()=default
 Default constructor.
 
virtual const BinaryOutputBuffer & getData ()=0
 Returns access to the sensor output data.
 
virtual size_t getElementSize () const =0
 "Element size" is the summed data size of the currently added sensor output fields.
 
virtual bool hasUnreadData (bool markAsRead=true)=0
 
template<typename T >
BinaryOutputView< T > view ()
 View over data.
 

Static Public Member Functions

static agx::Matrix4x4 makeBayerRGBWColorMappingMatrix ()
 
static agx::Matrix4x4 makeBayerRGGBColorMappingMatrix ()
 
static agx::Matrix4x4 makeBGRColorMappnigMatrix ()
 
static agx::Matrix4x4 makeLuminanceColorMappingMatrix ()
 
static agx::Matrix4x4 makeRGBColorMappingMatrix ()
 
static size_t sizeOf (ChannelType type)
 
- Static Public Member Functions inherited from agx::Referenced
template<typename T >
static bool ValidateCast (const Referenced *object)
 
- Static Public Member Functions inherited from agxStream::Serializable
static void setEnableUuidGeneration (bool flag)
 Specify if there should be UUID:s generated for each new Serializable object. By default it is enabled.
 
- Static Public Member Functions inherited from agxSensor::ISensorOutput
template<typename T >
static bool verifySize (size_t elementSize)
 Checks whether sizeof(T) == elementSize and issues a warning if it is not.
 

Additional Inherited Members

- Protected Member Functions inherited from agx::Referenced
virtual ~Referenced ()
 Destructor.
 
void allocateObserverVector () const
 
void deleteUsingDeleteHandler () const
 
- Protected Member Functions inherited from agxStream::Serializable
 Serializable ()
 Default constructor.
 
 Serializable (const Serializable &other)
 Copy constructor.
 
void generateUuid ()
 
- Static Protected Member Functions inherited from agx::Referenced
static DeleteHandler * getDeleteHandler ()
 
static void setDeleteHandler (DeleteHandler *handler)
 Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to.
 
- Protected Attributes inherited from agx::Referenced
Mutex m_mutex
 
ObserverContainer m_observers
 
AtomicValue m_refCount
 

Detailed Description

Color image, or frame-by-frame video, output specification for a camera.

Definition at line 31 of file CameraColorOutput.h.

Member Enumeration Documentation

◆ ChannelType

Allowed output type of each channel element.

Enumerator
I8 
U8 
I16 
U16 
I32 
U32 
F32 
I64 
U64 
F64 

Definition at line 37 of file CameraColorOutput.h.

Constructor & Destructor Documentation

◆ CameraColorOutput()

agxSensor::CameraColorOutput::CameraColorOutput ( )

Default constructor.

Member Function Documentation

◆ capture()

virtual void agxSensor::CameraColorOutput::capture ( )
overridevirtual

Tell the output to capture a frame.

Implements agxSensor::ICameraOutput.

◆ getChannelCount()

size_t agxSensor::CameraColorOutput::getChannelCount ( ) const
Returns
the active channel count

◆ getChannelType()

ChannelType agxSensor::CameraColorOutput::getChannelType ( ) const
Returns
the output channel element type

◆ getColorMappingMatrix()

agx::Matrix4x4 agxSensor::CameraColorOutput::getColorMappingMatrix ( ) const
Returns
the current matrix remapping color channels

◆ getData()

virtual const BinaryOutputBuffer & agxSensor::CameraColorOutput::getData ( )
overridevirtual

Returns access to the sensor output data.

This call blocks until the sensor data is fully assembled and available.

Returns
sensor output data as a pure binary buffer

Implements agxSensor::ICameraOutput.

◆ getElementSize()

virtual size_t agxSensor::CameraColorOutput::getElementSize ( ) const
overridevirtual

Element size is the data size of one pixel of the camera output frame.

Returns
the current size in bytes of one output pixel

Implements agxSensor::ICameraOutput.

◆ getFramerate()

virtual OptionalFramerate agxSensor::CameraColorOutput::getFramerate ( ) const
overridevirtual
Returns
the capture framerate, if constantly capturing

Implements agxSensor::ICameraOutput.

◆ getGamma()

agx::Real agxSensor::CameraColorOutput::getGamma ( ) const
Returns
the gamma correction value

◆ getRelativeIlluminanceCutoff()

agx::RangeReal agxSensor::CameraColorOutput::getRelativeIlluminanceCutoff ( ) const
Returns
the allowed illuminance range (open interval), before values are cutoff

◆ getResolution()

virtual agx::Vec2i agxSensor::CameraColorOutput::getResolution ( ) const
overridevirtual
Returns
the horizontal and vertical camera output resolution

Implements agxSensor::ICameraOutput.

◆ hasUnreadData()

virtual bool agxSensor::CameraColorOutput::hasUnreadData ( bool  markAsRead = true)
overridevirtual
Parameters
markAsRead- true to reset unread state, resulting in hasUnreadData returning false until new data is available. False to not mark the current data as read.
Returns
true when the data has been updated but not read/used/fetched by the user, false if the data has been read

Implements agxSensor::ICameraOutput.

◆ isConstantlyCapturing()

virtual bool agxSensor::CameraColorOutput::isConstantlyCapturing ( ) const
overridevirtual
Returns
true if the camera is constantly capturing as a video stream

Implements agxSensor::ICameraOutput.

◆ makeBayerRGBWColorMappingMatrix()

static agx::Matrix4x4 agxSensor::CameraColorOutput::makeBayerRGBWColorMappingMatrix ( )
static
Returns
a matrix mapping linear RGB to red-white-green-blue Bayer-like values

◆ makeBayerRGGBColorMappingMatrix()

static agx::Matrix4x4 agxSensor::CameraColorOutput::makeBayerRGGBColorMappingMatrix ( )
static
Returns
a matrix mapping linear RGB to red-green-green-blue Bayer-like values

◆ makeBGRColorMappnigMatrix()

static agx::Matrix4x4 agxSensor::CameraColorOutput::makeBGRColorMappnigMatrix ( )
static
Returns
a matrix mapping linear RGB to linear BGR values

◆ makeLuminanceColorMappingMatrix()

static agx::Matrix4x4 agxSensor::CameraColorOutput::makeLuminanceColorMappingMatrix ( )
static
Returns
a matrix mapping linear RGB to luminance values

◆ makeRGBColorMappingMatrix()

static agx::Matrix4x4 agxSensor::CameraColorOutput::makeRGBColorMappingMatrix ( )
static
Returns
a matrix mapping linear RGB to linear RGB values

◆ setChannelCount()

void agxSensor::CameraColorOutput::setChannelCount ( size_t  channels)

Set the number of active output channels.

Parameters
channels- channel count (1 to 4)

◆ setChannelType()

void agxSensor::CameraColorOutput::setChannelType ( ChannelType  type)

Set the type for the output channel elements.

Parameters
type- channel element type

◆ setColorMappingMatrix()

void agxSensor::CameraColorOutput::setColorMappingMatrix ( const agx::Matrix4x4 &  matrix)

Set the matrix for remapping color channels from linear RGB to the output linear space.

Parameters
matrix- color mapping matrix

◆ setConstantCapture()

virtual void agxSensor::CameraColorOutput::setConstantCapture ( agx::Real  framerate)
overridevirtual

Set the output to constantly capture at the specified framerate.

Parameters
framerate- the framerate at which this camera output should capture

Implements agxSensor::ICameraOutput.

◆ setGamma()

void agxSensor::CameraColorOutput::setGamma ( agx::Real  gamma)

Set the output gamma correction value.

Parameters
gamma- gamma correction value

◆ setManualCapture()

virtual void agxSensor::CameraColorOutput::setManualCapture ( )
overridevirtual

Set the output to use manual capture.

Implements agxSensor::ICameraOutput.

◆ setRelativeIlluminanceCutoff()

void agxSensor::CameraColorOutput::setRelativeIlluminanceCutoff ( const agx::RangeReal &  range)

Set output value cutoff based on output-relative illuminance.

Parameters
range- allowed illuminance range (open interval)

◆ setResolution()

virtual void agxSensor::CameraColorOutput::setResolution ( const agx::Vec2i &  resolution)
overridevirtual

Set the horizontal and vertical resolution of the camera output.

Parameters
resolution- camera output resolution

Implements agxSensor::ICameraOutput.

◆ sizeOf()

static size_t agxSensor::CameraColorOutput::sizeOf ( ChannelType  type)
static
Parameters
type- channel element type
Returns
type size in bytes

The documentation for this class was generated from the following file: