summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2013-04-04 15:48:15 -0600
committerXiaohong Bao <bao@lindenlab.com>2013-04-04 15:48:15 -0600
commitb4967dfa4f3817c890644cb9a545264b65fd747a (patch)
tree42ccdf7864d3176eae4503735ab9f5de7e5f33a1 /indra/newview
parent2bc378c7f4f4356d444f175cc47708bb452c0d2c (diff)
add debug code for LLViewerOctree
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llvieweroctree.cpp44
-rw-r--r--indra/newview/llvieweroctree.h11
2 files changed, 55 insertions, 0 deletions
diff --git a/indra/newview/llvieweroctree.cpp b/indra/newview/llvieweroctree.cpp
index 3c7c710825..158fc4b0a9 100644
--- a/indra/newview/llvieweroctree.cpp
+++ b/indra/newview/llvieweroctree.cpp
@@ -32,6 +32,7 @@
//static variables definitions
//-----------------------------------------------------------------------------------
U32 LLViewerOctreeEntryData::sCurVisible = 0;
+BOOL LLViewerOctreeDebug::sInDebug = FALSE;
//-----------------------------------------------------------------------------------
//some global functions definitions
@@ -798,3 +799,46 @@ void LLViewerOctreeCull::visit(const OctreeNode* branch)
}
}
+//--------------------------------------------------------------
+//class LLViewerOctreeDebug
+//virtual
+void LLViewerOctreeDebug::visit(const OctreeNode* branch)
+{
+#if 0
+ llinfos << "Node: " << (U32)branch << " # Elements: " << branch->getElementCount() << " # Children: " << branch->getChildCount() << llendl;
+ for (U32 i = 0; i < branch->getChildCount(); i++)
+ {
+ llinfos << "Child " << i << " : " << (U32)branch->getChild(i) << llendl;
+ }
+#endif
+ LLviewerOctreeGroup* group = (LLviewerOctreeGroup*) branch->getListener(0);
+ processGroup(group);
+}
+
+//virtual
+void LLViewerOctreeDebug::processGroup(LLviewerOctreeGroup* group)
+{
+#if 0
+ const LLVector4a* vec4 = group->getBounds();
+ LLVector3 vec[2];
+ vec[0].set(vec4[0].getF32ptr());
+ vec[1].set(vec4[1].getF32ptr());
+ llinfos << "Bounds: " << vec[0] << " : " << vec[1] << llendl;
+
+ vec4 = group->getExtents();
+ vec[0].set(vec4[0].getF32ptr());
+ vec[1].set(vec4[1].getF32ptr());
+ llinfos << "Extents: " << vec[0] << " : " << vec[1] << llendl;
+
+ vec4 = group->getObjectBounds();
+ vec[0].set(vec4[0].getF32ptr());
+ vec[1].set(vec4[1].getF32ptr());
+ llinfos << "ObjectBounds: " << vec[0] << " : " << vec[1] << llendl;
+
+ vec4 = group->getObjectExtents();
+ vec[0].set(vec4[0].getF32ptr());
+ vec[1].set(vec4[1].getF32ptr());
+ llinfos << "ObjectExtents: " << vec[0] << " : " << vec[1] << llendl;
+#endif
+}
+//--------------------------------------------------------------
diff --git a/indra/newview/llvieweroctree.h b/indra/newview/llvieweroctree.h
index a35c551949..21cc934d77 100644
--- a/indra/newview/llvieweroctree.h
+++ b/indra/newview/llvieweroctree.h
@@ -324,4 +324,15 @@ protected:
S32 mRes;
};
+//scan the octree, output the info of each node for debug use.
+class LLViewerOctreeDebug : public OctreeTraveler
+{
+public:
+ virtual void processGroup(LLviewerOctreeGroup* group);
+ virtual void visit(const OctreeNode* branch);
+
+public:
+ static BOOL sInDebug;
+};
+
#endif