Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
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 Attributes

NodeGraphAttachment exitNode
 connection to the render nodes network
 

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
 
Time start () const
 
Time after () const
 
engine::JobTicketjobTicket (size_t portNr) const
 Access the JobTicket for this segment and the given portNr.
 
bool empty () const
 

Protected Attributes

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

Private Types

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

Private Member Functions

void generateTickets_onDemand (size_t portNr)
 

Constructor & Destructor Documentation

◆ Segment() [1/3]

Segment ( TimeSpan  span = TimeSpan::ALL)
inlineexplicit

create empty Segment

Definition at line 82 of file segment.hpp.

◆ Segment() [2/3]

Segment ( TimeSpan  covered,
NodeGraphAttachment &&  modelLink 
)
inline

create a new Segment to cover the given TimeSpan and to offer the rendering capabilities exposed by modelLink

Definition at line 90 of file segment.hpp.

◆ Segment() [3/3]

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.

Member Typedef Documentation

◆ JobTicket

using JobTicket = engine::JobTicket
private

Definition at line 61 of file segment.hpp.

◆ TicketAlloc

Definition at line 62 of file segment.hpp.

◆ PortTable

using PortTable = std::deque<std::reference_wrapper<JobTicket> >
private

Definition at line 63 of file segment.hpp.

Member Function Documentation

◆ start()

Time start ( ) const
inline

Definition at line 110 of file segment.hpp.

References Segment::span_, and TimeSpan::start().

Referenced by FixtureSegment_test::fabricate_MockSegment().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ after()

Time after ( ) const
inline

Definition at line 111 of file segment.hpp.

References TimeSpan::end(), and Segment::span_.

Referenced by FixtureSegment_test::fabricate_MockSegment().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ 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.

References Segment::portTable_.

Referenced by JobPlanningPipeline_test::demonstrateScaffolding(), FixtureSegment_test::retrieve_JobTicket(), MockSupport_test::simpleUsage(), and MockSupport_test::verify_MockSegmentation().

+ Here is the caller graph for this function:

◆ empty()

bool empty ( ) const
inline

Definition at line 131 of file segment.hpp.

References NodeGraphAttachment::empty(), and Segment::exitNode.

Referenced by MockSupport_test::verify_MockSegmentation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generateTickets_onDemand()

void generateTickets_onDemand ( size_t  portNr)
inlineprivate

Member Data Documentation

◆ span_

TimeSpan span_
protected

begin of this timeline segment.

Definition at line 68 of file segment.hpp.

Referenced by Segment::after(), and Segment::start().

◆ ticketAlloc_

TicketAlloc ticketAlloc_
protected

manage JobTicket: render plan / blueprint to use for this segment

Definition at line 71 of file segment.hpp.

Referenced by Segment::generateTickets_onDemand().

◆ portTable_

PortTable portTable_
protected

Definition at line 72 of file segment.hpp.

Referenced by Segment::generateTickets_onDemand(), and Segment::jobTicket().

◆ elements

std::deque<ExplicitPlacement> elements
protected

relevant MObjects comprising this segment.

Definition at line 76 of file segment.hpp.

◆ exitNode

connection to the render nodes network

Definition at line 114 of file segment.hpp.

Referenced by Segment::empty(), FixtureSegment_test::fabricate_MockSegment(), and Segment::generateTickets_onDemand().

+ Collaboration diagram for Segment:

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