71 static uint32_t AcyclicNumSamples();
72 static chrono_t AcyclicTimePerCycle();
78 : m_numSamplesPerCycle( 1 ),
79 m_timePerCycle( 1.0 ) {}
84 : m_numSamplesPerCycle( 1 )
85 , m_timePerCycle( iTimePerCycle )
87 ABCA_ASSERT( m_timePerCycle > 0.0 &&
88 m_timePerCycle < AcyclicTimePerCycle(),
89 "Time per cycle must be greater than 0 " <<
90 "and can not be ACYCLIC_TIME_PER_CYCLE." );
96 chrono_t iTimePerCycle )
97 : m_numSamplesPerCycle( iNumSamplesPerCycle )
98 , m_timePerCycle( iTimePerCycle )
103 ( m_timePerCycle == AcyclicTimePerCycle() &&
104 m_numSamplesPerCycle == AcyclicNumSamples() ) ||
107 ( m_timePerCycle > 0.0 &&
108 m_timePerCycle < AcyclicTimePerCycle() &&
111 m_numSamplesPerCycle > 0 &&
112 m_numSamplesPerCycle < AcyclicNumSamples() ),
113 "Invalid Time Sampling Type, time per cycle: "
114 << m_timePerCycle <<
" samples per cycle: "
115 << m_numSamplesPerCycle );
126 m_numSamplesPerCycle = AcyclicNumSamples();
127 m_timePerCycle = AcyclicTimePerCycle();
139 bool isUniform()
const {
return m_numSamplesPerCycle == 1; }
140 bool isCyclic()
const
142 return ( ( m_numSamplesPerCycle > 1 ) &&
143 ( m_numSamplesPerCycle < AcyclicNumSamples() ) );
145 bool isAcyclic()
const
146 {
return m_numSamplesPerCycle == AcyclicNumSamples(); }
148 uint32_t getNumSamplesPerCycle()
const {
return m_numSamplesPerCycle; }
150 chrono_t getTimePerCycle()
const {
return m_timePerCycle; }
153 uint32_t m_numSamplesPerCycle;
154 chrono_t m_timePerCycle;
157 ALEMBIC_EXPORT
friend std::ostream
158 &operator<<( std::ostream &ostr,
const TimeSamplingType &tst );