コード例 #1
0
ファイル: Control.cpp プロジェクト: ablwr/qctools
//---------------------------------------------------------------------------
void Control::TimeOut ()
{
    // qDebug() << "threadId: " << QThread::currentThreadId();

    if (Time_MinusPlus)
    {
        if (Frames_Pos+1==FileInfoData->ReferenceStat()->x_Current_Max)
        {
            SelectedSpeed=Speed_O;
            if(TinyDisplayArea && TinyDisplayArea->BigDisplayArea)
                TinyDisplayArea->BigDisplayArea->ControlArea->SelectedSpeed=SelectedSpeed;
            return;
        }
    }
    else
    {
        if (Frames_Pos==0)
        {
			SelectedSpeed=Speed_O;
            if(TinyDisplayArea && TinyDisplayArea->BigDisplayArea)
                TinyDisplayArea->BigDisplayArea->ControlArea->SelectedSpeed=SelectedSpeed;
            return;
        }
    }

    if(lastRenderedFrame == -1)
    {
        lastRenderedFrame = startFrame;
        lastRenderedFrameTimeStamp = QTime::currentTime();
        setCurrentFrame(startFrame);
    }
    else
    {
        if(playAllFrames)
        {
			if (SelectedSpeed == Speed_M2 || SelectedSpeed == Speed_M1 || SelectedSpeed == Speed_M0)
				setCurrentFrame(--lastRenderedFrame);
			else if (SelectedSpeed == Speed_P2 || SelectedSpeed == Speed_P1|| SelectedSpeed == Speed_P0)
				setCurrentFrame(++lastRenderedFrame);
        } else {

            auto currentTime = QTime::currentTime();
            auto timeFromStartFrame = startFrameTimeStamp.msecsTo(currentTime);

            auto framesFromStartFrame = floor(qreal(timeFromStartFrame) / averageFrameDuration);
            if(SelectedSpeed == Speed_M0 || SelectedSpeed == Speed_P0) {
                framesFromStartFrame /= 2;
            } else if(SelectedSpeed == Speed_M2 || SelectedSpeed == Speed_P2) {
                framesFromStartFrame *= 2;
            }

            size_t expectedFrame = startFrame + (Time_MinusPlus ? framesFromStartFrame : -framesFromStartFrame);

            if(expectedFrame != getCurrentFrame())
                setCurrentFrame(expectedFrame);

            lastRenderedFrame = expectedFrame;
            lastRenderedFrameTimeStamp = currentTime;

        }
    }

}
コード例 #2
0
void ofGstUtils::nextFrame() {
    gint64 currentFrame = getCurrentFrame();
    if(currentFrame!=-1) setFrame(currentFrame + 1);
}
コード例 #3
0
void ofGstUtils::previousFrame() {
    gint64 currentFrame = getCurrentFrame();
    if(currentFrame!=-1) setFrame(currentFrame - 1);
}
コード例 #4
0
bool FunctionKeyframeNavigator::isKeyframe() const {
  return m_curve && m_curve->isKeyframe(getCurrentFrame());
}
コード例 #5
0
void FunctionKeyframeNavigator::goPrev() {
  if (!m_curve) return;
  int k = m_curve->getPrevKeyframe(getCurrentFrame());
  if (k < 0) return;
  setCurrentFrame(m_curve->keyframeIndexToFrame(k));
}
コード例 #6
0
ファイル: BoxGL.cpp プロジェクト: Constellation/escudo
unsigned BoxImage::render(ViewCSSImp* view, float x, float y, float width, float height, float left, float top, unsigned start)
{
    if (state != CompletelyAvailable)
        return getTick();
    if (!(flags & Rendered))
        start = getTick();
    flags |= Rendered;

    glMatrixMode(GL_TEXTURE);
    glLoadIdentity();
    if (repeat & Clamp)
        glScalef(1.0f / width, 1.0f / height, 0.0f);
    else {
        glScalef(1.0f / naturalWidth, 1.0f / naturalHeight, 0.0f);
        if (!(repeat & RepeatS)) {
            float r = x + width;
            if (left + naturalWidth < r)
                r = left + naturalWidth;
            if (x < left)
                x = left;
            width = r - x;
        }
        if (!(repeat & RepeatT)) {
            float b = y + height;
            if (top + naturalHeight < b)
                b = top + naturalHeight ;
            if (y < top)
                y = top;
            height = b - y;
        }
    }
    glMatrixMode(GL_MODELVIEW);

    int frame = 0;
    if (1 < frameCount) {
        unsigned delay = view->getDelay();
        frame = getCurrentFrame(getTick(), delay, start);
        view->setDelay(delay);
    }

    if (width < 0.0f || height < 0.0f)
        return start;

    GLuint texname = getTexname(pixels + frame * (naturalWidth * naturalHeight * 4),
                                naturalWidth, naturalHeight, repeat, format);

    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, texname);
    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
    glBegin(GL_QUADS);
        glTexCoord2f(x - left, y - top);
        glVertex2f(x, y);
        glTexCoord2f(x - left + width, y - top);
        glVertex2f(x + width, y);
        glTexCoord2f(x - left + width, y - top + height);
        glVertex2f(x + width, y + height);
        glTexCoord2f(x - left, y - top + height);
        glVertex2f(x, y + height);
    glEnd();
    glDisable(GL_TEXTURE_2D);
    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
    return start;
}
コード例 #7
0
void YCbCrLabView::onFrameBack()
{
    m_pSlider->setValue(getCurrentFrame() - 1);
}
コード例 #8
0
//------------------------------------------------------------------------------
bool LHAnimationNode::isAtLastFrame(){
    return (getNumberOfFrames()-1 == getCurrentFrame());
}
コード例 #9
0
double SampleNode::getNumSelfAllocationsPerFrame() const
{
    return static_cast<double>(numAllocations) / static_cast<double>(getCurrentFrame());
}
コード例 #10
0
void ofGstVideoPlayer::nextFrame(){
	gint64 currentFrame = getCurrentFrame();
	if(currentFrame!=-1) setFrame(currentFrame + 1);
}
コード例 #11
0
void ofGstVideoPlayer::previousFrame(){
	gint64 currentFrame = getCurrentFrame();
	if(currentFrame!=-1) setFrame(currentFrame - 1);
}
コード例 #12
0
ファイル: VisOdom.cpp プロジェクト: janfrs/kwc-ros-pkg
bool FileSeq::getStartFrame() {
  // load the first stereo pair and put them into the queue
  mCurrentFrameIndex = mStartFrameIndex;
  return getCurrentFrame();
}
コード例 #13
0
ファイル: animationplayer.cpp プロジェクト: keller-b/freeablo
 struct nk_image AnimationPlayer::getCurrentNkImage()
 {
     auto p = getCurrentFrame();
     return p.first->getNkImage(p.second);
 }
