kfbxsurfacematerial.h
Go to the documentation of this file.00001
00004 #ifndef _FBXSDK_SURFACEMATERIAL_H_
00005 #define _FBXSDK_SURFACEMATERIAL_H_
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #include <kaydaradef.h>
00043 #ifndef KFBX_DLL
00044 #define KFBX_DLL K_DLLIMPORT
00045 #endif
00046
00047 #include <kaydara.h>
00048
00049 #include <kfbxplugins/kfbxtakenodecontainer.h>
00050 #include <kfbxplugins/kfbxcolor.h>
00051 #include <kfbxplugins/kfbxgroupname.h>
00052 #include <kfbxplugins/kfbxnodeattribute.h>
00053
00054 #include <klib/kerror.h>
00055
00056 #include <fbxfilesdk_nsbegin.h>
00057
00058 class KFbxSurfaceMaterial_internal;
00059
00066 class KFBX_DLL KFbxSurfaceMaterial : public KFbxTakeNodeContainer
00067 {
00068 KFBXOBJECT_DECLARE(KFbxSurfaceMaterial);
00069
00070 public:
00075
00076 static char const* sShadingModel;
00077 static char const* sMultiLayer;
00078
00079 static char const* sEmissive;
00080 static char const* sEmissiveFactor;
00081
00082 static char const* sAmbient;
00083 static char const* sAmbientFactor;
00084
00085 static char const* sDiffuse;
00086 static char const* sDiffuseFactor;
00087
00088 static char const* sSpecular;
00089 static char const* sSpecularFactor;
00090 static char const* sShininess;
00091
00092 static char const* sBump;
00093
00094 static char const* sTransparentColor;
00095 static char const* sTransparencyFactor;
00096
00097 static char const* sReflection;
00098 static char const* sReflectionFactor;
00099
00101
00106
00108 void Reset();
00109
00110 KFbxProperty GetShadingModel() const;
00111 KFbxProperty GetMultiLayer() const;
00112
00113 void AddChannels(KFbxTakeNode *pTakeNode);
00114
00116
00123
00128 K_DEPRECATED bool SetShadingModel(KString const& pShadingModel);
00129
00133 K_DEPRECATED bool GetShadingModel(KString& pShadingModel) const;
00134
00138 K_DEPRECATED bool SetMultiLayer(bool pMultiLayer);
00139
00143 K_DEPRECATED bool GetMultiLayer(bool& pMultiLayer) const;
00144
00146
00151
00155 KError const& GetError() const;
00156
00161 typedef enum
00162 {
00163 eTAKE_NODE_ERROR,
00164 eERROR_COUNT
00165 } EError;
00166
00170 EError GetLastErrorID() const;
00171
00175 char const* GetLastErrorString() const;
00176
00178
00180
00181
00182
00183
00184
00185
00187
00188 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00189
00190 virtual KObject* GetFbxObject_internal();
00191 virtual KObject const* GetFbxObject_internal() const;
00192
00193
00194 virtual KFbxObject* Clone(KFbxObject::ECloneType pCloneType) const;
00195
00196 protected:
00197 bool SetColorParameter(KFbxProperty pProperty, KFbxColor const& pColor);
00198 bool GetColorParameter(KFbxProperty pProperty, KFbxColor& pColor) const;
00199 bool SetDoubleParameter(KFbxProperty pProperty, double pDouble);
00200 bool GetDoubleParameter(KFbxProperty pProperty, double pDouble) const;
00201
00202 static char const* GetNamePrefix() { return MATERIAL_PREFIX; }
00203
00204 KFbxSurfaceMaterial(KFbxSdkManager& pManager, char const* pName);
00205 virtual ~KFbxSurfaceMaterial();
00206
00207 virtual void Destruct(bool pRecursive, bool pDependents);
00208
00210 KFbxSurfaceMaterial& operator=(KFbxSurfaceMaterial const& pMaterial);
00211
00212
00213 bool operator==(KFbxSurfaceMaterial const& pMaterial) const;
00214
00215
00216 KFbxObject::ENameSpace GetNameSpace() const;
00217 virtual KString GetTypeName() const;
00218 virtual KStringList GetTypeFlags() const;
00219
00220
00221 void Init();
00222
00223 KError mError;
00224
00225
00226 KFbxSurfaceMaterial_internal* mPH;
00227
00228 KFbxPropertyString ShadingModel;
00229 KFbxPropertyBool1 MultiLayer;
00230
00231 friend class KFbxLayerContainer;
00232 friend class KFbxReaderFbx;
00233 friend class KFbxReaderFbx6;
00234 friend class KFbxWriterFbx6;
00235
00236 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00237
00238 };
00239
00240 typedef KFbxSurfaceMaterial* HKFbxSurfaceMaterial;
00241
00242 #include <fbxfilesdk_nsend.h>
00243
00244 #endif
00245
00246