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 fbxbindingtableentry.h
13#ifndef _FBXSDK_SCENE_SHADING_BINDING_TABLE_ENTRY_H_
14#define _FBXSDK_SCENE_SHADING_BINDING_TABLE_ENTRY_H_
15
16#include <fbxsdk/fbxsdk_def.h>
17
18#include <fbxsdk/core/base/fbxstring.h>
19
20#include <fbxsdk/fbxsdk_nsbegin.h>
21
22/** A binding table entry stores a binding between a source and a
23 * destination. Users should not instantiate this class directly,
24 * but always call FbxBindingTableBase::AddNewEntry() to create
25 * a new entry in the binding table.
26 * \nosubgrouping
27 */
28class FBXSDK_DLL FbxBindingTableEntry
29{
30public:
31 /**
32 *\name Constructor and Destructor
33 */
34 //@{
35 //!Constructor.
36 FbxBindingTableEntry();
37
38 /**Copy constructor.
39 * \param pEntry FbxBindingTableEntry to be copied.
40 * \remark the UserDataPtr is a shared pointer.
41 */
42 FbxBindingTableEntry(const FbxBindingTableEntry& pEntry);
43
44 //!Destructor.
45 ~FbxBindingTableEntry();
46 //@}
47
48 /**
49 * \name Access
50 */
51 //@{
52 /** Set the source.
53 * \param pSource The source to set.
54 */
55 void SetSource( const char* pSource );
56
57 //!Retrieve the source.
58 const char* GetSource() const;
59
60 /** Set the destination.
61 * \param pDestination The destination to set.
62 */
63 void SetDestination( const char* pDestination );
64
65 //!Retrieve the destination.
66 const char* GetDestination() const;
67
68 /** Set the source type or destination type.
69 * \param pType The source type or destination type to set.
70 * \param pAsSource Flag indicates source type or destination type to set.
71 */
72 void SetEntryType( const char* pType, bool pAsSource );
73
74 /** Get the source type or destination type.
75 * \param pAsSource Flag indicates source type or destination type to get.
76 * \return Source type or destination type.
77 */
78 const char* GetEntryType( bool pAsSource ) const;
79
80 /** Retrieve user data pointer.
81 * \return User data pointer.
82 */
83 void* GetUserDataPtr();
84
85 /** Retrieve user data pointer.
86 * \return User data pointer.
87 */
88 const void* GetUserDataPtr() const;
89
90 /** Set user data pointer.
91 * \param pData user data pointer.
92 */
93 void SetUserDataPtr(void* pData );
94 //@}
95
96 /** Assignment operator.
97 * \param pEntry FbxBindingTableEntry assigned to this one.
98 * \remark the UserDataPtr is a shared pointer.
99 */
100 FbxBindingTableEntry& operator=(const FbxBindingTableEntry& pEntry);
101
102/*****************************************************************************************************************************
103** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
104*****************************************************************************************************************************/
105#ifndef DOXYGEN_SHOULD_SKIP_THIS
106protected:
107 FbxString mSource;
108 FbxString mDestination;
109 FbxString mSourceType;
110 FbxString mDestinationType;
111 void* mData;
112#endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
113};
114
115#include <fbxsdk/fbxsdk_nsend.h>
116
117#endif /* _FBXSDK_SCENE_SHADING_BINDING_TABLE_ENTRY_H_ */
118