fbxlayeredtexture.h

Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2012 Autodesk, Inc.
00004    All rights reserved.
00005  
00006    Use of this software is subject to the terms of the Autodesk license agreement
00007    provided at the time of installation or download, or which otherwise accompanies
00008    this software in either electronic or hard copy form.
00009  
00010 ****************************************************************************************/
00011 
00013 #ifndef _FBXSDK_SCENE_SHADING_LAYERED_TEXTURE_H_
00014 #define _FBXSDK_SCENE_SHADING_LAYERED_TEXTURE_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/scene/fbxgroupname.h>
00019 #include <fbxsdk/scene/shading/fbxtexture.h>
00020 
00021 #include <fbxsdk/fbxsdk_nsbegin.h>
00022 
00044 class FBXSDK_DLL FbxLayeredTexture : public FbxTexture
00045 {
00046     FBXSDK_OBJECT_DECLARE(FbxLayeredTexture,FbxTexture);
00047 
00048 public:
00083     enum EBlendMode
00084     {
00085         eTranslucent,
00086         eAdditive,
00087         eModulate,
00088         eModulate2,
00089         eOver,
00090         eNormal,        
00091         eDissolve,
00092         eDarken,            
00093         eColorBurn,
00094         eLinearBurn,    
00095         eDarkerColor,
00096         eLighten,           
00097         eScreen,        
00098         eColorDodge,
00099         eLinearDodge,
00100         eLighterColor,
00101         eSoftLight,     
00102         eHardLight,     
00103         eVividLight,
00104         eLinearLight,
00105         ePinLight,      
00106         eHardMix,       
00107         eDifference,        
00108         eExclusion,         
00109         eSubtract,
00110         eDivide,
00111         eHue,           
00112         eSaturation,        
00113         eColor,     
00114         eLuminosity,
00115         eOverlay,
00116         eBlendModeCount
00117     };
00118 
00123     bool operator==( const FbxLayeredTexture& pOther ) const;
00124 
00130     bool SetTextureBlendMode( int pIndex, EBlendMode pMode ); 
00131 
00137     bool GetTextureBlendMode( int pIndex, EBlendMode& pMode ) const;
00138 
00144     bool SetTextureAlpha( int pIndex, double pAlpha );
00145 
00151     bool GetTextureAlpha( int pIndex, double& pAlpha ) const;
00152 
00154 //
00155 //  WARNING!
00156 //
00157 //  Anything beyond these lines may not be documented accurately and is 
00158 //  subject to change without notice.
00159 //
00161 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00162 
00163 protected:
00164 
00165     struct InputData
00166     {
00167         EBlendMode mBlendMode;
00168         double mAlpha;
00169     };
00170 
00171 public:
00172     FbxArray<InputData> mInputData;
00173 
00174 protected:
00175     FbxLayeredTexture(FbxManager& pManager, char const* pName);  
00176 
00177     virtual bool ConnecNotify (FbxConnectEvent const &pEvent);
00178 
00179     bool RemoveInputData( int pIndex );
00180 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00181 };
00182 
00183 inline EFbxType FbxTypeOf(const FbxLayeredTexture::EBlendMode&){ return eFbxEnum; }
00184 
00185 #include <fbxsdk/fbxsdk_nsend.h>
00186 
00187 #endif /* _FBXSDK_SCENE_SHADING_LAYERED_TEXTURE_H_ */