44 clusterRoot =
new SoSeparator();
47 SoSeparator *sep1 =
new SoSeparator();
48 clusterRoot->addChild(sep1);
50 soPlaneIntersectionSwitch =
new SoSwitch();
51 sep1->addChild(soPlaneIntersectionSwitch);
53 soPlaneIntersectionTranslation =
new SoTranslation();
54 soPlaneIntersectionSwitch->addChild(soPlaneIntersectionTranslation);
56 soPlaneIntersectionColorSwitch =
new SoSwitch();
57 soPlaneIntersectionSwitch->addChild(soPlaneIntersectionColorSwitch);
59 soPlaneIntersectionBaseColor =
new SoBaseColor();
60 soPlaneIntersectionColorSwitch->addChild(soPlaneIntersectionBaseColor);
62 soPlaneIntersectionSphere =
new SoSphere();
63 soPlaneIntersectionSwitch->addChild(soPlaneIntersectionSphere);
67 SoSeparator *sep2 =
new SoSeparator();
68 clusterRoot->addChild(sep2);
70 soCenterOfGravitySwitch =
new SoSwitch();
71 sep2->addChild(soCenterOfGravitySwitch);
73 soCenterOfGravityTranslation =
new SoTranslation();
74 soCenterOfGravitySwitch->addChild(soCenterOfGravityTranslation);
76 soCenterOfGravityColorSwitch =
new SoSwitch();
77 soCenterOfGravitySwitch->addChild(soCenterOfGravityColorSwitch);
79 soCenterOfGravityBaseColor =
new SoBaseColor();
80 soCenterOfGravityColorSwitch->addChild(soCenterOfGravityBaseColor);
82 soCenterOfGravitySphere =
new SoSphere();
83 soCenterOfGravitySwitch->addChild(soCenterOfGravitySphere);
87 clusterRoot->addChild(soCenterOfGravityColorSwitch);
89 SoSeparator *sep3 =
new SoSeparator();
90 clusterRoot->addChild(sep3);
92 for (
size_t c=0; c < NumOrientationLines; ++c){
93 soClusterOrientationLineSwitch[c] =
new SoSwitch();
94 sep3->addChild(soClusterOrientationLineSwitch[c]);
96 soVertexProperty[c] =
new SoVertexProperty();
97 soClusterOrientationLineSwitch[c]->addChild(soVertexProperty[c]);
99 soLineSet[c] =
new SoLineSet();
100 soClusterOrientationLineSwitch[c]->addChild(soLineSet[c]);
104 SoSeparator *sep4 =
new SoSeparator();
105 clusterRoot->addChild(sep4);
107 soDrawStyleClusterToPlane =
new SoDrawStyle();
108 sep4->addChild(soDrawStyleClusterToPlane);
109 soDrawStyleClusterToPlane->linePattern.setValue(
static_cast<MLuint16>(0x1111));
111 soClusterToPlaneIntersectionLineSwitch =
new SoSwitch();
112 sep4->addChild(soClusterToPlaneIntersectionLineSwitch);
114 soVertexPropertyClusterToPlane =
new SoVertexProperty();
115 soClusterToPlaneIntersectionLineSwitch->addChild(soVertexPropertyClusterToPlane);
117 soLineSetClusterToPlane =
new SoLineSet();
118 soClusterToPlaneIntersectionLineSwitch->addChild(soLineSetClusterToPlane);