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 fbxcontainertemplate.h
13#ifndef _FBXSDK_SCENE_CONTAINER_TEMPLATE_H_
14#define _FBXSDK_SCENE_CONTAINER_TEMPLATE_H_
15
16#include <fbxsdk/fbxsdk_def.h>
17
18#include <fbxsdk/core/fbxobject.h>
19
20#include <fbxsdk/fbxsdk_nsbegin.h>
21
22//Container Template tokens
23#define FBXSDK_CONTAINER_TEMPLATE_STR "templates"
24#define FBXSDK_TEMPLATE_STR "template"
25#define FBXSDK_EXTENDS_TEMPLATE_STR "extends"
26
27struct FbxContainerTemplate_internal;
28
29/** Class for Container Template files.
30* \nosubgrouping
31*/
32class FBXSDK_DLL FbxContainerTemplate : public FbxObject
33{
34 FBXSDK_OBJECT_DECLARE(FbxContainerTemplate, FbxObject);
35
36public:
37 /** Parse template file to get extend templates.
38 * \param pTemplateFilePath The template file to be parsed.
39 * \param pExtendTemplateNames Fill extend templates' names to this array.
40 * \remark Call this function to get extend templates' names.
41 */
42 void ParseTemplateFile(const char* pTemplateFilePath, FbxArray<FbxString*>& pExtendTemplateNames);
43
44 /** Add extend template path.
45 * \param pExtendTemplatePath The template file path to be added.
46 */
47 void AddExtendTemplatePath(const char* pExtendTemplatePath);
48
49 /** Get the (pIndex)th extend template path.
50 * \param pIndex Index of the queried item.
51 * \return The (pIndex)th extend template path.
52 */
53 char* GetExtendTemplatePathAt(FbxUInt pIndex) const;
54
55 /** Get the count of extend template path.
56 * \return The count of extend template path.
57 */
58 FbxUInt GetExtendTemplateCount() const;
59
60 /** Clear the extend template path.
61 */
62 void ClearExtendTemplatePath();
63
64 /** This property contains the template name.
65 *
66 * To access this property do: TemplateName.Get().
67 * To set this property do: TemplateName.Set(FbxString).
68 *
69 * Default value is "".
70 */
71 FbxPropertyT<FbxString> ContainerTemplateName;
72
73 /** This property contains the template path.
74 *
75 * To access this property do: TemplatePath.Get().
76 * To set this property do: TemplatePath.Set(FbxString).
77 *
78 * Default value is "".
79 */
80 FbxPropertyT<FbxString> ContainerTemplatePath;
81
82 /** This property contains the template package name.
83 *
84 * To access this property do: TemplatePackageName.Get().
85 * To set this property do: TemplatePackageName.Set(FbxString).
86 *
87 * Default value is "".
88 */
89 FbxPropertyT<FbxString> ContainerTemplatePackageName;
90
91 /** This property contains the template version information of the container
92 *
93 * To access this property do: TemplateVersion.Get().
94 * To set this property do: TemplateVersion.Set(FbxString).
95 *
96 * Default value is "".
97 */
98 FbxPropertyT<FbxString> ContainerTemplateVersion;
99
100/*****************************************************************************************************************************
101** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
102*****************************************************************************************************************************/
103#ifndef DOXYGEN_SHOULD_SKIP_THIS
104protected:
105 virtual void Construct(const FbxObject* pFrom);
106 virtual void ConstructProperties(bool pForceSet);
107 virtual void Destruct(bool pRecursive);
108
109private:
110 FbxContainerTemplate_internal* mData;
111 FbxArray<FbxString*> mExtendTemplatePaths;
112#endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
113};
114
115#include <fbxsdk/fbxsdk_nsend.h>
116
117#endif /* _FBXSDK_SCENE_CONTAINER_TEMPLATE_H_ */
118