CBillboardAnimation::CBillboardAnimation ( CXMLTreeNode &_Node ) : m_fTimePerImage ( 0.f ) , m_fCurrentTime ( 0.f ) , m_uiImage ( 0 ) , m_vColor ( Vect4f(0.f,0.f,0.f,0.f) ) , m_fSize ( 0.f ) , m_uiNumTextures ( 0 ) , m_bLoop ( false ) { m_Name = _Node.GetPszProperty ( "name", "" ); m_vColor = _Node.GetVect4fProperty( "color", Vect4f(0.f,0.f,0.f,0.f) ); m_fSize = _Node.GetFloatProperty("size", 1.f); m_fTimePerImage = _Node.GetFloatProperty("timePerImage", 1.f); m_bLoop = _Node.GetBoolProperty("loop", false); uint16 l_TotalAnimationNodes = _Node.GetNumChildren (); for ( uint16 i = 0; i < l_TotalAnimationNodes; ++i ) { std::string l_Node = _Node(i).GetName(); if ( l_Node == "Texture" ) { std::string l_TextureName = _Node(i).GetPszProperty("file", ""); CTexture *l_Tex = CORE->GetTextureManager()->GetTexture( l_TextureName ); m_vTextures.push_back( l_Tex ); } } m_uiNumTextures = m_vTextures.size(); }
CLight::CLight(CXMLTreeNode &TreeNode) : CNamed(TreeNode) { m_Type = GetLightTypeByName(TreeNode.GetPszProperty("type")); m_Position = TreeNode.GetVect3fProperty("pos", Vect3f(0.0f, 0.0f, 0.0f), true); m_Color = CColor(TreeNode.GetVect4fProperty("color", Vect4f(255.0f, 255.0f, 255.0f, 0.0f), true)); m_StartRangeAttenuation = TreeNode.GetFloatProperty("att_start_range"); m_EndRangeAttenuation = TreeNode.GetFloatProperty("att_end_range"); m_Intensity = TreeNode.GetFloatProperty("intensity"); }
///<summary> /// CDrawQuadSceneEffect:: Constructor ///</summary> ///<param name="atts">Gestiona la lectura y escritura en ficheros XML</param> CDrawQuadSceneEffect::CDrawQuadSceneEffect(CXMLTreeNode &atts) : CSceneEffect (atts) , m_Technique (NULL) , m_Color (NULL) { //<post_render type="draw_quad" name="glow_post_effect" technique="RenderGlowPostFXTechnique" active="true" color="1.0 1.0 1.0 1.0"> // <texture stage_id="0" file="GlowTexture"/> //</post_render> CEffectManager *effm = CORE->GetEffectManager(); //TODO.. no devuelve la effectTechnique m_Technique = effm->GetEffectTechnique(atts.GetPszProperty("technique")); Vect4f l_vColor = atts.GetVect4fProperty("color", Vect4f(0.f,0.f,0.f,0.f)); m_Color.SetArgb(l_vColor); }
//---------------------------------------------- void CBoxTrigger::ReadData( CXMLTreeNode &_Node ) { m_bIsActive = _Node.GetBoolProperty("active", false); m_Name = _Node.GetPszProperty("name", ""); m_Position = _Node.GetVect3fProperty("position", v3fZERO); m_Size = _Node.GetVect3fProperty("size", v3fZERO); m_fYaw = _Node.GetFloatProperty("yaw", 0.f); m_RenderColor = CColor( _Node.GetVect4fProperty("color", Vect4f(1.f, 1.f, 1.f, 1.f)) ); std::string l_ROName = _Node.GetPszProperty("renderable_object", "", false); std::string l_Layer = _Node.GetPszProperty("layer", "", false); CRenderableObjectsManager *l_pROM = CORE->GetRenderableObjectsLayersManager()->GetRenderableObjectManager(l_Layer); if( l_pROM != NULL ) { m_pTriggerObject = l_pROM->GetInstance(l_ROName); if( m_pTriggerObject == NULL ) { LOGGER->AddNewLog(ELL_WARNING, "CBoxTrigger::ReadData->No se ha podido obtener el objeto: %s de la capa Solid.", l_ROName.c_str()); } } m_fYaw = mathUtils::Deg2Rad(m_fYaw); }