ExportScene03/MyKFbxMesh.h

/****************************************************************************************

   Copyright (C) 2012 Autodesk, Inc.
   All rights reserved.

   Use of this software is subject to the terms of the Autodesk license agreement
   provided at the time of installation or download, or which otherwise accompanies
   this software in either electronic or hard copy form.

****************************************************************************************/

#ifndef _MYKFBXMESH_H_
#define _MYKFBXMESH_H_

#include <fbxsdk.h>

//Show how to create a class derived from existing kfbx class
class MyKFbxMesh : public FbxMesh
{
    FBXSDK_OBJECT_DECLARE(MyKFbxMesh, FbxMesh);

public:
    typedef enum
    {
        eColor =0, //inherited by kfbxmesh
        eMY_PROPERTY1,
        eMY_PROPERTY2,
        eMY_PROPERTY3,
        eMY_PROPERTY4,
        eMY_PROPERTY5,
        eMY_PROPERTY6,
        eMY_PROPERTY7,
        eMY_PROPERTY8,
        eMY_PROPERTY9,
        eMY_PROPERTY10,
        eMY_PROPERTY11,
        eMY_PROPERTY_COUNT
    } ePROPERTY;

    //Important to implement
    const char* GetTypeName() const;
    FbxProperty GetProperty(int pId);

protected:
    //This constructor is mandatory, it must be put in the protected section
    //because all objects MUST be created via the Sdk Manager
    MyKFbxMesh(FbxManager& pManager, char const* pName);
    virtual void Destruct(bool pRecursive, bool pDependents);
    virtual bool ConstructProperties(bool pForceSet);
    
private:
    int mExtraOption;
};

class MyFbxObject : public FbxObject
{
    FBXSDK_OBJECT_DECLARE(MyFbxObject, FbxObject);

public:
    virtual const char* GetTypeName() const;

protected:
    //This constructor is mandatory, it must be put in the protected section
    //because all objects MUST be created via the Sdk Manager
    MyFbxObject(FbxManager& pManager, char const* pName);
    virtual void Destruct(bool pRecursive, bool pDependents);
    virtual bool ConstructProperties(bool pForceSet);
};

#endif