digit_t is now unsigned, asm division for 1 digit
[ipdf/code.git] / src / document.h
index 71f6d38..b02c798 100644 (file)
@@ -2,24 +2,43 @@
 #define _DOCUMENT_H
 
 #include "ipdf.h"
+#include "quadtree.h"
 
 namespace IPDF
 {
        class Document
        {
                public:
-                       Document() : m_objects(), m_count(0) {Load();}
+                       Document(const std::string & filename = "") : m_objects(), m_count(0) {Load(filename);}
                        virtual ~Document() {}
 
                        void Load(const std::string & filename = "");
-                       void Add(Real x, Real y, Real w, Real h);
+                       void Save(const std::string & filename);
+                       void DebugDumpObjects();
 
-                       unsigned ObjectCount() {return m_count;}
+                       unsigned ObjectCount() const {return m_count;}
+                       inline const Objects & GetObjects() const {return m_objects;}
+
+                       bool operator==(const Document & equ) const;
+                       bool operator!=(const Document & equ) const {return !(this->operator==(equ));}
+
+                       void Add(ObjectType type, const Rect & bounds, unsigned data_index = 0);
+                       unsigned AddBezierData(const Bezier & bezier);
+
+#ifndef QUADTREE_DISABLED
+                       inline const QuadTree& GetQuadTree() const { return m_quadtree; }
+#endif
 
                private:
                        friend class View;
                        Objects m_objects;
+#ifndef QUADTREE_DISABLED
+                       QuadTree m_quadtree;
+                       void GenBaseQuadtree();
+#endif
                        unsigned m_count;
+                       
+
        };
 }
 

UCC git Repository :: git.ucc.asn.au