graph_builder.hpp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466
  1. /**
  2. * @file tests/boost_graph/graph_builder.hpp
  3. * @author The PARADEVS Development Team
  4. * See the AUTHORS or Authors.txt file
  5. */
  6. /*
  7. * PARADEVS - the multimodeling and simulation environment
  8. * This file is a part of the PARADEVS environment
  9. *
  10. * Copyright (C) 2013 ULCO http://www.univ-litoral.fr
  11. *
  12. * This program is free software: you can redistribute it and/or modify
  13. * it under the terms of the GNU General Public License as published by
  14. * the Free Software Foundation, either version 3 of the License, or
  15. * (at your option) any later version.
  16. *
  17. * This program is distributed in the hope that it will be useful,
  18. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  19. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  20. * GNU General Public License for more details.
  21. *
  22. * You should have received a copy of the GNU General Public License
  23. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  24. */
  25. #ifndef __TESTS_BOOST_GRAPH_GRAPH_BUILDER_HPP
  26. #define __TESTS_BOOST_GRAPH_GRAPH_BUILDER_HPP 1
  27. #include <tests/boost_graph/graph_defs.hpp>
  28. namespace paradevs { namespace tests { namespace boost_graph {
  29. class FlatGraphBuilder
  30. {
  31. public:
  32. FlatGraphBuilder()
  33. { }
  34. void build(OrientedGraphs& graphs, InputEdgeList& /* input_edges */,
  35. OutputEdgeList& /* output_edges */,
  36. Connections& /* parent_connections */)
  37. {
  38. OrientedGraph graph;
  39. OrientedGraph::vertex_descriptor v0 = boost::add_vertex(graph);
  40. OrientedGraph::vertex_descriptor v1 = boost::add_vertex(graph);
  41. OrientedGraph::vertex_descriptor v2 = boost::add_vertex(graph);
  42. OrientedGraph::vertex_descriptor v3 = boost::add_vertex(graph);
  43. OrientedGraph::vertex_descriptor v4 = boost::add_vertex(graph);
  44. OrientedGraph::vertex_descriptor v5 = boost::add_vertex(graph);
  45. OrientedGraph::vertex_descriptor v6 = boost::add_vertex(graph);
  46. OrientedGraph::vertex_descriptor v7 = boost::add_vertex(graph);
  47. OrientedGraph::vertex_descriptor v8 = boost::add_vertex(graph);
  48. OrientedGraph::vertex_descriptor v9 = boost::add_vertex(graph);
  49. OrientedGraph::vertex_descriptor v10 = boost::add_vertex(graph);
  50. OrientedGraph::vertex_descriptor v11 = boost::add_vertex(graph);
  51. OrientedGraph::vertex_descriptor v12 = boost::add_vertex(graph);
  52. OrientedGraph::vertex_descriptor v13 = boost::add_vertex(graph);
  53. OrientedGraph::vertex_descriptor v14 = boost::add_vertex(graph);
  54. OrientedGraph::vertex_descriptor v15 = boost::add_vertex(graph);
  55. OrientedGraph::vertex_descriptor v16 = boost::add_vertex(graph);
  56. OrientedGraph::vertex_descriptor v17 = boost::add_vertex(graph);
  57. OrientedGraph::vertex_descriptor v18 = boost::add_vertex(graph);
  58. OrientedGraph::vertex_descriptor v19 = boost::add_vertex(graph);
  59. OrientedGraph::vertex_descriptor v20 = boost::add_vertex(graph);
  60. OrientedGraph::vertex_descriptor v21 = boost::add_vertex(graph);
  61. OrientedGraph::vertex_descriptor v22 = boost::add_vertex(graph);
  62. OrientedGraph::vertex_descriptor v23 = boost::add_vertex(graph);
  63. OrientedGraph::vertex_descriptor v24 = boost::add_vertex(graph);
  64. OrientedGraph::vertex_descriptor v25 = boost::add_vertex(graph);
  65. OrientedGraph::vertex_descriptor v26 = boost::add_vertex(graph);
  66. OrientedGraph::vertex_descriptor v27 = boost::add_vertex(graph);
  67. OrientedGraph::vertex_descriptor v28 = boost::add_vertex(graph);
  68. OrientedGraph::vertex_descriptor v29 = boost::add_vertex(graph);
  69. OrientedGraph::vertex_descriptor v30 = boost::add_vertex(graph);
  70. OrientedGraph::vertex_descriptor v31 = boost::add_vertex(graph);
  71. OrientedGraph::vertex_descriptor v32 = boost::add_vertex(graph);
  72. OrientedGraph::vertex_descriptor v33 = boost::add_vertex(graph);
  73. OrientedGraph::vertex_descriptor v34 = boost::add_vertex(graph);
  74. OrientedGraph::vertex_descriptor v35 = boost::add_vertex(graph);
  75. OrientedGraph::vertex_descriptor v36 = boost::add_vertex(graph);
  76. OrientedGraph::vertex_descriptor v37 = boost::add_vertex(graph);
  77. boost::add_edge(v1, v0, 1., graph);
  78. boost::add_edge(v2, v0, 1., graph);
  79. boost::add_edge(v3, v0, 1., graph);
  80. boost::add_edge(v1, v2, 1., graph);
  81. boost::add_edge(v4, v1, 1., graph);
  82. boost::add_edge(v5, v1, 1., graph);
  83. boost::add_edge(v6, v1, 1., graph);
  84. boost::add_edge(v6, v2, 1., graph);
  85. boost::add_edge(v2, v3, 1., graph);
  86. boost::add_edge(v9, v3, 1., graph);
  87. boost::add_edge(v10, v3 , 1., graph);
  88. boost::add_edge(v4, v5, 1., graph);
  89. boost::add_edge(v5, v6, 1., graph);
  90. boost::add_edge(v7, v4, 1., graph);
  91. boost::add_edge(v8, v4, 1., graph);
  92. boost::add_edge(v7, v8, 1., graph);
  93. boost::add_edge(v9, v10 , 1., graph);
  94. boost::add_edge(v8, v11, 1., graph);
  95. boost::add_edge(v11, v4, 1., graph);
  96. boost::add_edge(v12, v13, 1., graph);
  97. boost::add_edge(v12, v7, 1., graph);
  98. boost::add_edge(v13, v7, 1., graph);
  99. boost::add_edge(v14, v15, 1., graph);
  100. boost::add_edge(v14, v12, 1., graph);
  101. boost::add_edge(v15, v16, 1., graph);
  102. boost::add_edge(v15, v12, 1., graph);
  103. boost::add_edge(v16, v17, 1., graph);
  104. boost::add_edge(v16, v12, 1., graph);
  105. boost::add_edge(v17, v12, 1., graph);
  106. boost::add_edge(v18, v19, 1., graph);
  107. boost::add_edge(v18, v8, 1., graph);
  108. boost::add_edge(v19, v20, 1., graph);
  109. boost::add_edge(v19, v8, 1., graph);
  110. boost::add_edge(v20, v8, 1., graph);
  111. boost::add_edge(v21, v22, 1., graph);
  112. boost::add_edge(v21, v19, 1., graph);
  113. boost::add_edge(v22, v23, 1., graph);
  114. boost::add_edge(v22, v19, 1., graph);
  115. boost::add_edge(v23, v19, 1., graph);
  116. boost::add_edge(v24, v25, 1., graph);
  117. boost::add_edge(v24, v6, 1., graph);
  118. boost::add_edge(v25, v6, 1., graph);
  119. boost::add_edge(v26, v11, 1., graph);
  120. boost::add_edge(v26, v27, 1., graph);
  121. boost::add_edge(v26, v24, 1., graph);
  122. boost::add_edge(v27, v24, 1., graph);
  123. boost::add_edge(v28, v25, 1., graph);
  124. boost::add_edge(v29, v27, 1., graph);
  125. boost::add_edge(v29, v28, 1., graph);
  126. boost::add_edge(v30, v27, 1., graph);
  127. boost::add_edge(v30, v28, 1., graph);
  128. boost::add_edge(v31, v32, 1., graph);
  129. boost::add_edge(v31, v10, 1., graph);
  130. boost::add_edge(v32, v33, 1., graph);
  131. boost::add_edge(v32, v10, 1., graph);
  132. boost::add_edge(v33, v10, 1., graph);
  133. boost::add_edge(v34, v31, 1., graph);
  134. boost::add_edge(v34, v35, 1., graph);
  135. boost::add_edge(v35, v31, 1., graph);
  136. boost::add_edge(v35, v32, 1., graph);
  137. boost::add_edge(v36, v32, 1., graph);
  138. boost::add_edge(v36, v37, 1., graph);
  139. boost::add_edge(v36, v33, 1., graph);
  140. boost::add_edge(v37, v33, 1., graph);
  141. /*graph[v6] = VertexProperties(6, 1., NORMAL_PIXEL);
  142. graph[v8] = VertexProperties(8, 1., NORMAL_PIXEL);
  143. graph[v10] = VertexProperties(10, 1., NORMAL_PIXEL);
  144. graph[v0] = VertexProperties(0, 1., NORMAL_PIXEL);
  145. graph[v1] = VertexProperties(1, 1., NORMAL_PIXEL);
  146. graph[v2] = VertexProperties(2, 1., NORMAL_PIXEL);
  147. graph[v3] = VertexProperties(3, 1., NORMAL_PIXEL);
  148. graph[v4] = VertexProperties(4, 1., NORMAL_PIXEL);
  149. graph[v5] = VertexProperties(5, 1., NORMAL_PIXEL);
  150. graph[v7] = VertexProperties(7, 1., TOP_PIXEL);
  151. graph[v9] = VertexProperties(9, 1., TOP_PIXEL);*/
  152. graph[v6] = VertexProperties(6, 2.5, NORMAL_PIXEL);
  153. graph[v8] = VertexProperties(8, 2., NORMAL_PIXEL);
  154. graph[v10] = VertexProperties(10, 2.5, NORMAL_PIXEL);
  155. graph[v0] = VertexProperties(0, 4, NORMAL_PIXEL);
  156. graph[v1] = VertexProperties(1, 3, NORMAL_PIXEL);
  157. graph[v2] = VertexProperties(2, 3, NORMAL_PIXEL);
  158. graph[v3] = VertexProperties(3, 3, NORMAL_PIXEL);
  159. graph[v4] = VertexProperties(4, 2.5, NORMAL_PIXEL);
  160. graph[v5] = VertexProperties(5, 2.5, NORMAL_PIXEL);
  161. graph[v7] = VertexProperties(7, 2., NORMAL_PIXEL);
  162. graph[v9] = VertexProperties(9, 2.5, TOP_PIXEL);
  163. graph[v11] = VertexProperties(11, 2, NORMAL_PIXEL);
  164. graph[v12] = VertexProperties(12, 1.5, NORMAL_PIXEL);
  165. graph[v13] = VertexProperties(13, 1.5, NORMAL_PIXEL);
  166. graph[v14] = VertexProperties(14, 1, TOP_PIXEL);
  167. graph[v15] = VertexProperties(15, 1, NORMAL_PIXEL);
  168. graph[v16] = VertexProperties(16, 1, NORMAL_PIXEL);
  169. graph[v17] = VertexProperties(17, 1, NORMAL_PIXEL);
  170. graph[v18] = VertexProperties(18, 1.5, TOP_PIXEL);
  171. graph[v19] = VertexProperties(19, 1.5, NORMAL_PIXEL);
  172. graph[v20] = VertexProperties(20, 1.5, NORMAL_PIXEL);
  173. graph[v21] = VertexProperties(21, 1, TOP_PIXEL);
  174. graph[v22] = VertexProperties(22, 1, NORMAL_PIXEL);
  175. graph[v23] = VertexProperties(23, 1, NORMAL_PIXEL);
  176. graph[v24] = VertexProperties(24, 2, NORMAL_PIXEL);
  177. graph[v25] = VertexProperties(25, 2, NORMAL_PIXEL);
  178. graph[v26] = VertexProperties(26, 1.5, TOP_PIXEL);
  179. graph[v27] = VertexProperties(27, 1.5, NORMAL_PIXEL);
  180. graph[v28] = VertexProperties(28, 1.5, NORMAL_PIXEL);
  181. graph[v29] = VertexProperties(29, 1, TOP_PIXEL);
  182. graph[v30] = VertexProperties(30, 1, TOP_PIXEL);
  183. graph[v31] = VertexProperties(31, 2, NORMAL_PIXEL);
  184. graph[v32] = VertexProperties(32, 2, NORMAL_PIXEL);
  185. graph[v33] = VertexProperties(33, 2, NORMAL_PIXEL);
  186. graph[v34] = VertexProperties(34, 1.5, TOP_PIXEL);
  187. graph[v35] = VertexProperties(35, 1.5, NORMAL_PIXEL);
  188. graph[v36] = VertexProperties(36, 1.5, TOP_PIXEL);
  189. graph[v37] = VertexProperties(37, 1.5, NORMAL_PIXEL);
  190. graphs.push_back(graph);
  191. }
  192. };
  193. class HierarchicalGraphBuilder
  194. {
  195. public:
  196. HierarchicalGraphBuilder()
  197. { }
  198. void build(OrientedGraphs& graphs, InputEdgeList& input_edges,
  199. OutputEdgeList& output_edges, Connections& parent_connections)
  200. {
  201. // S1
  202. {
  203. OrientedGraph graph;
  204. OrientedGraph::vertex_descriptor v1 = boost::add_vertex(graph);
  205. OrientedGraph::vertex_descriptor v4 = boost::add_vertex(graph);
  206. OrientedGraph::vertex_descriptor v5 = boost::add_vertex(graph);
  207. OrientedGraph::vertex_descriptor v7 = boost::add_vertex(graph);
  208. OrientedGraph::vertex_descriptor v8 = boost::add_vertex(graph);
  209. OrientedGraph::vertex_descriptor v11 = boost::add_vertex(graph);
  210. OrientedGraph::vertex_descriptor v12 = boost::add_vertex(graph);
  211. OrientedGraph::vertex_descriptor v13 = boost::add_vertex(graph);
  212. OrientedGraph::vertex_descriptor v14 = boost::add_vertex(graph);
  213. OrientedGraph::vertex_descriptor v15 = boost::add_vertex(graph);
  214. OrientedGraph::vertex_descriptor v16 = boost::add_vertex(graph);
  215. OrientedGraph::vertex_descriptor v17 = boost::add_vertex(graph);
  216. OrientedGraph::vertex_descriptor v18 = boost::add_vertex(graph);
  217. OrientedGraph::vertex_descriptor v19 = boost::add_vertex(graph);
  218. OrientedGraph::vertex_descriptor v20 = boost::add_vertex(graph);
  219. OrientedGraph::vertex_descriptor v21 = boost::add_vertex(graph);
  220. OrientedGraph::vertex_descriptor v22 = boost::add_vertex(graph);
  221. OrientedGraph::vertex_descriptor v23 = boost::add_vertex(graph);
  222. boost::add_edge(v4, v1, 1., graph);
  223. boost::add_edge(v5, v1, 1., graph);
  224. boost::add_edge(v4, v5, 1., graph);
  225. boost::add_edge(v7, v4, 1., graph);
  226. boost::add_edge(v8, v4, 1., graph);
  227. boost::add_edge(v7, v8, 1., graph);
  228. boost::add_edge(v8, v11, 1., graph);
  229. boost::add_edge(v11, v4, 1., graph);
  230. boost::add_edge(v12, v13, 1., graph);
  231. boost::add_edge(v12, v7, 1., graph);
  232. boost::add_edge(v13, v7, 1., graph);
  233. boost::add_edge(v14, v15, 1., graph);
  234. boost::add_edge(v14, v12, 1., graph);
  235. boost::add_edge(v15, v16, 1., graph);
  236. boost::add_edge(v15, v12, 1., graph);
  237. boost::add_edge(v16, v17, 1., graph);
  238. boost::add_edge(v16, v12, 1., graph);
  239. boost::add_edge(v17, v12, 1., graph);
  240. boost::add_edge(v18, v19, 1., graph);
  241. boost::add_edge(v18, v8, 1., graph);
  242. boost::add_edge(v19, v20, 1., graph);
  243. boost::add_edge(v19, v8, 1., graph);
  244. boost::add_edge(v20, v8, 1., graph);
  245. boost::add_edge(v21, v22, 1., graph);
  246. boost::add_edge(v21, v19, 1., graph);
  247. boost::add_edge(v22, v23, 1., graph);
  248. boost::add_edge(v22, v19, 1., graph);
  249. boost::add_edge(v23, v19, 1., graph);
  250. graph[v8] = VertexProperties(8, 2., NORMAL_PIXEL);
  251. graph[v1] = VertexProperties(1, 3, NORMAL_PIXEL);
  252. graph[v4] = VertexProperties(4, 2.5, NORMAL_PIXEL);
  253. graph[v5] = VertexProperties(5, 2.5, NORMAL_PIXEL);
  254. graph[v7] = VertexProperties(7, 2., NORMAL_PIXEL);
  255. graph[v11] = VertexProperties(11, 2, NORMAL_PIXEL);
  256. graph[v12] = VertexProperties(12, 1.5, NORMAL_PIXEL);
  257. graph[v13] = VertexProperties(13, 1.5, NORMAL_PIXEL);
  258. graph[v14] = VertexProperties(14, 1, TOP_PIXEL);
  259. graph[v15] = VertexProperties(15, 1, NORMAL_PIXEL);
  260. graph[v16] = VertexProperties(16, 1, NORMAL_PIXEL);
  261. graph[v17] = VertexProperties(17, 1, NORMAL_PIXEL);
  262. graph[v18] = VertexProperties(18, 1.5, TOP_PIXEL);
  263. graph[v19] = VertexProperties(19, 1.5, NORMAL_PIXEL);
  264. graph[v20] = VertexProperties(20, 1.5, NORMAL_PIXEL);
  265. graph[v21] = VertexProperties(21, 1, TOP_PIXEL);
  266. graph[v22] = VertexProperties(22, 1, NORMAL_PIXEL);
  267. graph[v23] = VertexProperties(23, 1, NORMAL_PIXEL);
  268. /*OrientedGraph::vertex_descriptor v1 = boost::add_vertex(graph);
  269. OrientedGraph::vertex_descriptor v2 = boost::add_vertex(graph);
  270. OrientedGraph::vertex_descriptor v4 = boost::add_vertex(graph);
  271. OrientedGraph::vertex_descriptor v5 = boost::add_vertex(graph);
  272. OrientedGraph::vertex_descriptor v6 = boost::add_vertex(graph);
  273. OrientedGraph::vertex_descriptor v7 = boost::add_vertex(graph);
  274. OrientedGraph::vertex_descriptor v8 = boost::add_vertex(graph);
  275. boost::add_edge(v1, v2, 1., graph);
  276. boost::add_edge(v4, v1, 1., graph);
  277. boost::add_edge(v5, v1, 1., graph);
  278. boost::add_edge(v6, v1, 1., graph);
  279. boost::add_edge(v6, v2, 1., graph);
  280. boost::add_edge(v4, v5, 1., graph);
  281. boost::add_edge(v5, v6, 1., graph);
  282. boost::add_edge(v7, v4, 1., graph);
  283. boost::add_edge(v8, v4, 1., graph);
  284. boost::add_edge(v7, v8, 1., graph);
  285. graph[v6] = VertexProperties(6, 1., NORMAL_PIXEL);
  286. graph[v8] = VertexProperties(8, 1., NORMAL_PIXEL);
  287. graph[v1] = VertexProperties(1, 1., NORMAL_PIXEL);
  288. graph[v2] = VertexProperties(2, 1., NORMAL_PIXEL);
  289. graph[v4] = VertexProperties(4, 1., NORMAL_PIXEL);
  290. graph[v5] = VertexProperties(5, 1., NORMAL_PIXEL);
  291. graph[v7] = VertexProperties(7, 1., TOP_PIXEL);*/
  292. graphs.push_back(graph);
  293. }
  294. // S2
  295. {
  296. OrientedGraph graph;
  297. OrientedGraph::vertex_descriptor v0 = boost::add_vertex(graph);
  298. OrientedGraph::vertex_descriptor v2 = boost::add_vertex(graph);
  299. OrientedGraph::vertex_descriptor v3 = boost::add_vertex(graph);
  300. OrientedGraph::vertex_descriptor v6 = boost::add_vertex(graph);
  301. OrientedGraph::vertex_descriptor v9 = boost::add_vertex(graph);
  302. OrientedGraph::vertex_descriptor v10 = boost::add_vertex(graph);
  303. OrientedGraph::vertex_descriptor v24 = boost::add_vertex(graph);
  304. OrientedGraph::vertex_descriptor v25 = boost::add_vertex(graph);
  305. OrientedGraph::vertex_descriptor v26 = boost::add_vertex(graph);
  306. OrientedGraph::vertex_descriptor v27 = boost::add_vertex(graph);
  307. OrientedGraph::vertex_descriptor v28 = boost::add_vertex(graph);
  308. OrientedGraph::vertex_descriptor v29 = boost::add_vertex(graph);
  309. OrientedGraph::vertex_descriptor v30 = boost::add_vertex(graph);
  310. OrientedGraph::vertex_descriptor v31 = boost::add_vertex(graph);
  311. OrientedGraph::vertex_descriptor v32 = boost::add_vertex(graph);
  312. OrientedGraph::vertex_descriptor v33 = boost::add_vertex(graph);
  313. OrientedGraph::vertex_descriptor v34 = boost::add_vertex(graph);
  314. OrientedGraph::vertex_descriptor v35 = boost::add_vertex(graph);
  315. OrientedGraph::vertex_descriptor v36 = boost::add_vertex(graph);
  316. OrientedGraph::vertex_descriptor v37 = boost::add_vertex(graph);
  317. boost::add_edge(v2, v0, 1., graph);
  318. boost::add_edge(v3, v0, 1., graph);
  319. boost::add_edge(v6, v2, 1., graph);
  320. boost::add_edge(v2, v3, 1., graph);
  321. boost::add_edge(v9, v3, 1., graph);
  322. boost::add_edge(v10, v3 , 1., graph);
  323. boost::add_edge(v9, v10 , 1., graph);
  324. boost::add_edge(v24, v25, 1., graph);
  325. boost::add_edge(v24, v6, 1., graph);
  326. boost::add_edge(v25, v6, 1., graph);
  327. boost::add_edge(v26, v27, 1., graph);
  328. boost::add_edge(v26, v24, 1., graph);
  329. boost::add_edge(v27, v24, 1., graph);
  330. boost::add_edge(v28, v25, 1., graph);
  331. boost::add_edge(v29, v27, 1., graph);
  332. boost::add_edge(v29, v28, 1., graph);
  333. boost::add_edge(v30, v27, 1., graph);
  334. boost::add_edge(v31, v32, 1., graph);
  335. boost::add_edge(v31, v10, 1., graph);
  336. boost::add_edge(v32, v33, 1., graph);
  337. boost::add_edge(v32, v10, 1., graph);
  338. boost::add_edge(v33, v10, 1., graph);
  339. boost::add_edge(v34, v31, 1., graph);
  340. boost::add_edge(v34, v35, 1., graph);
  341. boost::add_edge(v35, v31, 1., graph);
  342. boost::add_edge(v35, v32, 1., graph);
  343. boost::add_edge(v36, v32, 1., graph);
  344. boost::add_edge(v36, v37, 1., graph);
  345. boost::add_edge(v36, v33, 1., graph);
  346. boost::add_edge(v37, v33, 1., graph);
  347. graph[v6] = VertexProperties(6, 2.5, NORMAL_PIXEL);
  348. graph[v10] = VertexProperties(10, 2.5, NORMAL_PIXEL);
  349. graph[v0] = VertexProperties(0, 4, NORMAL_PIXEL);
  350. graph[v2] = VertexProperties(2, 3, NORMAL_PIXEL);
  351. graph[v3] = VertexProperties(3, 3, NORMAL_PIXEL);
  352. graph[v9] = VertexProperties(9, 2.5, TOP_PIXEL);
  353. graph[v24] = VertexProperties(24, 2, NORMAL_PIXEL);
  354. graph[v25] = VertexProperties(25, 2, NORMAL_PIXEL);
  355. graph[v26] = VertexProperties(26, 1.5, TOP_PIXEL);
  356. graph[v27] = VertexProperties(27, 1.5, NORMAL_PIXEL);
  357. graph[v28] = VertexProperties(28, 1.5, NORMAL_PIXEL);
  358. graph[v29] = VertexProperties(29, 1, TOP_PIXEL);
  359. graph[v30] = VertexProperties(30, 1, TOP_PIXEL);
  360. graph[v31] = VertexProperties(31, 2, NORMAL_PIXEL);
  361. graph[v32] = VertexProperties(32, 2, NORMAL_PIXEL);
  362. graph[v33] = VertexProperties(33, 2, NORMAL_PIXEL);
  363. graph[v34] = VertexProperties(34, 1.5, TOP_PIXEL);
  364. graph[v35] = VertexProperties(35, 1.5, NORMAL_PIXEL);
  365. graph[v36] = VertexProperties(36, 1.5, TOP_PIXEL);
  366. graph[v37] = VertexProperties(37, 1.5, NORMAL_PIXEL);
  367. /*OrientedGraph::vertex_descriptor v0 = boost::add_vertex(graph);
  368. OrientedGraph::vertex_descriptor v3 = boost::add_vertex(graph);
  369. OrientedGraph::vertex_descriptor v9 = boost::add_vertex(graph);
  370. OrientedGraph::vertex_descriptor v10 = boost::add_vertex(graph);
  371. boost::add_edge(v3, v0, 1., graph);
  372. boost::add_edge(v10, v3, 1., graph);
  373. boost::add_edge(v9, v10, 1., graph);
  374. boost::add_edge(v9, v3, 1., graph);
  375. graph[v10] = VertexProperties(10, 1., NORMAL_PIXEL);
  376. graph[v0] = VertexProperties(0, 1., NORMAL_PIXEL);
  377. graph[v3] = VertexProperties(3, 1., NORMAL_PIXEL);
  378. graph[v9] = VertexProperties(9, 1., TOP_PIXEL);*/
  379. graphs.push_back(graph);
  380. }
  381. {
  382. /*// input S1
  383. input_edges.push_back(InputEdges());
  384. // input S2
  385. input_edges.push_back(InputEdges());
  386. input_edges[1].push_back(Edge(1, 0));
  387. input_edges[1].push_back(Edge(2, 0));
  388. input_edges[1].push_back(Edge(2, 3));
  389. // output S1
  390. output_edges.push_back(OutputEdges());
  391. output_edges[0].push_back(Edge(1, 0));
  392. output_edges[0].push_back(Edge(2, 0));
  393. output_edges[0].push_back(Edge(2, 3));
  394. // output S2
  395. output_edges.push_back(OutputEdges());
  396. // parent
  397. parent_connections.push_back(Connection(Port(1,1),Port(2,0)));
  398. parent_connections.push_back(Connection(Port(1,2),Port(2,0)));
  399. parent_connections.push_back(Connection(Port(1,2),Port(2,3)));*/
  400. // input S1
  401. input_edges.push_back(InputEdges());
  402. input_edges[0].push_back(Edge(6, 1));
  403. input_edges[0].push_back(Edge(26, 11));
  404. // input S2
  405. input_edges.push_back(InputEdges());
  406. input_edges[1].push_back(Edge(1, 0));
  407. input_edges[1].push_back(Edge(1, 2));
  408. input_edges[1].push_back(Edge(5, 6));
  409. // output S1
  410. output_edges.push_back(OutputEdges());
  411. output_edges[0].push_back(Edge(1, 0));
  412. output_edges[0].push_back(Edge(1, 2));
  413. output_edges[0].push_back(Edge(5, 6));
  414. // output S2
  415. output_edges.push_back(OutputEdges());
  416. output_edges[1].push_back(Edge(6, 1));
  417. output_edges[1].push_back(Edge(26, 11));
  418. // parent
  419. parent_connections.push_back(Connection(Port(1,1),Port(2,0)));
  420. parent_connections.push_back(Connection(Port(1,1),Port(2,2)));
  421. parent_connections.push_back(Connection(Port(1,5),Port(2,6)));
  422. parent_connections.push_back(Connection(Port(2,6),Port(1,1)));
  423. parent_connections.push_back(Connection(Port(2,26),Port(1,11)));
  424. }
  425. }
  426. };
  427. } } } // namespace paradevs tests boost_graph
  428. #endif