FCDocument/FCDPlaceHolder.h

Go to the documentation of this file.
00001 /*
00002     Copyright (C) 2005-2007 Feeling Software Inc.
00003     Portions of the code are:
00004     Copyright (C) 2005-2007 Sony Computer Entertainment America
00005     
00006     MIT License: http://www.opensource.org/licenses/mit-license.php
00007 */
00008 
00014 #ifndef _FCD_PLACEHOLDER_H_
00015 #define _FCD_PLACEHOLDER_H_
00016 
00017 #ifndef __FCD_OBJECT_H_
00018 #include "FCDocument/FCDObject.h"
00019 #endif // __FCD_OBJECT_H_
00020 
00021 class FCDEntityReference;
00022 
00033 class FCOLLADA_EXPORT FCDPlaceHolder : public FCDObject, FUTracker
00034 {
00035 private:
00036     DeclareObjectType(FCDPlaceHolder);
00037 
00038     FCDocument* target;
00039     FUTrackedList<FCDEntityReference> references;
00040     fstring fileUrl;
00041 
00042 public:
00046     FCDPlaceHolder(FCDocument* document, FCDocument* target = NULL);
00047 
00049     virtual ~FCDPlaceHolder();
00050 
00054     inline FCDocument* GetTarget() const { return target; }
00055 
00061     FCDocument* GetTarget(bool loadIfMissing = true);
00062 
00067     void LoadTarget(FCDocument* _target = NULL);
00068 
00070     void UnloadTarget();
00071 
00075     inline bool IsTargetLoaded() const { return target != NULL; }
00076 
00079     const fstring& GetFileUrl() const;
00080 
00083     void SetFileUrl(const fstring& url);
00084 
00089     inline void AddExternalReference(FCDEntityReference* reference) { references.push_back(reference); SetNewChildFlag(); }
00090 
00094     inline void RemoveExternalReference(FCDEntityReference* reference) { references.erase(reference); SetNewChildFlag(); }
00095 
00099     inline size_t GetExternalReferenceCount() const { return references.size(); }
00100 
00104     const FCDEntityReference* GetExternalReference(size_t index) const { FUAssert(index < GetExternalReferenceCount(), return NULL); return references.at(index); }
00105 
00106 protected:
00110     void OnObjectReleased(FUTrackable* object);
00111 };
00112 
00113 #endif // _FCD_PLACEHOLDER_H_
00114 

Generated on Thu Feb 14 16:58:34 2008 for FCollada by  doxygen 1.4.6-NO