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(); } }
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; }