35struct MAYAFLUX_API TimeSpec {
42 explicit TimeSpec(
double s)
56class TemporalWrapper {
58 TemporalWrapper(
const std::shared_ptr<T>& entity, TimeSpec spec)
60 , m_spec(
std::move(spec))
65 requires std::derived_from<U, T>
66 TemporalWrapper(
const TemporalWrapper<U>& other)
67 : m_entity(other.entity())
68 , m_spec(other.spec())
72 std::shared_ptr<T> entity()
const {
return m_entity; }
73 [[nodiscard]]
const TimeSpec& spec()
const {
return m_spec; }
76 std::shared_ptr<T> m_entity;
90MAYAFLUX_API TimeSpec
Time(
double seconds);
101TemporalWrapper<T>
operator>>(std::shared_ptr<T> entity,
const TimeSpec& spec)
103 return TemporalWrapper<T>(entity, spec);
118MAYAFLUX_API std::shared_ptr<Nodes::Node>
operator|(
119 const TemporalWrapper<Nodes::Node>& wrapper,
120 const CreationContext& ctx);
133MAYAFLUX_API std::shared_ptr<Buffers::Buffer>
operator|(
134 const TemporalWrapper<Buffers::Buffer>& wrapper,
135 const CreationContext& ctx);
149MAYAFLUX_API std::shared_ptr<Nodes::Network::NodeNetwork>
operator|(
150 const TemporalWrapper<Nodes::Network::NodeNetwork>& wrapper,
151 const CreationContext& ctx);
std::shared_ptr< Nodes::Node > operator>>(const std::shared_ptr< Nodes::Node > &lhs, const std::shared_ptr< Nodes::Node > &rhs)
Connects two nodes in series (pipeline operator)
TimeSpec Time(double seconds)
std::shared_ptr< T > operator|(std::shared_ptr< T > obj, const CreationContext &ctx)
Main namespace for the Maya Flux audio engine.