Hello,

I was getting the following error while compiling the fbx plugin under OSX without the included change:

error: extra qualification 'FbxMaterialToOsgStateSet::' on member 'FbxMaterialToOsgStateSet'

Martins
#ifndef FBXMATERIALTOOSGSTATESET_H
#define FBXMATERIALTOOSGSTATESET_H

#include <map>
#include <memory>
#include <osg/Material>
#include <osg/StateSet>
#include <osgDB/Options>
#include <osg/Texture2D>

#if defined(_MSC_VER)
#pragma warning( disable : 4505 )
#endif
#include <fbxsdk.h>

//The only things we need to create a new StateSet are texture and materials. 
So we store that in a pair.
//We Don't store directly in stateSet because getOrCreateStateSet function set 
some parameters.
typedef std::pair<osg::Material *, osg::Texture2D *> StateSetContent;

//We use the pointers setted by the importer to not duplicate materials and 
textures.
typedef std::map<const KFbxSurfaceMaterial *, StateSetContent> KFbxMaterialMap;

//This map is used to not load the same image more than 1 time.
typedef std::map<std::string, osg::Texture2D *> ImageMap;

class FbxMaterialToOsgStateSet
{
public:
    //Convert a KfbxSurfaceMaterial to a osgMaterial and an osgTexture.
    StateSetContent convert(const KFbxSurfaceMaterial* pFbxMat);

    //dir is the directory where fbx is stored (for relative path).
    FbxMaterialToOsgStateSet(const std::string& dir, const osgDB::Options* 
options) :
        _options(options),
        _dir(dir) {}

    void checkInvertTransparency();
private:
    //Convert a texture fbx to an osg texture.
    osg::ref_ptr<osg::Texture2D>
    fbxTextureToOsgTexture(const KFbxTexture* pOsgTex);
    KFbxMaterialMap       _kFbxMaterialMap;
    ImageMap              _imageMap;
    const osgDB::Options* _options;
    const std::string     _dir;
};


#endif //FBXMATERIALTOOSGSTATESET_H
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to