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 fbxprocessor.h
13#ifndef _FBXSDK_UTILS_PROCESSOR_H_
14#define _FBXSDK_UTILS_PROCESSOR_H_
15
16#include <fbxsdk/fbxsdk_def.h>
17
18#include <fbxsdk/core/fbxobject.h>
19
20#include <fbxsdk/fbxsdk_nsbegin.h>
21
22class FbxCollection;
23
24/** The class and its derived classes(e.g. FbxProcessorXRefCopy, FbxProcessorXRefCopyUserLibrary, etc.) are used to process shader, library, asset, etc.
25 * For example, you could update object property and its value via FbxProcessor::ProcessObject(), FbxProcessor::internal_ProcessObject(), etc.
26 */
27class FBXSDK_DLL FbxProcessor : public FbxObject
28{
29 FBXSDK_OBJECT_DECLARE(FbxProcessor, FbxObject);
30
31public:
32 /**
33 * \name Processor management
34 */
35 //@{
36 /** Process the specified collection.
37 * \param pCollection
38 */
39 bool ProcessCollection(FbxCollection *pCollection=0);
40
41 /** Process the specified object.
42 * \param pCollection FbxObject to process
43 */
44 bool ProcessObject (FbxObject *pCollection=0);
45 //@}
46
47/*****************************************************************************************************************************
48** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
49*****************************************************************************************************************************/
50#ifndef DOXYGEN_SHOULD_SKIP_THIS
51protected:
52 virtual bool internal_ProcessCollectionBegin (FbxCollection *pCollection);
53 virtual bool internal_ProcessCollectionEnd (FbxCollection *pCollection);
54 virtual bool internal_ProcessObject (FbxObject* pObject);
55 virtual bool internal_ProcessCollection (FbxCollection* pCollection);
56#endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
57};
58
59#include <fbxsdk/fbxsdk_nsend.h>
60
61#endif /* _FBXSDK_UTILS_PROCESSOR_H_ */
62