Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.41 KB | None | 0 0
  1. #include <osg/Geode>
  2. #include <osg/ShapeDrawable>
  3. #include <osgViewer/Viewer>
  4. #include <osgText/Font>
  5. #include <osgText/Text>
  6. #include <osg/Geometry>
  7.  
  8. using namespace osg;
  9. using namespace osgViewer;
  10. using namespace osgText;
  11.  
  12. void main(void)
  13. {
  14. Viewer *viewer=new Viewer();
  15. Group *root=new Group();
  16.  
  17. //Make a center circle
  18. Geode *cgeode=new Geode();
  19. Sphere *csphere=new Sphere(Vec3(0,0,0),0.3);
  20. ShapeDrawable *cdraw=new ShapeDrawable(csphere);
  21. cdraw->setColor (Vec4(1,0,1,1));
  22. cgeode->addDrawable(cdraw);
  23. root->addChild(cgeode);
  24.  
  25. //4 Pilon cylinders
  26. Geode *cygeode=new Geode();
  27. Cylinder *cycylinder=new Cylinder(Vec3(1.0f,1.0f,0.0f), 0.01, 2);
  28. ShapeDrawable *cydraw=new ShapeDrawable(cycylinder);
  29. cydraw->setColor (Vec4(1,0,0,1));
  30. cygeode->addDrawable(cydraw);
  31. cycylinder->setRotation(Quat(0,1,0,0));
  32. root->addChild(cygeode);
  33.  
  34. Geode *cggeode=new Geode();
  35. Cylinder *cgcylinder=new Cylinder(Vec3(-1.0f,-1.0f,0.0f), 0.01, 2);
  36. ShapeDrawable *cgdraw=new ShapeDrawable(cgcylinder);
  37. cgdraw->setColor (Vec4(1,0,0,1));
  38. cggeode->addDrawable(cgdraw);
  39. cgcylinder->setRotation(Quat(0,1,0,0));
  40. root->addChild(cggeode);
  41.  
  42. Geode *cgogeode=new Geode();
  43. Cylinder *cgocylinder=new Cylinder(Vec3(-1.0f,1.0f,0.0f), 0.01, 2);
  44. ShapeDrawable *cgodraw=new ShapeDrawable(cgocylinder);
  45. cgodraw->setColor (Vec4(1,0,0,1));
  46. cgogeode->addDrawable(cgodraw);
  47. cgocylinder->setRotation(Quat(0,1,0,0));
  48. root->addChild(cgogeode);
  49.  
  50. Geode *crgeode=new Geode();
  51. Cylinder *crcylinder=new Cylinder(Vec3(1.0f,-1.0f,0.0f), 0.01, 2);
  52. ShapeDrawable *crdraw=new ShapeDrawable(crcylinder);
  53. crdraw->setColor (Vec4(1,0,0,1));
  54. crgeode->addDrawable(crdraw);
  55. crcylinder->setRotation(Quat(0,1,0,0));
  56. root->addChild(crgeode);
  57.  
  58. //1 Axis FACE
  59. //Top cylinder
  60. Geode *cylgeode=new Geode();
  61. Cylinder *cylcylinder=new Cylinder(Vec3(0.0f,1.0f,1.0f), 0.01, 2);
  62. ShapeDrawable *cyldraw=new ShapeDrawable(cylcylinder);
  63. cyldraw->setColor (Vec4(1,0,0,1));
  64. cylgeode->addDrawable(cyldraw);
  65. cylcylinder->setRotation(Quat(1,1,1,1));
  66. root->addChild(cylgeode);
  67.  
  68. //Bottom cylinder
  69. Geode *cylegeode=new Geode();
  70. Cylinder *cylecylinder=new Cylinder(Vec3(0.0f,-1.0f,1.0f), 0.01, 2);
  71. ShapeDrawable *cyledraw=new ShapeDrawable(cylecylinder);
  72. cyledraw->setColor (Vec4(1,0,0,1));
  73. cylegeode->addDrawable(cyledraw);
  74. cylecylinder->setRotation(Quat(1,1,1,1));
  75. root->addChild(cylegeode);
  76.  
  77. //Left Side cylinder
  78. Geode *cylpgeode=new Geode();
  79. Cylinder *cylpcylinder=new Cylinder(Vec3(1.0f,0.0f,1.0f), 0.01, 2);
  80. ShapeDrawable *cylpdraw=new ShapeDrawable(cylpcylinder);
  81. cylpdraw->setColor (Vec4(1,0,0,1));
  82. cylpgeode->addDrawable(cylpdraw);
  83. cylpcylinder->setRotation(Quat(0,1,1,0));
  84. root->addChild(cylpgeode);
  85.  
  86. //Right Side cylinder
  87. Geode *cylrgeode=new Geode();
  88. Cylinder *cylrcylinder=new Cylinder(Vec3(-1.0f,0.0f,1.0f), 0.01, 2);
  89. ShapeDrawable *cylrdraw=new ShapeDrawable(cylrcylinder);
  90. cylrdraw->setColor (Vec4(1,0,0,1));
  91. cylrgeode->addDrawable(cylrdraw);
  92. cylrcylinder->setRotation(Quat(0,1,1,0));
  93. root->addChild(cylrgeode);
  94.  
  95. // -1 X AXIS FACE
  96. //Top cylinder
  97. Geode *cylsgeode=new Geode();
  98. Cylinder *cylscylinder=new Cylinder(Vec3(0.0f,1.0f,-1.0f), 0.01, 2);
  99. ShapeDrawable *cylsdraw=new ShapeDrawable(cylscylinder);
  100. cylsdraw->setColor (Vec4(1,0,0,1));
  101. cylsgeode->addDrawable(cylsdraw);
  102. cylscylinder->setRotation(Quat(1,1,1,1));
  103. root->addChild(cylsgeode);
  104.  
  105. //Bottom cylinder
  106. Geode *cylfgeode=new Geode();
  107. Cylinder *cylfcylinder=new Cylinder(Vec3(0.0f,-1.0f,-1.0f), 0.01, 2);
  108. ShapeDrawable *cylfdraw=new ShapeDrawable(cylfcylinder);
  109. cylfdraw->setColor (Vec4(1,0,0,1));
  110. cylfgeode->addDrawable(cylfdraw);
  111. cylfcylinder->setRotation(Quat(1,1,1,1));
  112. root->addChild(cylfgeode);
  113.  
  114. //Left Side cylinder
  115. Geode *cylhgeode=new Geode();
  116. Cylinder *cylhcylinder=new Cylinder(Vec3(1.0f,0.0f,-1.0f), 0.01, 2);
  117. ShapeDrawable *cylhdraw=new ShapeDrawable(cylhcylinder);
  118. cylhdraw->setColor (Vec4(1,0,0,1));
  119. cylhgeode->addDrawable(cylhdraw);
  120. cylhcylinder->setRotation(Quat(0,1,1,0));
  121. root->addChild(cylhgeode);
  122.  
  123. //Right Side cylinder
  124. Geode *cylvgeode=new Geode();
  125. Cylinder *cylvcylinder=new Cylinder(Vec3(-1.0f,0.0f,-1.0f), 0.01, 2);
  126. ShapeDrawable *cylvdraw=new ShapeDrawable(cylvcylinder);
  127. cylvdraw->setColor (Vec4(1,0,0,1));
  128. cylvgeode->addDrawable(cylvdraw);
  129. cylvcylinder->setRotation(Quat(0,1,1,0));
  130. root->addChild(cylvgeode);
  131.  
  132. // 1 x AXIS face
  133.  
  134. //Make a 2nd circle
  135. Geode *tgeode=new Geode();
  136. Sphere *tsphere=new Sphere(Vec3(1,0,1),0.02);
  137. ShapeDrawable *tdraw=new ShapeDrawable(tsphere);
  138. tdraw->setColor (Vec4(1,0,1,1));
  139. tgeode->addDrawable(tdraw);
  140. root->addChild(tgeode);
  141.  
  142. //Make a 3rd circle
  143. Geode *rgeode=new Geode();
  144. Sphere *rsphere=new Sphere(Vec3(-1,0,1),0.02);
  145. ShapeDrawable *rdraw=new ShapeDrawable(rsphere);
  146. rdraw->setColor (Vec4(1,0,1,1));
  147. rgeode->addDrawable(rdraw);
  148. root->addChild(rgeode);
  149.  
  150. //Make a 4th circle
  151. Geode *dgeode=new Geode();
  152. Sphere *dsphere=new Sphere(Vec3(1,1,1),0.02);
  153. ShapeDrawable *ddraw=new ShapeDrawable(dsphere);
  154. ddraw->setColor (Vec4(1,0,1,1));
  155. dgeode->addDrawable(ddraw);
  156. root->addChild(dgeode);
  157.  
  158. //Make a 5th circle
  159. Geode *ygeode=new Geode();
  160. Sphere *ysphere=new Sphere(Vec3(-1,1,1),0.02);
  161. ShapeDrawable *ydraw=new ShapeDrawable(ysphere);
  162. ydraw->setColor (Vec4(1,0,1,1));
  163. ygeode->addDrawable(ydraw);
  164. root->addChild(ygeode);
  165.  
  166. //Make a 6th circle
  167. Geode *kgeode=new Geode();
  168. Sphere *ksphere=new Sphere(Vec3(1,-1,1),0.02);
  169. ShapeDrawable *kdraw=new ShapeDrawable(ksphere);
  170. kdraw->setColor (Vec4(1,0,1,1));
  171. kgeode->addDrawable(kdraw);
  172. root->addChild(kgeode);
  173.  
  174. //Make a 7th circle
  175. Geode *egeode=new Geode();
  176. Sphere *esphere=new Sphere(Vec3(-1,-1,1),0.02);
  177. ShapeDrawable *edraw=new ShapeDrawable(esphere);
  178. edraw->setColor (Vec4(1,0,1,1));
  179. egeode->addDrawable(edraw);
  180. root->addChild(egeode);
  181.  
  182. // -1 X axis face
  183.  
  184. //Make a 2nd circle
  185. Geode *jgeode=new Geode();
  186. Sphere *jsphere=new Sphere(Vec3(1,0,-1),0.02);
  187. ShapeDrawable *jdraw=new ShapeDrawable(jsphere);
  188. jdraw->setColor (Vec4(1,0,1,1));
  189. jgeode->addDrawable(jdraw);
  190. root->addChild(jgeode);
  191.  
  192. //Make a 3rd circle
  193. Geode *sgeode=new Geode();
  194. Sphere *ssphere=new Sphere(Vec3(-1,0,-1),0.02);
  195. ShapeDrawable *sdraw=new ShapeDrawable(ssphere);
  196. sdraw->setColor (Vec4(1,0,1,1));
  197. sgeode->addDrawable(sdraw);
  198. root->addChild(sgeode);
  199.  
  200. //Make a 4th circle
  201. Geode *ogeode=new Geode();
  202. Sphere *osphere=new Sphere(Vec3(1,1,-1),0.02);
  203. ShapeDrawable *odraw=new ShapeDrawable(osphere);
  204. odraw->setColor (Vec4(1,0,1,1));
  205. ogeode->addDrawable(odraw);
  206. root->addChild(ogeode);
  207.  
  208. //Make a 5th circle
  209. Geode *hgeode=new Geode();
  210. Sphere *hsphere=new Sphere(Vec3(-1,1,-1),0.02);
  211. ShapeDrawable *hdraw=new ShapeDrawable(hsphere);
  212. hdraw->setColor (Vec4(1,0,1,1));
  213. hgeode->addDrawable(hdraw);
  214. root->addChild(hgeode);
  215.  
  216. //Make a 6th circle
  217. Geode *ugeode=new Geode();
  218. Sphere *usphere=new Sphere(Vec3(1,-1,-1),0.02);
  219. ShapeDrawable *udraw=new ShapeDrawable(usphere);
  220. udraw->setColor (Vec4(1,0,1,1));
  221. ugeode->addDrawable(udraw);
  222. root->addChild(ugeode);
  223.  
  224. //Make a 7th circle
  225. Geode *mgeode=new Geode();
  226. Sphere *msphere=new Sphere(Vec3(-1,-1,-1),0.02);
  227. ShapeDrawable *mdraw=new ShapeDrawable(msphere);
  228. mdraw->setColor (Vec4(1,0,1,-1));
  229. mgeode->addDrawable(mdraw);
  230. root->addChild(mgeode);
  231.  
  232. // Displaying the scene in a window of a given size
  233. viewer->setSceneData(root);
  234. viewer->setUpViewInWindow(100,100,512,512);
  235. viewer->run();
  236. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement