예제 #1
0
void ShowHideAnim::onTimer(qlib::time_value elapsed, AnimMgr *pMgr)
{
  const double rho = getRho(elapsed);
  
  // rend array should be filled here!!
  rendlist_t::const_iterator riter = rendBegin();
  rendlist_t::const_iterator rend = rendEnd();
  for (; riter!=rend; ++riter) {
    RendererPtr pRend = *riter;

    if (m_bHide) {
      // hiding
      setVisible(pRend, true);
      if (m_bFade) 
        pRend->setPropReal("alpha", (1.0-rho)*m_dTgtAlpha);
    }
    else {
      // showing
      MB_DPRINTLN("ShowHideAnim.onTimer> SetVisible TRUE!!!");
      setVisible(pRend, true);
      if (m_bFade) {
        pRend->setPropReal("alpha", rho*m_dTgtAlpha);
	MB_DPRINTLN("ShowHideAnim.onTimer> SetAlpha %f!", rho);
      }
    }

  }
}
예제 #2
0
void ShowHideAnim::onPropInit(AnimMgr *pMgr, qlib::uid_t tgt_uid)
{
  RendererPtr pTgtRend = qsys::SceneManager::getRendererS(tgt_uid);
  if (pTgtRend.isnull()) {
    LOG_DPRINTLN("ShowHideAnim.onPropInit> Unknown tgt uid %d", int(tgt_uid));
    return;
  }

  if (m_bHide) {
    setVisible(pTgtRend, true);
    if (m_bFade)
      pTgtRend->setPropReal("alpha", m_dTgtAlpha);
  }
  else {
    MB_DPRINTLN("ShowHideAnim.onPropInit> SetVisible FALSE!!!");
    setVisible(pTgtRend, false);
    if (m_bFade)
      pTgtRend->setPropReal("alpha", 0.0);
  }
}
예제 #3
0
void ShowHideAnim::onStart(qlib::time_value elapsed, AnimMgr *pMgr)
{
  fillRendArray(pMgr->getTgtScene());
  rendlist_t::const_iterator riter = rendBegin();
  rendlist_t::const_iterator rend = rendEnd();
  for (; riter!=rend; ++riter) {
    RendererPtr pRend = *riter;

    if (m_bHide) {
      setVisible(pRend, true);
      if (m_bFade)
        pRend->setPropReal("alpha", m_dTgtAlpha);
    }
    else {
      MB_DPRINTLN("ShowHideAnim.onStart> SetVisible FALSE!!!");
      setVisible(pRend, false);
      if (m_bFade)
        pRend->setPropReal("alpha", 0.0);
    }

  }
}
예제 #4
0
void ShowHideAnim::onEnd(qlib::time_value elapsed, AnimMgr *pMgr)
{
  // rend array should be filled here!!
  rendlist_t::const_iterator riter = rendBegin();
  rendlist_t::const_iterator rend = rendEnd();
  for (; riter!=rend; ++riter) {
    RendererPtr pRend = *riter;

    if (m_bHide) {
      // hiding
      setVisible(pRend, false);
      if (m_bFade)
        pRend->setPropReal("alpha", m_dTgtAlpha);
    }
    else {
      // showing
      MB_DPRINTLN("ShowHide.onEnd> SetVisible TRUE!!!");
      setVisible(pRend, true);
      if (m_bFade)
        pRend->setPropReal("alpha", m_dTgtAlpha);
    }

  }
}