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 */
30class FBXSDK_DLL FbxBindingTable : public FbxBindingTableBase
31{
32 FBXSDK_OBJECT_DECLARE(FbxBindingTable, FbxBindingTableBase);
33
34public:
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
140private:
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