コード例 #14
0
ファイル: SS5Player.cpp プロジェクト: kagematya/SSBPLib
void SS5Player::setCurrentFrame(int frame){
	if(getCurrentFrame() == frame){
		return;					//同じフレームのときは時間を維持する(fpsが違うときに、毎フレームcurrentframeをsetされるとまずいので)
	}
	m_nowTime = (frame + 0.5) / getAnimeFPS();	//frame / getAnimeFPS();
}
コード例 #15
0
ファイル: ofxSprite.cpp プロジェクト: borg/ofxSpriteManager
ofImage& ofxSprite::getCurrentImage() {
    return getImageAtFrame(getCurrentFrame());
}
コード例 #16
0
double SampleNode::getSelfSizePerFrame() const
{
    return static_cast<double>(allocationSize) / static_cast<double>(getCurrentFrame());
}
コード例 #17
0
ファイル: tapp.cpp プロジェクト: SaierMe/opentoonz
int TApp::getCurrentImageType() {
  /*-- 現在のセルの種類に関係無く、Splineを選択中はベクタを編集できるようにする
   * --*/
  if (getCurrentObject()->isSpline()) return TImage::VECTOR;

  TXshSimpleLevel *sl = 0;

  if (getCurrentFrame()->isEditingScene()) {
    int row = getCurrentFrame()->getFrame();
    int col = getCurrentColumn()->getColumnIndex();
    if (col < 0)
#ifdef LINETEST
      return TImage::RASTER;
#else
    {
      int levelType = Preferences::instance()->getDefLevelType();
      return (levelType == PLI_XSHLEVEL)
                 ? TImage::VECTOR
                 :  // RASTER image type includes both TZI_XSHLEVEL
                 (levelType == TZP_XSHLEVEL)
                     ? TImage::TOONZ_RASTER
                     : TImage::RASTER;  // and OVL_XSHLEVEL level types
    }
#endif

    TXsheet *xsh  = getCurrentXsheet()->getXsheet();
    TXshCell cell = xsh->getCell(row, col);
    if (cell.isEmpty()) {
      int r0, r1;
      xsh->getCellRange(col, r0, r1);
      if (0 <= r0 && r0 <= r1) {
        /*-- Columnに格納されている一番上のLevelのTypeに合わせる--*/
        cell = xsh->getCell(r0, col);
      } else /*-- Columnが空の場合 --*/
      {
#ifdef LINETEST
        return TImage::RASTER;
#else
        int levelType = Preferences::instance()->getDefLevelType();
        return (levelType == PLI_XSHLEVEL)
                   ? TImage::VECTOR
                   : (levelType == TZP_XSHLEVEL) ? TImage::TOONZ_RASTER
                                                 : TImage::RASTER;
#endif
      }
    }

    sl = cell.getSimpleLevel();
  } else if (getCurrentFrame()->isEditingLevel())
    sl = getCurrentLevel()->getSimpleLevel();

  if (sl) {
    switch (sl->getType()) {
    case TZP_XSHLEVEL:
      return TImage::TOONZ_RASTER;
    case OVL_XSHLEVEL:
      return TImage::RASTER;
    case PLI_XSHLEVEL:
    default:
      return TImage::VECTOR;
    case MESH_XSHLEVEL:
      return TImage::MESH;
    }
  }

  return TImage::VECTOR;
}
コード例 #18
0
bool FunctionKeyframeNavigator::hasPrev() const {
  return m_curve && m_curve->getPrevKeyframe(getCurrentFrame()) >= 0;
}
コード例 #19
0
void FrameChanger::draw(std::ostream &oss){
	auto ssp = m_owner->SSP();
	oss << "frame: current=" << ssp->getCurrentFrame() << " --> " << m_frame << endl;
}
コード例 #20
0
void YCbCrLabView::onFrameForward()
{
    m_pSlider->setValue(getCurrentFrame() + 1);
}