Quadtree Rendering for CPU transorm+render
[ipdf/code.git] / src / document.cpp
index 921763a..041519c 100644 (file)
@@ -85,6 +85,17 @@ void Document::Save(const string & filename)
        Debug("Successfully saved %u objects to \"%s\"", ObjectCount(), filename.c_str());
 }
 
+#ifndef QUADTREE_DISABLED
+
+void Document::GenBaseQuadtree()
+{
+       m_quadtree.nodes.push_back(QuadTreeNode{QUADTREE_EMPTY, 1, QUADTREE_EMPTY, QUADTREE_EMPTY, QUADTREE_EMPTY, QTC_UNKNOWN, 0, 1});
+       m_quadtree.nodes.push_back(QuadTreeNode{QUADTREE_EMPTY, QUADTREE_EMPTY, QUADTREE_EMPTY, QUADTREE_EMPTY, QUADTREE_EMPTY, QTC_UNKNOWN, 1, ObjectCount()});
+       m_quadtree.root_id = 0;
+}
+
+#endif
+
 void Document::Load(const string & filename)
 {
        m_objects.bounds.clear();
@@ -132,6 +143,12 @@ void Document::Load(const string & filename)
                }
        }
        Debug("Successfully loaded %u objects from \"%s\"", ObjectCount(), filename.c_str());
+#ifndef QUADTREE_DISABLED
+       if (m_quadtree.root_id == QUADTREE_EMPTY)
+       {
+               GenBaseQuadtree();
+       }
+#endif
 }
 
 void Document::Add(ObjectType type, const Rect & bounds, unsigned data_index)

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