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 fbxbindingtable.h |
13 | #ifndef _FBXSDK_SCENE_SHADING_BINDING_TABLE_H_ |
14 | #define _FBXSDK_SCENE_SHADING_BINDING_TABLE_H_ |
15 | |
16 | #include <fbxsdk/fbxsdk_def.h> |
17 | |
18 | #include <fbxsdk/scene/shading/fbxbindingtablebase.h> |
19 | |
20 | #include <fbxsdk/fbxsdk_nsbegin.h> |
21 | |
22 | /** A binding table represents a collection of bindings |
23 | * from source types such as FbxObject, or FbxLayerElements |
24 | * to corresponding destinations, usually a third party shader parameters. |
25 | * Binding represents a link between internal object(e.g. FbxObject) and |
26 | * external object(e.g. HLSL shader parameters). |
27 | * \nosubgrouping |
28 | * \see FbxBindingOperator, FbxBindingTableBase |
29 | */ |
30 | class FBXSDK_DLL FbxBindingTable : public FbxBindingTableBase |
31 | { |
32 | FBXSDK_OBJECT_DECLARE(FbxBindingTable, FbxBindingTableBase); |
33 | |
34 | public: |
35 | /** This property stores the name of target. |
36 | * |
37 | * Default value is "". |
38 | */ |
39 | FbxPropertyT<FbxString> TargetName; |
40 | |
41 | /** This property stores the type of target. |
42 | * |
43 | * Default value is "". |
44 | */ |
45 | FbxPropertyT<FbxString> TargetType; |
46 | |
47 | /** Relative URL of file containing the shader implementation description. |
48 | * e.g.: ./shader.mi |
49 | * Default value is "". |
50 | */ |
51 | FbxPropertyT<FbxString> DescRelativeURL; |
52 | |
53 | /** Absolute URL of file containing the shader implementation description. |
54 | * e.g.: file:///usr/tmp/shader.mi |
55 | * Default value is "". |
56 | */ |
57 | FbxPropertyT<FbxString> DescAbsoluteURL; |
58 | |
59 | /** Identify the shader to use in previous description's URL. |
60 | * e.g.: MyOwnShader |
61 | * Default value is "". |
62 | */ |
63 | FbxPropertyT<FbxString> DescTAG; |
64 | |
65 | /** Relative URL of file containing the shader implementation code. |
66 | * e.g.: ./bin/shader.dll |
67 | * Default value is "". |
68 | */ |
69 | FbxPropertyT<FbxString> CodeRelativeURL; |
70 | |
71 | /** Absolute URL of file containing the shader implementation code. |
72 | * e.g.: file:///usr/tmp/bin/shader.dll |
73 | * Default value is "". |
74 | */ |
75 | FbxPropertyT<FbxString> CodeAbsoluteURL; |
76 | |
77 | /** Identify the shader function entry to use in previous code's URL. |
78 | * e.g.: MyOwnShaderFunc |
79 | * Default value is "". |
80 | */ |
81 | FbxPropertyT<FbxString> CodeTAG; |
82 | |
83 | ////////////////////////////////////////////////////////////////////////// |
84 | // Static values |
85 | ////////////////////////////////////////////////////////////////////////// |
86 | |
87 | //! Target name. |
88 | static const char* sTargetName; |
89 | |
90 | //! Target type. |
91 | static const char* sTargetType; |
92 | |
93 | //! Relative URL for shader description. |
94 | static const char* sDescRelativeURL; |
95 | |
96 | //! Absolute URL for shader description. |
97 | static const char* sDescAbsoluteURL; |
98 | |
99 | //! Identify the shader to use in previous description's URL. |
100 | static const char* sDescTAG; |
101 | |
102 | //! Relative URL for shader code. |
103 | static const char* sCodeRelativeURL; |
104 | |
105 | //! Absolute URL for shader code. |
106 | static const char* sCodeAbsoluteURL; |
107 | |
108 | //! Identify the shader function entry to use in previous code's URL. |
109 | static const char* sCodeTAG; |
110 | |
111 | |
112 | //! Default value for target name. |
113 | static const char* sDefaultTargetName; |
114 | |
115 | //! Default value for target type. |
116 | static const char* sDefaultTargetType; |
117 | |
118 | //! Default value for relative URL for shader description. |
119 | static const char* sDefaultDescRelativeURL; |
120 | |
121 | //! Default value for absolute URL for shader description. |
122 | static const char* sDefaultDescAbsoluteURL; |
123 | |
124 | //! Default value for identifying the shader to use in previous description's URL. |
125 | static const char* sDefaultDescTAG; |
126 | |
127 | //! Default value for relative URL for shader code. |
128 | static const char* sDefaultCodeRelativeURL; |
129 | |
130 | //! Default value for absolute URL for shader code. |
131 | static const char* sDefaultCodeAbsoluteURL; |
132 | |
133 | //! Default value for identifying the shader function entry to use in previous code's URL. |
134 | static const char* sDefaultCodeTAG; |
135 | |
136 | /***************************************************************************************************************************** |
137 | ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! ** |
138 | *****************************************************************************************************************************/ |
139 | #ifndef DOXYGEN_SHOULD_SKIP_THIS |
140 | private: |
141 | virtual void ConstructProperties(bool pForceSet); |
142 | #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/ |
143 | }; |
144 | |
145 | #include <fbxsdk/fbxsdk_nsend.h> |
146 | |
147 | #endif /* _FBXSDK_SCENE_SHADING_BINDING_TABLE_H_ */ |
148 | |