예제 #1
0
void cMorph::AddData(const int keyFrame, const cOneParameter &val)
{
	int key = findInMorph(keyFrame);
	if (key != -1) return;
	sMorphParameter mVal(keyFrame, val);
	dataSets.append(mVal);

	if (dataSets.size() > listSize)
	{
		dataSets.removeFirst();
	}
}
예제 #2
0
MOboolean moSceneEffect::Init()
{
  if (!PreInit()) return false;

  moDefineParamIndex( SCENE_INLET, "inlet" );
  moDefineParamIndex( SCENE_OUTLET, "outlet" );
  moDefineParamIndex( SCENE_SCRIPT, "script" );
  moDefineParamIndex( SCENE_ALPHA, "alpha" );
  moDefineParamIndex( SCENE_COLOR, "color" );
  moDefineParamIndex( SCENE_SYNC, "syncro" );
  moDefineParamIndex( SCENE_PHASE, "phase" );
  moDefineParamIndex( SCENE_PREEFFECTS, "preeffect" );
  moDefineParamIndex( SCENE_EFFECTS, "effect" );
  moDefineParamIndex( SCENE_POSTEFFECTS, "posteffect" );
  moDefineParamIndex( SCENE_STATES, "scene_states" );
  moDefineParamIndex( SCENE_SEQUENCE_MODE, "sequence_mode" );
  moDefineParamIndex( SCENE_SEQUENCE_DURATION, "sequence_duration" );
  moDefineParamIndex( SCENE_SEQUENCE_LOOP, "sequence_loop" );
  moDefineParamIndex( SCENE_CREATE_LAYER, "create_layer" );

  m_i_scene_states = -1;
	m_EffectManager.Init();
	m_EffectManager.m_pEffectManager = &m_EffectManager;
	m_EffectManager.m_pResourceManager = GetResourceManager();

	moEffect* newEffect = NULL;
  bool res = false;
  int pre=-1,on=-1;
	/** CREATING NEW LAYER!! */
	//RenderMan->CreateNewLayer( this );

  m_Config.SetCurrentParam( "preeffect" );
	if (m_Config.FirstValue()) {
    do {
      moValue& mVal(m_Config.GetCurrentValue());
      moMobDefinition MoldeoObjectDef( mVal.GetSubValue( MO_CFG_EFFECT).Text(), mVal.GetSubValue( MO_CFG_EFFECT_CONFIG).Text(),
                                        MO_OBJECT_PREEFFECT, mVal.GetSubValue( MO_CFG_EFFECT_LABEL).Text() );

      newEffect = m_EffectManager.New( MoldeoObjectDef );
      if (newEffect) {
          res = newEffect->Init();
          pre = mVal.GetSubValue(MO_CFG_EFFECT_PRE).Int();
          on = mVal.GetSubValue(MO_CFG_EFFECT_ON).Int();
          if (pre>=0) newEffect->GetConfig()->SetCurrentPreConf(pre);
          if (on>0) newEffect->Activate();
          else newEffect->Deactivate();
      }
    } while (m_Config.NextValue());
	}


  m_Config.SetCurrentParam( "effect" );
	if (m_Config.FirstValue()) {
    do {
      moValue& mVal(m_Config.GetCurrentValue());
      moMobDefinition MoldeoObjectDef( mVal.GetSubValue( MO_CFG_EFFECT).Text(), mVal.GetSubValue( MO_CFG_EFFECT_CONFIG).Text(),
                                        MO_OBJECT_EFFECT, mVal.GetSubValue( MO_CFG_EFFECT_LABEL).Text() );
      newEffect = m_EffectManager.New( MoldeoObjectDef );
      if (newEffect) {
          res = newEffect->Init();
          pre = mVal.GetSubValue(MO_CFG_EFFECT_PRE).Int();
          on = mVal.GetSubValue(MO_CFG_EFFECT_ON).Int();
          if (pre>=0) newEffect->GetConfig()->SetCurrentPreConf(pre);
          if (on>0) newEffect->Activate();
          else newEffect->Deactivate();
      }

    } while (m_Config.NextValue());
	}

  m_Config.SetCurrentParam( "posteffect" );
	if (m_Config.FirstValue()) {
    do {
      moValue& mVal(m_Config.GetCurrentValue());
      moMobDefinition MoldeoObjectDef( mVal.GetSubValue( MO_CFG_EFFECT).Text(), mVal.GetSubValue( MO_CFG_EFFECT_CONFIG).Text(),
                                        MO_OBJECT_POSTEFFECT, mVal.GetSubValue( MO_CFG_EFFECT_LABEL).Text() );
      newEffect = m_EffectManager.New( MoldeoObjectDef );
      if (newEffect) {
          res = newEffect->Init();
          pre = mVal.GetSubValue(MO_CFG_EFFECT_PRE).Int();
          on = mVal.GetSubValue(MO_CFG_EFFECT_ON).Int();
          if (pre>=0) newEffect->GetConfig()->SetCurrentPreConf(pre);
          if (on>0) newEffect->Activate();
          else newEffect->Deactivate();
      }

    } while (m_Config.NextValue());
	}


	m_Config.SetCurrentParam( "scene_states" );
	m_n_scene_states = m_Config.GetCurrentParam().GetValuesCount();

	int i_scene_states = 0;
	if (m_Config.FirstValue()) {
    do {
        moValue& mVal(m_Config.GetCurrentValue());
        moSceneState SceneState;

        if (mVal.GetSubValueCount()>1) {
          SceneState.m_state_name = mVal.GetSubValue( 0 ).Text();
          SceneState.Set( mVal.GetSubValue( 1 ).Text());
        }

        m_SceneStates[i_scene_states] = SceneState;

        MODebug2->Message("scene_states: " + mVal.GetSubValue( 0 ).Text() );
        i_scene_states+= 1;
    } while (m_Config.NextValue());
	}
	m_Config[ moR(SCENE_STATES)].SetIndexValue(0);

  m_Config.SetCurrentPreConf( 0 );

	return true;
}