本文整理匯總了C++中Interval::isValid方法的典型用法代碼示例。如果您正苦於以下問題:C++ Interval::isValid方法的具體用法?C++ Interval::isValid怎麽用?C++ Interval::isValid使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Interval
的用法示例。
在下文中一共展示了Interval::isValid方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。
示例1: whiteResult
Interval
Schedule::getCoveringInterval(const TimeStamp& tp) const
{
Interval blackResult;
Interval whiteResult(true);
Interval tempInterval;
bool isPositive;
// get the blackResult
for (const RepetitiveInterval& element : m_blackIntervalList) {
std::tie(isPositive, tempInterval) = element.getInterval(tp);
if (isPositive == true) {
// tempInterval is a black repetitive interval covering the time stamp, return empty interval
return Interval(true);
}
else {
// tempInterval is not covering the time stamp, && the tempInterval to the blackResult
if (!blackResult.isValid())
blackResult = tempInterval;
else
blackResult && tempInterval;
}
}
// get the whiteResult
for (const RepetitiveInterval& element : m_whiteIntervalList) {
std::tie(isPositive, tempInterval) = element.getInterval(tp);
if (isPositive == true) {
// tempInterval is a white repetitive interval covering the time stamp, || to the white result
whiteResult || tempInterval;
}
}
return whiteResult && blackResult;
}
示例2: construct
void SectorHistogram::construct( const Billon &billon, const Interval<uint> &sliceInterval, const Interval<int> &intensity,
const uint &zMotionMin, const int &radiusAroundPith )
{
clear();
if ( billon.hasPith() && sliceInterval.isValid() && sliceInterval.width() > 0 )
{
const int &width = billon.n_cols;
const int &height = billon.n_rows;
const qreal squareRadius = qPow(radiusAroundPith,2);
fill(0.,PieChartSingleton::getInstance()->nbSectors());
QVector<int> circleLines;
circleLines.reserve(2*radiusAroundPith+1);
for ( int lineIndex=-radiusAroundPith ; lineIndex<=radiusAroundPith ; ++lineIndex )
{
circleLines.append(qSqrt(squareRadius-qPow(lineIndex,2)));
}
QVector<int>::ConstIterator circlesLinesIterator;
int iRadius;
uint diff;
iCoord2D currentPos;
// Calcul du diagramme en parcourant les tranches du billon comprises dans l'intervalle
for ( uint k=sliceInterval.min() ; k<=sliceInterval.max() ; ++k )
{
const Slice ¤tSlice = billon.slice(k);
const Slice &previousSlice = billon.previousSlice(k);
const iCoord2D ¤tPithCoord = billon.pithCoord(k);
currentPos.y = currentPithCoord.y-radiusAroundPith;
for ( circlesLinesIterator = circleLines.constBegin() ; circlesLinesIterator != circleLines.constEnd() ; ++circlesLinesIterator )
{
iRadius = *circlesLinesIterator;
currentPos.x = currentPithCoord.x-iRadius;
iRadius += currentPithCoord.x;
while ( currentPos.x <= iRadius )
{
if ( currentPos.x < width && currentPos.y < height && intensity.containsOpen(currentSlice.at(currentPos.y,currentPos.x)) &&
intensity.containsOpen(previousSlice.at(currentPos.y,currentPos.x)) )
{
diff = billon.zMotion(currentPos.x,currentPos.y,k);
//if ( motionInterval.containsClosed(diff) )
if ( diff >= zMotionMin )
{
(*this)[PieChartSingleton::getInstance()->sectorIndexOfAngle( currentPithCoord.angle(currentPos) )] += diff-zMotionMin;
}
}
currentPos.x++;
}
currentPos.y++;
}
}
}
}
示例3: update
void PlotConcavityPointSerieCurve::update( const ConcavityPointSerieCurve &curve, const Interval<qreal> &angularInterval )
{
QVector<QPointF> datasMinConcavity(0);
QVector<QPointF> datasMaxConcavity(0);
QVector<QPointF> datasMinKnotArea(0);
QVector<QPointF> datasMaxKnotArea(0);
const int nbMaxConcavityPoints = curve.nbMaxConcavityPoints();
const int nbMinConcavityPoints = curve.nbMinConcavityPoints();
if ( nbMaxConcavityPoints || nbMinConcavityPoints )
{
const qreal minAngle = angularInterval.min();
const qreal maxAngle = angularInterval.isValid() ? angularInterval.max() : angularInterval.max()+TWO_PI;
int firstX, lastX;
firstX = lastX = 0;
if ( nbMaxConcavityPoints>0 && nbMinConcavityPoints>0 )
{
firstX = qMin(curve.maxConcavityPointsSerie().first().x,curve.minConcavityPointsSerie().first().x);
lastX = qMax(curve.maxConcavityPointsSerie().last().x,curve.minConcavityPointsSerie().last().x);
}
else if ( nbMaxConcavityPoints>0 )
{
firstX = curve.maxConcavityPointsSerie().first().x;
lastX = curve.maxConcavityPointsSerie().last().x;
}
else if ( nbMinConcavityPoints>0 )
{
firstX = curve.minConcavityPointsSerie().first().x;
lastX = curve.minConcavityPointsSerie().last().x;
}
if ( curve.nbMinConcavityPoints() > 0 )
{
datasMinConcavity.reserve(curve.nbMinConcavityPoints());
QVector<rCoord2D>::ConstIterator begin = curve.minConcavityPointsSerie().begin();
const QVector<rCoord2D>::ConstIterator end = curve.minConcavityPointsSerie().end();
while ( begin != end )
{
datasMinConcavity.append(QPointF(begin->x,begin->y));
++begin;
}
datasMinKnotArea.resize(2);
datasMinKnotArea[0] = QPointF( firstX, minAngle*RAD_TO_DEG_FACT );
datasMinKnotArea[1] = QPointF( lastX, minAngle*RAD_TO_DEG_FACT );
}
if ( curve.nbMaxConcavityPoints() > 0 )
{
datasMaxConcavity.reserve(curve.nbMaxConcavityPoints());
QVector<rCoord2D>::ConstIterator begin = curve.maxConcavityPointsSerie().begin();
const QVector<rCoord2D>::ConstIterator end = curve.maxConcavityPointsSerie().end();
while ( begin != end )
{
datasMaxConcavity.append(QPointF(begin->x,begin->y));
++begin;
}
datasMaxKnotArea.resize(2);
datasMaxKnotArea[0] = QPointF( firstX, maxAngle*RAD_TO_DEG_FACT );
datasMaxKnotArea[1] = QPointF( lastX, maxAngle*RAD_TO_DEG_FACT );
}
}
_minConcavityPointsData.setSamples(datasMinConcavity);
_maxConcavityPointsData.setSamples(datasMaxConcavity);
_minKnotAreaAngle.setSamples(datasMinKnotArea);
_maxKnotAreaAngle.setSamples(datasMaxKnotArea);
}