11 #include <boost/tuple/tuple_comparison.hpp>
31 friend class boost::serialization::access;
36 template <
typename Archive>
37 void serialize(Archive & ar,
const unsigned int version)
39 ar & BOOST_SERIALIZATION_NVP(myX);
40 ar & BOOST_SERIALIZATION_NVP(myY);
41 ar & BOOST_SERIALIZATION_NVP(myZ);
57 friend class boost::serialization::access;
62 template <
typename Archive>
63 void serialize(Archive & ar,
const unsigned int version)
65 ar & BOOST_SERIALIZATION_NVP(myR);
66 ar & BOOST_SERIALIZATION_NVP(myG);
67 ar & BOOST_SERIALIZATION_NVP(myB);
68 ar & BOOST_SERIALIZATION_NVP(myA);
81 virtual std::string classType()
const = 0;
83 virtual void write(boost::archive::xml_oarchive& out,
const unsigned int) = 0;
84 virtual void read(boost::archive::xml_iarchive& in,
const unsigned int) = 0;
87 friend class boost::serialization::access;
89 template <
typename Archive>
90 void serialize(Archive & ar,
const unsigned int version)
92 if (Archive::is_loading::value)
94 read(*(boost::archive::xml_iarchive*)&ar,version);
98 write(*(boost::archive::xml_oarchive*)&ar,version);
123 template <
typename Type>
158 virtual void write(boost::archive::xml_oarchive& out,
const unsigned int version)
160 out & BOOST_SERIALIZATION_NVP(
myValue);
163 virtual void read(boost::archive::xml_iarchive& in,
const unsigned int version)
165 in & BOOST_SERIALIZATION_NVP(
myValue);
176 #define REGISTER_VISUAL_ATTRIBUTE(Attribute) static bool Attribute##_Registered = \
177 DtVisualAttributeFactory::addAttributeCreator(Attribute::theClassType(), &Attribute::create);
182 #define DEFINE_VISUAL_ATTRIBUTE(ATTRIBUTE, VALUETYPE, DEFAULTVALUE)\
183 class DT_DLL_MAKARCHIVES ATTRIBUTE : public DtVisualAttribute<VALUETYPE>\
186 ATTRIBUTE() { myValue = DEFAULTVALUE ; }\
187 ATTRIBUTE(const ATTRIBUTE& s) : DtVisualAttribute<VALUETYPE>(s) {}\
188 virtual ~ATTRIBUTE() {}\
189 static std::string theClassType() { return #ATTRIBUTE ; }\
190 virtual std::string classType() const { return theClassType();}\
191 static DtVisualAttributeInterface* create() { return new ATTRIBUTE(); }\
202 friend class boost::serialization::access;
204 template <
typename Archive>
205 void serialize(Archive & ar,
const unsigned int version)
207 ar & BOOST_SERIALIZATION_NVP(myVisualDefinitionName);
209 if (Archive::is_loading::value)
212 std::string classType;
215 ar & BOOST_SERIALIZATION_NVP(size);
217 for (
int i = 0; i < size; i++)
219 ar & BOOST_SERIALIZATION_NVP(name);
220 ar & BOOST_SERIALIZATION_NVP(classType);
227 ar & BOOST_SERIALIZATION_NVP(visualDefinition);
228 myAttributes[name] = iface;
235 int size = myAttributes.size();
236 ar & BOOST_SERIALIZATION_NVP(size);
237 DtVisualAttributeMap::const_iterator iter = myAttributes.begin();
239 while (iter != myAttributes.end())
241 std::string name = iter->first;
243 ar & BOOST_SERIALIZATION_NVP(name);
244 std::string classType = iter->second->classType();
245 ar & BOOST_SERIALIZATION_NVP(classType);
248 ar & BOOST_SERIALIZATION_NVP(visualDefinition);
268 friend class boost::serialization::access;
270 template <
typename Archive>
271 void serialize(Archive & ar,
const unsigned int version)
273 ar & BOOST_SERIALIZATION_NVP(myVisualDefinitionSetName);
274 ar & BOOST_SERIALIZATION_NVP(myVisualDefinitions);
290 friend class boost::serialization::access;
292 template<
class Archive>
293 void serialize(Archive & ar,
const unsigned int version)
295 ar & BOOST_SERIALIZATION_NVP(myVisualDefinitionSets);
307 typedef std::map<std::string, makArchives::oldRecords::DtElementDefinitionNode>
DtNodeChildren;
310 friend class boost::serialization::access;
312 template<
class Archive>
313 void serialize(Archive & ar,
const unsigned int version)
315 ar & BOOST_SERIALIZATION_NVP(myRoot);
316 ar & BOOST_SERIALIZATION_NVP(myChildren);
332 friend class boost::serialization::access;
334 template<
class Archive>
335 void serialize(Archive & ar,
const unsigned int version)
337 ar & BOOST_SERIALIZATION_NVP(myHierarchy);