normalComputationDlg.ui 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <ui version="4.0">
  3. <class>NormalComputationDlg</class>
  4. <widget class="QDialog" name="NormalComputationDlg">
  5. <property name="geometry">
  6. <rect>
  7. <x>0</x>
  8. <y>0</y>
  9. <width>482</width>
  10. <height>420</height>
  11. </rect>
  12. </property>
  13. <property name="windowTitle">
  14. <string>Compute normals</string>
  15. </property>
  16. <layout class="QVBoxLayout" name="verticalLayout_3">
  17. <item>
  18. <widget class="QGroupBox" name="surfaceGroupBox">
  19. <property name="title">
  20. <string>Surface approximation</string>
  21. </property>
  22. <layout class="QHBoxLayout" name="horizontalLayout_2">
  23. <property name="leftMargin">
  24. <number>30</number>
  25. </property>
  26. <item>
  27. <widget class="QLabel" name="label">
  28. <property name="text">
  29. <string>Local surface model</string>
  30. </property>
  31. </widget>
  32. </item>
  33. <item>
  34. <widget class="QComboBox" name="localModelComboBox">
  35. <property name="toolTip">
  36. <string>Local surface estimation model</string>
  37. </property>
  38. <property name="currentIndex">
  39. <number>0</number>
  40. </property>
  41. <item>
  42. <property name="text">
  43. <string>Plane</string>
  44. </property>
  45. </item>
  46. <item>
  47. <property name="text">
  48. <string>Quadric</string>
  49. </property>
  50. </item>
  51. <item>
  52. <property name="text">
  53. <string>Triangulation</string>
  54. </property>
  55. </item>
  56. </widget>
  57. </item>
  58. </layout>
  59. </widget>
  60. </item>
  61. <item>
  62. <widget class="QGroupBox" name="neighborsGroupBox">
  63. <property name="sizePolicy">
  64. <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
  65. <horstretch>0</horstretch>
  66. <verstretch>0</verstretch>
  67. </sizepolicy>
  68. </property>
  69. <property name="title">
  70. <string>Neighbors</string>
  71. </property>
  72. <layout class="QVBoxLayout" name="verticalLayout_2">
  73. <property name="leftMargin">
  74. <number>30</number>
  75. </property>
  76. <item>
  77. <layout class="QHBoxLayout" name="horizontalLayout_3">
  78. <item>
  79. <widget class="QCheckBox" name="useScanGridCheckBox">
  80. <property name="toolTip">
  81. <string>Using scan grid(s) instead of the octree</string>
  82. </property>
  83. <property name="text">
  84. <string>use scan grid(s) whenever possible</string>
  85. </property>
  86. </widget>
  87. </item>
  88. <item>
  89. <spacer name="horizontalSpacer">
  90. <property name="orientation">
  91. <enum>Qt::Horizontal</enum>
  92. </property>
  93. <property name="sizeHint" stdset="0">
  94. <size>
  95. <width>40</width>
  96. <height>20</height>
  97. </size>
  98. </property>
  99. </spacer>
  100. </item>
  101. <item>
  102. <widget class="QFrame" name="gridAngleFrame">
  103. <property name="enabled">
  104. <bool>true</bool>
  105. </property>
  106. <layout class="QHBoxLayout" name="horizontalLayout">
  107. <property name="leftMargin">
  108. <number>0</number>
  109. </property>
  110. <property name="topMargin">
  111. <number>0</number>
  112. </property>
  113. <property name="rightMargin">
  114. <number>0</number>
  115. </property>
  116. <property name="bottomMargin">
  117. <number>0</number>
  118. </property>
  119. <item>
  120. <widget class="QLabel" name="label_3">
  121. <property name="enabled">
  122. <bool>true</bool>
  123. </property>
  124. <property name="toolTip">
  125. <string>min triangulation angle</string>
  126. </property>
  127. <property name="text">
  128. <string>min angle</string>
  129. </property>
  130. </widget>
  131. </item>
  132. <item>
  133. <widget class="QDoubleSpinBox" name="gridAngleDoubleSpinBox">
  134. <property name="enabled">
  135. <bool>true</bool>
  136. </property>
  137. <property name="toolTip">
  138. <string>Min angle of local triangles (in degrees)</string>
  139. </property>
  140. <property name="minimum">
  141. <double>0.000000000000000</double>
  142. </property>
  143. <property name="maximum">
  144. <double>90.000000000000000</double>
  145. </property>
  146. <property name="singleStep">
  147. <double>0.100000000000000</double>
  148. </property>
  149. <property name="value">
  150. <double>1.000000000000000</double>
  151. </property>
  152. </widget>
  153. </item>
  154. </layout>
  155. </widget>
  156. </item>
  157. </layout>
  158. </item>
  159. <item>
  160. <widget class="QFrame" name="useScanGridsFrame">
  161. <property name="sizePolicy">
  162. <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
  163. <horstretch>0</horstretch>
  164. <verstretch>0</verstretch>
  165. </sizepolicy>
  166. </property>
  167. <layout class="QHBoxLayout" name="horizontalLayout_9">
  168. <property name="leftMargin">
  169. <number>0</number>
  170. </property>
  171. <property name="topMargin">
  172. <number>0</number>
  173. </property>
  174. <property name="rightMargin">
  175. <number>0</number>
  176. </property>
  177. <property name="bottomMargin">
  178. <number>0</number>
  179. </property>
  180. </layout>
  181. </widget>
  182. </item>
  183. <item>
  184. <layout class="QHBoxLayout" name="horizontalLayout_10">
  185. <item>
  186. <widget class="QLabel" name="label_4">
  187. <property name="text">
  188. <string>Octree</string>
  189. </property>
  190. </widget>
  191. </item>
  192. <item>
  193. <spacer name="horizontalSpacer_2">
  194. <property name="orientation">
  195. <enum>Qt::Horizontal</enum>
  196. </property>
  197. <property name="sizeHint" stdset="0">
  198. <size>
  199. <width>40</width>
  200. <height>20</height>
  201. </size>
  202. </property>
  203. </spacer>
  204. </item>
  205. <item>
  206. <widget class="QFrame" name="localRadiusFrame">
  207. <layout class="QHBoxLayout" name="horizontalLayout_8">
  208. <property name="leftMargin">
  209. <number>0</number>
  210. </property>
  211. <property name="topMargin">
  212. <number>0</number>
  213. </property>
  214. <property name="rightMargin">
  215. <number>0</number>
  216. </property>
  217. <property name="bottomMargin">
  218. <number>0</number>
  219. </property>
  220. <item>
  221. <widget class="QLabel" name="label_2">
  222. <property name="toolTip">
  223. <string>Radius of the sphere in which the neighbors will be extracted</string>
  224. </property>
  225. <property name="text">
  226. <string>radius</string>
  227. </property>
  228. </widget>
  229. </item>
  230. <item>
  231. <widget class="QDoubleSpinBox" name="radiusDoubleSpinBox">
  232. <property name="toolTip">
  233. <string>Radius of the sphere in which the neighbors will be extracted</string>
  234. </property>
  235. <property name="decimals">
  236. <number>6</number>
  237. </property>
  238. <property name="minimum">
  239. <double>0.000001000000000</double>
  240. </property>
  241. <property name="maximum">
  242. <double>999999.989999999990687</double>
  243. </property>
  244. <property name="singleStep">
  245. <double>0.100000000000000</double>
  246. </property>
  247. <property name="value">
  248. <double>1.000000000000000</double>
  249. </property>
  250. </widget>
  251. </item>
  252. <item>
  253. <widget class="QToolButton" name="autoRadiusToolButton">
  254. <property name="text">
  255. <string>Auto</string>
  256. </property>
  257. </widget>
  258. </item>
  259. </layout>
  260. </widget>
  261. </item>
  262. </layout>
  263. </item>
  264. </layout>
  265. </widget>
  266. </item>
  267. <item>
  268. <widget class="QGroupBox" name="normalsOrientGroupBox">
  269. <property name="sizePolicy">
  270. <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
  271. <horstretch>0</horstretch>
  272. <verstretch>0</verstretch>
  273. </sizepolicy>
  274. </property>
  275. <property name="title">
  276. <string>Orientation</string>
  277. </property>
  278. <property name="checkable">
  279. <bool>true</bool>
  280. </property>
  281. <layout class="QVBoxLayout" name="verticalLayout">
  282. <property name="leftMargin">
  283. <number>30</number>
  284. </property>
  285. <item>
  286. <widget class="QCheckBox" name="scanGridsOrientCheckBox">
  287. <property name="toolTip">
  288. <string>Use scan grid(s) (robust method)</string>
  289. </property>
  290. <property name="text">
  291. <string>Use scan grid(s) whenever possible</string>
  292. </property>
  293. </widget>
  294. </item>
  295. <item>
  296. <widget class="QCheckBox" name="sensorOrientCheckBox">
  297. <property name="acceptDrops">
  298. <bool>true</bool>
  299. </property>
  300. <property name="toolTip">
  301. <string>Use sensor position to orient normals (if both grid and sensor are selected, 'grid' has precedence over 'sensor')</string>
  302. </property>
  303. <property name="text">
  304. <string>Use sensor(s) whenever possible</string>
  305. </property>
  306. </widget>
  307. </item>
  308. <item>
  309. <layout class="QHBoxLayout" name="horizontalLayout_5">
  310. <item>
  311. <widget class="QRadioButton" name="preferredOrientRadioButton">
  312. <property name="toolTip">
  313. <string>To give a hint on how to orient normals</string>
  314. </property>
  315. <property name="text">
  316. <string>Use preferred orientation</string>
  317. </property>
  318. </widget>
  319. </item>
  320. <item>
  321. <spacer name="horizontalSpacer_4">
  322. <property name="orientation">
  323. <enum>Qt::Horizontal</enum>
  324. </property>
  325. <property name="sizeHint" stdset="0">
  326. <size>
  327. <width>40</width>
  328. <height>20</height>
  329. </size>
  330. </property>
  331. </spacer>
  332. </item>
  333. <item>
  334. <widget class="QComboBox" name="preferredOrientationComboBox">
  335. <property name="enabled">
  336. <bool>false</bool>
  337. </property>
  338. <property name="currentIndex">
  339. <number>0</number>
  340. </property>
  341. <property name="maxVisibleItems">
  342. <number>12</number>
  343. </property>
  344. <item>
  345. <property name="text">
  346. <string notr="true">+X</string>
  347. </property>
  348. </item>
  349. <item>
  350. <property name="text">
  351. <string notr="true">-X</string>
  352. </property>
  353. </item>
  354. <item>
  355. <property name="text">
  356. <string notr="true">+Y</string>
  357. </property>
  358. </item>
  359. <item>
  360. <property name="text">
  361. <string notr="true">-Y</string>
  362. </property>
  363. </item>
  364. <item>
  365. <property name="text">
  366. <string notr="true">+Z</string>
  367. </property>
  368. </item>
  369. <item>
  370. <property name="text">
  371. <string notr="true">-Z</string>
  372. </property>
  373. </item>
  374. <item>
  375. <property name="text">
  376. <string>From barycenter</string>
  377. </property>
  378. </item>
  379. <item>
  380. <property name="text">
  381. <string>Towards barycenter</string>
  382. </property>
  383. </item>
  384. <item>
  385. <property name="text">
  386. <string notr="true">From origin (0,0,0)</string>
  387. </property>
  388. </item>
  389. <item>
  390. <property name="text">
  391. <string notr="true">Towards origin (0,0,0)</string>
  392. </property>
  393. </item>
  394. <item>
  395. <property name="text">
  396. <string>Use previous normal</string>
  397. </property>
  398. </item>
  399. <item>
  400. <property name="text">
  401. <string>From sensor origin</string>
  402. </property>
  403. </item>
  404. <item>
  405. <property name="text">
  406. <string>Towards sensor origin</string>
  407. </property>
  408. </item>
  409. </widget>
  410. </item>
  411. </layout>
  412. </item>
  413. <item>
  414. <layout class="QHBoxLayout" name="horizontalLayout_6">
  415. <item>
  416. <widget class="QRadioButton" name="mstOrientRadioButton">
  417. <property name="toolTip">
  418. <string>Generic 3D orientation algorithm</string>
  419. </property>
  420. <property name="text">
  421. <string>Use Minimum Spanning Tree</string>
  422. </property>
  423. <property name="checked">
  424. <bool>true</bool>
  425. </property>
  426. </widget>
  427. </item>
  428. <item>
  429. <spacer name="horizontalSpacer_3">
  430. <property name="orientation">
  431. <enum>Qt::Horizontal</enum>
  432. </property>
  433. <property name="sizeHint" stdset="0">
  434. <size>
  435. <width>40</width>
  436. <height>20</height>
  437. </size>
  438. </property>
  439. </spacer>
  440. </item>
  441. <item>
  442. <widget class="QSpinBox" name="mstNeighborsSpinBox">
  443. <property name="enabled">
  444. <bool>true</bool>
  445. </property>
  446. <property name="toolTip">
  447. <string>Number of neighbors used to build the tree</string>
  448. </property>
  449. <property name="prefix">
  450. <string notr="true">knn = </string>
  451. </property>
  452. <property name="minimum">
  453. <number>1</number>
  454. </property>
  455. </widget>
  456. </item>
  457. </layout>
  458. </item>
  459. </layout>
  460. </widget>
  461. </item>
  462. <item>
  463. <spacer name="verticalSpacer">
  464. <property name="orientation">
  465. <enum>Qt::Vertical</enum>
  466. </property>
  467. <property name="sizeHint" stdset="0">
  468. <size>
  469. <width>20</width>
  470. <height>40</height>
  471. </size>
  472. </property>
  473. </spacer>
  474. </item>
  475. <item>
  476. <widget class="QDialogButtonBox" name="buttonBox">
  477. <property name="orientation">
  478. <enum>Qt::Horizontal</enum>
  479. </property>
  480. <property name="standardButtons">
  481. <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
  482. </property>
  483. </widget>
  484. </item>
  485. </layout>
  486. <zorder>buttonBox</zorder>
  487. <zorder>normalsOrientGroupBox</zorder>
  488. <zorder>surfaceGroupBox</zorder>
  489. <zorder>neighborsGroupBox</zorder>
  490. </widget>
  491. <resources/>
  492. <connections>
  493. <connection>
  494. <sender>buttonBox</sender>
  495. <signal>accepted()</signal>
  496. <receiver>NormalComputationDlg</receiver>
  497. <slot>accept()</slot>
  498. <hints>
  499. <hint type="sourcelabel">
  500. <x>257</x>
  501. <y>424</y>
  502. </hint>
  503. <hint type="destinationlabel">
  504. <x>157</x>
  505. <y>274</y>
  506. </hint>
  507. </hints>
  508. </connection>
  509. <connection>
  510. <sender>buttonBox</sender>
  511. <signal>rejected()</signal>
  512. <receiver>NormalComputationDlg</receiver>
  513. <slot>reject()</slot>
  514. <hints>
  515. <hint type="sourcelabel">
  516. <x>325</x>
  517. <y>424</y>
  518. </hint>
  519. <hint type="destinationlabel">
  520. <x>286</x>
  521. <y>274</y>
  522. </hint>
  523. </hints>
  524. </connection>
  525. <connection>
  526. <sender>preferredOrientRadioButton</sender>
  527. <signal>toggled(bool)</signal>
  528. <receiver>preferredOrientationComboBox</receiver>
  529. <slot>setEnabled(bool)</slot>
  530. <hints>
  531. <hint type="sourcelabel">
  532. <x>188</x>
  533. <y>316</y>
  534. </hint>
  535. <hint type="destinationlabel">
  536. <x>456</x>
  537. <y>317</y>
  538. </hint>
  539. </hints>
  540. </connection>
  541. <connection>
  542. <sender>mstOrientRadioButton</sender>
  543. <signal>toggled(bool)</signal>
  544. <receiver>mstNeighborsSpinBox</receiver>
  545. <slot>setEnabled(bool)</slot>
  546. <hints>
  547. <hint type="sourcelabel">
  548. <x>161</x>
  549. <y>349</y>
  550. </hint>
  551. <hint type="destinationlabel">
  552. <x>456</x>
  553. <y>351</y>
  554. </hint>
  555. </hints>
  556. </connection>
  557. <connection>
  558. <sender>useScanGridCheckBox</sender>
  559. <signal>toggled(bool)</signal>
  560. <receiver>gridAngleFrame</receiver>
  561. <slot>setEnabled(bool)</slot>
  562. <hints>
  563. <hint type="sourcelabel">
  564. <x>276</x>
  565. <y>128</y>
  566. </hint>
  567. <hint type="destinationlabel">
  568. <x>388</x>
  569. <y>129</y>
  570. </hint>
  571. </hints>
  572. </connection>
  573. </connections>
  574. </ui>