12 #include <boost/tuple/tuple_comparison.hpp>
32 friend class boost::serialization::access;
37 template <
typename Archive>
38 void serialize(Archive & ar,
const unsigned int version)
40 ar & BOOST_SERIALIZATION_NVP(myX);
41 ar & BOOST_SERIALIZATION_NVP(myY);
42 ar & BOOST_SERIALIZATION_NVP(myZ);
58 friend class boost::serialization::access;
63 template <
typename Archive>
64 void serialize(Archive & ar,
const unsigned int version)
66 ar & BOOST_SERIALIZATION_NVP(myR);
67 ar & BOOST_SERIALIZATION_NVP(myG);
68 ar & BOOST_SERIALIZATION_NVP(myB);
69 ar & BOOST_SERIALIZATION_NVP(myA);
82 virtual std::string classType()
const = 0;
84 virtual void write(boost::archive::xml_oarchive& out,
const unsigned int) = 0;
85 virtual void read(boost::archive::xml_iarchive& in,
const unsigned int) = 0;
88 friend class boost::serialization::access;
90 template <
typename Archive>
91 void serialize(Archive & ar,
const unsigned int version)
93 if (Archive::is_loading::value)
95 read(*(boost::archive::xml_iarchive*)&ar,version);
99 write(*(boost::archive::xml_oarchive*)&ar,version);
124 template <
typename Type>
159 virtual void write(boost::archive::xml_oarchive& out,
const unsigned int version)
161 out & BOOST_SERIALIZATION_NVP(
myValue);
164 virtual void read(boost::archive::xml_iarchive& in,
const unsigned int version)
166 in & BOOST_SERIALIZATION_NVP(
myValue);
177 #define REGISTER_VISUAL_ATTRIBUTE(Attribute) static bool Attribute##_Registered = \
178 DtVisualAttributeFactory::addAttributeCreator(Attribute::theClassType(), &Attribute::create);
183 #define DEFINE_VISUAL_ATTRIBUTE(ATTRIBUTE, VALUETYPE, DEFAULTVALUE)\
184 class DT_DLL_MAKARCHIVES ATTRIBUTE : public DtVisualAttribute<VALUETYPE>\
187 ATTRIBUTE() { myValue = DEFAULTVALUE ; }\
188 ATTRIBUTE(const ATTRIBUTE& s) : DtVisualAttribute<VALUETYPE>(s) {}\
189 virtual ~ATTRIBUTE() {}\
190 static std::string theClassType() { return #ATTRIBUTE ; }\
191 virtual std::string classType() const { return theClassType();}\
192 static DtVisualAttributeInterface* create() { return new ATTRIBUTE(); }\
203 friend class boost::serialization::access;
205 template <
typename Archive>
206 void serialize(Archive & ar,
const unsigned int version)
208 ar & BOOST_SERIALIZATION_NVP(myVisualDefinitionName);
210 if (Archive::is_loading::value)
213 std::string classType;
216 ar & BOOST_SERIALIZATION_NVP(size);
218 for (
int i = 0; i < size; i++)
220 ar & BOOST_SERIALIZATION_NVP(name);
221 ar & BOOST_SERIALIZATION_NVP(classType);
228 ar & BOOST_SERIALIZATION_NVP(visualDefinition);
229 myAttributes[name] = iface;
236 int size = myAttributes.size();
237 ar & BOOST_SERIALIZATION_NVP(size);
238 DtVisualAttributeMap::const_iterator iter = myAttributes.begin();
240 while (iter != myAttributes.end())
242 std::string name = iter->first;
244 ar & BOOST_SERIALIZATION_NVP(name);
245 std::string classType = iter->second->classType();
246 ar & BOOST_SERIALIZATION_NVP(classType);
249 ar & BOOST_SERIALIZATION_NVP(visualDefinition);
269 friend class boost::serialization::access;
271 template <
typename Archive>
272 void serialize(Archive & ar,
const unsigned int version)
274 ar & BOOST_SERIALIZATION_NVP(myVisualDefinitionSetName);
275 ar & BOOST_SERIALIZATION_NVP(myVisualDefinitions);
291 friend class boost::serialization::access;
293 template<
class Archive>
294 void serialize(Archive & ar,
const unsigned int version)
296 ar & BOOST_SERIALIZATION_NVP(myVisualDefinitionSets);
308 typedef std::map<std::string, makArchives::oldRecords::DtElementDefinitionNode>
DtNodeChildren;
311 friend class boost::serialization::access;
313 template<
class Archive>
314 void serialize(Archive & ar,
const unsigned int version)
316 ar & BOOST_SERIALIZATION_NVP(myRoot);
317 ar & BOOST_SERIALIZATION_NVP(myChildren);
333 friend class boost::serialization::access;
335 template<
class Archive>
336 void serialize(Archive & ar,
const unsigned int version)
338 ar & BOOST_SERIALIZATION_NVP(myHierarchy);