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

📄 corematerial.cpp

📁 Cal3D实现虚拟角色 Cal3D实现虚拟角色
💻 CPP
字号:
//****************************************************************************//// corematerial.cpp                                                           //// Copyright (C) 2001, 2002 Bruno 'Beosil' Heidelberger                       ////****************************************************************************//// This library is free software; you can redistribute it and/or modify it    //// under the terms of the GNU Lesser General Public License as published by   //// the Free Software Foundation; either version 2.1 of the License, or (at    //// your option) any later version.                                            ////****************************************************************************//#ifdef HAVE_CONFIG_H#include "config.h"#endif#include "cal3d/error.h"#include "cal3d/corematerial.h"CalCoreMaterial::CalCoreMaterial()  : m_userData(0){} /*****************************************************************************//** Returns the ambient color.  *  * This function returns the ambient color of the core material instance.  *  * @return A reference to the ambient color.  *****************************************************************************/CalCoreMaterial::Color& CalCoreMaterial::getAmbientColor(){  return m_ambientColor;} /*****************************************************************************//** Returns the diffuse color.  *  * This function returns the diffuse color of the core material instance.  *  * @return A reference to the diffuse color.  *****************************************************************************/CalCoreMaterial::Color& CalCoreMaterial::getDiffuseColor(){  return m_diffuseColor;} /*****************************************************************************//** Returns the number of maps.  *  * This function returns the number of mapss in the core material instance.  *  * @return The number of maps.  *****************************************************************************/int CalCoreMaterial::getMapCount(){  return m_vectorMap.size();} /*****************************************************************************//** Returns a specified map texture filename.  *  * This function returns the texture filename for a specified map ID of the  * core material instance.  *  * @param mapId The ID of the map.  *  * @return One of the following values:  *         \li the filename of the map texture  *         \li an empty string if an error happend  *****************************************************************************/const std::string& CalCoreMaterial::getMapFilename(int mapId){  // check if the map id is valid  if((mapId < 0) || (mapId >= (int)m_vectorMap.size()))  {    CalError::setLastError(CalError::INVALID_HANDLE, __FILE__, __LINE__);    static const std::string strNull;    return strNull;  }  return m_vectorMap[mapId].strFilename;} /*****************************************************************************//** Provides access to a specified map user data.  *  * This function returns the user data stored in the specified map of the core  * material instance.  *  * @param mapId The ID of the map.  *  * @return One of the following values:  *         \li the user data stored in the specified map  *         \li \b 0 if an error happend  *****************************************************************************/Cal::UserData CalCoreMaterial::getMapUserData(int mapId){  // check if the map id is valid  if((mapId < 0) || (mapId >= (int)m_vectorMap.size()))  {    CalError::setLastError(CalError::INVALID_HANDLE, __FILE__, __LINE__);    return 0;  }  return m_vectorMap[mapId].userData;} /*****************************************************************************//** Returns the shininess factor.  *  * This function returns the shininess factor of the core material instance.  *  * @return The shininess factor.  *****************************************************************************/float CalCoreMaterial::getShininess(){  return m_shininess;} /*****************************************************************************//** Returns the specular color.  *  * This function returns the specular color of the core material instance.  *  * @return A reference to the specular color.  *****************************************************************************/CalCoreMaterial::Color& CalCoreMaterial::getSpecularColor(){  return m_specularColor;} /*****************************************************************************//** Provides access to the user data.  *  * This function returns the user data stored in the core material instance.  *  * @return The user data stored in the core material instance.  *****************************************************************************/Cal::UserData CalCoreMaterial::getUserData(){  return m_userData;} /*****************************************************************************//** Returns the map vector.  *  * This function returns the vector that contains all maps of the core material  * instance.  *  * @return A reference to the map vector.  *****************************************************************************/std::vector<CalCoreMaterial::Map>& CalCoreMaterial::getVectorMap(){  return m_vectorMap;} /*****************************************************************************//** Reserves memory for the maps.  *  * This function reserves memory for the maps of the core material instance.  *  * @param mapCount The number of maps that this core material instance should  *                 be able to hold.  *  * @return One of the following values:  *         \li \b true if successful  *         \li \b false if an error happend  *****************************************************************************/bool CalCoreMaterial::reserve(int mapCount){  // reserve the space needed in all the vectors  m_vectorMap.reserve(mapCount);  m_vectorMap.resize(mapCount);  return true;} /*****************************************************************************//** Sets the ambient color.  *  * This function sets the ambient color of the core material instance.  *  * @param ambientColor The ambient color that should be set.  *****************************************************************************/void CalCoreMaterial::setAmbientColor(const CalCoreMaterial::Color& ambientColor){  m_ambientColor = ambientColor;} /*****************************************************************************//** Sets the diffuse color.  *  * This function sets the diffuse color of the core material instance.  *  * @param ambientColor The diffuse color that should be set.  *****************************************************************************/void CalCoreMaterial::setDiffuseColor(const CalCoreMaterial::Color& diffuseColor){  m_diffuseColor = diffuseColor;} /*****************************************************************************//** Sets a specified map.  *  * This function sets a specified map in the core material instance.  *  * @param mapId  The ID of the map.  * @param map The map that should be set.  *  * @return One of the following values:  *         \li \b true if successful  *         \li \b false if an error happend  *****************************************************************************/bool CalCoreMaterial::setMap(int mapId, const Map& map){  if((mapId < 0) || (mapId >= (int)m_vectorMap.size())) return false;  m_vectorMap[mapId] = map;  return true;} /*****************************************************************************//** Stores specified map user data.  *  * This function stores user data in a specified map of the core material  * instance.  *  * @param mapId  The ID of the map.  * @param userData The user data that should be stored.  *  * @return One of the following values:  *         \li \b true if successful  *         \li \b false if an error happend  *****************************************************************************/bool CalCoreMaterial::setMapUserData(int mapId, Cal::UserData userData){  if((mapId < 0) || (mapId >= (int)m_vectorMap.size())) return false;  m_vectorMap[mapId].userData = userData;  return true;} /*****************************************************************************//** Sets the shininess factor.  *  * This function sets the shininess factor of the core material instance.  *  * @param shininess The shininess factor that should be set.  *****************************************************************************/void CalCoreMaterial::setShininess(float shininess){  m_shininess = shininess;} /*****************************************************************************//** Sets the specular color.  *  * This function sets the specular color of the core material instance.  *  * @param ambientColor The specular color that should be set.  *****************************************************************************/void CalCoreMaterial::setSpecularColor(const CalCoreMaterial::Color& specularColor){  m_specularColor = specularColor;} /*****************************************************************************//**   * Set the name of the file in which the core material is stored, if any.  *  * @param filename The path of the file.  *****************************************************************************/void CalCoreMaterial::setFilename(const std::string& filename){  m_filename = filename;} /*****************************************************************************//**   * Get the name of the file in which the core material is stored, if any.  *  * @return One of the following values:  *         \li \b empty string if the material was not stored in a file  *         \li \b the path of the file  *  *****************************************************************************/const std::string& CalCoreMaterial::getFilename(void){  return m_filename;} /*****************************************************************************//**   * Set the symbolic name of the core material.  *  * @param name A symbolic name.  *****************************************************************************/void CalCoreMaterial::setName(const std::string& name){  m_name = name;} /*****************************************************************************//**   * Get the symbolic name the core material.  *  * @return One of the following values:  *         \li \b empty string if the material was no associated to a symbolic name  *         \li \b the symbolic name  *  *****************************************************************************/const std::string& CalCoreMaterial::getName(void){  return m_name;} /*****************************************************************************//** Stores user data.  *  * This function stores user data in the core material instance.  *  * @param userData The user data that should be stored.  *****************************************************************************/void CalCoreMaterial::setUserData(Cal::UserData userData){  m_userData = userData;}

⌨️ 快捷键说明

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