⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modelmaterial.cpp

📁 骨骼动画....把魔兽模型解出的代码..
💻 CPP
字号:
//+-----------------------------------------------------------------------------
//| Included files
//+-----------------------------------------------------------------------------
#include "ModelMaterial.h"


//+-----------------------------------------------------------------------------
//| Constructor
//+-----------------------------------------------------------------------------
MODEL_MATERIAL::MODEL_MATERIAL()
{
	GeosetNodes.SetData(this);
	RibbonEmitterNodes.SetData(this);
}


//+-----------------------------------------------------------------------------
//| Destructor
//+-----------------------------------------------------------------------------
MODEL_MATERIAL::~MODEL_MATERIAL()
{
	Clear();
}


//+-----------------------------------------------------------------------------
//| Clears the material
//+-----------------------------------------------------------------------------
VOID MODEL_MATERIAL::Clear()
{
	SAFE_CLEAR(MaterialData.LayerContainer);

	MaterialData = MODEL_MATERIAL_DATA();
}


//+-----------------------------------------------------------------------------
//| Returns the mdx size of the material
//+-----------------------------------------------------------------------------
INT MODEL_MATERIAL::GetSize()
{
	INT i;
	INT Size = 20;

	for(i = 0; i < MaterialData.LayerContainer.GetTotalSize(); i++)
	{
		if(MaterialData.LayerContainer.ValidIndex(i))
		{
			Size += MaterialData.LayerContainer[i]->GetSize();
		}
	}

	return Size;
}


//+-----------------------------------------------------------------------------
//| Returns a reference to the data
//+-----------------------------------------------------------------------------
MODEL_MATERIAL_DATA& MODEL_MATERIAL::Data()
{
	return MaterialData;
}


//+-----------------------------------------------------------------------------
//| Returns the render order
//+-----------------------------------------------------------------------------
INT MODEL_MATERIAL::GetRenderOrder()
{
	INT i;
	INT RenderOrder;
	INT CurrentRenderOrder = 1;

	for(i = 0; i < MaterialData.LayerContainer.GetTotalSize(); i++)
	{
		if(MaterialData.LayerContainer.ValidIndex(i))
		{
			RenderOrder = MaterialData.LayerContainer[i]->GetRenderOrder();
			if(RenderOrder > CurrentRenderOrder) CurrentRenderOrder = RenderOrder;
		}
	}

	return CurrentRenderOrder;
}


//+-----------------------------------------------------------------------------
//| Adds a layer
//+-----------------------------------------------------------------------------
BOOL MODEL_MATERIAL::AddLayer(MODEL_MATERIAL_LAYER* Layer)
{
	if(!MaterialData.LayerContainer.Add(Layer))
	{
		Error.SetMessage("Unable to add a new material layer!");
		return FALSE;
	}

	return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -