You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.6 KiB
C++
58 lines
1.6 KiB
C++
#ifndef COMPONENTS_NIFOGRE_MATERIAL_HPP
|
|
#define COMPONENTS_NIFOGRE_MATERIAL_HPP
|
|
|
|
#include <iostream>
|
|
#include <string>
|
|
#include <map>
|
|
#include <cassert>
|
|
|
|
#include <OgreString.h>
|
|
|
|
namespace Nif
|
|
{
|
|
class ShapeData;
|
|
class NiTexturingProperty;
|
|
class NiMaterialProperty;
|
|
class NiAlphaProperty;
|
|
class NiVertexColorProperty;
|
|
class NiZBufferProperty;
|
|
class NiSpecularProperty;
|
|
class NiWireframeProperty;
|
|
}
|
|
|
|
namespace NifOgre
|
|
{
|
|
|
|
class NIFMaterialLoader {
|
|
static void warn(const std::string &msg)
|
|
{
|
|
std::cerr << "NIFMaterialLoader: Warn: " << msg << std::endl;
|
|
}
|
|
|
|
static void fail(const std::string &msg)
|
|
{
|
|
std::cerr << "NIFMaterialLoader: Fail: "<< msg << std::endl;
|
|
abort();
|
|
}
|
|
|
|
static std::map<size_t,std::string> sMaterialMap;
|
|
|
|
public:
|
|
static std::string findTextureName(const std::string &filename);
|
|
|
|
static Ogre::String getMaterial(const Nif::ShapeData *shapedata,
|
|
const Ogre::String &name, const Ogre::String &group,
|
|
const Nif::NiTexturingProperty *texprop,
|
|
const Nif::NiMaterialProperty *matprop,
|
|
const Nif::NiAlphaProperty *alphaprop,
|
|
const Nif::NiVertexColorProperty *vertprop,
|
|
const Nif::NiZBufferProperty *zprop,
|
|
const Nif::NiSpecularProperty *specprop,
|
|
const Nif::NiWireframeProperty *wireprop,
|
|
bool &needTangents);
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|