00001 /* 00002 Copyright (C) 2005-2006 Feeling Software Inc. 00003 MIT License: http://www.opensource.org/licenses/mit-license.php 00004 */ 00005 /* 00006 Based on the FS Import classes: 00007 Copyright (C) 2005-2006 Feeling Software Inc 00008 Copyright (C) 2005-2006 Autodesk Media Entertainment 00009 MIT License: http://www.opensource.org/licenses/mit-license.php 00010 */ 00011 00017 #ifndef _FCD_XREF_ENTITY_H_ 00018 #define _FCD_XREF_ENTITY_H_ 00019 00020 #include "FCDocument/FCDEntityInstance.h" 00021 #include "FUtils/FUStringConversion.h" 00022 #include "FUtils/FUUri.h" 00023 00031 class FCOLLADA_EXPORT FCDExternalReference : public FCDEntityInstance 00032 { 00033 private: 00034 DeclareObjectType; 00035 00036 FCDEntity::Type entityType; 00037 FUUri uri; 00038 00039 public: 00046 FCDExternalReference(FCDocument* document, const FUUri& uri); 00047 00051 virtual ~FCDExternalReference() {} 00052 00055 virtual Type GetType() const { return EXTERNAL_REFERENCE; } 00056 00059 inline FCDEntity::Type GetEntityType() const { return entityType; } 00060 00063 inline void SetEntityType(FCDEntity::Type type) { entityType = type; } 00064 00068 inline const FUUri& GetUri() const { return uri; } 00069 00073 inline void SetUri(const FUUri& _uri) { uri = _uri; } 00074 00077 inline const fstring& GetFilename() const { return uri.prefix; } 00078 00081 void SetFilename(const fchar* filename); 00082 inline void SetFilename(const fstring& filename) { SetFilename(filename.c_str()); } 00086 inline fstring GetObjectId() const { return TO_FSTRING(uri.suffix); } 00087 00090 inline void SetObjectId(const fchar* daeId) { uri.suffix = TO_STRING(daeId); } 00091 inline void SetObjectId(const fstring& daeId) { uri.suffix = TO_STRING(daeId); } 00096 virtual xmlNode* WriteToXML(xmlNode* parentNode) const; 00097 }; 00098 00099 #endif // _FCD_XREF_ENTITY_H_