Subdiv2D.cs 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562
  1. 
  2. using OpenCVForUnity.CoreModule;
  3. using OpenCVForUnity.UtilsModule;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Runtime.InteropServices;
  7. namespace OpenCVForUnity.ImgprocModule
  8. {
  9. // C++: class Subdiv2D
  10. //javadoc: Subdiv2D
  11. public class Subdiv2D : DisposableOpenCVObject
  12. {
  13. protected override void Dispose (bool disposing)
  14. {
  15. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  16. try {
  17. if (disposing) {
  18. }
  19. if (IsEnabledDispose) {
  20. if (nativeObj != IntPtr.Zero)
  21. imgproc_Subdiv2D_delete(nativeObj);
  22. nativeObj = IntPtr.Zero;
  23. }
  24. } finally {
  25. base.Dispose (disposing);
  26. }
  27. #else
  28. return;
  29. #endif
  30. }
  31. protected internal Subdiv2D (IntPtr addr) : base (addr) { }
  32. public IntPtr getNativeObjAddr () { return nativeObj; }
  33. // internal usage only
  34. public static Subdiv2D __fromPtr__ (IntPtr addr) { return new Subdiv2D (addr); }
  35. // C++: enum <unnamed>
  36. public const int PTLOC_ERROR = -2;
  37. public const int PTLOC_OUTSIDE_RECT = -1;
  38. public const int PTLOC_INSIDE = 0;
  39. public const int PTLOC_VERTEX = 1;
  40. public const int PTLOC_ON_EDGE = 2;
  41. public const int NEXT_AROUND_ORG = 0x00;
  42. public const int NEXT_AROUND_DST = 0x22;
  43. public const int PREV_AROUND_ORG = 0x11;
  44. public const int PREV_AROUND_DST = 0x33;
  45. public const int NEXT_AROUND_LEFT = 0x13;
  46. public const int NEXT_AROUND_RIGHT = 0x31;
  47. public const int PREV_AROUND_LEFT = 0x20;
  48. public const int PREV_AROUND_RIGHT = 0x02;
  49. //
  50. // C++: cv::Subdiv2D::Subdiv2D(Rect rect)
  51. //
  52. //javadoc: Subdiv2D::Subdiv2D(rect)
  53. public Subdiv2D (Rect rect)
  54. {
  55. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  56. nativeObj = imgproc_Subdiv2D_Subdiv2D_10(rect.x, rect.y, rect.width, rect.height);
  57. return;
  58. #else
  59. return null;
  60. #endif
  61. }
  62. //
  63. // C++: cv::Subdiv2D::Subdiv2D()
  64. //
  65. //javadoc: Subdiv2D::Subdiv2D()
  66. public Subdiv2D ()
  67. {
  68. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  69. nativeObj = imgproc_Subdiv2D_Subdiv2D_11();
  70. return;
  71. #else
  72. return null;
  73. #endif
  74. }
  75. //
  76. // C++: Point2f cv::Subdiv2D::getVertex(int vertex, int* firstEdge = 0)
  77. //
  78. //javadoc: Subdiv2D::getVertex(vertex, firstEdge)
  79. public Point getVertex (int vertex, int[] firstEdge)
  80. {
  81. ThrowIfDisposed ();
  82. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  83. double[] firstEdge_out = new double[1];
  84. double[] tmpArray = new double[2];
  85. imgproc_Subdiv2D_getVertex_10(nativeObj, vertex, firstEdge_out, tmpArray);
  86. Point retVal = new Point (tmpArray);
  87. if(firstEdge!=null) firstEdge[0] = (int)firstEdge_out[0];
  88. return retVal;
  89. #else
  90. return null;
  91. #endif
  92. }
  93. //javadoc: Subdiv2D::getVertex(vertex)
  94. public Point getVertex (int vertex)
  95. {
  96. ThrowIfDisposed ();
  97. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  98. double[] tmpArray = new double[2];
  99. imgproc_Subdiv2D_getVertex_11(nativeObj, vertex, tmpArray);
  100. Point retVal = new Point (tmpArray);
  101. return retVal;
  102. #else
  103. return null;
  104. #endif
  105. }
  106. //
  107. // C++: int cv::Subdiv2D::edgeDst(int edge, Point2f* dstpt = 0)
  108. //
  109. //javadoc: Subdiv2D::edgeDst(edge, dstpt)
  110. public int edgeDst (int edge, Point dstpt)
  111. {
  112. ThrowIfDisposed ();
  113. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  114. double[] dstpt_out = new double[2];
  115. int retVal = imgproc_Subdiv2D_edgeDst_10(nativeObj, edge, dstpt_out);
  116. if(dstpt!=null){ dstpt.x = dstpt_out[0]; dstpt.y = dstpt_out[1]; }
  117. return retVal;
  118. #else
  119. return -1;
  120. #endif
  121. }
  122. //javadoc: Subdiv2D::edgeDst(edge)
  123. public int edgeDst (int edge)
  124. {
  125. ThrowIfDisposed ();
  126. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  127. int retVal = imgproc_Subdiv2D_edgeDst_11(nativeObj, edge);
  128. return retVal;
  129. #else
  130. return -1;
  131. #endif
  132. }
  133. //
  134. // C++: int cv::Subdiv2D::edgeOrg(int edge, Point2f* orgpt = 0)
  135. //
  136. //javadoc: Subdiv2D::edgeOrg(edge, orgpt)
  137. public int edgeOrg (int edge, Point orgpt)
  138. {
  139. ThrowIfDisposed ();
  140. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  141. double[] orgpt_out = new double[2];
  142. int retVal = imgproc_Subdiv2D_edgeOrg_10(nativeObj, edge, orgpt_out);
  143. if(orgpt!=null){ orgpt.x = orgpt_out[0]; orgpt.y = orgpt_out[1]; }
  144. return retVal;
  145. #else
  146. return -1;
  147. #endif
  148. }
  149. //javadoc: Subdiv2D::edgeOrg(edge)
  150. public int edgeOrg (int edge)
  151. {
  152. ThrowIfDisposed ();
  153. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  154. int retVal = imgproc_Subdiv2D_edgeOrg_11(nativeObj, edge);
  155. return retVal;
  156. #else
  157. return -1;
  158. #endif
  159. }
  160. //
  161. // C++: int cv::Subdiv2D::findNearest(Point2f pt, Point2f* nearestPt = 0)
  162. //
  163. //javadoc: Subdiv2D::findNearest(pt, nearestPt)
  164. public int findNearest (Point pt, Point nearestPt)
  165. {
  166. ThrowIfDisposed ();
  167. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  168. double[] nearestPt_out = new double[2];
  169. int retVal = imgproc_Subdiv2D_findNearest_10(nativeObj, pt.x, pt.y, nearestPt_out);
  170. if(nearestPt!=null){ nearestPt.x = nearestPt_out[0]; nearestPt.y = nearestPt_out[1]; }
  171. return retVal;
  172. #else
  173. return -1;
  174. #endif
  175. }
  176. //javadoc: Subdiv2D::findNearest(pt)
  177. public int findNearest (Point pt)
  178. {
  179. ThrowIfDisposed ();
  180. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  181. int retVal = imgproc_Subdiv2D_findNearest_11(nativeObj, pt.x, pt.y);
  182. return retVal;
  183. #else
  184. return -1;
  185. #endif
  186. }
  187. //
  188. // C++: int cv::Subdiv2D::getEdge(int edge, int nextEdgeType)
  189. //
  190. //javadoc: Subdiv2D::getEdge(edge, nextEdgeType)
  191. public int getEdge (int edge, int nextEdgeType)
  192. {
  193. ThrowIfDisposed ();
  194. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  195. int retVal = imgproc_Subdiv2D_getEdge_10(nativeObj, edge, nextEdgeType);
  196. return retVal;
  197. #else
  198. return -1;
  199. #endif
  200. }
  201. //
  202. // C++: int cv::Subdiv2D::insert(Point2f pt)
  203. //
  204. //javadoc: Subdiv2D::insert(pt)
  205. public int insert (Point pt)
  206. {
  207. ThrowIfDisposed ();
  208. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  209. int retVal = imgproc_Subdiv2D_insert_10(nativeObj, pt.x, pt.y);
  210. return retVal;
  211. #else
  212. return -1;
  213. #endif
  214. }
  215. //
  216. // C++: int cv::Subdiv2D::locate(Point2f pt, int& edge, int& vertex)
  217. //
  218. //javadoc: Subdiv2D::locate(pt, edge, vertex)
  219. public int locate (Point pt, int[] edge, int[] vertex)
  220. {
  221. ThrowIfDisposed ();
  222. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  223. double[] edge_out = new double[1];
  224. double[] vertex_out = new double[1];
  225. int retVal = imgproc_Subdiv2D_locate_10(nativeObj, pt.x, pt.y, edge_out, vertex_out);
  226. if(edge!=null) edge[0] = (int)edge_out[0];
  227. if(vertex!=null) vertex[0] = (int)vertex_out[0];
  228. return retVal;
  229. #else
  230. return -1;
  231. #endif
  232. }
  233. //
  234. // C++: int cv::Subdiv2D::nextEdge(int edge)
  235. //
  236. //javadoc: Subdiv2D::nextEdge(edge)
  237. public int nextEdge (int edge)
  238. {
  239. ThrowIfDisposed ();
  240. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  241. int retVal = imgproc_Subdiv2D_nextEdge_10(nativeObj, edge);
  242. return retVal;
  243. #else
  244. return -1;
  245. #endif
  246. }
  247. //
  248. // C++: int cv::Subdiv2D::rotateEdge(int edge, int rotate)
  249. //
  250. //javadoc: Subdiv2D::rotateEdge(edge, rotate)
  251. public int rotateEdge (int edge, int rotate)
  252. {
  253. ThrowIfDisposed ();
  254. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  255. int retVal = imgproc_Subdiv2D_rotateEdge_10(nativeObj, edge, rotate);
  256. return retVal;
  257. #else
  258. return -1;
  259. #endif
  260. }
  261. //
  262. // C++: int cv::Subdiv2D::symEdge(int edge)
  263. //
  264. //javadoc: Subdiv2D::symEdge(edge)
  265. public int symEdge (int edge)
  266. {
  267. ThrowIfDisposed ();
  268. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  269. int retVal = imgproc_Subdiv2D_symEdge_10(nativeObj, edge);
  270. return retVal;
  271. #else
  272. return -1;
  273. #endif
  274. }
  275. //
  276. // C++: void cv::Subdiv2D::getEdgeList(vector_Vec4f& edgeList)
  277. //
  278. //javadoc: Subdiv2D::getEdgeList(edgeList)
  279. public void getEdgeList (MatOfFloat4 edgeList)
  280. {
  281. ThrowIfDisposed ();
  282. if (edgeList != null) edgeList.ThrowIfDisposed ();
  283. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  284. Mat edgeList_mat = edgeList;
  285. imgproc_Subdiv2D_getEdgeList_10(nativeObj, edgeList_mat.nativeObj);
  286. return;
  287. #else
  288. return;
  289. #endif
  290. }
  291. //
  292. // C++: void cv::Subdiv2D::getLeadingEdgeList(vector_int& leadingEdgeList)
  293. //
  294. //javadoc: Subdiv2D::getLeadingEdgeList(leadingEdgeList)
  295. public void getLeadingEdgeList (MatOfInt leadingEdgeList)
  296. {
  297. ThrowIfDisposed ();
  298. if (leadingEdgeList != null) leadingEdgeList.ThrowIfDisposed ();
  299. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  300. Mat leadingEdgeList_mat = leadingEdgeList;
  301. imgproc_Subdiv2D_getLeadingEdgeList_10(nativeObj, leadingEdgeList_mat.nativeObj);
  302. return;
  303. #else
  304. return;
  305. #endif
  306. }
  307. //
  308. // C++: void cv::Subdiv2D::getTriangleList(vector_Vec6f& triangleList)
  309. //
  310. //javadoc: Subdiv2D::getTriangleList(triangleList)
  311. public void getTriangleList (MatOfFloat6 triangleList)
  312. {
  313. ThrowIfDisposed ();
  314. if (triangleList != null) triangleList.ThrowIfDisposed ();
  315. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  316. Mat triangleList_mat = triangleList;
  317. imgproc_Subdiv2D_getTriangleList_10(nativeObj, triangleList_mat.nativeObj);
  318. return;
  319. #else
  320. return;
  321. #endif
  322. }
  323. //
  324. // C++: void cv::Subdiv2D::getVoronoiFacetList(vector_int idx, vector_vector_Point2f& facetList, vector_Point2f& facetCenters)
  325. //
  326. //javadoc: Subdiv2D::getVoronoiFacetList(idx, facetList, facetCenters)
  327. public void getVoronoiFacetList (MatOfInt idx, List<MatOfPoint2f> facetList, MatOfPoint2f facetCenters)
  328. {
  329. ThrowIfDisposed ();
  330. if (idx != null) idx.ThrowIfDisposed ();
  331. if (facetCenters != null) facetCenters.ThrowIfDisposed ();
  332. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  333. Mat idx_mat = idx;
  334. Mat facetList_mat = new Mat();
  335. Mat facetCenters_mat = facetCenters;
  336. imgproc_Subdiv2D_getVoronoiFacetList_10(nativeObj, idx_mat.nativeObj, facetList_mat.nativeObj, facetCenters_mat.nativeObj);
  337. Converters.Mat_to_vector_vector_Point2f(facetList_mat, facetList);
  338. facetList_mat.release();
  339. return;
  340. #else
  341. return;
  342. #endif
  343. }
  344. //
  345. // C++: void cv::Subdiv2D::initDelaunay(Rect rect)
  346. //
  347. //javadoc: Subdiv2D::initDelaunay(rect)
  348. public void initDelaunay (Rect rect)
  349. {
  350. ThrowIfDisposed ();
  351. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  352. imgproc_Subdiv2D_initDelaunay_10(nativeObj, rect.x, rect.y, rect.width, rect.height);
  353. return;
  354. #else
  355. return;
  356. #endif
  357. }
  358. //
  359. // C++: void cv::Subdiv2D::insert(vector_Point2f ptvec)
  360. //
  361. //javadoc: Subdiv2D::insert(ptvec)
  362. public void insert (MatOfPoint2f ptvec)
  363. {
  364. ThrowIfDisposed ();
  365. if (ptvec != null) ptvec.ThrowIfDisposed ();
  366. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  367. Mat ptvec_mat = ptvec;
  368. imgproc_Subdiv2D_insert_11(nativeObj, ptvec_mat.nativeObj);
  369. return;
  370. #else
  371. return;
  372. #endif
  373. }
  374. #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
  375. const string LIBNAME = "__Internal";
  376. #else
  377. const string LIBNAME = "opencvforunity";
  378. #endif
  379. // C++: cv::Subdiv2D::Subdiv2D(Rect rect)
  380. [DllImport (LIBNAME)]
  381. private static extern IntPtr imgproc_Subdiv2D_Subdiv2D_10 (int rect_x, int rect_y, int rect_width, int rect_height);
  382. // C++: cv::Subdiv2D::Subdiv2D()
  383. [DllImport (LIBNAME)]
  384. private static extern IntPtr imgproc_Subdiv2D_Subdiv2D_11 ();
  385. // C++: Point2f cv::Subdiv2D::getVertex(int vertex, int* firstEdge = 0)
  386. [DllImport (LIBNAME)]
  387. private static extern void imgproc_Subdiv2D_getVertex_10 (IntPtr nativeObj, int vertex, double[] firstEdge_out, double[] retVal);
  388. [DllImport (LIBNAME)]
  389. private static extern void imgproc_Subdiv2D_getVertex_11 (IntPtr nativeObj, int vertex, double[] retVal);
  390. // C++: int cv::Subdiv2D::edgeDst(int edge, Point2f* dstpt = 0)
  391. [DllImport (LIBNAME)]
  392. private static extern int imgproc_Subdiv2D_edgeDst_10 (IntPtr nativeObj, int edge, double[] dstpt_out);
  393. [DllImport (LIBNAME)]
  394. private static extern int imgproc_Subdiv2D_edgeDst_11 (IntPtr nativeObj, int edge);
  395. // C++: int cv::Subdiv2D::edgeOrg(int edge, Point2f* orgpt = 0)
  396. [DllImport (LIBNAME)]
  397. private static extern int imgproc_Subdiv2D_edgeOrg_10 (IntPtr nativeObj, int edge, double[] orgpt_out);
  398. [DllImport (LIBNAME)]
  399. private static extern int imgproc_Subdiv2D_edgeOrg_11 (IntPtr nativeObj, int edge);
  400. // C++: int cv::Subdiv2D::findNearest(Point2f pt, Point2f* nearestPt = 0)
  401. [DllImport (LIBNAME)]
  402. private static extern int imgproc_Subdiv2D_findNearest_10 (IntPtr nativeObj, double pt_x, double pt_y, double[] nearestPt_out);
  403. [DllImport (LIBNAME)]
  404. private static extern int imgproc_Subdiv2D_findNearest_11 (IntPtr nativeObj, double pt_x, double pt_y);
  405. // C++: int cv::Subdiv2D::getEdge(int edge, int nextEdgeType)
  406. [DllImport (LIBNAME)]
  407. private static extern int imgproc_Subdiv2D_getEdge_10 (IntPtr nativeObj, int edge, int nextEdgeType);
  408. // C++: int cv::Subdiv2D::insert(Point2f pt)
  409. [DllImport (LIBNAME)]
  410. private static extern int imgproc_Subdiv2D_insert_10 (IntPtr nativeObj, double pt_x, double pt_y);
  411. // C++: int cv::Subdiv2D::locate(Point2f pt, int& edge, int& vertex)
  412. [DllImport (LIBNAME)]
  413. private static extern int imgproc_Subdiv2D_locate_10 (IntPtr nativeObj, double pt_x, double pt_y, double[] edge_out, double[] vertex_out);
  414. // C++: int cv::Subdiv2D::nextEdge(int edge)
  415. [DllImport (LIBNAME)]
  416. private static extern int imgproc_Subdiv2D_nextEdge_10 (IntPtr nativeObj, int edge);
  417. // C++: int cv::Subdiv2D::rotateEdge(int edge, int rotate)
  418. [DllImport (LIBNAME)]
  419. private static extern int imgproc_Subdiv2D_rotateEdge_10 (IntPtr nativeObj, int edge, int rotate);
  420. // C++: int cv::Subdiv2D::symEdge(int edge)
  421. [DllImport (LIBNAME)]
  422. private static extern int imgproc_Subdiv2D_symEdge_10 (IntPtr nativeObj, int edge);
  423. // C++: void cv::Subdiv2D::getEdgeList(vector_Vec4f& edgeList)
  424. [DllImport (LIBNAME)]
  425. private static extern void imgproc_Subdiv2D_getEdgeList_10 (IntPtr nativeObj, IntPtr edgeList_mat_nativeObj);
  426. // C++: void cv::Subdiv2D::getLeadingEdgeList(vector_int& leadingEdgeList)
  427. [DllImport (LIBNAME)]
  428. private static extern void imgproc_Subdiv2D_getLeadingEdgeList_10 (IntPtr nativeObj, IntPtr leadingEdgeList_mat_nativeObj);
  429. // C++: void cv::Subdiv2D::getTriangleList(vector_Vec6f& triangleList)
  430. [DllImport (LIBNAME)]
  431. private static extern void imgproc_Subdiv2D_getTriangleList_10 (IntPtr nativeObj, IntPtr triangleList_mat_nativeObj);
  432. // C++: void cv::Subdiv2D::getVoronoiFacetList(vector_int idx, vector_vector_Point2f& facetList, vector_Point2f& facetCenters)
  433. [DllImport (LIBNAME)]
  434. private static extern void imgproc_Subdiv2D_getVoronoiFacetList_10 (IntPtr nativeObj, IntPtr idx_mat_nativeObj, IntPtr facetList_mat_nativeObj, IntPtr facetCenters_mat_nativeObj);
  435. // C++: void cv::Subdiv2D::initDelaunay(Rect rect)
  436. [DllImport (LIBNAME)]
  437. private static extern void imgproc_Subdiv2D_initDelaunay_10 (IntPtr nativeObj, int rect_x, int rect_y, int rect_width, int rect_height);
  438. // C++: void cv::Subdiv2D::insert(vector_Point2f ptvec)
  439. [DllImport (LIBNAME)]
  440. private static extern void imgproc_Subdiv2D_insert_11 (IntPtr nativeObj, IntPtr ptvec_mat_nativeObj);
  441. // native support for java finalize()
  442. [DllImport (LIBNAME)]
  443. private static extern void imgproc_Subdiv2D_delete (IntPtr nativeObj);
  444. }
  445. }