Lumiera  0.pre.03
»edit your freedom«
Segment Class Reference

#include "steam/fixture/segment.hpp"

Description

For the purpose of building and rendering, the fixture (for each timeline) is partitioned such that each segment is structurally constant. For each segment there is a RenderGraph (unit of the render engine) which is able to render all ExitNode(s) for this segment.

Todo:
WIP-WIP as of 6/2023 – about to establish the engine backbone
See also
http://lumiera.org/wiki/renderengine.html#Fixture

Definition at line 59 of file segment.hpp.

Public Member Functions

 Segment (TimeSpan span=TimeSpan::ALL)
 create empty Segment
 
 Segment (TimeSpan covered, NodeGraphAttachment &&modelLink)
 create a new Segment to cover the given TimeSpan and to offer the rendering capabilities exposed by modelLink
 
 Segment (Segment const &original, TimeSpan changed)
 copy-and-remould an existing Segment to sit at another time span More...
 
Time after () const
 
bool empty () const
 
engine::JobTicketjobTicket (size_t portNr) const
 Access the JobTicket for this segment and the given portNr. More...
 
Time start () const
 

Public Attributes

NodeGraphAttachment exitNode
 connection to the render nodes network
 

Protected Attributes

std::deque< ExplicitPlacementelements
 relevant MObjects comprising this segment. More...
 
PortTable portTable_
 
TimeSpan span_
 begin of this timeline segment. More...
 
TicketAlloc ticketAlloc_
 manage JobTicket: render plan / blueprint to use for this segment
 

Private Types

using JobTicket = engine::JobTicket
 
using PortTable = std::deque< std::reference_wrapper< JobTicket > >
 
using TicketAlloc = lib::AllocatorHandle< JobTicket >
 

Private Member Functions

void generateTickets_onDemand (size_t portNr)
 

Constructor & Destructor Documentation

◆ Segment()

Segment ( Segment const &  original,
TimeSpan  changed 
)
inline

copy-and-remould an existing Segment to sit at another time span

See also
Segmentation::splitSplice

Definition at line 101 of file segment.hpp.

References Segment::exitNode.

Member Function Documentation

◆ jobTicket()

engine::JobTicket& jobTicket ( size_t  portNr) const
inline

Access the JobTicket for this segment and the given portNr.

Remarks
will be created on-demand and remain stable thereafter.

Definition at line 122 of file segment.hpp.

Member Data Documentation

◆ span_

TimeSpan span_
protected

begin of this timeline segment.

Definition at line 68 of file segment.hpp.

◆ elements

std::deque<ExplicitPlacement> elements
protected

relevant MObjects comprising this segment.

Definition at line 76 of file segment.hpp.

+ Collaboration diagram for Segment:

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