26 class RtNodeGroupHandler;
40 FETCHING_DATA = 1 << 1,
186 virtual
void onParentConnect(
RtSystemNode& parent ) override;
191 virtual
void execute( const
CallbackData& data ) override;
196 virtual
void complete() override;
206 virtual
bool insertParent(
SystemNode& parent ) override;
212 virtual
RtNode* createNode() final override;
217 struct OutputNoiseData
223 bool tryAssembleLocalRtOutputChain();
227 using OutputNoiseDataVector = std::vector<OutputNoiseData>;
233 OutputTable m_outputs;
234 RuntimeState m_runtimeState;
236 size_t m_raytraceDepth;
238 RtNode* m_beamDivergenceNode;
242 OutputNoiseDataVector m_outputNoises;
249 output->build<field...>();
251 if ( !RtOutput::template verifySize<T>( output->getElementSize() ) )
254 if ( !this->
add( RtOutput::template getTypeHash<T>(), output ) )
263 return this->
get( RtOutput::template getTypeHash<T>() );
269 return this->view<T>( RtOutput::template getTypeHash<T>() );
#define AGX_DECLARE_POINTER_TYPES(type)
#define AGXSTREAM_DECLARE_SERIALIZABLE(T)
Use this in a Serializable class to add the required methods Important: Use full namespace in the dec...
View for reading sections of a binary packed buffer of the specified template parameter type.
Common interface for sensor output handlers.
Common interface for sensor output data.
This node doesn't have a representation in the raytrace graph but manages adding and removal of child...
Raytrace result handler is resposible for when and how the raytracing starts and ends and collecting/...
RtOutputHandler()
Default constructor.
size_t getRaytraceDepth() const
bool contains(const RtOutputNoise *noise) const
void setAmbientHitSeed(agx::UInt32 seed=783u)
Set the seed used to configure the pseudo-random generation the ambient/atmospheric hits.
agx::UInt32 getAmbientHitSeed() const
BinaryOutputView< T > view()
Directly access an output view of the raytrace output instance using a hash of the type with which it...
RtOutputNoiseRefVector getOutputNoises() const
ISensorOutput * getBase(size_t uniqueId) override
Access result instance given the unique id used when it was added.
bool add(RtOutputNoise *noise)
Add output noise instance to the system tree.
void setRaytraceDepth(size_t steps=1)
Configure the number of maximum raytrace steps.
agx::AtomicState< RuntimeFlag > RuntimeState
bool getEnableRemoveRayMisses() const
bool remove(RtOutputNoise *noise)
Remove output noise instance from the system tree.
RtOutput * add()
Build matching result to a given data type T.
void setEnableRemoveRayMisses(bool enable)
Enable/disable pruning of data for rays that doesn't hit any target.
RtOutput * get(size_t uniqueId)
Access result instance given the unique id used when it was added.
bool add(size_t uniqueId, RtOutput *output)
Add raytrace result given unique id, e.g., RtOutput::getTypeHash<MyData>().
RtOutput * get()
Access added result instance for the given data type T.
Defines a noise that is applied to Lidar output data.
Raytrace output data where RtOutput::Field defines the data available.
Raytrace system node acting as a clone of model specific implementations.
A system node focused on raytracing.
System node is a separate step/operation in an execution tree representing a sensor (or such) in a se...
Inheritance with partial specialization due to bug with ref_ptr containers.
#define DOXYGEN_END_INTERNAL_BLOCK()
#define DOXYGEN_START_INTERNAL_BLOCK()
The agxSensor namespace contains components to model real-time sensors connected to the physics of AG...
A node performs a single operation, e.g., raycast, gaussian blur, merging etc.