![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2009 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: DtCigiSettingsRecord.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *********************************************************************/ 00008 00009 #pragma once 00010 00011 #include <makArchives/makArchives.h> 00012 00013 #include <makArchives/DtCigiEntityInfoRecord.h> 00014 #include <makArchives/DtCigiComponentMapRecord.h> 00015 00016 namespace makArchives 00017 { 00018 enum DtCigiComponentClass 00019 { 00020 DtEntityComponent, 00021 DtViewComponent, 00022 DtSystemComponent 00023 }; 00024 00027 class DT_DLL_MAKARCHIVES DtCigiSettingsRecord 00028 { 00029 public: 00031 DtCigiSettingsRecord(); 00032 00034 ~DtCigiSettingsRecord(); 00035 00037 DtCigiSettingsRecord(const DtCigiSettingsRecord& orig); 00038 00040 DtCigiSettingsRecord& operator=(const DtCigiSettingsRecord& orig); 00041 00042 void setEntityTypeMapRecord(const DtCigiEntityTypeMapRecord& record); 00043 00044 DtCigiEntityTypeMapRecord& entityTypeMapRecord(); 00045 const DtCigiEntityTypeMapRecord& entityTypeMapRecord() const; 00046 00047 void setComponentMapping(DtCigiComponentClass compClass, int compId, const std::string& str); 00048 const std::string& findComponentMapping(DtCigiComponentClass compClass, int compId) const; 00049 void removeComponentMapping(DtCigiComponentClass compClass, int compId); 00050 00051 const std::map<int, std::string>& componentMap(DtCigiComponentClass compClass) const; 00052 00053 void setModelStateMapRecord(const DtCigiComponentMapRecord& record); 00054 DtCigiComponentMapRecord& modelStateMapRecord(); 00055 const DtCigiComponentMapRecord& modelStateMapRecord() const; 00056 00057 const std::map<int, std::string>& databaseMap() const; 00058 00059 void setDatabaseMapping(int databaseNumber, const std::string& filename); 00060 const std::string& findDatabaseFilename(int databaseNumber) const; 00061 void removeDatabaseMapping(int databaseNumber); 00062 00063 void setAnimationMapping(int animationId, const std::string& animationName); 00064 const std::string& findAnimationName(int animationId) const; 00065 void removeAnimationMapping(int animationId); 00066 const std::map<int, std::string>& animationMap() const; 00067 00068 protected: 00069 void removeComponentMapping(std::map<int, std::string>& mapping, 00070 int compId); 00071 00072 void setComponentMapping(std::map<int, std::string>& mapping, 00073 int compId, const std::string& str); 00074 00075 const std::string& findComponentMapping(const std::map<int, std::string>& mapping, 00076 int compId) const; 00077 00078 protected: 00079 00081 friend class boost::serialization::access; 00082 00086 template<class Archive> 00087 void serialize(Archive & ar, const unsigned int version) 00088 { 00089 ar & BOOST_SERIALIZATION_NVP(myEntityTypeMap); 00090 ar & BOOST_SERIALIZATION_NVP(myEntityComponentMap); 00091 ar & BOOST_SERIALIZATION_NVP(myViewComponentMap); 00092 ar & BOOST_SERIALIZATION_NVP(mySystemComponentMap); 00093 ar & BOOST_SERIALIZATION_NVP(myModelStateMap); 00094 ar & BOOST_SERIALIZATION_NVP(myAnimationMap); 00095 ar & BOOST_SERIALIZATION_NVP(myDatabaseMap); 00096 } 00097 00098 protected: 00099 DtCigiEntityTypeMapRecord myEntityTypeMap; 00100 std::map<int, std::string> myEntityComponentMap; 00101 std::map<int, std::string> myViewComponentMap; 00102 std::map<int, std::string> mySystemComponentMap; 00103 DtCigiComponentMapRecord myModelStateMap; 00104 std::map<int, std::string> myAnimationMap; 00105 std::map<int, std::string> myDatabaseMap; 00106 std::string myEmptyString; 00107 std::map<int, std::string> myEmptyMap; 00108 }; 00109 } 00110