|
| RtOutput () |
| Default constructor.
|
|
RtOutput & | add (Field field) |
| Add new field.
|
|
template<Field... field> |
void | build () |
| Add one or more fields, build a matching data structure.
|
|
bool | contains (Field field) const |
|
const BinaryOutputBuffer & | getData () override |
| Synchronizes the data before returning if new data is available.
|
|
BinaryOutputBuffer & | getDataUnsafe () |
| Unsafe data buffer access, use only this if you know the call is being made in context of raytrace and data synchronization.
|
|
size_t | getElementSize () const override |
| "Element size" is the summed data size of the currently added fields.
|
|
const std::vector< Field > & | getFields () const |
|
size_t | getOffset (Field field) const |
| Offset in bytes of field in the pack of fields.
|
|
const BinaryOutputBuffer & | getSynchronizedData () |
| Synchronizes the data before returning if new data is available.
|
|
bool | hasUnreadData (bool markAsRead=true) override |
|
template<typename T > |
BinaryOutputView< T > | viewUnsafe () const |
| Similar to view() but without data synchronization, this is the current data available.
|
|
virtual | ~RtSystemNode ()=default |
|
virtual bool | addNotification () override |
| Called when this system node has been added to a sensor environment.
|
|
virtual void | cleanup () override |
| The sensor environment is being put down, clean everything.
|
|
template<typename T > |
RtSystemNode * | findChildProxyFor () const |
|
RtNode * | getNode () const |
|
RtNode * | getOrCreateNode () |
| Called when the node is required.
|
|
virtual void | onChildAdded (SystemNode &child) override |
| Called when child has been added to this parent.
|
|
virtual void | onChildRemoved (SystemNode &child) override |
| Called when child has been removed from this parent.
|
|
virtual void | onParentConnect (RtSystemNode &parent) |
| Called when getOrCreateNode() returns nullptr when this node is being added as child to parent .
|
|
virtual void | onParentDisconnect (RtSystemNode &parent) |
| Called when getNode() returns nullptr when this node is being removed from its parent.
|
|
virtual void | removeNotification () override |
| Called when this system node is being removed from a sensor environment.
|
|
| 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.
|
|
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.
|
|
| 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.
|
|
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.
|
|
| 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.
|
|
Raytrace output data where RtOutput::Field defines the data available.
It's possible to pack data into a custom type, e.g.,
struct RayPointAndDistance : agx::Vec4f { agx::Vec3f getPosition() const { First three elements is the point. return { (*this)[ 0 ], (*this)[ 1 ], (*this)[ 2 ] }; }
float getDistance() const { Fourth element is the distance. return (*this)[ 3 ]; } };
RtOutputRef pointAndDistanceOutput = new RtOutput(); pointAndDistanceOutput->build<RtOutput::XYZ_VEC3_F32, RtOutput::DISTANCE_F32>();
Equivalent but using the output handler in a lidar. Using the output handler verifies the size of your struct vs fields.
auto pointAndDistanceOutput = lidar->getOutputHandler()->add<RayPointAndDistance,
RtOutput::XYZ_VEC3_F32,
RtOutput::DISTANCE_F32>();
perform raytrace auto view = pointAndDistanceOutput->view<RayPointAndDistance>(); for ( const auto& pointAndDistance : view ) ...
Definition at line 64 of file RaytraceOutput.h.