X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fdocument.cpp;h=e8556ee367f8b3d5a497b66e7212d016613cc0aa;hp=3c1a4ab20020be09316fa57400b34fdd62406315;hb=901ea3355265e7f413674a62f7c29806ae35a565;hpb=428f1eb86a616d95dbb72ff08a3d09771d5c47e6 diff --git a/src/document.cpp b/src/document.cpp index 3c1a4ab..e8556ee 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -18,11 +18,18 @@ void Document::Save(const string & filename) if (written != 1) Fatal("Failed to write number of objects!"); + Debug("Object types..."); + written = fwrite(m_objects.types.data(), sizeof(ObjectType), m_objects.types.size(), file); + if (written != ObjectCount()) + Fatal("Only wrote %u objects!", written); + Debug("Object bounds..."); written = fwrite(m_objects.bounds.data(), sizeof(Rect), m_objects.bounds.size(), file); if (written != ObjectCount()) Fatal("Only wrote %u objects!", written); + + int err = fclose(file); if (err != 0) Fatal("Failed to close file \"%s\" - %s", filename.c_str(), strerror(err)); @@ -50,7 +57,13 @@ void Document::Load(const string & filename) Fatal("Failed to read number of objects!"); Debug("Number of objects: %u", ObjectCount()); + m_objects.types.resize(ObjectCount()); m_objects.bounds.resize(ObjectCount()); + + Debug("Object types..."); + read = fread(m_objects.types.data(), sizeof(ObjectType), m_objects.types.size(), file); + if (read != ObjectCount()) + Fatal("Only read %u objects!", read); Debug("Object bounds..."); read = fread(m_objects.bounds.data(), sizeof(Rect), m_objects.bounds.size(), file); @@ -60,9 +73,10 @@ void Document::Load(const string & filename) Debug("Successfully loaded %u objects from \"%s\"", ObjectCount(), filename.c_str()); } -void Document::Add(Real x, Real y, Real w, Real h) +void Document::Add(ObjectType type, const Rect & bounds) { - m_objects.bounds.push_back(Rect(x, y, w, h)); + m_objects.types.push_back(type); + m_objects.bounds.push_back(bounds); m_count++; } @@ -71,7 +85,7 @@ void Document::DebugDumpObjects() Debug("Objects for Document %p are:", this); for (unsigned id = 0; id < ObjectCount(); ++id) { - Debug("%u.\t%s", id, m_objects.bounds[id].Str().c_str()); + Debug("%u. \tType: %u\tBounds: %s", id, m_objects.types[id], m_objects.bounds[id].Str().c_str()); } }