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 fbxdocumentinfo.h
13#ifndef _FBXSDK_SCENE_DOCUMENT_INFO_H_
14#define _FBXSDK_SCENE_DOCUMENT_INFO_H_
15
16#include <fbxsdk/fbxsdk_def.h>
17
18#include <fbxsdk/core/fbxobject.h>
19
20#include <fbxsdk/fbxsdk_nsbegin.h>
21
22class FbxThumbnail;
23
24/** This class contains scene thumbnails and user-defined summary data.
25 */
26class FBXSDK_DLL FbxDocumentInfo : public FbxObject
27{
28 FBXSDK_OBJECT_DECLARE(FbxDocumentInfo, FbxObject);
29
30public:
31 /**
32 * \name Public properties
33 */
34 //@{
35 /** This property contains the last saved URL.
36 *
37 * To retrieve the value of this property, use LastSavedUrl.Get().
38 * To set the value of this property, use LastSavedUrl.Set(FbxString).
39 *
40 * The default value is empty.
41 */
42 FbxPropertyT<FbxString> LastSavedUrl;
43
44 /** This property contains the URL.
45 *
46 * To retrieve the value of this property, use Url.Get().
47 * To set the value of this property, use Url.Set(FbxString).
48 *
49 * The default value is empty.
50 */
51 FbxPropertyT<FbxString> Url;
52
53 /** Parent property for all properties related to creation. These properties
54 * should be set once when the file is created, and you should not change them
55 * during subsequent save or reload operations.
56 * The default properties are listed below, but application vendors can add new
57 * properties under this parent property.
58 */
59 FbxProperty Original;
60
61 /** This property contains the name of the original application vendor.
62 *
63 * To retrieve the value of this property, use Original_ApplicationVendor.Get().
64 * To set the value of this property, use Original_ApplicationVendor.Set(FbxString).
65 *
66 * The default value is empty.
67 */
68 FbxPropertyT<FbxString> Original_ApplicationVendor;
69
70 /** This property contains the original application name.
71 *
72 * To retrieve the value of this property, use Original_ApplicationName.Get().
73 * To set the value of this property, use Original_ApplicationName.Set(FbxString).
74 *
75 * The default value is empty.
76 */
77 FbxPropertyT<FbxString> Original_ApplicationName;
78
79 /** This property contains the version of the original application.
80 *
81 * To retrieve the value of this property, use Original_ApplicationVersion.Get().
82 * To set the value of this property, use Original_ApplicationVersion.Set(FbxString).
83 *
84 * The default value is empty.
85 */
86 FbxPropertyT<FbxString> Original_ApplicationVersion;
87
88 /** This property contains the original file name.
89 *
90 * To retrieve the value of this property, use Original_FileName.Get().
91 * To set the value of this property, use Original_FileName.Set(FbxString).
92 *
93 * The default value is empty.
94 */
95 FbxPropertyT<FbxString> Original_FileName;
96
97 /** This property contains the original date and time.
98 *
99 * To retrieve the value of this property, use Original_DateTime_GMT.Get().
100 * To set the value of this property, use Original_DateTime_GMT.Set(FbxString).
101 *
102 * The default value is 0.
103 * \remarks The date/time should use GMT time format.
104 */
105 FbxPropertyT<FbxDateTime> Original_DateTime_GMT;
106
107 /** The parent property for all last saved-related properties.
108 * These properties update every time a file is saved.
109 * The default properties are below, but application vendors can add new
110 * properties under this parent property.
111 * The file creator must set both the original and last saved properties.
112 */
113 FbxProperty LastSaved;
114
115 /** This property contains the last saved application vendor.
116 *
117 * To retrieve the value of this property, use LastSaved_ApplicationVendor.Get().
118 * To set the value of this property, use LastSaved_ApplicationVendor.Set(FbxString).
119 *
120 * The default value is empty.
121 */
122 FbxPropertyT<FbxString> LastSaved_ApplicationVendor;
123
124 /** This property contains the last saved application name.
125 *
126 * To retrieve the value of this property, use LastSaved_ApplicationName.Get().
127 * To set the value of this property, use LastSaved_ApplicationName.Set(FbxString).
128 *
129 * The default value is empty.
130 */
131 FbxPropertyT<FbxString> LastSaved_ApplicationName;
132
133 /** This property contains the last saved application version.
134 *
135 * To retrieve the value of this property, use LastSaved_ApplicationVersion.Get().
136 * To set the value of this property, use LastSaved_ApplicationVersion.Set(FbxString).
137 *
138 * The default value is empty.
139 */
140 FbxPropertyT<FbxString> LastSaved_ApplicationVersion;
141
142 /** This property contains the last saved date and time.
143 *
144 * To retrieve the value of this property, use LastSaved_DateTime_GMT.Get().
145 * To set the value of this property, use LastSaved_DateTime_GMT.Set(FbxString).
146 *
147 * The default value is 0.
148 *
149 * \remarks The date/time should use GMT time format.
150 */
151 FbxPropertyT<FbxDateTime> LastSaved_DateTime_GMT;
152
153 /** This property points at the ".fbm" folder that is created when
154 * reading a FBX file that has embedded data. The embedded data
155 * is not saved in the FBX file.
156 *
157 * The default value is empty.
158 */
159 FbxPropertyT<FbxString> EmbeddedUrl;
160 //@}
161
162 /** \name User-defined summary data.
163 * These are user-completed fields that identify or classify the files.
164 */
165 //@{
166 FbxString mTitle; //! Title.
167 FbxString mSubject; //! Subject.
168 FbxString mAuthor; //! Author
169 FbxString mKeywords; //! Keywords.
170 FbxString mRevision; //! Revision.
171 FbxString mComment; //! Comment.
172 //@}
173
174 /**
175 * \name Scene Thumbnail.
176 */
177 //@{
178 /** Returns the thumbnail for the scene.
179 * \return Pointer to the thumbnail.
180 */
181 FbxThumbnail* GetSceneThumbnail();
182
183 /** Sets the thumbnail for the scene.
184 * \param pSceneThumbnail Pointer to the thumbnail.
185 */
186 void SetSceneThumbnail(FbxThumbnail* pSceneThumbnail);
187 //@}
188
189 /** Clears the content.
190 * Resets all the strings to an empty string and clears
191 * the pointer to the thumbnail.
192 */
193 void Clear();
194
195/*****************************************************************************************************************************
196** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
197*****************************************************************************************************************************/
198#ifndef DOXYGEN_SHOULD_SKIP_THIS
199 virtual FbxObject& Copy(const FbxObject& pObject);
200
201protected:
202 virtual void Destruct(bool pRecursive);
203 virtual void ConstructProperties(bool pForceSet);
204
205 FbxPropertyT<FbxReference> SceneThumbnail;
206#endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
207};
208
209#include <fbxsdk/fbxsdk_nsend.h>
210
211#endif /* _FBXSDK_SCENE_DOCUMENT_INFO_H_ */
212