string msg = m_text_edit->toPlainText().toStdString();
Real scale = bounds.h / Real(2);
Debug("Insert \"%s\" at %f, %f, scale %f", msg.c_str(), Float(xx), Float(yy), Float(scale));
+#ifndef QUADTREE_DISABLED
+ m_doc.SetQuadtreeInsertNode(m_view.GetCurrentQuadtreeNode());
+#endif
m_doc.AddText(msg, scale, xx, yy);
+#ifndef QUADTREE_DISABLED
+ m_doc.PropagateQuadChanges(m_view.GetCurrentQuadtreeNode());
+ // We may have split the object across up-to four nodes, so try the neighbouring nodes.
+ m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 0, 1, 0));
+ m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 1, 0, 0));
+ m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 1, 1, 0));
+#endif
m_view.ForceRenderDirty();
m_view.ForceBufferDirty();
m_view.ForceBoundsDirty();
bounds.w /= Real(m_screen.ViewportWidth());
bounds.h /= Real(m_screen.ViewportHeight());
+#ifndef QUADTREE_DISABLED
+ m_doc.SetQuadtreeInsertNode(m_view.GetCurrentQuadtreeNode());
+#endif
m_doc.ParseSVG(m_text_edit->toPlainText().toStdString(), bounds);
+#ifndef QUADTREE_DISABLED
+ m_doc.PropagateQuadChanges(m_view.GetCurrentQuadtreeNode());
+ // We may have split the object across up-to four nodes, so try the neighbouring nodes.
+ m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 0, 1, 0));
+ m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 1, 0, 0));
+ m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 1, 1, 0));
+#endif
m_view.ForceRenderDirty();
m_view.ForceBufferDirty();
m_view.ForceBoundsDirty();
if (filename == "")
return;
+ #ifdef TRANSFORM_OBJECTS_NOT_VIEW
+ Rect bounds(0,0,1,1);
+ #else
Rect bounds(m_view.GetBounds());
+ #endif
bounds.x += bounds.w/Real(2);
bounds.y += bounds.h/Real(2);
bounds.w /= Real(m_screen.ViewportWidth());
bounds.h /= Real(m_screen.ViewportHeight());
+#ifndef QUADTREE_DISABLED
+ m_doc.SetQuadtreeInsertNode(m_view.GetCurrentQuadtreeNode());
+#endif
m_doc.LoadSVG(filename.toStdString(), bounds);
+#ifndef QUADTREE_DISABLED
+ m_doc.PropagateQuadChanges(m_view.GetCurrentQuadtreeNode());
+ // We may have split the object across up-to four nodes, so try the neighbouring nodes.
+ m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 0, 1, 0));
+ m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 1, 0, 0));
+ m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 1, 1, 0));
+#endif
m_view.ForceRenderDirty();
m_view.ForceBufferDirty();
m_view.ForceBoundsDirty();