paysages3d/src/definition/LayersDiff.cpp

33 lines
694 B
C++
Raw Normal View History

#include "LayersDiff.h"
#include "PackStream.h"
#include "Layers.h"
#include "Logs.h"
LayersDiff::LayersDiff(const Layers *layers, LayersDiffOp op, int layer1)
: DefinitionDiff(layers), op(op), layer1(layer1), saved(NULL) {
}
LayersDiff::~LayersDiff() {
if (saved) {
delete saved;
}
}
void LayersDiff::saveLayer(const DefinitionNode &src) {
if (saved) {
delete saved;
}
saved = new PackStream();
saved->write(src.getName());
src.save(saved);
}
void LayersDiff::restoreSavedLayer(DefinitionNode *dest) const {
if (saved) {
PackStream reader(saved);
dest->setName(reader.readString());
dest->load(&reader);
}
}