示例#1
0
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();
}
示例#2
0
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);
}
示例#4
0
//----------------------------------------------
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);
}