1 | /**************************************************************************************** |
2 | |
3 | Copyright (C) 2015 Autodesk, Inc. |
4 | All rights reserved. |
5 | |
6 | Use of this software is subject to the terms of the Autodesk license agreement |
7 | provided at the time of installation or download, or which otherwise accompanies |
8 | this software in either electronic or hard copy form. |
9 | |
10 | ****************************************************************************************/ |
11 | |
12 | //! \file fbximplementationfilter.h |
13 | #ifndef _FBXSDK_SCENE_SHADING_IMPLEMENTATION_FILTER_H_ |
14 | #define _FBXSDK_SCENE_SHADING_IMPLEMENTATION_FILTER_H_ |
15 | |
16 | #include <fbxsdk/fbxsdk_def.h> |
17 | |
18 | #include <fbxsdk/scene/fbxobjectfilter.h> |
19 | |
20 | #include <fbxsdk/fbxsdk_nsbegin.h> |
21 | |
22 | class FbxCriteria; |
23 | |
24 | /** \brief This object represents a shading node filter criteria |
25 | * based on the shading node implementation. |
26 | * \nosubgrouping |
27 | */ |
28 | class FBXSDK_DLL FbxImplementationFilter : public FbxObjectFilter |
29 | { |
30 | |
31 | public: |
32 | |
33 | /** The default shading API. |
34 | */ |
35 | static const char * sCHR_ANY_SHADING_API; |
36 | |
37 | /** The default shading API version. |
38 | */ |
39 | static const char * sCHR_ANY_SHADING_API_VERSION; |
40 | |
41 | /** The default shading language. |
42 | */ |
43 | static const char * sCHR_ANY_SHADING_LANGUAGE; |
44 | |
45 | /** The default shading language version. |
46 | */ |
47 | static const char * sCHR_ANY_SHADING_LANGUAGE_VERSION; |
48 | |
49 | |
50 | /** Constructor |
51 | * \param pShadingAPI a string containing the implementation API name: |
52 | * MentalRay |
53 | * OpenGL |
54 | * DirectX |
55 | * |
56 | * \param pShadingAPIVersion a string containing the implementation API version: |
57 | * eg. 1.0 |
58 | * |
59 | * \param pShadingLanguage a string identifying the implementation language name: |
60 | * GLSL = GL Shading Language |
61 | * HLSL = High Level Shading Language |
62 | * CGFX = CG effect(NVidia) |
63 | * RIB = RenderMan (RIB) |
64 | * etc... |
65 | * |
66 | * \param pShadingLanguageVersion a string identifying the implementation language version: |
67 | * eg. 1.0 |
68 | * |
69 | * \remarks by default the created criteria correspond to any shader |
70 | */ |
71 | FbxImplementationFilter( |
72 | const char * pShadingAPI = sCHR_ANY_SHADING_API, |
73 | const char * pShadingAPIVersion = sCHR_ANY_SHADING_API_VERSION, |
74 | const char * pShadingLanguage = sCHR_ANY_SHADING_LANGUAGE, |
75 | const char * pShadingLanguageVersion = sCHR_ANY_SHADING_LANGUAGE_VERSION |
76 | ); |
77 | |
78 | //! Destructor. |
79 | virtual ~FbxImplementationFilter(); |
80 | |
81 | /** Tells if this filter matches the given shading node implementation |
82 | * \param pObjectPtr The given shading node implementation |
83 | */ |
84 | virtual bool Match(const FbxObject * pObjectPtr) const; |
85 | |
86 | //! Stores the shading API |
87 | FbxString mShadingAPI; |
88 | |
89 | //! Stores the shading API Version |
90 | FbxString mShadingAPIVersion; |
91 | |
92 | //! Stores the shading language |
93 | FbxString mShadingLanguage; |
94 | |
95 | //! Stores the shading language version |
96 | FbxString mShadingLanguageVersion; |
97 | |
98 | /***************************************************************************************************************************** |
99 | ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! ** |
100 | *****************************************************************************************************************************/ |
101 | #ifndef DOXYGEN_SHOULD_SKIP_THIS |
102 | /** Utility method to determine if the given object is a shading node |
103 | * that we recognize. |
104 | */ |
105 | static bool IsShadingObject( const FbxObject* pObject ); |
106 | |
107 | /** Returns a criteria suitable for use with querying connections |
108 | * to shading nodes that we recognize, on FbxObject. |
109 | */ |
110 | static FbxCriteria Criteria(); |
111 | #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/ |
112 | }; |
113 | |
114 | #include <fbxsdk/fbxsdk_nsend.h> |
115 | |
116 | #endif /* _FBXSDK_SCENE_SHADING_IMPLEMENTATION_FILTER_H_ */ |
117 | |