MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Nodes::Network::StepOperator Class Referencefinal

General operator whose body is a callable, run once per block. More...

#include <RelationOperators.hpp>

+ Inheritance diagram for MayaFlux::Nodes::Network::StepOperator:
+ Collaboration diagram for MayaFlux::Nodes::Network::StepOperator:

Public Types

using Body = std::function< void(const std::shared_ptr< StepOperator > &self, std::span< RelationSlot > slots, uint32_t frames)>
 

Public Member Functions

std::string_view get_type_name () const override
 Type name for introspection.
 
double parameter (std::string_view name) const
 Value of a mapped or set parameter.
 
void process (float frames) override
 Process for one batch cycle.
 
std::optional< double > query_state (std::string_view query) const override
 Query operator internal state.
 
void set_parameter (std::string_view param, double value) override
 Set operator parameter.
 
 StepOperator (Body body)
 
- Public Member Functions inherited from MayaFlux::Nodes::Network::RelationOperator
void begin_block ()
 Apply mapped parameters at the start of a block.
 
virtual std::span< const double > get_output_block (size_t) const
 
virtual size_t get_output_count () const
 
void map (std::string parameter, Source source)
 Drive an operator parameter from a source.
 
virtual bool publishes_output () const
 
void set_slots (std::vector< RelationSlot > &slots) noexcept
 Supply the current slot storage.
 
void unmap (std::string_view parameter)
 Remove the mapping of a parameter.
 
- Public Member Functions inherited from MayaFlux::Nodes::Network::NetworkOperator
virtual void apply_one_to_one (std::string_view param, const std::shared_ptr< NodeNetwork > &source)
 Apply ONE_TO_ONE parameter mapping (per-point control)
 
virtual bool demands_full_vertex_restore () const
 Whether a downstream compute pass writes the network's vertex buffer in place each cycle, so the geometry producer must keep restoring the CPU-authoritative vertex data every frame.
 
virtual ~NetworkOperator ()=default
 

Private Attributes

Body m_body
 
std::map< std::string, double, std::less<> > m_parameters
 

Additional Inherited Members

- Protected Member Functions inherited from MayaFlux::Nodes::Network::RelationOperator
std::span< RelationSlot > slots () const noexcept
 

Detailed Description

General operator whose body is a callable, run once per block.

Mapped parameters are stored by name and readable from the body through parameter().

net->add<StepOperator>([](const std::shared_ptr<StepOperator>& self, std::span<RelationSlot> slots, uint32_t frames) {
for (auto& slot : slots) {
if (slot.level > self->parameter("limit")) {
slot.set_active(false);
}
}
});
std::span< RelationSlot > slots() const noexcept
General operator whose body is a callable, run once per block.

Definition at line 205 of file RelationOperators.hpp.


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