OpenMW
|
00001 #ifndef COMPONENTS_NIFOGRE_MATERIAL_HPP 00002 #define COMPONENTS_NIFOGRE_MATERIAL_HPP 00003 00004 #include <iostream> 00005 #include <string> 00006 #include <map> 00007 #include <cassert> 00008 00009 #include <OgreString.h> 00010 00011 namespace Nif 00012 { 00013 class ShapeData; 00014 class NiTexturingProperty; 00015 class NiMaterialProperty; 00016 class NiAlphaProperty; 00017 class NiVertexColorProperty; 00018 class NiZBufferProperty; 00019 class NiSpecularProperty; 00020 class NiWireframeProperty; 00021 } 00022 00023 namespace NifOgre 00024 { 00025 00026 class NIFMaterialLoader { 00027 static void warn(const std::string &msg) 00028 { 00029 std::cerr << "NIFMaterialLoader: Warn: " << msg << std::endl; 00030 } 00031 00032 static void fail(const std::string &msg) 00033 { 00034 std::cerr << "NIFMaterialLoader: Fail: "<< msg << std::endl; 00035 abort(); 00036 } 00037 00038 static std::map<size_t,std::string> sMaterialMap; 00039 00040 public: 00041 static std::string findTextureName(const std::string &filename); 00042 00043 static Ogre::String getMaterial(const Nif::ShapeData *shapedata, 00044 const Ogre::String &name, const Ogre::String &group, 00045 const Nif::NiTexturingProperty *texprop, 00046 const Nif::NiMaterialProperty *matprop, 00047 const Nif::NiAlphaProperty *alphaprop, 00048 const Nif::NiVertexColorProperty *vertprop, 00049 const Nif::NiZBufferProperty *zprop, 00050 const Nif::NiSpecularProperty *specprop, 00051 const Nif::NiWireframeProperty *wireprop, 00052 bool &needTangents); 00053 }; 00054 00055 } 00056 00057 #endif