Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.64 KB | None | 0 0
  1. /***********************************************************************
  2. * fACT
  3. * framework for Animation of virtual Characters in Three dimensions
  4. ***********************************************************************/
  5.  
  6. /*!
  7. * \file sg_Console.cpp
  8. * \brief Definition of the class CsgConsole.
  9. * $Date: 2010/04/07$
  10. */
  11.  
  12. #include "sg_Console.hpp"
  13.  
  14. #include "OsInfo.hpp"
  15.  
  16. #include "ChData.hpp"
  17.  
  18.  
  19.  
  20. /*! \fn void CsgConsole::ConsoleLoop(CKonsola & konsola)
  21. * \brief Read from console and execute commands
  22. */
  23. void CsgConsole::ConsoleLoop(CKonsola & konsola)
  24. {
  25. //**************************************************
  26. // Inicjalizacja
  27.  
  28. std::string linia;
  29. if (pOs->isDataSet())
  30. pOs->getdata()->setData("error_info", " ");
  31.  
  32. OBJECT_3D_DEF obj(true, 0, "Avatar", 0); //obiekt sceny 3D
  33.  
  34. konsola << "Avatar";
  35. konsola.getBuffer().push_back("Avatar");
  36. konsola.setcword(1);
  37. OnInfo(konsola);
  38.  
  39. //**************************************************
  40. // Inicjalizacja Sceny
  41.  
  42. obj.set_subobj_name("");
  43.  
  44. pOs->Rotate(obj, -30, 0, 0, false);
  45. pOs->Move(obj, -30, 0, 0, 0, 0, false);
  46.  
  47. obj.set_subobj_name("R UpperArm");
  48. pOs->Rotate(obj, -75, 0, 0, false);
  49.  
  50. obj.set_subobj_name("L UpperArm");
  51. pOs->Rotate(obj, -75, 0, 0, false);
  52. //*************************************************************
  53.  
  54. //***************************************************************
  55. //***************************************************************
  56. // Zadanie.
  57. //
  58.  
  59. std::cin.get();
  60. //prawa z przodu*******************************************
  61. for (int i = 0; i < 10; ++i)
  62. {
  63. obj.set_subobj_name("");
  64. pOs->Move(obj, 1, 0, 0, 0, 0, false);
  65.  
  66. obj.set_subobj_name("R UpperArm");
  67. pOs->Rotate(obj, -1.5, 2, 0, false); //-15
  68. obj.set_subobj_name("L UpperArm");
  69. pOs->Rotate(obj, -1.5, 2, 0, false); //15
  70.  
  71.  
  72. obj.set_subobj_name("R Thigh"); //20
  73. pOs->Rotate(obj, 2, 0, 0, false);
  74. obj.set_subobj_name("R Foot"); //-20
  75. pOs->Rotate(obj, -2, 0, 0, false);
  76. obj.set_subobj_name("L Thigh"); //-20
  77. pOs->Rotate(obj, -2, 0, 0, false);
  78. obj.set_subobj_name("L Calf"); //-10
  79. pOs->Rotate(obj, -1, 0, 0, true);
  80. }
  81. //while (true) {
  82.  
  83. for (int i = 0; i < 15; ++i)
  84. {
  85. obj.set_subobj_name("");
  86. pOs->Move(obj, 1, 0, 0, 0, 0, false);
  87.  
  88. obj.set_subobj_name("R UpperArm");
  89. pOs->Rotate(obj, 1, 2, 0, false); //0
  90. obj.set_subobj_name("L UpperArm");
  91. pOs->Rotate(obj, 1, 2, 0, false); //0
  92.  
  93. obj.set_subobj_name("R Thigh"); //5
  94. pOs->Rotate(obj, -1, 0, 0, false);
  95. obj.set_subobj_name("R Foot"); //-5
  96. pOs->Rotate(obj, 1, 0, 0, false);
  97. obj.set_subobj_name("L Thigh"); //10
  98. pOs->Rotate(obj, 2, 0, 0, false);
  99. obj.set_subobj_name("L Calf"); //-70
  100. pOs->Rotate(obj, -4, 0, 0, true);
  101. }
  102.  
  103. for (int i = 0; i < 15; ++i)
  104. {
  105. obj.set_subobj_name("");
  106. pOs->Move(obj, 1, 0, 0, 0, 0, false);
  107.  
  108. obj.set_subobj_name("R UpperArm");
  109. pOs->Rotate(obj, 1, 2, 0, false); //15
  110. obj.set_subobj_name("L UpperArm");
  111. pOs->Rotate(obj, 1, 2, 0, false); //-15
  112.  
  113. obj.set_subobj_name("R Thigh"); //-10
  114. pOs->Rotate(obj, -1, 0, 0, false);
  115. obj.set_subobj_name("R Foot"); //10
  116. pOs->Rotate(obj, 1, 0, 0, false);
  117. obj.set_subobj_name("L Thigh"); //40
  118. pOs->Rotate(obj, 2, 0, 0, false);
  119. obj.set_subobj_name("L Calf"); //-40
  120. pOs->Rotate(obj, 2, 0, 0, true);
  121. }
  122.  
  123. for (int i = 0; i < 15; ++i)
  124. {
  125. obj.set_subobj_name("");
  126. pOs->Move(obj, 1, 0, 0, 0, 0, false);
  127.  
  128. obj.set_subobj_name("R UpperArm");
  129. pOs->Rotate(obj, 1, 2, 0, false); //30
  130. obj.set_subobj_name("L UpperArm");
  131. pOs->Rotate(obj, 1, 2, 0, false); //-30
  132.  
  133. obj.set_subobj_name("R Thigh"); //-25
  134. pOs->Rotate(obj, -1, 0, 0, false);
  135. obj.set_subobj_name("R Foot"); //10
  136. pOs->Rotate(obj, 0, 0, 0, false);
  137. obj.set_subobj_name("L Thigh"); //40
  138. pOs->Rotate(obj, 0, 0, 0, false);
  139. obj.set_subobj_name("L Calf"); //-10
  140. pOs->Rotate(obj, 2, 0, 0, true);
  141. }
  142.  
  143. for (int i = 0; i < 10; ++i)
  144. {
  145. obj.set_subobj_name("");
  146. pOs->Move(obj, 1, 0, 0, 0, 0, false);
  147.  
  148. obj.set_subobj_name("R UpperArm");
  149. pOs->Rotate(obj, -1.5, 2, 0, false); //15
  150. obj.set_subobj_name("L UpperArm");
  151. pOs->Rotate(obj, -1.5, 2, 0, false); //-15
  152.  
  153. obj.set_subobj_name("R Thigh"); //-20
  154. pOs->Rotate(obj, 0.5, 0, 0, false);
  155. obj.set_subobj_name("R Calf");
  156. pOs->Rotate(obj, -1, 0, 0, false); //-10
  157. obj.set_subobj_name("L Thigh"); //20
  158. pOs->Rotate(obj, -2, 0, 0, false);
  159. obj.set_subobj_name("L Calf"); //0
  160. pOs->Rotate(obj, 1, 0, 0, false);
  161. obj.set_subobj_name("L Foot"); //-20
  162. pOs->Rotate(obj, -2, 0, 0, false);
  163. obj.set_subobj_name("R Foot"); //0
  164. pOs->Rotate(obj, -1, 0, 0, true);
  165. }
  166.  
  167. //lewa z przodu************************************************
  168. for (int i = 0; i < 15; ++i)
  169. {
  170. obj.set_subobj_name("");
  171. pOs->Move(obj, 1, 0, 0, 0, 0, false);
  172.  
  173. obj.set_subobj_name("L UpperArm");
  174. pOs->Rotate(obj, 1, 2, 0, false); //0
  175. obj.set_subobj_name("R UpperArm");
  176. pOs->Rotate(obj, 1, 2, 0, false); //0
  177.  
  178. obj.set_subobj_name("L Thigh"); //5
  179. pOs->Rotate(obj, -1, 0, 0, false);
  180. obj.set_subobj_name("L Foot");
  181. pOs->Rotate(obj, 1, 0, 0, false);
  182. obj.set_subobj_name("R Thigh"); //10
  183. pOs->Rotate(obj, 2, 0, 0, false);
  184. obj.set_subobj_name("R Calf"); //-70
  185. pOs->Rotate(obj, -4, 0, 0, true);
  186. }
  187.  
  188. for (int i = 0; i < 15; ++i)
  189. {
  190. obj.set_subobj_name("");
  191. pOs->Move(obj, 1, 0, 0, 0, 0, false);
  192.  
  193. obj.set_subobj_name("L UpperArm");
  194. pOs->Rotate(obj, 1, 2, 0, false); //15
  195. obj.set_subobj_name("R UpperArm");
  196. pOs->Rotate(obj, 1, 2, 0, false); //-15
  197.  
  198. obj.set_subobj_name("L Thigh"); //-10
  199. pOs->Rotate(obj, -1, 0, 0, false);
  200. obj.set_subobj_name("L Foot");
  201. pOs->Rotate(obj, 1, 0, 0, false);
  202. obj.set_subobj_name("R Thigh"); //40
  203. pOs->Rotate(obj, 2, 0, 0, false);
  204. obj.set_subobj_name("R Calf"); //-40
  205. pOs->Rotate(obj, 2, 0, 0, true);
  206. }
  207.  
  208. for (int i = 0; i < 15; ++i)
  209. {
  210. obj.set_subobj_name("");
  211. pOs->Move(obj, 1, 0, 0, 0, 0, false);
  212.  
  213. obj.set_subobj_name("L UpperArm");
  214. pOs->Rotate(obj, 1, 2, 0, false); //30
  215. obj.set_subobj_name("R UpperArm");
  216. pOs->Rotate(obj, 1, 2, 0, false); //-30
  217.  
  218. obj.set_subobj_name("L Thigh"); //-25
  219. pOs->Rotate(obj, -1, 0, 0, false);
  220. obj.set_subobj_name("L Foot");
  221. pOs->Rotate(obj, 0, 0, 0, false);
  222. obj.set_subobj_name("R Thigh"); //40
  223. pOs->Rotate(obj, 0, 0, 0, false);
  224. obj.set_subobj_name("R Calf"); //-10
  225. pOs->Rotate(obj, 2, 0, 0, true);
  226. }
  227.  
  228. for (int i = 0; i < 10; ++i)
  229. {
  230. obj.set_subobj_name("");
  231. pOs->Move(obj, 1, 0, 0, 0, 0, false);
  232.  
  233. obj.set_subobj_name("L UpperArm");
  234. pOs->Rotate(obj, -1.5, 2, 0, false); //15
  235. obj.set_subobj_name("R UpperArm");
  236. pOs->Rotate(obj, -1.5, 2, 0, false); //-15
  237.  
  238. obj.set_subobj_name("L Thigh"); //-20
  239. pOs->Rotate(obj, 0.5, 0, 0, false);
  240. obj.set_subobj_name("L Calf");
  241. pOs->Rotate(obj, -1, 0, 0, false); //-10
  242. obj.set_subobj_name("R Thigh"); //20
  243. pOs->Rotate(obj, -2, 0, 0, false);
  244. obj.set_subobj_name("R Calf"); //0
  245. pOs->Rotate(obj, 1, 0, 0, false);
  246. obj.set_subobj_name("R Foot"); //-20
  247. pOs->Rotate(obj, -2, 0, 0, false);
  248. obj.set_subobj_name("L Foot"); //0
  249. pOs->Rotate(obj, -1, 0, 0, true);
  250. }
  251. //}
  252.  
  253. std::cin.get();
  254. }
  255.  
  256.  
  257. void CsgConsole::OnInitialize()
  258. {}
  259.  
  260. void CsgConsole::Reload(CKonsola & konsola)
  261. {}
  262.  
  263. /*!
  264. * \brief Executed after run() - starts new thread
  265. * /exception
  266. */
  267. void CsgConsole::main()
  268. {
  269. try
  270. {
  271. mainOnManually();
  272. pOs->setactiveObj3D(false);
  273. delete pOs;
  274. //pOs->UnregisterCharacter();
  275. }
  276. catch(fACT_exception& inException)
  277. {
  278. //pOs->UnregisterCharacter();
  279. delete pOs;
  280. std::cerr << "exception catched:" << std::endl;
  281. std::cerr << inException.what() << std::endl << std::flush;
  282. }
  283. catch(...)
  284. {
  285. delete pOs;
  286. //pOs->UnregisterCharacter();
  287. std::cerr << "Unknown exception catched!" << std::endl << std::flush;
  288. }
  289.  
  290. }
  291.  
  292.  
  293. /*!
  294. * \brief main function of CsgConsole. Initialize scene. Runs pOs->OnBeginStrategy(). Read from console and execute user actions
  295. * /exception
  296. */
  297. void CsgConsole::mainOnManually()
  298. {
  299.  
  300. try{
  301. pOs->OnBeginStrategy();
  302. }
  303. catch(...)
  304. {
  305. // pOs->done();
  306. return;
  307. }
  308.  
  309. CKonsola konsola;
  310. ConsoleLoop(konsola);
  311.  
  312. try{
  313. pOs->OnEndStrategy();
  314. }
  315. catch(...){}
  316. }
  317.  
  318.  
  319.  
  320. /*! \fn void CsgConsole::OnInfo(CKonsola &konsola)
  321. * \brief Print Info about
  322. * \param konsola oistream with op parameters
  323. * \return info on konsola about operation execution
  324. */
  325. void CsgConsole::OnInfo(CKonsola &konsola)
  326. {
  327. int i= konsola.getcword();
  328. if(i<1)
  329. {
  330. //konsola.unlock();
  331. PrintP(konsola); konsola << "Too few parameters. Print: Help" << el << end;
  332. konsola.flush();
  333. return;
  334. }
  335. std::string group;
  336.  
  337. konsola >> group;
  338.  
  339. OBJECT_3D_DEF obj;
  340. if(group==" ")
  341. {
  342. //konsola.unlock();
  343. PrintP(konsola); konsola << "Wrong parameters. Print: Help" << el << end;
  344. konsola.flush();
  345. return;
  346. }
  347. else if(group=="Avatar")
  348. obj.isCharacter=true;
  349. else
  350. {
  351. obj.group=pOs->getossInfo()->getGroupByName(group.c_str());
  352. if(obj.group==NULL)
  353. obj.obj_name=group;
  354. }
  355.  
  356. if(konsola.eof())
  357. {
  358. //konsola.unlock();
  359. _V_INFO_subobj vb;
  360. try{
  361. pOs->getSubObjsInfoVector(obj, vb);
  362. }
  363. catch(...)
  364. {
  365. PrintP(konsola); konsola << "Wrong parameters. Print: Help" << el << end;
  366. konsola.flush();
  367. return;
  368. }
  369. int vectorsize=vb.size();
  370. for(i=0;i<vectorsize;++i)
  371. {
  372. konsola << vb[i]->id << " - " << vb[i]->name.c_str() << " idParent- " << vb[i]->idParent << el;
  373. delete vb[i];
  374. }
  375. konsola << end;
  376. vb.clear();
  377. }
  378.  
  379. konsola.flush();
  380. }
  381.  
  382.  
  383. //#endif // #ifndef _NO_EVOLUTION_RUN_
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement