利用Graphziv帮助理解复杂的类层次关系

  最近在学习osg三维视景仿真平台,学习的过程中涉及到许多的类与类之间的继承和包含关系。在复杂点的例子中,许多的类和节点组合在一起,很容易让人迷失方向。在编译源代码的时候,无意间发现了Graphviz这个绘图工具,很适合画图,简单易用。

  结合osg海军教程中第六节中的例子,应用Graphviz绘图工具,绘制了这个例子中的类层次关系,如下图所示:

  结果还是挺清晰美观的。结合这个图,我们能更生动直观的了解例子中的类关系,帮助我们理清思路。该源代码如下:

 1 digraph tank{
 2 root->terrianNode;
 3 root->tankXform;
 4 tankXform->tankNode;
 5 root->HUDProjectionMatrix;
 6 HUDProjectionMatrix->HUDModelViewMatrix;
 7 HUDModelViewMatrix->HUDGeode;
 8 HUDGeode->HUDBackGroundGeometry;
 9 HUDBackGroundGeometry->HUDBackgroundVertices;
10 HUDBackGroundGeometry->HUDBackgroundIndices;
11 HUDBackGroundGeometry->HUDNormals;
12 HUDBackGroundGeometry->HUDTexture;
13 HUDBackGroundGeometry->texcoords;
14 HUDBackGroundGeometry->HUDColors;
15 HUDStateSet->HUDGeode;
16 HUDStateSet->HUDTexture;
17 HUDStateSet->GL_BLEND;
18 HUDStateSet->GL_DEPTH_TEST;
19 HUDGeode->textOne;
20 tankXform->tankLabelGeode;
21 tankLabelGeode->tankLabel;
22 }

 

posted @ 2019-03-13 20:28  技术狂人djc  阅读(235)  评论(0编辑  收藏  举报