You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5676 lines
259 KiB

1 month ago
  1. <?xml version="1.0"?>
  2. <doc>
  3. <assembly>
  4. <name>AForge.Math</name>
  5. </assembly>
  6. <members>
  7. <member name="T:AForge.Math.Complex">
  8. <summary>
  9. Complex number wrapper class.
  10. </summary>
  11. <remarks><para>The class encapsulates complex number and provides
  12. set of different operators to manipulate it, lake adding, subtractio,
  13. multiplication, etc.</para>
  14. <para>Sample usage:</para>
  15. <code>
  16. // define two complex numbers
  17. Complex c1 = new Complex( 3, 9 );
  18. Complex c2 = new Complex( 8, 3 );
  19. // sum
  20. Complex s1 = Complex.Add( c1, c2 );
  21. Complex s2 = c1 + c2;
  22. Complex s3 = c1 + 5;
  23. // difference
  24. Complex d1 = Complex.Subtract( c1, c2 );
  25. Complex d2 = c1 - c2;
  26. Complex d3 = c1 - 2;
  27. </code>
  28. </remarks>
  29. </member>
  30. <member name="F:AForge.Math.Complex.Re">
  31. <summary>
  32. Real part of the complex number.
  33. </summary>
  34. </member>
  35. <member name="F:AForge.Math.Complex.Im">
  36. <summary>
  37. Imaginary part of the complex number.
  38. </summary>
  39. </member>
  40. <member name="F:AForge.Math.Complex.Zero">
  41. <summary>
  42. A double-precision complex number that represents zero.
  43. </summary>
  44. </member>
  45. <member name="F:AForge.Math.Complex.One">
  46. <summary>
  47. A double-precision complex number that represents one.
  48. </summary>
  49. </member>
  50. <member name="F:AForge.Math.Complex.I">
  51. <summary>
  52. A double-precision complex number that represents the squere root of (-1).
  53. </summary>
  54. </member>
  55. <member name="P:AForge.Math.Complex.Magnitude">
  56. <summary>
  57. Magnitude value of the complex number.
  58. </summary>
  59. <remarks><para>Magnitude of the complex number, which equals to <b>Sqrt( Re * Re + Im * Im )</b>.</para></remarks>
  60. </member>
  61. <member name="P:AForge.Math.Complex.Phase">
  62. <summary>
  63. Phase value of the complex number.
  64. </summary>
  65. <remarks><para>Phase of the complex number, which equals to <b>Atan( Im / Re )</b>.</para></remarks>
  66. </member>
  67. <member name="P:AForge.Math.Complex.SquaredMagnitude">
  68. <summary>
  69. Squared magnitude value of the complex number.
  70. </summary>
  71. </member>
  72. <member name="M:AForge.Math.Complex.#ctor(System.Double,System.Double)">
  73. <summary>
  74. Initializes a new instance of the <see cref="T:AForge.Math.Complex"/> class.
  75. </summary>
  76. <param name="re">Real part.</param>
  77. <param name="im">Imaginary part.</param>
  78. </member>
  79. <member name="M:AForge.Math.Complex.#ctor(AForge.Math.Complex)">
  80. <summary>
  81. Initializes a new instance of the <see cref="T:AForge.Math.Complex"/> class.
  82. </summary>
  83. <param name="c">Source complex number.</param>
  84. </member>
  85. <member name="M:AForge.Math.Complex.Add(AForge.Math.Complex,AForge.Math.Complex)">
  86. <summary>
  87. Adds two complex numbers.
  88. </summary>
  89. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  90. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  91. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the sum of specified
  92. complex numbers.</returns>
  93. </member>
  94. <member name="M:AForge.Math.Complex.Add(AForge.Math.Complex,System.Double)">
  95. <summary>
  96. Adds scalar value to a complex number.
  97. </summary>
  98. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  99. <param name="s">A scalar value.</param>
  100. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the sum of specified
  101. complex number and scalar value.</returns>
  102. </member>
  103. <member name="M:AForge.Math.Complex.Add(AForge.Math.Complex,AForge.Math.Complex,AForge.Math.Complex@)">
  104. <summary>
  105. Adds two complex numbers and puts the result into the third complex number.
  106. </summary>
  107. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  108. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  109. <param name="result">A <see cref="T:AForge.Math.Complex"/> instance to hold the result.</param>
  110. </member>
  111. <member name="M:AForge.Math.Complex.Add(AForge.Math.Complex,System.Double,AForge.Math.Complex@)">
  112. <summary>
  113. Adds scalar value to a complex number and puts the result into another complex number.
  114. </summary>
  115. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  116. <param name="s">A scalar value.</param>
  117. <param name="result">A <see cref="T:AForge.Math.Complex"/> instance to hold the result.</param>
  118. </member>
  119. <member name="M:AForge.Math.Complex.Subtract(AForge.Math.Complex,AForge.Math.Complex)">
  120. <summary>
  121. Subtracts one complex number from another.
  122. </summary>
  123. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance to subtract from.</param>
  124. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance to be subtracted.</param>
  125. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the subtraction result (<b>a - b</b>).</returns>
  126. </member>
  127. <member name="M:AForge.Math.Complex.Subtract(AForge.Math.Complex,System.Double)">
  128. <summary>
  129. Subtracts a scalar from a complex number.
  130. </summary>
  131. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance to subtract from.</param>
  132. <param name="s">A scalar value to be subtracted.</param>
  133. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the subtraction result (<b>a - s</b>).</returns>
  134. </member>
  135. <member name="M:AForge.Math.Complex.Subtract(System.Double,AForge.Math.Complex)">
  136. <summary>
  137. Subtracts a complex number from a scalar value.
  138. </summary>
  139. <param name="s">A scalar value to subtract from.</param>
  140. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance to be subtracted.</param>
  141. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the subtraction result (<b>s - a</b>).</returns>
  142. </member>
  143. <member name="M:AForge.Math.Complex.Subtract(AForge.Math.Complex,AForge.Math.Complex,AForge.Math.Complex@)">
  144. <summary>
  145. Subtracts one complex number from another and puts the result in the third complex number.
  146. </summary>
  147. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance to subtract from.</param>
  148. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance to be subtracted.</param>
  149. <param name="result">A <see cref="T:AForge.Math.Complex"/> instance to hold the result.</param>
  150. </member>
  151. <member name="M:AForge.Math.Complex.Subtract(AForge.Math.Complex,System.Double,AForge.Math.Complex@)">
  152. <summary>
  153. Subtracts a scalar value from a complex number and puts the result into another complex number.
  154. </summary>
  155. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance to subtract from.</param>
  156. <param name="s">A scalar value to be subtracted.</param>
  157. <param name="result">A <see cref="T:AForge.Math.Complex"/> instance to hold the result.</param>
  158. </member>
  159. <member name="M:AForge.Math.Complex.Subtract(System.Double,AForge.Math.Complex,AForge.Math.Complex@)">
  160. <summary>
  161. Subtracts a complex number from a scalar value and puts the result into another complex number.
  162. </summary>
  163. <param name="s">A scalar value to subtract from.</param>
  164. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance to be subtracted.</param>
  165. <param name="result">A <see cref="T:AForge.Math.Complex"/> instance to hold the result.</param>
  166. </member>
  167. <member name="M:AForge.Math.Complex.Multiply(AForge.Math.Complex,AForge.Math.Complex)">
  168. <summary>
  169. Multiplies two complex numbers.
  170. </summary>
  171. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  172. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  173. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the result of multiplication.</returns>
  174. </member>
  175. <member name="M:AForge.Math.Complex.Multiply(AForge.Math.Complex,System.Double)">
  176. <summary>
  177. Multiplies a complex number by a scalar value.
  178. </summary>
  179. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  180. <param name="s">A scalar value.</param>
  181. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the result of multiplication.</returns>
  182. </member>
  183. <member name="M:AForge.Math.Complex.Multiply(AForge.Math.Complex,AForge.Math.Complex,AForge.Math.Complex@)">
  184. <summary>
  185. Multiplies two complex numbers and puts the result in a third complex number.
  186. </summary>
  187. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  188. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  189. <param name="result">A <see cref="T:AForge.Math.Complex"/> instance to hold the result.</param>
  190. </member>
  191. <member name="M:AForge.Math.Complex.Multiply(AForge.Math.Complex,System.Double,AForge.Math.Complex@)">
  192. <summary>
  193. Multiplies a complex number by a scalar value and puts the result into another complex number.
  194. </summary>
  195. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  196. <param name="s">A scalar value.</param>
  197. <param name="result">A <see cref="T:AForge.Math.Complex"/> instance to hold the result.</param>
  198. </member>
  199. <member name="M:AForge.Math.Complex.Divide(AForge.Math.Complex,AForge.Math.Complex)">
  200. <summary>
  201. Divides one complex number by another complex number.
  202. </summary>
  203. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  204. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  205. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the result.</returns>
  206. <exception cref="T:System.DivideByZeroException">Can not divide by zero.</exception>
  207. </member>
  208. <member name="M:AForge.Math.Complex.Divide(AForge.Math.Complex,System.Double)">
  209. <summary>
  210. Divides a complex number by a scalar value.
  211. </summary>
  212. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  213. <param name="s">A scalar value.</param>
  214. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the result.</returns>
  215. <exception cref="T:System.DivideByZeroException">Can not divide by zero.</exception>
  216. </member>
  217. <member name="M:AForge.Math.Complex.Divide(System.Double,AForge.Math.Complex)">
  218. <summary>
  219. Divides a scalar value by a complex number.
  220. </summary>
  221. <param name="s">A scalar value.</param>
  222. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  223. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the result.</returns>
  224. <exception cref="T:System.DivideByZeroException">Can not divide by zero.</exception>
  225. </member>
  226. <member name="M:AForge.Math.Complex.Divide(AForge.Math.Complex,AForge.Math.Complex,AForge.Math.Complex@)">
  227. <summary>
  228. Divides one complex number by another complex number and puts the result in a third complex number.
  229. </summary>
  230. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  231. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  232. <param name="result">A <see cref="T:AForge.Math.Complex"/> instance to hold the result.</param>
  233. <exception cref="T:System.DivideByZeroException">Can not divide by zero.</exception>
  234. </member>
  235. <member name="M:AForge.Math.Complex.Divide(AForge.Math.Complex,System.Double,AForge.Math.Complex@)">
  236. <summary>
  237. Divides a complex number by a scalar value and puts the result into another complex number.
  238. </summary>
  239. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  240. <param name="s">A scalar value.</param>
  241. <param name="result">A <see cref="T:AForge.Math.Complex"/> instance to hold the result.</param>
  242. <exception cref="T:System.DivideByZeroException">Can not divide by zero.</exception>
  243. </member>
  244. <member name="M:AForge.Math.Complex.Divide(System.Double,AForge.Math.Complex,AForge.Math.Complex@)">
  245. <summary>
  246. Divides a scalar value by a complex number and puts the result into another complex number.
  247. </summary>
  248. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  249. <param name="s">A scalar value.</param>
  250. <param name="result">A <see cref="T:AForge.Math.Complex"/> instance to hold the result.</param>
  251. <exception cref="T:System.DivideByZeroException">Can not divide by zero.</exception>
  252. </member>
  253. <member name="M:AForge.Math.Complex.Negate(AForge.Math.Complex)">
  254. <summary>
  255. Negates a complex number.
  256. </summary>
  257. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  258. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the negated values.</returns>
  259. </member>
  260. <member name="M:AForge.Math.Complex.ApproxEqual(AForge.Math.Complex,AForge.Math.Complex)">
  261. <summary>
  262. Tests whether two complex numbers are approximately equal using default tolerance value.
  263. </summary>
  264. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  265. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  266. <returns>Return <see langword="true"/> if the two vectors are approximately equal or <see langword="false"/> otherwise.</returns>
  267. <remarks><para>The default tolerance value, which is used for the test, equals to 8.8817841970012523233891E-16.</para></remarks>
  268. </member>
  269. <member name="M:AForge.Math.Complex.ApproxEqual(AForge.Math.Complex,AForge.Math.Complex,System.Double)">
  270. <summary>
  271. Tests whether two complex numbers are approximately equal given a tolerance value.
  272. </summary>
  273. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  274. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  275. <param name="tolerance">The tolerance value used to test approximate equality.</param>
  276. <remarks><para>The default tolerance value, which is used for the test, equals to 8.8817841970012523233891E-16.</para></remarks>
  277. </member>
  278. <member name="M:AForge.Math.Complex.Parse(System.String)">
  279. <summary>
  280. Converts the specified string to its <see cref="T:AForge.Math.Complex"/> equivalent.
  281. </summary>
  282. <param name="s">A string representation of a complex number.</param>
  283. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance that represents the complex number
  284. specified by the <paramref name="s"/> parameter.</returns>
  285. <exception cref="T:System.FormatException">String representation of the complex number is not correctly formatted.</exception>
  286. </member>
  287. <member name="M:AForge.Math.Complex.TryParse(System.String,AForge.Math.Complex@)">
  288. <summary>
  289. Try to convert the specified string to its <see cref="T:AForge.Math.Complex"/> equivalent.
  290. </summary>
  291. <param name="s">A string representation of a complex number.</param>
  292. <param name="result"><see cref="T:AForge.Math.Complex"/> instance to output the result to.</param>
  293. <returns>Returns boolean value that indicates if the parse was successful or not.</returns>
  294. </member>
  295. <member name="M:AForge.Math.Complex.Sqrt(AForge.Math.Complex)">
  296. <summary>
  297. Calculates square root of a complex number.
  298. </summary>
  299. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  300. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the square root of the specified
  301. complex number.</returns>
  302. </member>
  303. <member name="M:AForge.Math.Complex.Log(AForge.Math.Complex)">
  304. <summary>
  305. Calculates natural (base <b>e</b>) logarithm of a complex number.
  306. </summary>
  307. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  308. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the natural logarithm of the specified
  309. complex number.</returns>
  310. </member>
  311. <member name="M:AForge.Math.Complex.Exp(AForge.Math.Complex)">
  312. <summary>
  313. Calculates exponent (<b>e</b> raised to the specified power) of a complex number.
  314. </summary>
  315. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  316. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the exponent of the specified
  317. complex number.</returns>
  318. </member>
  319. <member name="M:AForge.Math.Complex.Sin(AForge.Math.Complex)">
  320. <summary>
  321. Calculates Sine value of the complex number.
  322. </summary>
  323. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  324. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the Sine value of the specified
  325. complex number.</returns>
  326. </member>
  327. <member name="M:AForge.Math.Complex.Cos(AForge.Math.Complex)">
  328. <summary>
  329. Calculates Cosine value of the complex number.
  330. </summary>
  331. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  332. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the Cosine value of the specified
  333. complex number.</returns>
  334. </member>
  335. <member name="M:AForge.Math.Complex.Tan(AForge.Math.Complex)">
  336. <summary>
  337. Calculates Tangent value of the complex number.
  338. </summary>
  339. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  340. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the Tangent value of the specified
  341. complex number.</returns>
  342. </member>
  343. <member name="M:AForge.Math.Complex.GetHashCode">
  344. <summary>
  345. Returns the hashcode for this instance.
  346. </summary>
  347. <returns>A 32-bit signed integer hash code.</returns>
  348. </member>
  349. <member name="M:AForge.Math.Complex.Equals(System.Object)">
  350. <summary>
  351. Returns a value indicating whether this instance is equal to the specified object.
  352. </summary>
  353. <param name="obj">An object to compare to this instance.</param>
  354. <returns>Returns <see langword="true"/> if <paramref name="obj"/> is a <see cref="T:AForge.Math.Complex"/> and has the same values as this instance or <see langword="false"/> otherwise.</returns>
  355. </member>
  356. <member name="M:AForge.Math.Complex.ToString">
  357. <summary>
  358. Returns a string representation of this object.
  359. </summary>
  360. <returns>A string representation of this object.</returns>
  361. </member>
  362. <member name="M:AForge.Math.Complex.op_Equality(AForge.Math.Complex,AForge.Math.Complex)">
  363. <summary>
  364. Tests whether two specified complex numbers are equal.
  365. </summary>
  366. <param name="u">The left-hand complex number.</param>
  367. <param name="v">The right-hand complex number.</param>
  368. <returns>Returns <see langword="true"/> if the two complex numbers are equal or <see langword="false"/> otherwise.</returns>
  369. </member>
  370. <member name="M:AForge.Math.Complex.op_Inequality(AForge.Math.Complex,AForge.Math.Complex)">
  371. <summary>
  372. Tests whether two specified complex numbers are not equal.
  373. </summary>
  374. <param name="u">The left-hand complex number.</param>
  375. <param name="v">The right-hand complex number.</param>
  376. <returns>Returns <see langword="true"/> if the two complex numbers are not equal or <see langword="false"/> otherwise.</returns>
  377. </member>
  378. <member name="M:AForge.Math.Complex.op_UnaryNegation(AForge.Math.Complex)">
  379. <summary>
  380. Negates the complex number.
  381. </summary>
  382. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  383. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the negated values.</returns>
  384. </member>
  385. <member name="M:AForge.Math.Complex.op_Addition(AForge.Math.Complex,AForge.Math.Complex)">
  386. <summary>
  387. Adds two complex numbers.
  388. </summary>
  389. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  390. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  391. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the sum.</returns>
  392. </member>
  393. <member name="M:AForge.Math.Complex.op_Addition(AForge.Math.Complex,System.Double)">
  394. <summary>
  395. Adds a complex number and a scalar value.
  396. </summary>
  397. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  398. <param name="s">A scalar value.</param>
  399. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the sum.</returns>
  400. </member>
  401. <member name="M:AForge.Math.Complex.op_Addition(System.Double,AForge.Math.Complex)">
  402. <summary>
  403. Adds a complex number and a scalar value.
  404. </summary>
  405. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  406. <param name="s">A scalar value.</param>
  407. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the sum.</returns>
  408. </member>
  409. <member name="M:AForge.Math.Complex.op_Subtraction(AForge.Math.Complex,AForge.Math.Complex)">
  410. <summary>
  411. Subtracts one complex number from another complex number.
  412. </summary>
  413. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  414. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  415. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the difference.</returns>
  416. </member>
  417. <member name="M:AForge.Math.Complex.op_Subtraction(AForge.Math.Complex,System.Double)">
  418. <summary>
  419. Subtracts a scalar value from a complex number.
  420. </summary>
  421. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  422. <param name="s">A scalar value.</param>
  423. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the difference.</returns>
  424. </member>
  425. <member name="M:AForge.Math.Complex.op_Subtraction(System.Double,AForge.Math.Complex)">
  426. <summary>
  427. Subtracts a complex number from a scalar value.
  428. </summary>
  429. <param name="s">A scalar value.</param>
  430. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  431. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the difference.</returns>
  432. </member>
  433. <member name="M:AForge.Math.Complex.op_Multiply(AForge.Math.Complex,AForge.Math.Complex)">
  434. <summary>
  435. Multiplies two complex numbers.
  436. </summary>
  437. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  438. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  439. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the result of multiplication.</returns>
  440. </member>
  441. <member name="M:AForge.Math.Complex.op_Multiply(System.Double,AForge.Math.Complex)">
  442. <summary>
  443. Multiplies a complex number by a scalar value.
  444. </summary>
  445. <param name="s">A scalar value.</param>
  446. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  447. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the result of multiplication.</returns>
  448. </member>
  449. <member name="M:AForge.Math.Complex.op_Multiply(AForge.Math.Complex,System.Double)">
  450. <summary>
  451. Multiplies a complex number by a scalar value.
  452. </summary>
  453. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  454. <param name="s">A scalar value.</param>
  455. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the result of multiplication.</returns>
  456. </member>
  457. <member name="M:AForge.Math.Complex.op_Division(AForge.Math.Complex,AForge.Math.Complex)">
  458. <summary>
  459. Divides one complex number by another complex number.
  460. </summary>
  461. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  462. <param name="b">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  463. <returns>A new Complex instance containing the result.</returns>
  464. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the result of division.</returns>
  465. </member>
  466. <member name="M:AForge.Math.Complex.op_Division(AForge.Math.Complex,System.Double)">
  467. <summary>
  468. Divides a complex number by a scalar value.
  469. </summary>
  470. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  471. <param name="s">A scalar value.</param>
  472. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the result of division.</returns>
  473. </member>
  474. <member name="M:AForge.Math.Complex.op_Division(System.Double,AForge.Math.Complex)">
  475. <summary>
  476. Divides a scalar value by a complex number.
  477. </summary>
  478. <param name="a">A <see cref="T:AForge.Math.Complex"/> instance.</param>
  479. <param name="s">A scalar value.</param>
  480. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing the result of division.</returns>
  481. </member>
  482. <member name="M:AForge.Math.Complex.op_Explicit(System.Single)~AForge.Math.Complex">
  483. <summary>
  484. Converts from a single-precision real number to a complex number.
  485. </summary>
  486. <param name="value">Single-precision real number to convert to complex number.</param>
  487. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing complex number with
  488. real part initialized to the specified value.</returns>
  489. </member>
  490. <member name="M:AForge.Math.Complex.op_Explicit(System.Double)~AForge.Math.Complex">
  491. <summary>
  492. Converts from a double-precision real number to a complex number.
  493. </summary>
  494. <param name="value">Double-precision real number to convert to complex number.</param>
  495. <returns>Returns new <see cref="T:AForge.Math.Complex"/> instance containing complex number with
  496. real part initialized to the specified value.</returns>
  497. </member>
  498. <member name="M:AForge.Math.Complex.System#ICloneable#Clone">
  499. <summary>
  500. Creates an exact copy of this <see cref="T:AForge.Math.Complex"/> object.
  501. </summary>
  502. <returns>Returns clone of the complex number.</returns>
  503. </member>
  504. <member name="M:AForge.Math.Complex.Clone">
  505. <summary>
  506. Creates an exact copy of this <see cref="T:AForge.Math.Complex"/> object.
  507. </summary>
  508. <returns>Returns clone of the complex number.</returns>
  509. </member>
  510. <member name="M:AForge.Math.Complex.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
  511. <summary>
  512. Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo"/> with the data needed to serialize the target object.
  513. </summary>
  514. <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> to populate with data. </param>
  515. <param name="context">The destination (see <see cref="T:System.Runtime.Serialization.StreamingContext"/>) for this serialization.</param>
  516. </member>
  517. <member name="T:AForge.Math.ContinuousHistogram">
  518. <summary>
  519. Histogram for continuous random values.
  520. </summary>
  521. <remarks><para>The class wraps histogram for continuous stochastic function, which is represented
  522. by integer array and range of the function. Values of the integer array are treated
  523. as total amount of hits on the corresponding subranges, which are calculated by splitting the
  524. specified range into required amount of consequent ranges.</para>
  525. <para>For example, if the integer array is equal to { 1, 2, 4, 8, 16 } and the range is set
  526. to [0, 1], then the histogram consists of next subranges:
  527. <list type="bullet">
  528. <item>[0.0, 0.2] - 1 hit;</item>
  529. <item>[0.2, 0.4] - 2 hits;</item>
  530. <item>[0.4, 0.6] - 4 hits;</item>
  531. <item>[0.6, 0.8] - 8 hits;</item>
  532. <item>[0.8, 1.0] - 16 hits.</item>
  533. </list>
  534. </para>
  535. <para>Sample usage:</para>
  536. <code>
  537. // create histogram
  538. ContinuousHistogram histogram = new ContinuousHistogram(
  539. new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) );
  540. // get mean and standard deviation values
  541. Console.WriteLine( "mean = " + histogram.Mean + ", std.dev = " + histogram.StdDev );
  542. </code>
  543. </remarks>
  544. </member>
  545. <member name="P:AForge.Math.ContinuousHistogram.Values">
  546. <summary>
  547. Values of the histogram.
  548. </summary>
  549. </member>
  550. <member name="P:AForge.Math.ContinuousHistogram.Range">
  551. <summary>
  552. Range of random values.
  553. </summary>
  554. </member>
  555. <member name="P:AForge.Math.ContinuousHistogram.Mean">
  556. <summary>
  557. Mean value.
  558. </summary>
  559. <remarks><para>The property allows to retrieve mean value of the histogram.</para>
  560. <para>Sample usage:</para>
  561. <code>
  562. // create histogram
  563. ContinuousHistogram histogram = new ContinuousHistogram(
  564. new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) );
  565. // get mean value (= 0.505 )
  566. Console.WriteLine( "mean = " + histogram.Mean.ToString( "F3" ) );
  567. </code>
  568. </remarks>
  569. </member>
  570. <member name="P:AForge.Math.ContinuousHistogram.StdDev">
  571. <summary>
  572. Standard deviation.
  573. </summary>
  574. <remarks><para>The property allows to retrieve standard deviation value of the histogram.</para>
  575. <para>Sample usage:</para>
  576. <code>
  577. // create histogram
  578. ContinuousHistogram histogram = new ContinuousHistogram(
  579. new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) );
  580. // get std.dev. value (= 0.215)
  581. Console.WriteLine( "std.dev. = " + histogram.StdDev.ToString( "F3" ) );
  582. </code>
  583. </remarks>
  584. </member>
  585. <member name="P:AForge.Math.ContinuousHistogram.Median">
  586. <summary>
  587. Median value.
  588. </summary>
  589. <remarks><para>The property allows to retrieve median value of the histogram.</para>
  590. <para>Sample usage:</para>
  591. <code>
  592. // create histogram
  593. ContinuousHistogram histogram = new ContinuousHistogram(
  594. new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) );
  595. // get median value (= 0.500)
  596. Console.WriteLine( "median = " + histogram.Median.ToString( "F3" ) );
  597. </code>
  598. </remarks>
  599. </member>
  600. <member name="P:AForge.Math.ContinuousHistogram.Min">
  601. <summary>
  602. Minimum value.
  603. </summary>
  604. <remarks><para>The property allows to retrieve minimum value of the histogram with non zero
  605. hits count.</para>
  606. <para>Sample usage:</para>
  607. <code>
  608. // create histogram
  609. ContinuousHistogram histogram = new ContinuousHistogram(
  610. new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) );
  611. // get min value (= 0.250)
  612. Console.WriteLine( "min = " + histogram.Min.ToString( "F3" ) );
  613. </code>
  614. </remarks>
  615. </member>
  616. <member name="P:AForge.Math.ContinuousHistogram.Max">
  617. <summary>
  618. Maximum value.
  619. </summary>
  620. <remarks><para>The property allows to retrieve maximum value of the histogram with non zero
  621. hits count.</para>
  622. <para>Sample usage:</para>
  623. <code>
  624. // create histogram
  625. ContinuousHistogram histogram = new ContinuousHistogram(
  626. new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) );
  627. // get max value (= 0.875)
  628. Console.WriteLine( "max = " + histogram.Max.ToString( "F3" ) );
  629. </code>
  630. </remarks>
  631. </member>
  632. <member name="M:AForge.Math.ContinuousHistogram.#ctor(System.Int32[],AForge.Range)">
  633. <summary>
  634. Initializes a new instance of the <see cref="T:AForge.Math.ContinuousHistogram"/> class.
  635. </summary>
  636. <param name="values">Values of the histogram.</param>
  637. <param name="range">Range of random values.</param>
  638. <remarks>Values of the integer array are treated as total amount of hits on the
  639. corresponding subranges, which are calculated by splitting the specified range into
  640. required amount of consequent ranges (see <see cref="T:AForge.Math.ContinuousHistogram"/> class
  641. description for more information).
  642. </remarks>
  643. </member>
  644. <member name="M:AForge.Math.ContinuousHistogram.GetRange(System.Single)">
  645. <summary>
  646. Get range around median containing specified percentage of values.
  647. </summary>
  648. <param name="percent">Values percentage around median.</param>
  649. <returns>Returns the range which containes specifies percentage of values.</returns>
  650. <remarks><para>The method calculates range of stochastic variable, which summary probability
  651. comprises the specified percentage of histogram's hits.</para>
  652. <para>Sample usage:</para>
  653. <code>
  654. // create histogram
  655. ContinuousHistogram histogram = new ContinuousHistogram(
  656. new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) );
  657. // get 50% range
  658. Range range = histogram.GetRange( 0.5f );
  659. // show the range ([0.25, 0.75])
  660. Console.WriteLine( "50% range = [" + range.Min + ", " + range.Max + "]" );
  661. </code>
  662. </remarks>
  663. </member>
  664. <member name="M:AForge.Math.ContinuousHistogram.Update">
  665. <summary>
  666. Update statistical value of the histogram.
  667. </summary>
  668. <remarks>The method recalculates statistical values of the histogram, like mean,
  669. standard deviation, etc. The method should be called only in the case if histogram
  670. values were retrieved through <see cref="P:AForge.Math.ContinuousHistogram.Values"/> property and updated after that.
  671. </remarks>
  672. </member>
  673. <member name="T:AForge.Math.FourierTransform">
  674. <summary>
  675. Fourier transformation.
  676. </summary>
  677. <remarks>The class implements one dimensional and two dimensional
  678. Discrete and Fast Fourier Transformation.</remarks>
  679. </member>
  680. <member name="T:AForge.Math.FourierTransform.Direction">
  681. <summary>
  682. Fourier transformation direction.
  683. </summary>
  684. </member>
  685. <member name="F:AForge.Math.FourierTransform.Direction.Forward">
  686. <summary>
  687. Forward direction of Fourier transformation.
  688. </summary>
  689. </member>
  690. <member name="F:AForge.Math.FourierTransform.Direction.Backward">
  691. <summary>
  692. Backward direction of Fourier transformation.
  693. </summary>
  694. </member>
  695. <member name="M:AForge.Math.FourierTransform.DFT(AForge.Math.Complex[],AForge.Math.FourierTransform.Direction)">
  696. <summary>
  697. One dimensional Discrete Fourier Transform.
  698. </summary>
  699. <param name="data">Data to transform.</param>
  700. <param name="direction">Transformation direction.</param>
  701. </member>
  702. <member name="M:AForge.Math.FourierTransform.DFT2(AForge.Math.Complex[0:,0:],AForge.Math.FourierTransform.Direction)">
  703. <summary>
  704. Two dimensional Discrete Fourier Transform.
  705. </summary>
  706. <param name="data">Data to transform.</param>
  707. <param name="direction">Transformation direction.</param>
  708. </member>
  709. <member name="M:AForge.Math.FourierTransform.FFT(AForge.Math.Complex[],AForge.Math.FourierTransform.Direction)">
  710. <summary>
  711. One dimensional Fast Fourier Transform.
  712. </summary>
  713. <param name="data">Data to transform.</param>
  714. <param name="direction">Transformation direction.</param>
  715. <remarks><para><note>The method accepts <paramref name="data"/> array of 2<sup>n</sup> size
  716. only, where <b>n</b> may vary in the [1, 14] range.</note></para></remarks>
  717. <exception cref="T:System.ArgumentException">Incorrect data length.</exception>
  718. </member>
  719. <member name="M:AForge.Math.FourierTransform.FFT2(AForge.Math.Complex[0:,0:],AForge.Math.FourierTransform.Direction)">
  720. <summary>
  721. Two dimensional Fast Fourier Transform.
  722. </summary>
  723. <param name="data">Data to transform.</param>
  724. <param name="direction">Transformation direction.</param>
  725. <remarks><para><note>The method accepts <paramref name="data"/> array of 2<sup>n</sup> size
  726. only in each dimension, where <b>n</b> may vary in the [1, 14] range. For example, 16x16 array
  727. is valid, but 15x15 is not.</note></para></remarks>
  728. <exception cref="T:System.ArgumentException">Incorrect data length.</exception>
  729. </member>
  730. <member name="T:AForge.Math.Gaussian">
  731. <summary>
  732. Gaussian function.
  733. </summary>
  734. <remarks><para>The class is used to calculate 1D and 2D Gaussian functions for
  735. specified <see cref="P:AForge.Math.Gaussian.Sigma"/> (s) value:</para>
  736. <code lang="none">
  737. 1-D: f(x) = exp( x * x / ( -2 * s * s ) ) / ( s * sqrt( 2 * PI ) )
  738. 2-D: f(x, y) = exp( x * x + y * y / ( -2 * s * s ) ) / ( s * s * 2 * PI )
  739. </code>
  740. </remarks>
  741. </member>
  742. <member name="P:AForge.Math.Gaussian.Sigma">
  743. <summary>
  744. Sigma value.
  745. </summary>
  746. <remarks><para>Sigma property of Gaussian function.</para>
  747. <para>Default value is set to <b>1</b>. Minimum allowed value is <b>0.00000001</b>.</para>
  748. </remarks>
  749. </member>
  750. <member name="M:AForge.Math.Gaussian.#ctor">
  751. <summary>
  752. Initializes a new instance of the <see cref="T:AForge.Math.Gaussian"/> class.
  753. </summary>
  754. </member>
  755. <member name="M:AForge.Math.Gaussian.#ctor(System.Double)">
  756. <summary>
  757. Initializes a new instance of the <see cref="T:AForge.Math.Gaussian"/> class.
  758. </summary>
  759. <param name="sigma">Sigma value.</param>
  760. </member>
  761. <member name="M:AForge.Math.Gaussian.Function(System.Double)">
  762. <summary>
  763. 1-D Gaussian function.
  764. </summary>
  765. <param name="x">x value.</param>
  766. <returns>Returns function's value at point <paramref name="x"/>.</returns>
  767. <remarks><para>The function calculates 1-D Gaussian function:</para>
  768. <code lang="none">
  769. f(x) = exp( x * x / ( -2 * s * s ) ) / ( s * sqrt( 2 * PI ) )
  770. </code>
  771. </remarks>
  772. </member>
  773. <member name="M:AForge.Math.Gaussian.Function2D(System.Double,System.Double)">
  774. <summary>
  775. 2-D Gaussian function.
  776. </summary>
  777. <param name="x">x value.</param>
  778. <param name="y">y value.</param>
  779. <returns>Returns function's value at point (<paramref name="x"/>, <paramref name="y"/>).</returns>
  780. <remarks><para>The function calculates 2-D Gaussian function:</para>
  781. <code lang="none">
  782. f(x, y) = exp( x * x + y * y / ( -2 * s * s ) ) / ( s * s * 2 * PI )
  783. </code>
  784. </remarks>
  785. </member>
  786. <member name="M:AForge.Math.Gaussian.Kernel(System.Int32)">
  787. <summary>
  788. 1-D Gaussian kernel.
  789. </summary>
  790. <param name="size">Kernel size (should be odd), [3, 101].</param>
  791. <returns>Returns 1-D Gaussian kernel of the specified size.</returns>
  792. <remarks><para>The function calculates 1-D Gaussian kernel, which is array
  793. of Gaussian function's values in the [-r, r] range of x value, where
  794. r=floor(<paramref name="size"/>/2).
  795. </para></remarks>
  796. <exception cref="T:System.ArgumentException">Wrong kernel size.</exception>
  797. </member>
  798. <member name="M:AForge.Math.Gaussian.Kernel2D(System.Int32)">
  799. <summary>
  800. 2-D Gaussian kernel.
  801. </summary>
  802. <param name="size">Kernel size (should be odd), [3, 101].</param>
  803. <returns>Returns 2-D Gaussian kernel of specified size.</returns>
  804. <remarks><para>The function calculates 2-D Gaussian kernel, which is array
  805. of Gaussian function's values in the [-r, r] range of x,y values, where
  806. r=floor(<paramref name="size"/>/2).
  807. </para></remarks>
  808. <exception cref="T:System.ArgumentException">Wrong kernel size.</exception>
  809. </member>
  810. <member name="T:AForge.Math.Geometry.ClosePointsMergingOptimizer">
  811. <summary>
  812. Shape optimizer, which merges points within close distance to each other.
  813. </summary>
  814. <remarks><para>This shape optimizing algorithm checks all points of a shape
  815. and merges any two points which are within <see cref="P:AForge.Math.Geometry.ClosePointsMergingOptimizer.MaxDistanceToMerge">specified distance</see>
  816. to each other. Two close points are replaced by a single point, which has
  817. mean coordinates of the removed points.</para>
  818. <para><note>Because of the fact that the algorithm performs points merging
  819. while it goes through a shape, it may merge several points (more than 2) into a
  820. single point, where distance between extreme points may be bigger
  821. than the <see cref="P:AForge.Math.Geometry.ClosePointsMergingOptimizer.MaxDistanceToMerge">specified limit</see>. For example, suppose
  822. a case with 3 points, where 1st and 2nd points are close enough to be merged, but the
  823. 3rd point is a little bit further. During merging of 1st and 2nd points, it may
  824. happen that the new point with mean coordinates will get closer to the 3rd point,
  825. so they will be merged also on next iteration of the algorithm.</note></para>
  826. <para>
  827. For example, the below circle shape comprised of 65 points, can be optimized to 8 points
  828. by setting <see cref="P:AForge.Math.Geometry.ClosePointsMergingOptimizer.MaxDistanceToMerge"/> to 28.<br />
  829. <img src="img/math/close_points_merging_optimizer.png" width="268" height="238" />
  830. </para>
  831. </remarks>
  832. </member>
  833. <member name="P:AForge.Math.Geometry.ClosePointsMergingOptimizer.MaxDistanceToMerge">
  834. <summary>
  835. Maximum allowed distance between points, which are merged during optimization, [0, ∞).
  836. </summary>
  837. <remarks><para>The property sets maximum allowed distance between two points of
  838. a shape, which are replaced by single point with mean coordinates.</para>
  839. <para>Default value is set to <b>10</b>.</para></remarks>
  840. </member>
  841. <member name="M:AForge.Math.Geometry.ClosePointsMergingOptimizer.#ctor">
  842. <summary>
  843. Initializes a new instance of the <see cref="T:AForge.Math.Geometry.ClosePointsMergingOptimizer"/> class.
  844. </summary>
  845. </member>
  846. <member name="M:AForge.Math.Geometry.ClosePointsMergingOptimizer.#ctor(System.Single)">
  847. <summary>
  848. Initializes a new instance of the <see cref="T:AForge.Math.Geometry.ClosePointsMergingOptimizer"/> class.
  849. </summary>
  850. <param name="maxDistanceToMerge">Maximum allowed distance between points, which are
  851. merged during optimization (see <see cref="P:AForge.Math.Geometry.ClosePointsMergingOptimizer.MaxDistanceToMerge"/>).</param>
  852. </member>
  853. <member name="M:AForge.Math.Geometry.ClosePointsMergingOptimizer.OptimizeShape(System.Collections.Generic.List{AForge.IntPoint})">
  854. <summary>
  855. Optimize specified shape.
  856. </summary>
  857. <param name="shape">Shape to be optimized.</param>
  858. <returns>Returns final optimized shape, which may have reduced amount of points.</returns>
  859. </member>
  860. <member name="T:AForge.Math.Geometry.CoplanarPosit">
  861. <summary>
  862. 3D pose estimation algorithm (coplanar case).
  863. </summary>
  864. <remarks><para>The class implements an algorithm for 3D object's pose estimation from it's
  865. 2D coordinates obtained by perspective projection, when the object is described coplanar points.
  866. The idea of the implemented math and algorithm is described in "Iterative Pose Estimation using
  867. Coplanar Feature Points" paper written by Oberkampf, Daniel DeMenthon and Larry Davis
  868. (the implementation of the algorithm is very close translation of the pseudo code given by the
  869. paper, so should be easy to follow).</para>
  870. <para><note>At this point the implementation works only with models described by 4 points, which is
  871. the minimum number of points enough for 3D pose estimation.</note></para>
  872. <para><note>The 4 model's point are supposed to be coplanar, i.e. supposed to reside all within
  873. same planer. See <see cref="T:AForge.Math.Geometry.Posit"/> for none coplanar case.</note></para>
  874. <para>Read <a href="http://www.aforgenet.com/articles/posit/">3D Pose Estimation</a> article for
  875. additional information and samples.</para>
  876. <para>Sample usage:</para>
  877. <code>
  878. // points of real object - model
  879. Vector3[] copositObject = new Vector3[4]
  880. {
  881. new Vector3( -56.5f, 0, 56.5f ),
  882. new Vector3( 56.5f, 0, 56.5f ),
  883. new Vector3( 56.5f, 0, -56.5f ),
  884. new Vector3( -56.5f, 0, -56.5f ),
  885. };
  886. // focal length of camera used to capture the object
  887. float focalLength = 640; // depends on your camera or projection system
  888. // initialize CoPOSIT object
  889. CoplanarPosit coposit = new CoplanarPosit( copositObject, focalLength );
  890. // 2D points of te object - projection
  891. AForge.Point[] projectedPoints = new AForge.Point[4]
  892. {
  893. new AForge.Point( -77, 48 ),
  894. new AForge.Point( 44, 66 ),
  895. new AForge.Point( 75, -36 ),
  896. new AForge.Point( -61, -58 ),
  897. };
  898. // estimate pose
  899. Matrix3x3 rotationMatrix;
  900. Vector3 translationVector;
  901. coposit.EstimatePose( projectedPoints,
  902. out rotationMatrix, out translationVector );
  903. </code>
  904. </remarks>
  905. <seealso cref="T:AForge.Math.Geometry.Posit"/>
  906. </member>
  907. <member name="P:AForge.Math.Geometry.CoplanarPosit.BestEstimatedRotation">
  908. <summary>
  909. Best estimated pose recently found.
  910. </summary>
  911. <remarks><para>The property keeps best estimated pose found by the latest call to <see cref="M:AForge.Math.Geometry.CoplanarPosit.EstimatePose(AForge.Point[],AForge.Math.Matrix3x3@,AForge.Math.Vector3@)"/>.
  912. The same estimated pose is provided by that method also and can be accessed through this property
  913. for convenience.</para>
  914. <para>See also <see cref="P:AForge.Math.Geometry.CoplanarPosit.BestEstimatedTranslation"/> and <see cref="P:AForge.Math.Geometry.CoplanarPosit.BestEstimationError"/>.</para>
  915. </remarks>
  916. </member>
  917. <member name="P:AForge.Math.Geometry.CoplanarPosit.BestEstimatedTranslation">
  918. <summary>
  919. Best estimated translation recently found.
  920. </summary>
  921. <remarks><para>The property keeps best estimated translation found by the latest call to <see cref="M:AForge.Math.Geometry.CoplanarPosit.EstimatePose(AForge.Point[],AForge.Math.Matrix3x3@,AForge.Math.Vector3@)"/>.
  922. The same estimated translation is provided by that method also and can be accessed through this property
  923. for convenience.</para>
  924. <para>See also <see cref="P:AForge.Math.Geometry.CoplanarPosit.BestEstimatedRotation"/> and <see cref="P:AForge.Math.Geometry.CoplanarPosit.BestEstimationError"/>.</para>
  925. </remarks>
  926. </member>
  927. <member name="P:AForge.Math.Geometry.CoplanarPosit.BestEstimationError">
  928. <summary>
  929. Error of the best pose estimation.
  930. </summary>
  931. <remarks><para>The property keeps error of the best pose estimation, which is calculated as average
  932. error between real angles of the specified quadrilateral and angles of the quadrilateral which
  933. is a projection of the best pose estimation. The error is measured degrees in (angle).</para>
  934. </remarks>
  935. </member>
  936. <member name="P:AForge.Math.Geometry.CoplanarPosit.AlternateEstimatedRotation">
  937. <summary>
  938. Alternate estimated pose recently found.
  939. </summary>
  940. <remarks><para>The property keeps alternate estimated pose found by the latest call to <see cref="M:AForge.Math.Geometry.CoplanarPosit.EstimatePose(AForge.Point[],AForge.Math.Matrix3x3@,AForge.Math.Vector3@)"/>.</para>
  941. <para>See also <see cref="P:AForge.Math.Geometry.CoplanarPosit.AlternateEstimatedTranslation"/> and <see cref="P:AForge.Math.Geometry.CoplanarPosit.AlternateEstimationError"/>.</para>
  942. </remarks>
  943. </member>
  944. <member name="P:AForge.Math.Geometry.CoplanarPosit.AlternateEstimatedTranslation">
  945. <summary>
  946. Alternated estimated translation recently found.
  947. </summary>
  948. <remarks><para>The property keeps alternate estimated translation found by the latest call to <see cref="M:AForge.Math.Geometry.CoplanarPosit.EstimatePose(AForge.Point[],AForge.Math.Matrix3x3@,AForge.Math.Vector3@)"/>.</para>
  949. <para>See also <see cref="P:AForge.Math.Geometry.CoplanarPosit.AlternateEstimatedRotation"/> and <see cref="P:AForge.Math.Geometry.CoplanarPosit.AlternateEstimationError"/>.</para>
  950. </remarks>
  951. </member>
  952. <member name="P:AForge.Math.Geometry.CoplanarPosit.AlternateEstimationError">
  953. <summary>
  954. Error of the alternate pose estimation.
  955. </summary>
  956. <remarks><para>The property keeps error of the alternate pose estimation, which is calculated as average
  957. error between real angles of the specified quadrilateral and angles of the quadrilateral which
  958. is a projection of the alternate pose estimation. The error is measured in degrees (angle).</para>
  959. </remarks>
  960. </member>
  961. <member name="P:AForge.Math.Geometry.CoplanarPosit.Model">
  962. <summary>
  963. Coordinates of the model points which pose should be estimated.
  964. </summary>
  965. </member>
  966. <member name="P:AForge.Math.Geometry.CoplanarPosit.FocalLength">
  967. <summary>
  968. Effective focal length of the camera used to capture the model.
  969. </summary>
  970. </member>
  971. <member name="M:AForge.Math.Geometry.CoplanarPosit.#ctor(AForge.Math.Vector3[],System.Single)">
  972. <summary>
  973. Initializes a new instance of the <see cref="T:AForge.Math.Geometry.Posit"/> class.
  974. </summary>
  975. <param name="model">Array of vectors containing coordinates of four real model's point.</param>
  976. <param name="focalLength">Effective focal length of the camera used to capture the model.</param>
  977. <exception cref="T:System.ArgumentException">The model must have 4 points.</exception>
  978. </member>
  979. <member name="M:AForge.Math.Geometry.CoplanarPosit.EstimatePose(AForge.Point[],AForge.Math.Matrix3x3@,AForge.Math.Vector3@)">
  980. <summary>
  981. Estimate pose of a model from it's projected 2D coordinates.
  982. </summary>
  983. <param name="points">4 2D points of the <see cref="P:AForge.Math.Geometry.CoplanarPosit.Model">model's</see> projection.</param>
  984. <param name="rotation">Gets best estimation of object's rotation.</param>
  985. <param name="translation">Gets best estimation of object's translation.</param>
  986. <exception cref="T:System.ArgumentException">4 points must be be given for pose estimation.</exception>
  987. <remarks><para>Because of the Coplanar POSIT algorithm's nature, it provides two pose estimations,
  988. which are valid from the algorithm's math point of view. For each pose an error is calculated,
  989. which specifies how good estimation fits to the specified real 2D coordinated. The method
  990. provides the best estimation through its output parameters <paramref name="rotation"/> and
  991. <paramref name="translation"/>. This may be enough for many of the pose estimation application.
  992. For those, who require checking the alternate pose estimation, it can be obtained using
  993. <see cref="P:AForge.Math.Geometry.CoplanarPosit.AlternateEstimatedRotation"/> and <see cref="P:AForge.Math.Geometry.CoplanarPosit.AlternateEstimatedTranslation"/> properties.
  994. The calculated error is provided for both estimations through <see cref="P:AForge.Math.Geometry.CoplanarPosit.BestEstimationError"/> and
  995. <see cref="P:AForge.Math.Geometry.CoplanarPosit.AlternateEstimationError"/> properties.</para>
  996. </remarks>
  997. </member>
  998. <member name="T:AForge.Math.Geometry.FlatAnglesOptimizer">
  999. <summary>
  1000. Shape optimizer, which removes obtuse angles (close to flat) from a shape.
  1001. </summary>
  1002. <remarks><para>This shape optimizing algorithm checks all adjacent edges of a shape
  1003. and substitutes any 2 edges with a single edge if angle between them is greater than
  1004. <see cref="P:AForge.Math.Geometry.FlatAnglesOptimizer.MaxAngleToKeep"/>. The algorithm makes sure there are not obtuse angles in
  1005. a shape, which are very close to flat line.</para>
  1006. <para>The shape optimizer does not optimize shapes to less than 3 points, so optimized
  1007. shape always will have at least 3 points.</para>
  1008. <para>
  1009. For example, the below circle shape comprised of 65 points, can be optimized to 10 points
  1010. by setting <see cref="P:AForge.Math.Geometry.FlatAnglesOptimizer.MaxAngleToKeep"/> to 160.<br />
  1011. <img src="img/math/flat_angles_optimizer.png" width="268" height="238" />
  1012. </para>
  1013. </remarks>
  1014. </member>
  1015. <member name="P:AForge.Math.Geometry.FlatAnglesOptimizer.MaxAngleToKeep">
  1016. <summary>
  1017. Maximum angle between adjacent edges to keep in a shape, [140, 180].
  1018. </summary>
  1019. <remarks><para>The property sets maximum angle between adjacent edges, which is kept
  1020. during optimization. All edges, which have a greater angle between them, are substituted
  1021. by a single edge.</para>
  1022. <para>Default value is set to <b>160</b>.</para></remarks>
  1023. </member>
  1024. <member name="M:AForge.Math.Geometry.FlatAnglesOptimizer.#ctor">
  1025. <summary>
  1026. Initializes a new instance of the <see cref="T:AForge.Math.Geometry.FlatAnglesOptimizer"/> class.
  1027. </summary>
  1028. </member>
  1029. <member name="M:AForge.Math.Geometry.FlatAnglesOptimizer.#ctor(System.Single)">
  1030. <summary>
  1031. Initializes a new instance of the <see cref="T:AForge.Math.Geometry.FlatAnglesOptimizer"/> class.
  1032. </summary>
  1033. <param name="maxAngleToKeep">Maximum acceptable angle between two edges of a shape (see <see cref="P:AForge.Math.Geometry.FlatAnglesOptimizer.MaxAngleToKeep"/>).</param>
  1034. </member>
  1035. <member name="M:AForge.Math.Geometry.FlatAnglesOptimizer.OptimizeShape(System.Collections.Generic.List{AForge.IntPoint})">
  1036. <summary>
  1037. Optimize specified shape.
  1038. </summary>
  1039. <param name="shape">Shape to be optimized.</param>
  1040. <returns>Returns final optimized shape, which may have reduced amount of points.</returns>
  1041. </member>
  1042. <member name="T:AForge.Math.Geometry.GeometryTools">
  1043. <summary>
  1044. Collection of some gemetry tool methods.
  1045. </summary>
  1046. </member>
  1047. <member name="M:AForge.Math.Geometry.GeometryTools.GetAngleBetweenVectors(AForge.Point,AForge.Point,AForge.Point)">
  1048. <summary>
  1049. Calculate angle between to vectors measured in [0, 180] degrees range.
  1050. </summary>
  1051. <param name="startPoint">Starting point of both vectors.</param>
  1052. <param name="vector1end">Ending point of the first vector.</param>
  1053. <param name="vector2end">Ending point of the second vector.</param>
  1054. <returns>Returns angle between specified vectors measured in degrees.</returns>
  1055. </member>
  1056. <member name="M:AForge.Math.Geometry.GeometryTools.GetAngleBetweenLines(AForge.Point,AForge.Point,AForge.Point,AForge.Point)">
  1057. <summary>
  1058. Calculate minimum angle between two lines measured in [0, 90] degrees range.
  1059. </summary>
  1060. <param name="a1">A point on the first line.</param>
  1061. <param name="a2">Another point on the first line.</param>
  1062. <param name="b1">A point on the second line.</param>
  1063. <param name="b2">Another point on the second line.</param>
  1064. <returns>Returns minimum angle between two lines.</returns>
  1065. <remarks><para><note>It is preferred to use <see cref="M:AForge.Math.Geometry.Line.GetAngleBetweenLines(AForge.Math.Geometry.Line)"/> if it is required to calculate angle
  1066. multiple times for one of the lines.</note></para></remarks>
  1067. <exception cref="T:System.ArgumentException"><paramref name="a1"/> and <paramref name="a2"/> are the same,
  1068. -OR- <paramref name="b1"/> and <paramref name="b2"/> are the same.</exception>
  1069. </member>
  1070. <member name="T:AForge.Math.Geometry.GrahamConvexHull">
  1071. <summary>
  1072. Graham scan algorithm for finding convex hull.
  1073. </summary>
  1074. <remarks><para>The class implements
  1075. <a href="http://en.wikipedia.org/wiki/Graham_scan">Graham scan</a> algorithm for finding convex hull
  1076. of a given set of points.</para>
  1077. <para>Sample usage:</para>
  1078. <code>
  1079. // generate some random points
  1080. Random rand = new Random( );
  1081. List&lt;IntPoint&gt; points = new List&lt;IntPoint&gt;( );
  1082. for ( int i = 0; i &lt; 10; i++ )
  1083. {
  1084. points.Add( new IntPoint(
  1085. rand.Next( 200 ) - 100,
  1086. rand.Next( 200 ) - 100 ) );
  1087. }
  1088. // find the convex hull
  1089. IConvexHullAlgorithm hullFinder = new GrahamConvexHull( );
  1090. List&lt;IntPoint&gt; hull = hullFinder.FindHull( points );
  1091. </code>
  1092. </remarks>
  1093. </member>
  1094. <member name="M:AForge.Math.Geometry.GrahamConvexHull.FindHull(System.Collections.Generic.List{AForge.IntPoint})">
  1095. <summary>
  1096. Find convex hull for the given set of points.
  1097. </summary>
  1098. <param name="points">Set of points to search convex hull for.</param>
  1099. <returns>Returns set of points, which form a convex hull for the given <paramref name="points"/>.
  1100. The first point in the list is the point with lowest X coordinate (and with lowest Y if there are
  1101. several points with the same X value). Points are provided in counter clockwise order
  1102. (<a href="http://en.wikipedia.org/wiki/Cartesian_coordinate_system">Cartesian
  1103. coordinate system</a>).</returns>
  1104. </member>
  1105. <member name="T:AForge.Math.Geometry.IConvexHullAlgorithm">
  1106. <summary>
  1107. Interface defining methods for algorithms, which search for convex hull of the specified points' set.
  1108. </summary>
  1109. <remarks><para>The interface defines a method, which should be implemented by different classes
  1110. performing convex hull search for specified set of points.</para>
  1111. <para><note>All algorithms, implementing this interface, should follow two rules for the found convex hull:
  1112. <list type="bullet">
  1113. <item>the first point in the returned list is the point with lowest X coordinate (and with lowest Y if
  1114. there are several points with the same X value);</item>
  1115. <item>points in the returned list are given in counter clockwise order
  1116. (<a href="http://en.wikipedia.org/wiki/Cartesian_coordinate_system">Cartesian
  1117. coordinate system</a>).</item>
  1118. </list>
  1119. </note></para>
  1120. </remarks>
  1121. </member>
  1122. <member name="M:AForge.Math.Geometry.IConvexHullAlgorithm.FindHull(System.Collections.Generic.List{AForge.IntPoint})">
  1123. <summary>
  1124. Find convex hull for the given set of points.
  1125. </summary>
  1126. <param name="points">Set of points to search convex hull for.</param>
  1127. <returns>Returns set of points, which form a convex hull for the given <paramref name="points"/>.</returns>
  1128. </member>
  1129. <member name="T:AForge.Math.Geometry.IShapeOptimizer">
  1130. <summary>
  1131. Interface for shape optimizing algorithms.
  1132. </summary>
  1133. <remarks><para>The interface defines set of methods, which should be implemented
  1134. by shape optimizing algorithms. These algorithms take input shape, which is defined
  1135. by a set of points (corners of convex hull, etc.), and remove some insignificant points from it,
  1136. which has little influence on the final shape's look.</para>
  1137. <para>The shape optimizing algorithms can be useful in conjunction with such algorithms
  1138. like convex hull searching, which usually may provide many hull points, where some
  1139. of them are insignificant and could be removed.</para>
  1140. <para>For additional details about shape optimizing algorithms, documentation of
  1141. particular algorithm should be studied.</para>
  1142. </remarks>
  1143. </member>
  1144. <member name="M:AForge.Math.Geometry.IShapeOptimizer.OptimizeShape(System.Collections.Generic.List{AForge.IntPoint})">
  1145. <summary>
  1146. Optimize specified shape.
  1147. </summary>
  1148. <param name="shape">Shape to be optimized.</param>
  1149. <returns>Returns final optimized shape, which may have reduced amount of points.</returns>
  1150. </member>
  1151. <member name="T:AForge.Math.Geometry.Line">
  1152. <summary>
  1153. The class encapsulates 2D line and provides some tool methods related to lines.
  1154. </summary>
  1155. <remarks><para>The class provides some methods which are related to lines:
  1156. angle between lines, distance to point, finding intersection point, etc.
  1157. </para>
  1158. <para>Generally, the equation of the line is y = <see cref="P:AForge.Math.Geometry.Line.Slope"/> * x +
  1159. <see cref="P:AForge.Math.Geometry.Line.Intercept"/>. However, when <see cref="P:AForge.Math.Geometry.Line.Slope"/> is an Infinity,
  1160. <see name="Intercept"/> would normally be meaningless, and it would be
  1161. impossible to distinguish the line x = 5 from the line x = -5. Therefore,
  1162. if <see cref="P:AForge.Math.Geometry.Line.Slope"/> is <see cref="F:System.Single.PositiveInfinity"/> or
  1163. <see cref="F:System.Single.NegativeInfinity"/>, the line's equation is instead
  1164. x = <see cref="P:AForge.Math.Geometry.Line.Intercept"/>.</para>
  1165. <para>Sample usage:</para>
  1166. <code>
  1167. // create a line
  1168. Line line = Line.FromPoints( new Point( 0, 0 ), new Point( 3, 4 ) );
  1169. // check if it is vertical or horizontal
  1170. if ( line.IsVertical || line.IsHorizontal )
  1171. {
  1172. // ...
  1173. }
  1174. // get intersection point with another line
  1175. Point intersection = line.GetIntersectionWith(
  1176. Line.FromPoints( new Point( 3, 0 ), new Point( 0, 4 ) ) );
  1177. </code>
  1178. </remarks>
  1179. </member>
  1180. <member name="P:AForge.Math.Geometry.Line.IsVertical">
  1181. <summary>
  1182. Checks if the line vertical or not.
  1183. </summary>
  1184. </member>
  1185. <member name="P:AForge.Math.Geometry.Line.IsHorizontal">
  1186. <summary>
  1187. Checks if the line horizontal or not.
  1188. </summary>
  1189. </member>
  1190. <member name="P:AForge.Math.Geometry.Line.Slope">
  1191. <summary>
  1192. Gets the slope of the line.
  1193. </summary>
  1194. </member>
  1195. <member name="P:AForge.Math.Geometry.Line.Intercept">
  1196. <summary>
  1197. If not <see cref="P:AForge.Math.Geometry.Line.IsVertical"/>, gets the Line's Y-intercept.
  1198. If <see cref="P:AForge.Math.Geometry.Line.IsVertical"/> gets the line's X-intercept.
  1199. </summary>
  1200. </member>
  1201. <member name="M:AForge.Math.Geometry.Line.FromPoints(AForge.Point,AForge.Point)">
  1202. <summary>
  1203. Creates a <see cref="T:AForge.Math.Geometry.Line"/> that goes through the two specified points.
  1204. </summary>
  1205. <param name="point1">One point on the line.</param>
  1206. <param name="point2">Another point on the line.</param>
  1207. <returns>Returns a <see cref="T:AForge.Math.Geometry.Line"/> representing the line between <paramref name="point1"/>
  1208. and <paramref name="point2"/>.</returns>
  1209. <exception cref="T:System.ArgumentException">Thrown if the two points are the same.</exception>
  1210. </member>
  1211. <member name="M:AForge.Math.Geometry.Line.FromSlopeIntercept(System.Single,System.Single)">
  1212. <summary>
  1213. Creates a <see cref="T:AForge.Math.Geometry.Line"/> with the specified slope and intercept.
  1214. </summary>
  1215. <param name="slope">The slope of the line</param>
  1216. <param name="intercept">The Y-intercept of the line, unless the slope is an
  1217. infinity, in which case the line's equation is "x = intercept" instead.</param>
  1218. <returns>Returns a <see cref="T:AForge.Math.Geometry.Line"/> representing the specified line.</returns>
  1219. <remarks><para>The construction here follows the same rules as for the rest of this class.
  1220. Most lines are expressed as y = slope * x + intercept. Vertical lines, however, are
  1221. x = intercept. This is indicated by <see cref="P:AForge.Math.Geometry.Line.IsVertical"/> being true or by
  1222. <see cref="P:AForge.Math.Geometry.Line.Slope"/> returning <see cref="F:System.Single.PositiveInfinity"/> or
  1223. <see cref="F:System.Single.NegativeInfinity"/>.</para></remarks>
  1224. </member>
  1225. <member name="M:AForge.Math.Geometry.Line.FromRTheta(System.Single,System.Single)">
  1226. <summary>
  1227. Constructs a <see cref="T:AForge.Math.Geometry.Line"/> from a radius and an angle (in degrees).
  1228. </summary>
  1229. <param name="radius">The minimum distance from the line to the origin.</param>
  1230. <param name="theta">The angle of the vector from the origin to the line.</param>
  1231. <returns>Returns a <see cref="T:AForge.Math.Geometry.Line"/> representing the specified line.</returns>
  1232. <remarks><para><paramref name="radius"/> is the minimum distance from the origin
  1233. to the line, and <paramref name="theta"/> is the counterclockwise rotation from
  1234. the positive X axis to the vector through the origin and normal to the line.</para>
  1235. <para>This means that if <paramref name="theta"/> is in [0,180), the point on the line
  1236. closest to the origin is on the positive X or Y axes, or in quadrants I or II. Likewise,
  1237. if <paramref name="theta"/> is in [180,360), the point on the line closest to the
  1238. origin is on the negative X or Y axes, or in quadrants III or IV.</para></remarks>
  1239. <exception cref="T:System.ArgumentOutOfRangeException">Thrown if radius is negative.</exception>
  1240. </member>
  1241. <member name="M:AForge.Math.Geometry.Line.FromPointTheta(AForge.Point,System.Single)">
  1242. <summary>
  1243. Constructs a <see cref="T:AForge.Math.Geometry.Line"/> from a point and an angle (in degrees).
  1244. </summary>
  1245. <param name="point">The minimum distance from the line to the origin.</param>
  1246. <param name="theta">The angle of the normal vector from the origin to the line.</param>
  1247. <remarks><para><paramref name="theta"/> is the counterclockwise rotation from
  1248. the positive X axis to the vector through the origin and normal to the line.</para>
  1249. <para>This means that if <paramref name="theta"/> is in [0,180), the point on the line
  1250. closest to the origin is on the positive X or Y axes, or in quadrants I or II. Likewise,
  1251. if <paramref name="theta"/> is in [180,360), the point on the line closest to the
  1252. origin is on the negative X or Y axes, or in quadrants III or IV.</para></remarks>
  1253. <returns>Returns a <see cref="T:AForge.Math.Geometry.Line"/> representing the specified line.</returns>
  1254. </member>
  1255. <member name="M:AForge.Math.Geometry.Line.GetAngleBetweenLines(AForge.Math.Geometry.Line)">
  1256. <summary>
  1257. Calculate minimum angle between this line and the specified line measured in [0, 90] degrees range.
  1258. </summary>
  1259. <param name="secondLine">The line to find angle between.</param>
  1260. <returns>Returns minimum angle between lines.</returns>
  1261. </member>
  1262. <member name="M:AForge.Math.Geometry.Line.GetIntersectionWith(AForge.Math.Geometry.Line)">
  1263. <summary>
  1264. Finds intersection point with the specified line.
  1265. </summary>
  1266. <param name="secondLine">Line to find intersection with.</param>
  1267. <returns>Returns intersection point with the specified line, or
  1268. <see langword="null"/> if the lines are parallel and distinct.</returns>
  1269. <exception cref="T:System.InvalidOperationException">Thrown if the specified line is the same line as this line.</exception>
  1270. </member>
  1271. <member name="M:AForge.Math.Geometry.Line.GetIntersectionWith(AForge.Math.Geometry.LineSegment)">
  1272. <summary>
  1273. Finds, provided it exists, the intersection point with the specified <see cref="T:AForge.Math.Geometry.LineSegment"/>.
  1274. </summary>
  1275. <param name="other"><see cref="T:AForge.Math.Geometry.LineSegment"/> to find intersection with.</param>
  1276. <returns>Returns intersection point with the specified <see cref="T:AForge.Math.Geometry.LineSegment"/>, or <see langword="null"/>,
  1277. if this line does not intersect with the segment.</returns>
  1278. <remarks><para>If the line and segment do not intersect, the method returns <see langword="null"/>.
  1279. If the line and segment share multiple points, the method throws an <see cref="T:System.InvalidOperationException"/>.
  1280. </para></remarks>
  1281. <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="other"/> is a portion
  1282. of this line.</exception>
  1283. </member>
  1284. <member name="M:AForge.Math.Geometry.Line.DistanceToPoint(AForge.Point)">
  1285. <summary>
  1286. Calculate Euclidean distance between a point and a line.
  1287. </summary>
  1288. <param name="point">The point to calculate distance to.</param>
  1289. <returns>Returns the Euclidean distance between this line and the specified point. Unlike
  1290. <see cref="M:AForge.Math.Geometry.LineSegment.DistanceToPoint(AForge.Point)"/>, this returns the distance from the infinite line. (0,0) is 0 units
  1291. from the line defined by (0,5) and (0,8), but is 5 units from the segment with those endpoints.</returns>
  1292. </member>
  1293. <member name="M:AForge.Math.Geometry.Line.op_Equality(AForge.Math.Geometry.Line,AForge.Math.Geometry.Line)">
  1294. <summary>
  1295. Equality operator - checks if two lines have equal parameters.
  1296. </summary>
  1297. <param name="line1">First line to check.</param>
  1298. <param name="line2">Second line to check.</param>
  1299. <returns>Returns <see langword="true"/> if parameters of specified
  1300. lines are equal.</returns>
  1301. </member>
  1302. <member name="M:AForge.Math.Geometry.Line.op_Inequality(AForge.Math.Geometry.Line,AForge.Math.Geometry.Line)">
  1303. <summary>
  1304. Inequality operator - checks if two lines have different parameters.
  1305. </summary>
  1306. <param name="line1">First line to check.</param>
  1307. <param name="line2">Second line to check.</param>
  1308. <returns>Returns <see langword="true"/> if parameters of specified
  1309. lines are not equal.</returns>
  1310. </member>
  1311. <member name="M:AForge.Math.Geometry.Line.Equals(System.Object)">
  1312. <summary>
  1313. Check if this instance of <see cref="T:AForge.Math.Geometry.Line"/> equals to the specified one.
  1314. </summary>
  1315. <param name="obj">Another line to check equalty to.</param>
  1316. <returns>Return <see langword="true"/> if objects are equal.</returns>
  1317. </member>
  1318. <member name="M:AForge.Math.Geometry.Line.GetHashCode">
  1319. <summary>
  1320. Get hash code for this instance.
  1321. </summary>
  1322. <returns>Returns the hash code for this instance.</returns>
  1323. </member>
  1324. <member name="M:AForge.Math.Geometry.Line.ToString">
  1325. <summary>
  1326. Get string representation of the class.
  1327. </summary>
  1328. <returns>Returns string, which contains values of the like in readable form.</returns>
  1329. </member>
  1330. <member name="T:AForge.Math.Geometry.LineStraighteningOptimizer">
  1331. <summary>
  1332. Shape optimizer, which removes points within close range to shapes' body.
  1333. </summary>
  1334. <remarks><para>This shape optimizing algorithm checks all points of the shape and
  1335. removes those of them, which are in a certain distance to a line connecting previous and
  1336. the next points. In other words, it goes through all adjacent edges of a shape and checks
  1337. what is the distance between the corner formed by these two edges and a possible edge, which
  1338. could be used as substitution of these edges. If the distance is equal or smaller than
  1339. the <see cref="P:AForge.Math.Geometry.LineStraighteningOptimizer.MaxDistanceToRemove">specified value</see>, then the point is removed,
  1340. so the two edges are substituted by a single one. When optimization process is done,
  1341. the new shape has reduced amount of points and none of the removed points are further away
  1342. from the new shape than the specified limit.</para>
  1343. <para>The shape optimizer does not optimize shapes to less than 3 points, so optimized
  1344. shape always will have at least 3 points.</para>
  1345. <para>
  1346. For example, the below circle shape comprised of 65 points, can be optimized to 8 points
  1347. by setting <see cref="P:AForge.Math.Geometry.LineStraighteningOptimizer.MaxDistanceToRemove"/> to 10.<br />
  1348. <img src="img/math/line_straightening_optimizer.png" width="268" height="238" />
  1349. </para>
  1350. </remarks>
  1351. </member>
  1352. <member name="P:AForge.Math.Geometry.LineStraighteningOptimizer.MaxDistanceToRemove">
  1353. <summary>
  1354. Maximum allowed distance between removed points and optimized shape, [0, ∞).
  1355. </summary>
  1356. <remarks><para>The property sets maximum allowed distance between points removed from original
  1357. shape and optimized shape - none of the removed points are further away
  1358. from the new shape than the specified limit.
  1359. </para>
  1360. <para>Default value is set to <b>5</b>.</para></remarks>
  1361. </member>
  1362. <member name="M:AForge.Math.Geometry.LineStraighteningOptimizer.#ctor">
  1363. <summary>
  1364. Initializes a new instance of the <see cref="T:AForge.Math.Geometry.LineStraighteningOptimizer"/> class.
  1365. </summary>
  1366. </member>
  1367. <member name="M:AForge.Math.Geometry.LineStraighteningOptimizer.#ctor(System.Single)">
  1368. <summary>
  1369. Initializes a new instance of the <see cref="T:AForge.Math.Geometry.LineStraighteningOptimizer"/> class.
  1370. </summary>
  1371. <param name="maxDistanceToRemove">Maximum allowed distance between removed points
  1372. and optimized shape (see <see cref="P:AForge.Math.Geometry.LineStraighteningOptimizer.MaxDistanceToRemove"/>).</param>
  1373. </member>
  1374. <member name="M:AForge.Math.Geometry.LineStraighteningOptimizer.OptimizeShape(System.Collections.Generic.List{AForge.IntPoint})">
  1375. <summary>
  1376. Optimize specified shape.
  1377. </summary>
  1378. <param name="shape">Shape to be optimized.</param>
  1379. <returns>Returns final optimized shape, which may have reduced amount of points.</returns>
  1380. </member>
  1381. <member name="T:AForge.Math.Geometry.LineSegment">
  1382. <summary>
  1383. The class encapsulates 2D line segment and provides some tool methods related to lines.
  1384. </summary>
  1385. <remarks><para>The class provides some methods which are related to line segments:
  1386. distance to point, finding intersection point, etc.
  1387. </para>
  1388. <para>A line segment may be converted to a <see cref="T:AForge.Math.Geometry.Line"/>.</para>
  1389. <para>Sample usage:</para>
  1390. <code>
  1391. // create a segment
  1392. LineSegment segment = new LineSegment( new Point( 0, 0 ), new Point( 3, 4 ) );
  1393. // get segment's length
  1394. float length = segment.Length;
  1395. // get intersection point with a line
  1396. Point? intersection = segment.GetIntersectionWith(
  1397. new Line( new Point( -3, 8 ), new Point( 0, 4 ) ) );
  1398. </code>
  1399. </remarks>
  1400. </member>
  1401. <member name="P:AForge.Math.Geometry.LineSegment.Start">
  1402. <summary>
  1403. Start point of the line segment.
  1404. </summary>
  1405. </member>
  1406. <member name="P:AForge.Math.Geometry.LineSegment.End">
  1407. <summary>
  1408. End point of the line segment.
  1409. </summary>
  1410. </member>
  1411. <member name="P:AForge.Math.Geometry.LineSegment.Length">
  1412. <summary>
  1413. Get segment's length - Euclidean distance between its <see cref="P:AForge.Math.Geometry.LineSegment.Start"/> and <see cref="P:AForge.Math.Geometry.LineSegment.End"/> points.
  1414. </summary>
  1415. </member>
  1416. <member name="M:AForge.Math.Geometry.LineSegment.#ctor(AForge.Point,AForge.Point)">
  1417. <summary>
  1418. Initializes a new instance of the <see cref="T:AForge.Math.Geometry.LineSegment"/> class.
  1419. </summary>
  1420. <param name="start">Segment's start point.</param>
  1421. <param name="end">Segment's end point.</param>
  1422. <exception cref="T:System.ArgumentException">Thrown if the two points are the same.</exception>
  1423. </member>
  1424. <member name="M:AForge.Math.Geometry.LineSegment.op_Explicit(AForge.Math.Geometry.LineSegment)~AForge.Math.Geometry.Line">
  1425. <summary>
  1426. Converts this <see cref="T:AForge.Math.Geometry.LineSegment"/> to a <see cref="T:AForge.Math.Geometry.Line"/> by discarding
  1427. its endpoints and extending it infinitely in both directions.
  1428. </summary>
  1429. <param name="segment">The segment to convert to a <see cref="T:AForge.Math.Geometry.Line"/>.</param>
  1430. <returns>Returns a <see cref="T:AForge.Math.Geometry.Line"/> that contains this <paramref name="segment"/>.</returns>
  1431. </member>
  1432. <member name="M:AForge.Math.Geometry.LineSegment.DistanceToPoint(AForge.Point)">
  1433. <summary>
  1434. Calculate Euclidean distance between a point and a finite line segment.
  1435. </summary>
  1436. <param name="point">The point to calculate the distance to.</param>
  1437. <returns>Returns the Euclidean distance between this line segment and the specified point. Unlike
  1438. <see cref="M:AForge.Math.Geometry.Line.DistanceToPoint(AForge.Point)"/>, this returns the distance from the finite segment. (0,0) is 5 units
  1439. from the segment (0,5)-(0,8), but is 0 units from the line through those points.</returns>
  1440. </member>
  1441. <member name="M:AForge.Math.Geometry.LineSegment.GetIntersectionWith(AForge.Math.Geometry.LineSegment)">
  1442. <summary>
  1443. Finds, provided it exists, the intersection point with the specified <see cref="T:AForge.Math.Geometry.LineSegment"/>.
  1444. </summary>
  1445. <param name="other"><see cref="T:AForge.Math.Geometry.LineSegment"/> to find intersection with.</param>
  1446. <returns>Returns intersection point with the specified <see cref="T:AForge.Math.Geometry.LineSegment"/>, or <see langword="null"/>, if
  1447. the two segments do not intersect.</returns>
  1448. <remarks><para>If the two segments do not intersect, the method returns <see langword="null"/>. If the two
  1449. segments share multiple points, this throws an <see cref="T:System.InvalidOperationException"/>.
  1450. </para></remarks>
  1451. <exception cref="T:System.InvalidOperationException">Thrown if the segments overlap - if they have
  1452. multiple points in common.</exception>
  1453. </member>
  1454. <member name="M:AForge.Math.Geometry.LineSegment.GetIntersectionWith(AForge.Math.Geometry.Line)">
  1455. <summary>
  1456. Finds, provided it exists, the intersection point with the specified <see cref="T:AForge.Math.Geometry.Line"/>.
  1457. </summary>
  1458. <param name="other"><see cref="T:AForge.Math.Geometry.Line"/> to find intersection with.</param>
  1459. <returns>Returns intersection point with the specified <see cref="T:AForge.Math.Geometry.Line"/>, or <see langword="null"/>, if
  1460. the line does not intersect with this segment.</returns>
  1461. <remarks><para>If the line and the segment do not intersect, the method returns <see langword="null"/>. If the line
  1462. and the segment share multiple points, the method throws an <see cref="T:System.InvalidOperationException"/>.
  1463. </para></remarks>
  1464. <exception cref="T:System.InvalidOperationException">Thrown if this segment is a portion of
  1465. <paramref name="other"/> line.</exception>
  1466. </member>
  1467. <member name="M:AForge.Math.Geometry.LineSegment.op_Equality(AForge.Math.Geometry.LineSegment,AForge.Math.Geometry.LineSegment)">
  1468. <summary>
  1469. Equality operator - checks if two line segments have equal parameters.
  1470. </summary>
  1471. <param name="line1">First line segment to check.</param>
  1472. <param name="line2">Second line segment to check.</param>
  1473. <returns>Returns <see langword="true"/> if parameters of specified
  1474. line segments are equal.</returns>
  1475. </member>
  1476. <member name="M:AForge.Math.Geometry.LineSegment.op_Inequality(AForge.Math.Geometry.LineSegment,AForge.Math.Geometry.LineSegment)">
  1477. <summary>
  1478. Inequality operator - checks if two lines have different parameters.
  1479. </summary>
  1480. <param name="line1">First line segment to check.</param>
  1481. <param name="line2">Second line segment to check.</param>
  1482. <returns>Returns <see langword="true"/> if parameters of specified
  1483. line segments are not equal.</returns>
  1484. </member>
  1485. <member name="M:AForge.Math.Geometry.LineSegment.Equals(System.Object)">
  1486. <summary>
  1487. Check if this instance of <see cref="T:AForge.Math.Geometry.LineSegment"/> equals to the specified one.
  1488. </summary>
  1489. <param name="obj">Another line segment to check equalty to.</param>
  1490. <returns>Return <see langword="true"/> if objects are equal.</returns>
  1491. </member>
  1492. <member name="M:AForge.Math.Geometry.LineSegment.GetHashCode">
  1493. <summary>
  1494. Get hash code for this instance.
  1495. </summary>
  1496. <returns>Returns the hash code for this instance.</returns>
  1497. </member>
  1498. <member name="M:AForge.Math.Geometry.LineSegment.ToString">
  1499. <summary>
  1500. Get string representation of the class.
  1501. </summary>
  1502. <returns>Returns string, which contains values of the like in readable form.</returns>
  1503. </member>
  1504. <member name="T:AForge.Math.Geometry.PointsCloud">
  1505. <summary>
  1506. Set of tools for processing collection of points in 2D space.
  1507. </summary>
  1508. <remarks><para>The static class contains set of routines, which provide different
  1509. operations with collection of points in 2D space. For example, finding the
  1510. furthest point from a specified point or line.</para>
  1511. <para>Sample usage:</para>
  1512. <code>
  1513. // create points' list
  1514. List&lt;IntPoint&gt; points = new List&lt;IntPoint&gt;( );
  1515. points.Add( new IntPoint( 10, 10 ) );
  1516. points.Add( new IntPoint( 20, 15 ) );
  1517. points.Add( new IntPoint( 15, 30 ) );
  1518. points.Add( new IntPoint( 40, 12 ) );
  1519. points.Add( new IntPoint( 30, 20 ) );
  1520. // get furthest point from the specified point
  1521. IntPoint p1 = PointsCloud.GetFurthestPoint( points, new IntPoint( 15, 15 ) );
  1522. Console.WriteLine( p1.X + ", " + p1.Y );
  1523. // get furthest point from line
  1524. IntPoint p2 = PointsCloud.GetFurthestPointFromLine( points,
  1525. new IntPoint( 50, 0 ), new IntPoint( 0, 50 ) );
  1526. Console.WriteLine( p2.X + ", " + p2.Y );
  1527. </code>
  1528. </remarks>
  1529. </member>
  1530. <member name="M:AForge.Math.Geometry.PointsCloud.Shift(System.Collections.Generic.IList{AForge.IntPoint},AForge.IntPoint)">
  1531. <summary>
  1532. Shift cloud by adding specified value to all points in the collection.
  1533. </summary>
  1534. <param name="cloud">Collection of points to shift their coordinates.</param>
  1535. <param name="shift">Point to shift by.</param>
  1536. </member>
  1537. <member name="M:AForge.Math.Geometry.PointsCloud.GetBoundingRectangle(System.Collections.Generic.IEnumerable{AForge.IntPoint},AForge.IntPoint@,AForge.IntPoint@)">
  1538. <summary>
  1539. Get bounding rectangle of the specified list of points.
  1540. </summary>
  1541. <param name="cloud">Collection of points to get bounding rectangle for.</param>
  1542. <param name="minXY">Point comprised of smallest X and Y coordinates.</param>
  1543. <param name="maxXY">Point comprised of biggest X and Y coordinates.</param>
  1544. </member>
  1545. <member name="M:AForge.Math.Geometry.PointsCloud.GetCenterOfGravity(System.Collections.Generic.IEnumerable{AForge.IntPoint})">
  1546. <summary>
  1547. Get center of gravity for the specified list of points.
  1548. </summary>
  1549. <param name="cloud">List of points to calculate center of gravity for.</param>
  1550. <returns>Returns center of gravity (mean X-Y values) for the specified list of points.</returns>
  1551. </member>
  1552. <member name="M:AForge.Math.Geometry.PointsCloud.GetFurthestPoint(System.Collections.Generic.IEnumerable{AForge.IntPoint},AForge.IntPoint)">
  1553. <summary>
  1554. Find furthest point from the specified point.
  1555. </summary>
  1556. <param name="cloud">Collection of points to search furthest point in.</param>
  1557. <param name="referencePoint">The point to search furthest point from.</param>
  1558. <returns>Returns a point, which is the furthest away from the <paramref name="referencePoint"/>.</returns>
  1559. </member>
  1560. <member name="M:AForge.Math.Geometry.PointsCloud.GetFurthestPointsFromLine(System.Collections.Generic.IEnumerable{AForge.IntPoint},AForge.IntPoint,AForge.IntPoint,AForge.IntPoint@,AForge.IntPoint@)">
  1561. <summary>
  1562. Find two furthest points from the specified line.
  1563. </summary>
  1564. <param name="cloud">Collection of points to search furthest points in.</param>
  1565. <param name="linePoint1">First point forming the line.</param>
  1566. <param name="linePoint2">Second point forming the line.</param>
  1567. <param name="furthestPoint1">First found furthest point.</param>
  1568. <param name="furthestPoint2">Second found furthest point (which is on the
  1569. opposite side from the line compared to the <paramref name="furthestPoint1"/>);</param>
  1570. <remarks><para>The method finds two furthest points from the specified line,
  1571. where one point is on one side from the line and the second point is on
  1572. another side from the line.</para></remarks>
  1573. </member>
  1574. <member name="M:AForge.Math.Geometry.PointsCloud.GetFurthestPointsFromLine(System.Collections.Generic.IEnumerable{AForge.IntPoint},AForge.IntPoint,AForge.IntPoint,AForge.IntPoint@,System.Single@,AForge.IntPoint@,System.Single@)">
  1575. <summary>
  1576. Find two furthest points from the specified line.
  1577. </summary>
  1578. <param name="cloud">Collection of points to search furthest points in.</param>
  1579. <param name="linePoint1">First point forming the line.</param>
  1580. <param name="linePoint2">Second point forming the line.</param>
  1581. <param name="furthestPoint1">First found furthest point.</param>
  1582. <param name="distance1">Distance between the first found point and the given line.</param>
  1583. <param name="furthestPoint2">Second found furthest point (which is on the
  1584. opposite side from the line compared to the <paramref name="furthestPoint1"/>);</param>
  1585. <param name="distance2">Distance between the second found point and the given line.</param>
  1586. <remarks><para>The method finds two furthest points from the specified line,
  1587. where one point is on one side from the line and the second point is on
  1588. another side from the line.</para></remarks>
  1589. </member>
  1590. <member name="M:AForge.Math.Geometry.PointsCloud.GetFurthestPointFromLine(System.Collections.Generic.IEnumerable{AForge.IntPoint},AForge.IntPoint,AForge.IntPoint)">
  1591. <summary>
  1592. Find the furthest point from the specified line.
  1593. </summary>
  1594. <param name="cloud">Collection of points to search furthest point in.</param>
  1595. <param name="linePoint1">First point forming the line.</param>
  1596. <param name="linePoint2">Second point forming the line.</param>
  1597. <returns>Returns a point, which is the furthest away from the
  1598. specified line.</returns>
  1599. <remarks><para>The method finds the furthest point from the specified line.
  1600. Unlike the <see cref="M:AForge.Math.Geometry.PointsCloud.GetFurthestPointsFromLine(System.Collections.Generic.IEnumerable{AForge.IntPoint},AForge.IntPoint,AForge.IntPoint,AForge.IntPoint@,AForge.IntPoint@)"/>
  1601. method, this method find only one point, which is the furthest away from the line
  1602. regardless of side from the line.</para></remarks>
  1603. </member>
  1604. <member name="M:AForge.Math.Geometry.PointsCloud.GetFurthestPointFromLine(System.Collections.Generic.IEnumerable{AForge.IntPoint},AForge.IntPoint,AForge.IntPoint,System.Single@)">
  1605. <summary>
  1606. Find the furthest point from the specified line.
  1607. </summary>
  1608. <param name="cloud">Collection of points to search furthest points in.</param>
  1609. <param name="linePoint1">First point forming the line.</param>
  1610. <param name="linePoint2">Second point forming the line.</param>
  1611. <param name="distance">Distance between the furthest found point and the given line.</param>
  1612. <returns>Returns a point, which is the furthest away from the
  1613. specified line.</returns>
  1614. <remarks><para>The method finds the furthest point from the specified line.
  1615. Unlike the <see cref="M:AForge.Math.Geometry.PointsCloud.GetFurthestPointsFromLine(System.Collections.Generic.IEnumerable{AForge.IntPoint},AForge.IntPoint,AForge.IntPoint,AForge.IntPoint@,System.Single@,AForge.IntPoint@,System.Single@)"/>
  1616. method, this method find only one point, which is the furthest away from the line
  1617. regardless of side from the line.</para></remarks>
  1618. </member>
  1619. <member name="P:AForge.Math.Geometry.PointsCloud.QuadrilateralRelativeDistortionLimit">
  1620. <summary>
  1621. Relative distortion limit allowed for quadrilaterals, [0.0, 0.25].
  1622. </summary>
  1623. <remarks><para>The value of this property is used to calculate distortion limit used by
  1624. <see cref="M:AForge.Math.Geometry.PointsCloud.FindQuadrilateralCorners(System.Collections.Generic.IEnumerable{AForge.IntPoint})"/>, when processing potential corners and making decision
  1625. if the provided points form a quadrilateral or a triangle. The distortion limit is
  1626. calculated as:
  1627. <code lang="none">
  1628. distrtionLimit = RelativeDistortionLimit * ( W * H ) / 2,
  1629. </code>
  1630. where <b>W</b> and <b>H</b> are width and height of the "points cloud" passed to the
  1631. <see cref="M:AForge.Math.Geometry.PointsCloud.FindQuadrilateralCorners(System.Collections.Generic.IEnumerable{AForge.IntPoint})"/>.
  1632. </para>
  1633. <para>To explain the idea behind distortion limit, let’s suppose that quadrilateral finder routine found
  1634. the next candidates for corners:<br />
  1635. <img src="img/math/potential_corners.png" width="151" height="128" /><br />
  1636. As we can see on the above picture, the shape there potentially can be a triangle, but not quadrilateral
  1637. (suppose that points list comes from a hand drawn picture or acquired from camera, so some
  1638. inaccuracy may exist). It may happen that the <b>D</b> point is just a distortion (noise, etc).
  1639. So the <see cref="M:AForge.Math.Geometry.PointsCloud.FindQuadrilateralCorners(System.Collections.Generic.IEnumerable{AForge.IntPoint})"/> check what is the distance between a potential corner
  1640. (D in this case) and a line connecting two adjacent points (AB in this case). If the distance is smaller
  1641. then the distortion limit, then the point may be rejected, so the shape turns into triangle.
  1642. </para>
  1643. <para>An exception is the case when both <b>C</b> and <b>D</b> points are very close to the <b>AB</b> line,
  1644. so both their distances are less than distortion limit. In this case both points will be accepted as corners -
  1645. the shape is just a flat quadrilateral.</para>
  1646. <para>Default value is set to <b>0.1</b>.</para>
  1647. </remarks>
  1648. </member>
  1649. <member name="M:AForge.Math.Geometry.PointsCloud.FindQuadrilateralCorners(System.Collections.Generic.IEnumerable{AForge.IntPoint})">
  1650. <summary>
  1651. Find corners of quadrilateral or triangular area, which contains the specified collection of points.
  1652. </summary>
  1653. <param name="cloud">Collection of points to search quadrilateral for.</param>
  1654. <returns>Returns a list of 3 or 4 points, which are corners of the quadrilateral or
  1655. triangular area filled by specified collection of point. The first point in the list
  1656. is the point with lowest X coordinate (and with lowest Y if there are several points
  1657. with the same X value). The corners are provided in counter clockwise order
  1658. (<a href="http://en.wikipedia.org/wiki/Cartesian_coordinate_system">Cartesian
  1659. coordinate system</a>).</returns>
  1660. <remarks><para>The method makes an assumption that the specified collection of points
  1661. form some sort of quadrilateral/triangular area. With this assumption it tries to find corners
  1662. of the area.</para>
  1663. <para><note>The method does not search for <b>bounding</b> quadrilateral/triangular area,
  1664. where all specified points are <b>inside</b> of the found quadrilateral/triangle. Some of the
  1665. specified points potentially may be outside of the found quadrilateral/triangle, since the
  1666. method takes corners only from the specified collection of points, but does not calculate such
  1667. to form true bounding quadrilateral/triangle.</note></para>
  1668. <para>See <see cref="P:AForge.Math.Geometry.PointsCloud.QuadrilateralRelativeDistortionLimit"/> property for additional information.</para>
  1669. </remarks>
  1670. </member>
  1671. <member name="T:AForge.Math.Geometry.Posit">
  1672. <summary>
  1673. 3D pose estimation algorithm.
  1674. </summary>
  1675. <remarks><para>The class implements an algorithm for 3D object's pose estimation from it's
  1676. 2D coordinates obtained by perspective projection, when the object is described none coplanar points.
  1677. The idea of the implemented math and algorithm is described in "Model-Based Object Pose in 25
  1678. Lines of Code" paper written by Daniel F. DeMenthon and Larry S. Davis (the implementation of
  1679. the algorithm is almost 1 to 1 translation of the pseudo code given by the paper, so should
  1680. be easy to follow).</para>
  1681. <para><note>At this point the implementation works only with models described by 4 points, which is
  1682. the minimum number of points enough for 3D pose estimation.</note></para>
  1683. <para><note>The 4 model's point <b>must not be coplanar</b>, i.e. must not reside all within
  1684. same planer. See <see cref="T:AForge.Math.Geometry.CoplanarPosit"/> for coplanar case.</note></para>
  1685. <para>Read <a href="http://www.aforgenet.com/articles/posit/">3D Pose Estimation</a> article for
  1686. additional information and samples.</para>
  1687. <para>Sample usage:</para>
  1688. <code>
  1689. // points of real object - model
  1690. Vector3[] positObject = new Vector3[4]
  1691. {
  1692. new Vector3( 28, 28, -28 ),
  1693. new Vector3( -28, 28, -28 ),
  1694. new Vector3( 28, -28, -28 ),
  1695. new Vector3( 28, 28, 28 ),
  1696. };
  1697. // focal length of camera used to capture the object
  1698. float focalLength = 640; // depends on your camera or projection system
  1699. // initialize POSIT object
  1700. Posit posit = new Posit( positObject, focalLength );
  1701. // 2D points of te object - projection
  1702. AForge.Point[] projectedPoints = new AForge.Point[4]
  1703. {
  1704. new AForge.Point( -4, 29 ),
  1705. new AForge.Point( -180, 86 ),
  1706. new AForge.Point( -5, -102 ),
  1707. new AForge.Point( 76, 137 ),
  1708. };
  1709. // estimate pose
  1710. Matrix3x3 rotationMatrix;
  1711. Vector3 translationVector;
  1712. posit.EstimatePose( projectedPoints,
  1713. out rotationMatrix, out translationVector );
  1714. </code>
  1715. </remarks>
  1716. <seealso cref="T:AForge.Math.Geometry.CoplanarPosit"/>
  1717. </member>
  1718. <member name="P:AForge.Math.Geometry.Posit.Model">
  1719. <summary>
  1720. Coordinates of the model points which pose should be estimated.
  1721. </summary>
  1722. </member>
  1723. <member name="P:AForge.Math.Geometry.Posit.FocalLength">
  1724. <summary>
  1725. Effective focal length of the camera used to capture the model.
  1726. </summary>
  1727. </member>
  1728. <member name="M:AForge.Math.Geometry.Posit.#ctor(AForge.Math.Vector3[],System.Single)">
  1729. <summary>
  1730. Initializes a new instance of the <see cref="T:AForge.Math.Geometry.Posit"/> class.
  1731. </summary>
  1732. <param name="model">Array of vectors containing coordinates of four real model's point (points
  1733. must not be on the same plane).</param>
  1734. <param name="focalLength">Effective focal length of the camera used to capture the model.</param>
  1735. <exception cref="T:System.ArgumentException">The model must have 4 points.</exception>
  1736. </member>
  1737. <member name="M:AForge.Math.Geometry.Posit.EstimatePose(AForge.Point[],AForge.Math.Matrix3x3@,AForge.Math.Vector3@)">
  1738. <summary>
  1739. Estimate pose of a model from it's projected 2D coordinates.
  1740. </summary>
  1741. <param name="points">4 2D points of the <see cref="P:AForge.Math.Geometry.Posit.Model">model's</see> projection.</param>
  1742. <param name="rotation">Gets object's rotation.</param>
  1743. <param name="translation">Gets object's translation.</param>
  1744. <exception cref="T:System.ArgumentException">4 points must be be given for pose estimation.</exception>
  1745. </member>
  1746. <member name="T:AForge.Math.Geometry.ShapeType">
  1747. <summary>
  1748. Enumeration of some basic shape types.
  1749. </summary>
  1750. </member>
  1751. <member name="F:AForge.Math.Geometry.ShapeType.Unknown">
  1752. <summary>
  1753. Unknown shape type.
  1754. </summary>
  1755. </member>
  1756. <member name="F:AForge.Math.Geometry.ShapeType.Circle">
  1757. <summary>
  1758. Circle shape.
  1759. </summary>
  1760. </member>
  1761. <member name="F:AForge.Math.Geometry.ShapeType.Triangle">
  1762. <summary>
  1763. Triangle shape.
  1764. </summary>
  1765. </member>
  1766. <member name="F:AForge.Math.Geometry.ShapeType.Quadrilateral">
  1767. <summary>
  1768. Quadrilateral shape.
  1769. </summary>
  1770. </member>
  1771. <member name="T:AForge.Math.Geometry.PolygonSubType">
  1772. <summary>
  1773. Some common sub types of some basic shapes.
  1774. </summary>
  1775. </member>
  1776. <member name="F:AForge.Math.Geometry.PolygonSubType.Unknown">
  1777. <summary>
  1778. Unrecognized sub type of a shape (generic shape which does not have
  1779. any specific sub type).
  1780. </summary>
  1781. </member>
  1782. <member name="F:AForge.Math.Geometry.PolygonSubType.Trapezoid">
  1783. <summary>
  1784. Quadrilateral with one pair of parallel sides.
  1785. </summary>
  1786. </member>
  1787. <member name="F:AForge.Math.Geometry.PolygonSubType.Parallelogram">
  1788. <summary>
  1789. Quadrilateral with two pairs of parallel sides.
  1790. </summary>
  1791. </member>
  1792. <member name="F:AForge.Math.Geometry.PolygonSubType.Rectangle">
  1793. <summary>
  1794. Parallelogram with perpendicular adjacent sides.
  1795. </summary>
  1796. </member>
  1797. <member name="F:AForge.Math.Geometry.PolygonSubType.Rhombus">
  1798. <summary>
  1799. Parallelogram with all sides equal.
  1800. </summary>
  1801. </member>
  1802. <member name="F:AForge.Math.Geometry.PolygonSubType.Square">
  1803. <summary>
  1804. Rectangle with all sides equal.
  1805. </summary>
  1806. </member>
  1807. <member name="F:AForge.Math.Geometry.PolygonSubType.EquilateralTriangle">
  1808. <summary>
  1809. Triangle with all sides/angles equal.
  1810. </summary>
  1811. </member>
  1812. <member name="F:AForge.Math.Geometry.PolygonSubType.IsoscelesTriangle">
  1813. <summary>
  1814. Triangle with two sides/angles equal.
  1815. </summary>
  1816. </member>
  1817. <member name="F:AForge.Math.Geometry.PolygonSubType.RectangledTriangle">
  1818. <summary>
  1819. Triangle with a 90 degrees angle.
  1820. </summary>
  1821. </member>
  1822. <member name="F:AForge.Math.Geometry.PolygonSubType.RectangledIsoscelesTriangle">
  1823. <summary>
  1824. Triangle with a 90 degrees angle and other two angles are equal.
  1825. </summary>
  1826. </member>
  1827. <member name="T:AForge.Math.Geometry.SimpleShapeChecker">
  1828. <summary>
  1829. A class for checking simple geometrical shapes.
  1830. </summary>
  1831. <remarks><para>The class performs checking/detection of some simple geometrical
  1832. shapes for provided set of points (shape's edge points). During the check
  1833. the class goes through the list of all provided points and checks how accurately
  1834. they fit into assumed shape.</para>
  1835. <para>All the shape checks allow some deviation of
  1836. points from the shape with assumed parameters. In other words it is allowed
  1837. that specified set of points may form a little bit distorted shape, which may be
  1838. still recognized. The allowed amount of distortion is controlled by two
  1839. properties (<see cref="P:AForge.Math.Geometry.SimpleShapeChecker.MinAcceptableDistortion"/> and <see cref="P:AForge.Math.Geometry.SimpleShapeChecker.RelativeDistortionLimit"/>),
  1840. which allow higher distortion level for bigger shapes and smaller amount of
  1841. distortion for smaller shapes. Checking specified set of points, the class
  1842. calculates mean distance between specified set of points and edge of the assumed
  1843. shape. If the mean distance is equal to or less than maximum allowed distance,
  1844. then a shape is recognized. The maximum allowed distance is calculated as:
  1845. <code lang="none">
  1846. maxDistance = max( minAcceptableDistortion, relativeDistortionLimit * ( width + height ) / 2 )
  1847. </code>
  1848. , where <b>width</b> and <b>height</b> is the size of bounding rectangle for the
  1849. specified points.
  1850. </para>
  1851. <para>See also <see cref="P:AForge.Math.Geometry.SimpleShapeChecker.AngleError"/> and <see cref="P:AForge.Math.Geometry.SimpleShapeChecker.LengthError"/> properties,
  1852. which set acceptable errors for polygon sub type checking done by
  1853. <see cref="M:AForge.Math.Geometry.SimpleShapeChecker.CheckPolygonSubType(System.Collections.Generic.List{AForge.IntPoint})"/> method.</para>
  1854. <para><note>See the next article for details about the implemented algorithms:
  1855. <a href="http://www.aforgenet.com/articles/shape_checker/">Detecting some simple shapes in images</a>.
  1856. </note></para>
  1857. <para>Sample usage:</para>
  1858. <code>
  1859. private List&lt;IntPoint&gt; idealCicle = new List&lt;IntPoint&gt;( );
  1860. private List&lt;IntPoint&gt; distorredCircle = new List&lt;IntPoint&gt;( );
  1861. System.Random rand = new System.Random( );
  1862. // generate sample circles
  1863. float radius = 100;
  1864. for ( int i = 0; i &lt; 360; i += 10 )
  1865. {
  1866. float angle = (float) ( (float) i / 180 * System.Math.PI );
  1867. // add point to ideal circle
  1868. idealCicle.Add( new IntPoint(
  1869. (int) ( radius * System.Math.Cos( angle ) ),
  1870. (int) ( radius * System.Math.Sin( angle ) ) ) );
  1871. // add a bit distortion for distorred cirlce
  1872. float distorredRadius = radius + rand.Next( 7 ) - 3;
  1873. distorredCircle.Add( new IntPoint(
  1874. (int) ( distorredRadius * System.Math.Cos( angle ) ),
  1875. (int) ( distorredRadius * System.Math.Sin( angle ) ) ) );
  1876. }
  1877. // check shape
  1878. SimpleShapeChecker shapeChecker = new SimpleShapeChecker( );
  1879. if ( shapeChecker.IsCircle( idealCicle ) )
  1880. {
  1881. // ...
  1882. }
  1883. if ( shapeChecker.CheckShapeType( distorredCircle ) == ShapeType.Circle )
  1884. {
  1885. // ...
  1886. }
  1887. </code>
  1888. </remarks>
  1889. </member>
  1890. <member name="P:AForge.Math.Geometry.SimpleShapeChecker.MinAcceptableDistortion">
  1891. <summary>
  1892. Minimum value of allowed shapes' distortion.
  1893. </summary>
  1894. <remarks><para>The property sets minimum value for allowed shapes'
  1895. distortion (in pixels). See documentation to <see cref="T:AForge.Math.Geometry.SimpleShapeChecker"/>
  1896. class for more details about this property.</para>
  1897. <para>Default value is set to <b>0.5</b>.</para>
  1898. </remarks>
  1899. </member>
  1900. <member name="P:AForge.Math.Geometry.SimpleShapeChecker.RelativeDistortionLimit">
  1901. <summary>
  1902. Maximum value of allowed shapes' distortion, [0, 1].
  1903. </summary>
  1904. <remarks><para>The property sets maximum value for allowed shapes'
  1905. distortion. The value is measured in [0, 1] range, which corresponds
  1906. to [0%, 100%] range, which means that maximum allowed shapes'
  1907. distortion is calculated relatively to shape's size. This results to
  1908. higher allowed distortion level for bigger shapes and smaller allowed
  1909. distortion for smaller shapers. See documentation to <see cref="T:AForge.Math.Geometry.SimpleShapeChecker"/>
  1910. class for more details about this property.</para>
  1911. <para>Default value is set to <b>0.03</b> (3%).</para>
  1912. </remarks>
  1913. </member>
  1914. <member name="P:AForge.Math.Geometry.SimpleShapeChecker.AngleError">
  1915. <summary>
  1916. Maximum allowed angle error in degrees, [0, 20].
  1917. </summary>
  1918. <remarks><para>The value sets maximum allowed difference between two angles to
  1919. treat them as equal. It is used by <see cref="M:AForge.Math.Geometry.SimpleShapeChecker.CheckPolygonSubType(System.Collections.Generic.List{AForge.IntPoint})"/> method to
  1920. check for parallel lines and angles of triangles and quadrilaterals.
  1921. For example, if angle between two lines equals 5 degrees and this properties value
  1922. is set to 7, then two compared lines are treated as parallel.</para>
  1923. <para>Default value is set to <b>7</b>.</para>
  1924. </remarks>
  1925. </member>
  1926. <member name="P:AForge.Math.Geometry.SimpleShapeChecker.LengthError">
  1927. <summary>
  1928. Maximum allowed difference in sides' length (relative to shapes' size), [0, 1].
  1929. </summary>
  1930. <remarks><para>The values sets maximum allowed difference between two sides' length
  1931. to treat them as equal. The error value is set relative to shapes size and measured
  1932. in [0, 1] range, which corresponds to [0%, 100%] range. Absolute length error in pixels
  1933. is calculated as:
  1934. <code lang="none">
  1935. LengthError * ( width + height ) / 2
  1936. </code>
  1937. , where <b>width</b> and <b>height</b> is the size of bounding rectangle for the
  1938. specified shape.
  1939. </para>
  1940. <para>Default value is set to <b>0.1</b> (10%).</para>
  1941. </remarks>
  1942. </member>
  1943. <member name="M:AForge.Math.Geometry.SimpleShapeChecker.CheckShapeType(System.Collections.Generic.List{AForge.IntPoint})">
  1944. <summary>
  1945. Check type of the shape formed by specified points.
  1946. </summary>
  1947. <param name="edgePoints">Shape's points to check.</param>
  1948. <returns>Returns type of the detected shape.</returns>
  1949. </member>
  1950. <member name="M:AForge.Math.Geometry.SimpleShapeChecker.IsCircle(System.Collections.Generic.List{AForge.IntPoint})">
  1951. <summary>
  1952. Check if the specified set of points form a circle shape.
  1953. </summary>
  1954. <param name="edgePoints">Shape's points to check.</param>
  1955. <returns>Returns <see langword="true"/> if the specified set of points form a
  1956. circle shape or <see langword="false"/> otherwise.</returns>
  1957. <remarks><para><note>Circle shape must contain at least 8 points to be recognized.
  1958. The method returns <see langword="false"/> always, of number of points in the specified
  1959. shape is less than 8.</note></para></remarks>
  1960. </member>
  1961. <member name="M:AForge.Math.Geometry.SimpleShapeChecker.IsCircle(System.Collections.Generic.List{AForge.IntPoint},AForge.Point@,System.Single@)">
  1962. <summary>
  1963. Check if the specified set of points form a circle shape.
  1964. </summary>
  1965. <param name="edgePoints">Shape's points to check.</param>
  1966. <param name="center">Receives circle's center on successful return.</param>
  1967. <param name="radius">Receives circle's radius on successful return.</param>
  1968. <returns>Returns <see langword="true"/> if the specified set of points form a
  1969. circle shape or <see langword="false"/> otherwise.</returns>
  1970. <remarks><para><note>Circle shape must contain at least 8 points to be recognized.
  1971. The method returns <see langword="false"/> always, of number of points in the specified
  1972. shape is less than 8.</note></para></remarks>
  1973. </member>
  1974. <member name="M:AForge.Math.Geometry.SimpleShapeChecker.IsQuadrilateral(System.Collections.Generic.List{AForge.IntPoint})">
  1975. <summary>
  1976. Check if the specified set of points form a quadrilateral shape.
  1977. </summary>
  1978. <param name="edgePoints">Shape's points to check.</param>
  1979. <returns>Returns <see langword="true"/> if the specified set of points form a
  1980. quadrilateral shape or <see langword="false"/> otherwise.</returns>
  1981. </member>
  1982. <member name="M:AForge.Math.Geometry.SimpleShapeChecker.IsQuadrilateral(System.Collections.Generic.List{AForge.IntPoint},System.Collections.Generic.List{AForge.IntPoint}@)">
  1983. <summary>
  1984. Check if the specified set of points form a quadrilateral shape.
  1985. </summary>
  1986. <param name="edgePoints">Shape's points to check.</param>
  1987. <param name="corners">List of quadrilateral corners on successful return.</param>
  1988. <returns>Returns <see langword="true"/> if the specified set of points form a
  1989. quadrilateral shape or <see langword="false"/> otherwise.</returns>
  1990. </member>
  1991. <member name="M:AForge.Math.Geometry.SimpleShapeChecker.IsTriangle(System.Collections.Generic.List{AForge.IntPoint})">
  1992. <summary>
  1993. Check if the specified set of points form a triangle shape.
  1994. </summary>
  1995. <param name="edgePoints">Shape's points to check.</param>
  1996. <returns>Returns <see langword="true"/> if the specified set of points form a
  1997. triangle shape or <see langword="false"/> otherwise.</returns>
  1998. </member>
  1999. <member name="M:AForge.Math.Geometry.SimpleShapeChecker.IsTriangle(System.Collections.Generic.List{AForge.IntPoint},System.Collections.Generic.List{AForge.IntPoint}@)">
  2000. <summary>
  2001. Check if the specified set of points form a triangle shape.
  2002. </summary>
  2003. <param name="edgePoints">Shape's points to check.</param>
  2004. <param name="corners">List of triangle corners on successful return.</param>
  2005. <returns>Returns <see langword="true"/> if the specified set of points form a
  2006. triangle shape or <see langword="false"/> otherwise.</returns>
  2007. </member>
  2008. <member name="M:AForge.Math.Geometry.SimpleShapeChecker.IsConvexPolygon(System.Collections.Generic.List{AForge.IntPoint},System.Collections.Generic.List{AForge.IntPoint}@)">
  2009. <summary>
  2010. Check if the specified set of points form a convex polygon shape.
  2011. </summary>
  2012. <param name="edgePoints">Shape's points to check.</param>
  2013. <param name="corners">List of polygon corners on successful return.</param>
  2014. <returns>Returns <see langword="true"/> if the specified set of points form a
  2015. convex polygon shape or <see langword="false"/> otherwise.</returns>
  2016. <remarks><para><note>The method is able to detect only triangles and quadrilaterals
  2017. for now. Check number of detected corners to resolve type of the detected polygon.
  2018. </note></para></remarks>
  2019. </member>
  2020. <member name="M:AForge.Math.Geometry.SimpleShapeChecker.CheckPolygonSubType(System.Collections.Generic.List{AForge.IntPoint})">
  2021. <summary>
  2022. Check sub type of a convex polygon.
  2023. </summary>
  2024. <param name="corners">Corners of the convex polygon to check.</param>
  2025. <returns>Return detected sub type of the specified shape.</returns>
  2026. <remarks><para>The method check corners of a convex polygon detecting
  2027. its subtype. Polygon's corners are usually retrieved using <see cref="M:AForge.Math.Geometry.SimpleShapeChecker.IsConvexPolygon(System.Collections.Generic.List{AForge.IntPoint},System.Collections.Generic.List{AForge.IntPoint}@)"/>
  2028. method, but can be any list of 3-4 points (only sub types of triangles and
  2029. quadrilateral are checked).</para>
  2030. <para>See <see cref="P:AForge.Math.Geometry.SimpleShapeChecker.AngleError"/> and <see cref="P:AForge.Math.Geometry.SimpleShapeChecker.LengthError"/> properties,
  2031. which set acceptable errors for polygon sub type checking.</para>
  2032. </remarks>
  2033. </member>
  2034. <member name="M:AForge.Math.Geometry.SimpleShapeChecker.CheckIfPointsFitShape(System.Collections.Generic.List{AForge.IntPoint},System.Collections.Generic.List{AForge.IntPoint})">
  2035. <summary>
  2036. Check if a shape specified by the set of points fits a convex polygon
  2037. specified by the set of corners.
  2038. </summary>
  2039. <param name="edgePoints">Shape's points to check.</param>
  2040. <param name="corners">Corners of convex polygon to check fitting into.</param>
  2041. <returns>Returns <see langword="true"/> if the specified shape fits
  2042. the specified convex polygon or <see langword="false"/> otherwise.</returns>
  2043. <remarks><para>The method checks if the set of specified points form the same shape
  2044. as the set of provided corners.</para></remarks>
  2045. </member>
  2046. <member name="T:AForge.Math.Histogram">
  2047. <summary>
  2048. Histogram for discrete random values.
  2049. </summary>
  2050. <remarks><para>The class wraps histogram for discrete stochastic function, which is represented
  2051. by integer array, where indexes of the array are treated as values of the stochastic function,
  2052. but array values are treated as "probabilities" (total amount of hits).
  2053. </para>
  2054. <para>Sample usage:</para>
  2055. <code>
  2056. // create histogram
  2057. Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } );
  2058. // get mean and standard deviation values
  2059. Console.WriteLine( "mean = " + histogram.Mean + ", std.dev = " + histogram.StdDev );
  2060. </code>
  2061. </remarks>
  2062. </member>
  2063. <member name="P:AForge.Math.Histogram.Values">
  2064. <summary>
  2065. Values of the histogram.
  2066. </summary>
  2067. <remarks><para>Indexes of this array are treated as values of stochastic function,
  2068. but array values are treated as "probabilities" (total amount of hits).
  2069. </para></remarks>
  2070. </member>
  2071. <member name="P:AForge.Math.Histogram.Mean">
  2072. <summary>
  2073. Mean value.
  2074. </summary>
  2075. <remarks><para>The property allows to retrieve mean value of the histogram.</para>
  2076. <para>Sample usage:</para>
  2077. <code>
  2078. // create histogram
  2079. Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } );
  2080. // get mean value (= 4.862)
  2081. Console.WriteLine( "mean = " + histogram.Mean.ToString( "F3" ) );
  2082. </code>
  2083. </remarks>
  2084. </member>
  2085. <member name="P:AForge.Math.Histogram.StdDev">
  2086. <summary>
  2087. Standard deviation.
  2088. </summary>
  2089. <remarks><para>The property allows to retrieve standard deviation value of the histogram.</para>
  2090. <para>Sample usage:</para>
  2091. <code>
  2092. // create histogram
  2093. Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } );
  2094. // get std.dev. value (= 1.136)
  2095. Console.WriteLine( "std.dev. = " + histogram.StdDev.ToString( "F3" ) );
  2096. </code>
  2097. </remarks>
  2098. </member>
  2099. <member name="P:AForge.Math.Histogram.Median">
  2100. <summary>
  2101. Median value.
  2102. </summary>
  2103. <remarks><para>The property allows to retrieve median value of the histogram.</para>
  2104. <para>Sample usage:</para>
  2105. <code>
  2106. // create histogram
  2107. Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } );
  2108. // get median value (= 5)
  2109. Console.WriteLine( "median = " + histogram.Median );
  2110. </code>
  2111. </remarks>
  2112. </member>
  2113. <member name="P:AForge.Math.Histogram.Min">
  2114. <summary>
  2115. Minimum value.
  2116. </summary>
  2117. <remarks><para>The property allows to retrieve minimum value of the histogram with non zero
  2118. hits count.</para>
  2119. <para>Sample usage:</para>
  2120. <code>
  2121. // create histogram
  2122. Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } );
  2123. // get min value (= 2)
  2124. Console.WriteLine( "min = " + histogram.Min );
  2125. </code>
  2126. </remarks>
  2127. </member>
  2128. <member name="P:AForge.Math.Histogram.Max">
  2129. <summary>
  2130. Maximum value.
  2131. </summary>
  2132. <remarks><para>The property allows to retrieve maximum value of the histogram with non zero
  2133. hits count.</para>
  2134. <para>Sample usage:</para>
  2135. <code>
  2136. // create histogram
  2137. Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } );
  2138. // get max value (= 6)
  2139. Console.WriteLine( "max = " + histogram.Max );
  2140. </code>
  2141. </remarks>
  2142. </member>
  2143. <member name="P:AForge.Math.Histogram.TotalCount">
  2144. <summary>
  2145. Total count of values.
  2146. </summary>
  2147. <remarks><para>The property represents total count of values contributed to the histogram, which is
  2148. essentially sum of the <see cref="P:AForge.Math.Histogram.Values"/> array.</para>
  2149. <para>Sample usage:</para>
  2150. <code>
  2151. // create histogram
  2152. Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } );
  2153. // get total value (= 29)
  2154. Console.WriteLine( "total = " + histogram.TotalCount );
  2155. </code>
  2156. </remarks>
  2157. </member>
  2158. <member name="M:AForge.Math.Histogram.#ctor(System.Int32[])">
  2159. <summary>
  2160. Initializes a new instance of the <see cref="T:AForge.Math.Histogram"/> class.
  2161. </summary>
  2162. <param name="values">Values of the histogram.</param>
  2163. <remarks><para>Indexes of the input array are treated as values of stochastic function,
  2164. but array values are treated as "probabilities" (total amount of hits).
  2165. </para></remarks>
  2166. </member>
  2167. <member name="M:AForge.Math.Histogram.GetRange(System.Double)">
  2168. <summary>
  2169. Get range around median containing specified percentage of values.
  2170. </summary>
  2171. <param name="percent">Values percentage around median.</param>
  2172. <returns>Returns the range which containes specifies percentage of values.</returns>
  2173. <remarks><para>The method calculates range of stochastic variable, which summary probability
  2174. comprises the specified percentage of histogram's hits.</para>
  2175. <para>Sample usage:</para>
  2176. <code>
  2177. // create histogram
  2178. Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } );
  2179. // get 50% range
  2180. IntRange range = histogram.GetRange( 0.5 );
  2181. // show the range ([4, 6])
  2182. Console.WriteLine( "50% range = [" + range.Min + ", " + range.Max + "]" );
  2183. </code>
  2184. </remarks>
  2185. </member>
  2186. <member name="M:AForge.Math.Histogram.Update">
  2187. <summary>
  2188. Update statistical value of the histogram.
  2189. </summary>
  2190. <remarks>The method recalculates statistical values of the histogram, like mean,
  2191. standard deviation, etc., in the case if histogram's values were changed directly.
  2192. The method should be called only in the case if histogram's values were retrieved
  2193. through <see cref="P:AForge.Math.Histogram.Values"/> property and updated after that.
  2194. </remarks>
  2195. </member>
  2196. <member name="T:AForge.Math.Matrix3x3">
  2197. <summary>
  2198. A structure representing 3x3 matrix.
  2199. </summary>
  2200. <remarks><para>The structure incapsulates elements of a 3x3 matrix and
  2201. provides some operations with it.</para></remarks>
  2202. </member>
  2203. <member name="F:AForge.Math.Matrix3x3.V00">
  2204. <summary>
  2205. Row 0 column 0 element of the matrix.
  2206. </summary>
  2207. </member>
  2208. <member name="F:AForge.Math.Matrix3x3.V01">
  2209. <summary>
  2210. Row 0 column 1 element of the matrix.
  2211. </summary>
  2212. </member>
  2213. <member name="F:AForge.Math.Matrix3x3.V02">
  2214. <summary>
  2215. Row 0 column 2 element of the matrix.
  2216. </summary>
  2217. </member>
  2218. <member name="F:AForge.Math.Matrix3x3.V10">
  2219. <summary>
  2220. Row 1 column 0 element of the matrix.
  2221. </summary>
  2222. </member>
  2223. <member name="F:AForge.Math.Matrix3x3.V11">
  2224. <summary>
  2225. Row 1 column 1 element of the matrix.
  2226. </summary>
  2227. </member>
  2228. <member name="F:AForge.Math.Matrix3x3.V12">
  2229. <summary>
  2230. Row 1 column 2 element of the matrix.
  2231. </summary>
  2232. </member>
  2233. <member name="F:AForge.Math.Matrix3x3.V20">
  2234. <summary>
  2235. Row 2 column 0 element of the matrix.
  2236. </summary>
  2237. </member>
  2238. <member name="F:AForge.Math.Matrix3x3.V21">
  2239. <summary>
  2240. Row 2 column 1 element of the matrix.
  2241. </summary>
  2242. </member>
  2243. <member name="F:AForge.Math.Matrix3x3.V22">
  2244. <summary>
  2245. Row 2 column 2 element of the matrix.
  2246. </summary>
  2247. </member>
  2248. <member name="P:AForge.Math.Matrix3x3.Identity">
  2249. <summary>
  2250. Provides an identity matrix with all diagonal elements set to 1.
  2251. </summary>
  2252. </member>
  2253. <member name="P:AForge.Math.Matrix3x3.Determinant">
  2254. <summary>
  2255. Calculates determinant of the matrix.
  2256. </summary>
  2257. </member>
  2258. <member name="M:AForge.Math.Matrix3x3.ToArray">
  2259. <summary>
  2260. Returns array representation of the matrix.
  2261. </summary>
  2262. <returns>Returns array which contains all elements of the matrix in the row-major order.</returns>
  2263. </member>
  2264. <member name="M:AForge.Math.Matrix3x3.CreateRotationY(System.Single)">
  2265. <summary>
  2266. Creates rotation matrix around Y axis.
  2267. </summary>
  2268. <param name="radians">Rotation angle around Y axis in radians.</param>
  2269. <returns>Returns rotation matrix to rotate an object around Y axis.</returns>
  2270. </member>
  2271. <member name="M:AForge.Math.Matrix3x3.CreateRotationX(System.Single)">
  2272. <summary>
  2273. Creates rotation matrix around X axis.
  2274. </summary>
  2275. <param name="radians">Rotation angle around X axis in radians.</param>
  2276. <returns>Returns rotation matrix to rotate an object around X axis.</returns>
  2277. </member>
  2278. <member name="M:AForge.Math.Matrix3x3.CreateRotationZ(System.Single)">
  2279. <summary>
  2280. Creates rotation matrix around Z axis.
  2281. </summary>
  2282. <param name="radians">Rotation angle around Z axis in radians.</param>
  2283. <returns>Returns rotation matrix to rotate an object around Z axis.</returns>
  2284. </member>
  2285. <member name="M:AForge.Math.Matrix3x3.CreateFromYawPitchRoll(System.Single,System.Single,System.Single)">
  2286. <summary>
  2287. Creates rotation matrix to rotate an object around X, Y and Z axes.
  2288. </summary>
  2289. <param name="yaw">Rotation angle around Y axis in radians.</param>
  2290. <param name="pitch">Rotation angle around X axis in radians.</param>
  2291. <param name="roll">Rotation angle around Z axis in radians.</param>
  2292. <returns>Returns rotation matrix to rotate an object around all 3 axes.</returns>
  2293. <remarks>
  2294. <para><note>The routine assumes roll-pitch-yaw rotation order, when creating rotation
  2295. matrix, i.e. an object is first rotated around Z axis, then around X axis and finally around
  2296. Y axis.</note></para>
  2297. </remarks>
  2298. </member>
  2299. <member name="M:AForge.Math.Matrix3x3.ExtractYawPitchRoll(System.Single@,System.Single@,System.Single@)">
  2300. <summary>
  2301. Extract rotation angles from the rotation matrix.
  2302. </summary>
  2303. <param name="yaw">Extracted rotation angle around Y axis in radians.</param>
  2304. <param name="pitch">Extracted rotation angle around X axis in radians.</param>
  2305. <param name="roll">Extracted rotation angle around Z axis in radians.</param>
  2306. <remarks><para><note>The routine assumes roll-pitch-yaw rotation order when extracting rotation angle.
  2307. Using extracted angles with the <see cref="M:AForge.Math.Matrix3x3.CreateFromYawPitchRoll(System.Single,System.Single,System.Single)"/> should provide same rotation matrix.
  2308. </note></para>
  2309. <para><note>The method assumes the provided matrix represent valid rotation matrix.</note></para>
  2310. <para>Sample usage:</para>
  2311. <code>
  2312. // assume we have a rotation matrix created like this
  2313. float yaw = 10.0f / 180 * Math.PI;
  2314. float pitch = 30.0f / 180 * Math.PI;
  2315. float roll = 45.0f / 180 * Math.PI;
  2316. Matrix3x3 rotationMatrix = Matrix3x3.CreateFromYawPitchRoll( yaw, pitch, roll );
  2317. // ...
  2318. // now somewhere in the code you may want to get rotation
  2319. // angles back from a matrix assuming same rotation order
  2320. float extractedYaw;
  2321. float extractedPitch;
  2322. float extractedRoll;
  2323. rotation.ExtractYawPitchRoll( out extractedYaw, out extractedPitch, out extractedRoll );
  2324. </code>
  2325. </remarks>
  2326. </member>
  2327. <member name="M:AForge.Math.Matrix3x3.CreateFromRows(AForge.Math.Vector3,AForge.Math.Vector3,AForge.Math.Vector3)">
  2328. <summary>
  2329. Creates a matrix from 3 rows specified as vectors.
  2330. </summary>
  2331. <param name="row0">First row of the matrix to create.</param>
  2332. <param name="row1">Second row of the matrix to create.</param>
  2333. <param name="row2">Third row of the matrix to create.</param>
  2334. <returns>Returns a matrix from specified rows.</returns>
  2335. </member>
  2336. <member name="M:AForge.Math.Matrix3x3.CreateFromColumns(AForge.Math.Vector3,AForge.Math.Vector3,AForge.Math.Vector3)">
  2337. <summary>
  2338. Creates a matrix from 3 columns specified as vectors.
  2339. </summary>
  2340. <param name="column0">First column of the matrix to create.</param>
  2341. <param name="column1">Second column of the matrix to create.</param>
  2342. <param name="column2">Third column of the matrix to create.</param>
  2343. <returns>Returns a matrix from specified columns.</returns>
  2344. </member>
  2345. <member name="M:AForge.Math.Matrix3x3.CreateDiagonal(AForge.Math.Vector3)">
  2346. <summary>
  2347. Creates a diagonal matrix using the specified vector as diagonal elements.
  2348. </summary>
  2349. <param name="vector">Vector to use for diagonal elements of the matrix.</param>
  2350. <returns>Returns a diagonal matrix.</returns>
  2351. </member>
  2352. <member name="M:AForge.Math.Matrix3x3.GetRow(System.Int32)">
  2353. <summary>
  2354. Get row of the matrix.
  2355. </summary>
  2356. <param name="index">Row index to get, [0, 2].</param>
  2357. <returns>Returns specified row of the matrix as a vector.</returns>
  2358. <exception cref="T:System.ArgumentException">Invalid row index was specified.</exception>
  2359. </member>
  2360. <member name="M:AForge.Math.Matrix3x3.GetColumn(System.Int32)">
  2361. <summary>
  2362. Get column of the matrix.
  2363. </summary>
  2364. <param name="index">Column index to get, [0, 2].</param>
  2365. <returns>Returns specified column of the matrix as a vector.</returns>
  2366. <exception cref="T:System.ArgumentException">Invalid column index was specified.</exception>
  2367. </member>
  2368. <member name="M:AForge.Math.Matrix3x3.op_Multiply(AForge.Math.Matrix3x3,AForge.Math.Matrix3x3)">
  2369. <summary>
  2370. Multiplies two specified matrices.
  2371. </summary>
  2372. <param name="matrix1">Matrix to multiply.</param>
  2373. <param name="matrix2">Matrix to multiply by.</param>
  2374. <returns>Return new matrix, which the result of multiplication of the two specified matrices.</returns>
  2375. </member>
  2376. <member name="M:AForge.Math.Matrix3x3.Multiply(AForge.Math.Matrix3x3,AForge.Math.Matrix3x3)">
  2377. <summary>
  2378. Multiplies two specified matrices.
  2379. </summary>
  2380. <param name="matrix1">Matrix to multiply.</param>
  2381. <param name="matrix2">Matrix to multiply by.</param>
  2382. <returns>Return new matrix, which the result of multiplication of the two specified matrices.</returns>
  2383. </member>
  2384. <member name="M:AForge.Math.Matrix3x3.op_Addition(AForge.Math.Matrix3x3,AForge.Math.Matrix3x3)">
  2385. <summary>
  2386. Adds corresponding components of two matrices.
  2387. </summary>
  2388. <param name="matrix1">The matrix to add to.</param>
  2389. <param name="matrix2">The matrix to add to the first matrix.</param>
  2390. <returns>Returns a matrix which components are equal to sum of corresponding
  2391. components of the two specified matrices.</returns>
  2392. </member>
  2393. <member name="M:AForge.Math.Matrix3x3.Add(AForge.Math.Matrix3x3,AForge.Math.Matrix3x3)">
  2394. <summary>
  2395. Adds corresponding components of two matrices.
  2396. </summary>
  2397. <param name="matrix1">The matrix to add to.</param>
  2398. <param name="matrix2">The matrix to add to the first matrix.</param>
  2399. <returns>Returns a matrix which components are equal to sum of corresponding
  2400. components of the two specified matrices.</returns>
  2401. </member>
  2402. <member name="M:AForge.Math.Matrix3x3.op_Subtraction(AForge.Math.Matrix3x3,AForge.Math.Matrix3x3)">
  2403. <summary>
  2404. Subtracts corresponding components of two matrices.
  2405. </summary>
  2406. <param name="matrix1">The matrix to subtract from.</param>
  2407. <param name="matrix2">The matrix to subtract from the first matrix.</param>
  2408. <returns>Returns a matrix which components are equal to difference of corresponding
  2409. components of the two specified matrices.</returns>
  2410. </member>
  2411. <member name="M:AForge.Math.Matrix3x3.Subtract(AForge.Math.Matrix3x3,AForge.Math.Matrix3x3)">
  2412. <summary>
  2413. Subtracts corresponding components of two matrices.
  2414. </summary>
  2415. <param name="matrix1">The matrix to subtract from.</param>
  2416. <param name="matrix2">The matrix to subtract from the first matrix.</param>
  2417. <returns>Returns a matrix which components are equal to difference of corresponding
  2418. components of the two specified matrices.</returns>
  2419. </member>
  2420. <member name="M:AForge.Math.Matrix3x3.op_Multiply(AForge.Math.Matrix3x3,AForge.Math.Vector3)">
  2421. <summary>
  2422. Multiplies specified matrix by the specified vector.
  2423. </summary>
  2424. <param name="matrix">Matrix to multiply by vector.</param>
  2425. <param name="vector">Vector to multiply matrix by.</param>
  2426. <returns>Returns new vector which is the result of multiplication of the specified matrix
  2427. by the specified vector.</returns>
  2428. </member>
  2429. <member name="M:AForge.Math.Matrix3x3.Multiply(AForge.Math.Matrix3x3,AForge.Math.Vector3)">
  2430. <summary>
  2431. Multiplies specified matrix by the specified vector.
  2432. </summary>
  2433. <param name="matrix">Matrix to multiply by vector.</param>
  2434. <param name="vector">Vector to multiply matrix by.</param>
  2435. <returns>Returns new vector which is the result of multiplication of the specified matrix
  2436. by the specified vector.</returns>
  2437. </member>
  2438. <member name="M:AForge.Math.Matrix3x3.op_Multiply(AForge.Math.Matrix3x3,System.Single)">
  2439. <summary>
  2440. Multiplies matrix by the specified factor.
  2441. </summary>
  2442. <param name="matrix">Matrix to multiply.</param>
  2443. <param name="factor">Factor to multiple the specified matrix by.</param>
  2444. <returns>Returns new matrix with all components equal to corresponding components of the
  2445. specified matrix multiples by the specified factor.</returns>
  2446. </member>
  2447. <member name="M:AForge.Math.Matrix3x3.Multiply(AForge.Math.Matrix3x3,System.Single)">
  2448. <summary>
  2449. Multiplies matrix by the specified factor.
  2450. </summary>
  2451. <param name="matrix">Matrix to multiply.</param>
  2452. <param name="factor">Factor to multiple the specified matrix by.</param>
  2453. <returns>Returns new matrix with all components equal to corresponding components of the
  2454. specified matrix multiples by the specified factor.</returns>
  2455. </member>
  2456. <member name="M:AForge.Math.Matrix3x3.op_Addition(AForge.Math.Matrix3x3,System.Single)">
  2457. <summary>
  2458. Adds specified value to all components of the specified matrix.
  2459. </summary>
  2460. <param name="matrix">Matrix to add value to.</param>
  2461. <param name="value">Value to add to all components of the specified matrix.</param>
  2462. <returns>Returns new matrix with all components equal to corresponding components of the
  2463. specified matrix increased by the specified value.</returns>
  2464. </member>
  2465. <member name="M:AForge.Math.Matrix3x3.Add(AForge.Math.Matrix3x3,System.Single)">
  2466. <summary>
  2467. Adds specified value to all components of the specified matrix.
  2468. </summary>
  2469. <param name="matrix">Matrix to add value to.</param>
  2470. <param name="value">Value to add to all components of the specified matrix.</param>
  2471. <returns>Returns new matrix with all components equal to corresponding components of the
  2472. specified matrix increased by the specified value.</returns>
  2473. </member>
  2474. <member name="M:AForge.Math.Matrix3x3.op_Equality(AForge.Math.Matrix3x3,AForge.Math.Matrix3x3)">
  2475. <summary>
  2476. Tests whether two specified matrices are equal.
  2477. </summary>
  2478. <param name="matrix1">The left-hand matrix.</param>
  2479. <param name="matrix2">The right-hand matrix.</param>
  2480. <returns>Returns <see langword="true"/> if the two matrices are equal or <see langword="false"/> otherwise.</returns>
  2481. </member>
  2482. <member name="M:AForge.Math.Matrix3x3.op_Inequality(AForge.Math.Matrix3x3,AForge.Math.Matrix3x3)">
  2483. <summary>
  2484. Tests whether two specified matrices are not equal.
  2485. </summary>
  2486. <param name="matrix1">The left-hand matrix.</param>
  2487. <param name="matrix2">The right-hand matrix.</param>
  2488. <returns>Returns <see langword="true"/> if the two matrices are not equal or <see langword="false"/> otherwise.</returns>
  2489. </member>
  2490. <member name="M:AForge.Math.Matrix3x3.Equals(AForge.Math.Matrix3x3)">
  2491. <summary>
  2492. Tests whether the matrix equals to the specified one.
  2493. </summary>
  2494. <param name="matrix">The matrix to test equality with.</param>
  2495. <returns>Returns <see langword="true"/> if the two matrices are equal or <see langword="false"/> otherwise.</returns>
  2496. </member>
  2497. <member name="M:AForge.Math.Matrix3x3.Equals(System.Object)">
  2498. <summary>
  2499. Tests whether the matrix equals to the specified object.
  2500. </summary>
  2501. <param name="obj">The object to test equality with.</param>
  2502. <returns>Returns <see langword="true"/> if the matrix equals to the specified object or <see langword="false"/> otherwise.</returns>
  2503. </member>
  2504. <member name="M:AForge.Math.Matrix3x3.GetHashCode">
  2505. <summary>
  2506. Returns the hashcode for this instance.
  2507. </summary>
  2508. <returns>A 32-bit signed integer hash code.</returns>
  2509. </member>
  2510. <member name="M:AForge.Math.Matrix3x3.Transpose">
  2511. <summary>
  2512. Transpose the matrix, A<sup>T</sup>.
  2513. </summary>
  2514. <returns>Return a matrix which equals to transposition of this matrix.</returns>
  2515. </member>
  2516. <member name="M:AForge.Math.Matrix3x3.MultiplySelfByTranspose">
  2517. <summary>
  2518. Multiply the matrix by its transposition, A*A<sup>T</sup>.
  2519. </summary>
  2520. <returns>Returns a matrix which is the result of multiplying this matrix by its transposition.</returns>
  2521. </member>
  2522. <member name="M:AForge.Math.Matrix3x3.MultiplyTransposeBySelf">
  2523. <summary>
  2524. Multiply transposition of this matrix by itself, A<sup>T</sup>*A.
  2525. </summary>
  2526. <returns>Returns a matrix which is the result of multiplying this matrix's transposition by itself.</returns>
  2527. </member>
  2528. <member name="M:AForge.Math.Matrix3x3.Adjugate">
  2529. <summary>
  2530. Calculate adjugate of the matrix, adj(A).
  2531. </summary>
  2532. <returns>Returns adjugate of the matrix.</returns>
  2533. </member>
  2534. <member name="M:AForge.Math.Matrix3x3.Inverse">
  2535. <summary>
  2536. Calculate inverse of the matrix, A<sup>-1</sup>.
  2537. </summary>
  2538. <returns>Returns inverse of the matrix.</returns>
  2539. <exception cref="T:System.ArgumentException">Cannot calculate inverse of the matrix since it is singular.</exception>
  2540. </member>
  2541. <member name="M:AForge.Math.Matrix3x3.PseudoInverse">
  2542. <summary>
  2543. Calculate pseudo inverse of the matrix, A<sup>+</sup>.
  2544. </summary>
  2545. <returns>Returns pseudo inverse of the matrix.</returns>
  2546. <remarks><para>The pseudo inverse of the matrix is calculate through its <see cref="M:AForge.Math.Matrix3x3.SVD(AForge.Math.Matrix3x3@,AForge.Math.Vector3@,AForge.Math.Matrix3x3@)"/>
  2547. as V*E<sup>+</sup>*U<sup>T</sup>.</para></remarks>
  2548. </member>
  2549. <member name="M:AForge.Math.Matrix3x3.SVD(AForge.Math.Matrix3x3@,AForge.Math.Vector3@,AForge.Math.Matrix3x3@)">
  2550. <summary>
  2551. Calculate Singular Value Decomposition (SVD) of the matrix, such as A=U*E*V<sup>T</sup>.
  2552. </summary>
  2553. <param name="u">Output parameter which gets 3x3 U matrix.</param>
  2554. <param name="e">Output parameter which gets diagonal elements of the E matrix.</param>
  2555. <param name="v">Output parameter which gets 3x3 V matrix.</param>
  2556. <remarks><para>Having components U, E and V the source matrix can be reproduced using below code:
  2557. <code>
  2558. Matrix3x3 source = u * Matrix3x3.Diagonal( e ) * v.Transpose( );
  2559. </code>
  2560. </para></remarks>
  2561. </member>
  2562. <member name="T:AForge.Math.Matrix4x4">
  2563. <summary>
  2564. A structure representing 4x4 matrix.
  2565. </summary>
  2566. <remarks><para>The structure incapsulates elements of a 4x4 matrix and
  2567. provides some operations with it.</para></remarks>
  2568. </member>
  2569. <member name="F:AForge.Math.Matrix4x4.V00">
  2570. <summary>
  2571. Row 0 column 0 element of the matrix.
  2572. </summary>
  2573. </member>
  2574. <member name="F:AForge.Math.Matrix4x4.V01">
  2575. <summary>
  2576. Row 0 column 1 element of the matrix.
  2577. </summary>
  2578. </member>
  2579. <member name="F:AForge.Math.Matrix4x4.V02">
  2580. <summary>
  2581. Row 0 column 2 element of the matrix.
  2582. </summary>
  2583. </member>
  2584. <member name="F:AForge.Math.Matrix4x4.V03">
  2585. <summary>
  2586. Row 0 column 3 element of the matrix.
  2587. </summary>
  2588. </member>
  2589. <member name="F:AForge.Math.Matrix4x4.V10">
  2590. <summary>
  2591. Row 1 column 0 element of the matrix.
  2592. </summary>
  2593. </member>
  2594. <member name="F:AForge.Math.Matrix4x4.V11">
  2595. <summary>
  2596. Row 1 column 1 element of the matrix.
  2597. </summary>
  2598. </member>
  2599. <member name="F:AForge.Math.Matrix4x4.V12">
  2600. <summary>
  2601. Row 1 column 2 element of the matrix.
  2602. </summary>
  2603. </member>
  2604. <member name="F:AForge.Math.Matrix4x4.V13">
  2605. <summary>
  2606. Row 1 column 3 element of the matrix.
  2607. </summary>
  2608. </member>
  2609. <member name="F:AForge.Math.Matrix4x4.V20">
  2610. <summary>
  2611. Row 2 column 0 element of the matrix.
  2612. </summary>
  2613. </member>
  2614. <member name="F:AForge.Math.Matrix4x4.V21">
  2615. <summary>
  2616. Row 2 column 1 element of the matrix.
  2617. </summary>
  2618. </member>
  2619. <member name="F:AForge.Math.Matrix4x4.V22">
  2620. <summary>
  2621. Row 2 column 2 element of the matrix.
  2622. </summary>
  2623. </member>
  2624. <member name="F:AForge.Math.Matrix4x4.V23">
  2625. <summary>
  2626. Row 2 column 3 element of the matrix.
  2627. </summary>
  2628. </member>
  2629. <member name="F:AForge.Math.Matrix4x4.V30">
  2630. <summary>
  2631. Row 3 column 0 element of the matrix.
  2632. </summary>
  2633. </member>
  2634. <member name="F:AForge.Math.Matrix4x4.V31">
  2635. <summary>
  2636. Row 3 column 1 element of the matrix.
  2637. </summary>
  2638. </member>
  2639. <member name="F:AForge.Math.Matrix4x4.V32">
  2640. <summary>
  2641. Row 3 column 2 element of the matrix.
  2642. </summary>
  2643. </member>
  2644. <member name="F:AForge.Math.Matrix4x4.V33">
  2645. <summary>
  2646. Row 3 column 3 element of the matrix.
  2647. </summary>
  2648. </member>
  2649. <member name="P:AForge.Math.Matrix4x4.Identity">
  2650. <summary>
  2651. Provides an identity matrix with all diagonal elements set to 1.
  2652. </summary>
  2653. </member>
  2654. <member name="M:AForge.Math.Matrix4x4.ToArray">
  2655. <summary>
  2656. Returns array representation of the matrix.
  2657. </summary>
  2658. <returns>Returns array which contains all elements of the matrix in the row-major order.</returns>
  2659. </member>
  2660. <member name="M:AForge.Math.Matrix4x4.CreateRotationY(System.Single)">
  2661. <summary>
  2662. Creates rotation matrix around Y axis.
  2663. </summary>
  2664. <param name="radians">Rotation angle around Y axis in radians.</param>
  2665. <returns>Returns rotation matrix to rotate an object around Y axis.</returns>
  2666. </member>
  2667. <member name="M:AForge.Math.Matrix4x4.CreateRotationX(System.Single)">
  2668. <summary>
  2669. Creates rotation matrix around X axis.
  2670. </summary>
  2671. <param name="radians">Rotation angle around X axis in radians.</param>
  2672. <returns>Returns rotation matrix to rotate an object around X axis.</returns>
  2673. </member>
  2674. <member name="M:AForge.Math.Matrix4x4.CreateRotationZ(System.Single)">
  2675. <summary>
  2676. Creates rotation matrix around Z axis.
  2677. </summary>
  2678. <param name="radians">Rotation angle around Z axis in radians.</param>
  2679. <returns>Returns rotation matrix to rotate an object around Z axis.</returns>
  2680. </member>
  2681. <member name="M:AForge.Math.Matrix4x4.CreateFromYawPitchRoll(System.Single,System.Single,System.Single)">
  2682. <summary>
  2683. Creates rotation matrix to rotate an object around X, Y and Z axes.
  2684. </summary>
  2685. <param name="yaw">Rotation angle around Y axis in radians.</param>
  2686. <param name="pitch">Rotation angle around X axis in radians.</param>
  2687. <param name="roll">Rotation angle around Z axis in radians.</param>
  2688. <returns>Returns rotation matrix to rotate an object around all 3 axes.</returns>
  2689. <remarks>
  2690. <para><note>The routine assumes roll-pitch-yaw rotation order, when creating rotation
  2691. matrix, i.e. an object is first rotated around Z axis, then around X axis and finally around
  2692. Y axis.</note></para>
  2693. </remarks>
  2694. </member>
  2695. <member name="M:AForge.Math.Matrix4x4.ExtractYawPitchRoll(System.Single@,System.Single@,System.Single@)">
  2696. <summary>
  2697. Extract rotation angles from the rotation matrix.
  2698. </summary>
  2699. <param name="yaw">Extracted rotation angle around Y axis in radians.</param>
  2700. <param name="pitch">Extracted rotation angle around X axis in radians.</param>
  2701. <param name="roll">Extracted rotation angle around Z axis in radians.</param>
  2702. <remarks><para><note>The routine assumes roll-pitch-yaw rotation order when extracting rotation angle.
  2703. Using extracted angles with the <see cref="M:AForge.Math.Matrix4x4.CreateFromYawPitchRoll(System.Single,System.Single,System.Single)"/> should provide same rotation matrix.
  2704. </note></para>
  2705. <para><note>The method assumes the provided matrix represent valid rotation matrix.</note></para>
  2706. <para>Sample usage:</para>
  2707. <code>
  2708. // assume we have a rotation matrix created like this
  2709. float yaw = 10.0f / 180 * Math.PI;
  2710. float pitch = 30.0f / 180 * Math.PI;
  2711. float roll = 45.0f / 180 * Math.PI;
  2712. Matrix4x4 rotationMatrix = Matrix3x3.CreateFromYawPitchRoll( yaw, pitch, roll );
  2713. // ...
  2714. // now somewhere in the code you may want to get rotation
  2715. // angles back from a matrix assuming same rotation order
  2716. float extractedYaw;
  2717. float extractedPitch;
  2718. float extractedRoll;
  2719. rotation.ExtractYawPitchRoll( out extractedYaw, out extractedPitch, out extractedRoll );
  2720. </code>
  2721. </remarks>
  2722. </member>
  2723. <member name="M:AForge.Math.Matrix4x4.CreateFromRotation(AForge.Math.Matrix3x3)">
  2724. <summary>
  2725. Creates 4x4 tranformation matrix from 3x3 rotation matrix.
  2726. </summary>
  2727. <param name="rotationMatrix">Source 3x3 rotation matrix.</param>
  2728. <returns>Returns 4x4 rotation matrix.</returns>
  2729. <remarks><para>The source 3x3 rotation matrix is copied into the top left corner of the result 4x4 matrix,
  2730. i.e. it represents 0th, 1st and 2nd row/column. The <see cref="F:AForge.Math.Matrix4x4.V33"/> element is set to 1 and the rest
  2731. elements of 3rd row and 3rd column are set to zeros.</para></remarks>
  2732. </member>
  2733. <member name="M:AForge.Math.Matrix4x4.CreateTranslation(AForge.Math.Vector3)">
  2734. <summary>
  2735. Creates translation matrix for the specified movement amount.
  2736. </summary>
  2737. <param name="position">Vector which set direction and amount of movement.</param>
  2738. <returns>Returns translation matrix.</returns>
  2739. <remarks><para>The specified vector is copied to the 3rd column of the result matrix.
  2740. All diagonal elements are set to 1. The rest of matrix is initialized with zeros.</para></remarks>
  2741. </member>
  2742. <member name="M:AForge.Math.Matrix4x4.CreateLookAt(AForge.Math.Vector3,AForge.Math.Vector3)">
  2743. <summary>
  2744. Creates a view matrix for the specified camera position and target point.
  2745. </summary>
  2746. <param name="cameraPosition">Position of camera.</param>
  2747. <param name="cameraTarget">Target point towards which camera is pointing.</param>
  2748. <returns>Returns a view matrix.</returns>
  2749. <remarks><para>Camera's "up" vector is supposed to be (0, 1, 0).</para></remarks>
  2750. </member>
  2751. <member name="M:AForge.Math.Matrix4x4.CreatePerspective(System.Single,System.Single,System.Single,System.Single)">
  2752. <summary>
  2753. Creates a perspective projection matrix.
  2754. </summary>
  2755. <param name="width">Width of the view volume at the near view plane.</param>
  2756. <param name="height">Height of the view volume at the near view plane.</param>
  2757. <param name="nearPlaneDistance">Distance to the near view plane.</param>
  2758. <param name="farPlaneDistance">Distance to the far view plane.</param>
  2759. <returns>Return a perspective projection matrix.</returns>
  2760. <exception cref="T:System.ArgumentOutOfRangeException">Both near and far view planes' distances must be greater than zero.</exception>
  2761. <exception cref="T:System.ArgumentException">Near plane must be closer than the far plane.</exception>
  2762. </member>
  2763. <member name="M:AForge.Math.Matrix4x4.CreateFromRows(AForge.Math.Vector4,AForge.Math.Vector4,AForge.Math.Vector4,AForge.Math.Vector4)">
  2764. <summary>
  2765. Creates a matrix from 4 rows specified as vectors.
  2766. </summary>
  2767. <param name="row0">First row of the matrix to create.</param>
  2768. <param name="row1">Second row of the matrix to create.</param>
  2769. <param name="row2">Third row of the matrix to create.</param>
  2770. <param name="row3">Fourth row of the matrix to create.</param>
  2771. <returns>Returns a matrix from specified rows.</returns>
  2772. </member>
  2773. <member name="M:AForge.Math.Matrix4x4.CreateFromColumns(AForge.Math.Vector4,AForge.Math.Vector4,AForge.Math.Vector4,AForge.Math.Vector4)">
  2774. <summary>
  2775. Creates a matrix from 4 columns specified as vectors.
  2776. </summary>
  2777. <param name="column0">First column of the matrix to create.</param>
  2778. <param name="column1">Second column of the matrix to create.</param>
  2779. <param name="column2">Third column of the matrix to create.</param>
  2780. <param name="column3">Fourth column of the matrix to create.</param>
  2781. <returns>Returns a matrix from specified columns.</returns>
  2782. </member>
  2783. <member name="M:AForge.Math.Matrix4x4.CreateDiagonal(AForge.Math.Vector4)">
  2784. <summary>
  2785. Creates a diagonal matrix using the specified vector as diagonal elements.
  2786. </summary>
  2787. <param name="vector">Vector to use for diagonal elements of the matrix.</param>
  2788. <returns>Returns a diagonal matrix.</returns>
  2789. </member>
  2790. <member name="M:AForge.Math.Matrix4x4.GetRow(System.Int32)">
  2791. <summary>
  2792. Get row of the matrix.
  2793. </summary>
  2794. <param name="index">Row index to get, [0, 3].</param>
  2795. <returns>Returns specified row of the matrix as a vector.</returns>
  2796. <exception cref="T:System.ArgumentException">Invalid row index was specified.</exception>
  2797. </member>
  2798. <member name="M:AForge.Math.Matrix4x4.GetColumn(System.Int32)">
  2799. <summary>
  2800. Get column of the matrix.
  2801. </summary>
  2802. <param name="index">Column index to get, [0, 3].</param>
  2803. <returns>Returns specified column of the matrix as a vector.</returns>
  2804. <exception cref="T:System.ArgumentException">Invalid column index was specified.</exception>
  2805. </member>
  2806. <member name="M:AForge.Math.Matrix4x4.op_Multiply(AForge.Math.Matrix4x4,AForge.Math.Matrix4x4)">
  2807. <summary>
  2808. Multiplies two specified matrices.
  2809. </summary>
  2810. <param name="matrix1">Matrix to multiply.</param>
  2811. <param name="matrix2">Matrix to multiply by.</param>
  2812. <returns>Return new matrix, which the result of multiplication of the two specified matrices.</returns>
  2813. </member>
  2814. <member name="M:AForge.Math.Matrix4x4.Multiply(AForge.Math.Matrix4x4,AForge.Math.Matrix4x4)">
  2815. <summary>
  2816. Multiplies two specified matrices.
  2817. </summary>
  2818. <param name="matrix1">Matrix to multiply.</param>
  2819. <param name="matrix2">Matrix to multiply by.</param>
  2820. <returns>Return new matrix, which the result of multiplication of the two specified matrices.</returns>
  2821. </member>
  2822. <member name="M:AForge.Math.Matrix4x4.op_Addition(AForge.Math.Matrix4x4,AForge.Math.Matrix4x4)">
  2823. <summary>
  2824. Adds corresponding components of two matrices.
  2825. </summary>
  2826. <param name="matrix1">The matrix to add to.</param>
  2827. <param name="matrix2">The matrix to add to the first matrix.</param>
  2828. <returns>Returns a matrix which components are equal to sum of corresponding
  2829. components of the two specified matrices.</returns>
  2830. </member>
  2831. <member name="M:AForge.Math.Matrix4x4.Add(AForge.Math.Matrix4x4,AForge.Math.Matrix4x4)">
  2832. <summary>
  2833. Adds corresponding components of two matrices.
  2834. </summary>
  2835. <param name="matrix1">The matrix to add to.</param>
  2836. <param name="matrix2">The matrix to add to the first matrix.</param>
  2837. <returns>Returns a matrix which components are equal to sum of corresponding
  2838. components of the two specified matrices.</returns>
  2839. </member>
  2840. <member name="M:AForge.Math.Matrix4x4.op_Subtraction(AForge.Math.Matrix4x4,AForge.Math.Matrix4x4)">
  2841. <summary>
  2842. Subtracts corresponding components of two matrices.
  2843. </summary>
  2844. <param name="matrix1">The matrix to subtract from.</param>
  2845. <param name="matrix2">The matrix to subtract from the first matrix.</param>
  2846. <returns>Returns a matrix which components are equal to difference of corresponding
  2847. components of the two specified matrices.</returns>
  2848. </member>
  2849. <member name="M:AForge.Math.Matrix4x4.Subtract(AForge.Math.Matrix4x4,AForge.Math.Matrix4x4)">
  2850. <summary>
  2851. Subtracts corresponding components of two matrices.
  2852. </summary>
  2853. <param name="matrix1">The matrix to subtract from.</param>
  2854. <param name="matrix2">The matrix to subtract from the first matrix.</param>
  2855. <returns>Returns a matrix which components are equal to difference of corresponding
  2856. components of the two specified matrices.</returns>
  2857. </member>
  2858. <member name="M:AForge.Math.Matrix4x4.op_Multiply(AForge.Math.Matrix4x4,AForge.Math.Vector4)">
  2859. <summary>
  2860. Multiplies specified matrix by the specified vector.
  2861. </summary>
  2862. <param name="matrix">Matrix to multiply by vector.</param>
  2863. <param name="vector">Vector to multiply matrix by.</param>
  2864. <returns>Returns new vector which is the result of multiplication of the specified matrix
  2865. by the specified vector.</returns>
  2866. </member>
  2867. <member name="M:AForge.Math.Matrix4x4.Multiply(AForge.Math.Matrix4x4,AForge.Math.Vector4)">
  2868. <summary>
  2869. Multiplies specified matrix by the specified vector.
  2870. </summary>
  2871. <param name="matrix">Matrix to multiply by vector.</param>
  2872. <param name="vector">Vector to multiply matrix by.</param>
  2873. <returns>Returns new vector which is the result of multiplication of the specified matrix
  2874. by the specified vector.</returns>
  2875. </member>
  2876. <member name="M:AForge.Math.Matrix4x4.op_Equality(AForge.Math.Matrix4x4,AForge.Math.Matrix4x4)">
  2877. <summary>
  2878. Tests whether two specified matrices are equal.
  2879. </summary>
  2880. <param name="matrix1">The left-hand matrix.</param>
  2881. <param name="matrix2">The right-hand matrix.</param>
  2882. <returns>Returns <see langword="true"/> if the two matrices are equal or <see langword="false"/> otherwise.</returns>
  2883. </member>
  2884. <member name="M:AForge.Math.Matrix4x4.op_Inequality(AForge.Math.Matrix4x4,AForge.Math.Matrix4x4)">
  2885. <summary>
  2886. Tests whether two specified matrices are not equal.
  2887. </summary>
  2888. <param name="matrix1">The left-hand matrix.</param>
  2889. <param name="matrix2">The right-hand matrix.</param>
  2890. <returns>Returns <see langword="true"/> if the two matrices are not equal or <see langword="false"/> otherwise.</returns>
  2891. </member>
  2892. <member name="M:AForge.Math.Matrix4x4.Equals(AForge.Math.Matrix4x4)">
  2893. <summary>
  2894. Tests whether the matrix equals to the specified one.
  2895. </summary>
  2896. <param name="matrix">The matrix to test equality with.</param>
  2897. <returns>Returns <see langword="true"/> if the two matrices are equal or <see langword="false"/> otherwise.</returns>
  2898. </member>
  2899. <member name="M:AForge.Math.Matrix4x4.Equals(System.Object)">
  2900. <summary>
  2901. Tests whether the matrix equals to the specified object.
  2902. </summary>
  2903. <param name="obj">The object to test equality with.</param>
  2904. <returns>Returns <see langword="true"/> if the matrix equals to the specified object or <see langword="false"/> otherwise.</returns>
  2905. </member>
  2906. <member name="M:AForge.Math.Matrix4x4.GetHashCode">
  2907. <summary>
  2908. Returns the hashcode for this instance.
  2909. </summary>
  2910. <returns>A 32-bit signed integer hash code.</returns>
  2911. </member>
  2912. <member name="T:AForge.Math.Metrics.CosineDistance">
  2913. <summary>
  2914. Cosine distance metric.
  2915. </summary>
  2916. <remarks><para>This class represents the cosine distance metric (1 - cosine similarity)
  2917. <a href="http://en.wikipedia.org/wiki/Cosine_similarity"></a>.
  2918. </para>
  2919. <para>Sample usage:</para>
  2920. <code>
  2921. // instantiate new distance class
  2922. CosineDistance dist = new CosineDistance();
  2923. // create two vectors for inputs
  2924. double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 };
  2925. double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 };
  2926. // get distance between the two vectors
  2927. double distance = dist.GetDistance( p, q );
  2928. </code>
  2929. </remarks>
  2930. </member>
  2931. <member name="M:AForge.Math.Metrics.CosineDistance.GetDistance(System.Double[],System.Double[])">
  2932. <summary>
  2933. Returns distance between two N-dimensional double vectors.
  2934. </summary>
  2935. <param name="p">1st point vector.</param>
  2936. <param name="q">2nd point vector.</param>
  2937. <returns>Returns Cosine distance between two supplied vectors.</returns>
  2938. <exception cref="T:System.ArgumentException">Thrown if the two vectors are of different dimensions (if specified
  2939. array have different length).</exception>
  2940. </member>
  2941. <member name="T:AForge.Math.Metrics.CosineSimilarity">
  2942. <summary>
  2943. Cosine similarity metric.
  2944. </summary>
  2945. <remarks><para>This class represents the
  2946. <a href="http://en.wikipedia.org/wiki/Cosine_similarity">Cosine Similarity metric</a>.</para>
  2947. <para>Sample usage:</para>
  2948. <code>
  2949. // instantiate new similarity class
  2950. CosineSimilarity sim = new CosineSimilarity( );
  2951. // create two vectors for inputs
  2952. double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 };
  2953. double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 };
  2954. // get similarity between the two vectors
  2955. double similarityScore = sim.GetSimilarityScore( p, q );
  2956. </code>
  2957. </remarks>
  2958. </member>
  2959. <member name="M:AForge.Math.Metrics.CosineSimilarity.GetSimilarityScore(System.Double[],System.Double[])">
  2960. <summary>
  2961. Returns similarity score for two N-dimensional double vectors.
  2962. </summary>
  2963. <param name="p">1st point vector.</param>
  2964. <param name="q">2nd point vector.</param>
  2965. <returns>Returns Cosine similarity between two supplied vectors.</returns>
  2966. <exception cref="T:System.ArgumentException">Thrown if the two vectors are of different dimensions (if specified
  2967. array have different length).</exception>
  2968. </member>
  2969. <member name="T:AForge.Math.Metrics.EuclideanDistance">
  2970. <summary>
  2971. Euclidean distance metric.
  2972. </summary>
  2973. <remarks><para>This class represents the
  2974. <a href="http://en.wikipedia.org/wiki/Euclidean_distance">Euclidean distance metric.</a></para>
  2975. <para>Sample usage:</para>
  2976. <code>
  2977. // instantiate new distance class
  2978. EuclideanDistance dist = new EuclideanDistance( );
  2979. // create two vectors for inputs
  2980. double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 };
  2981. double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 };
  2982. // get distance between the two vectors
  2983. double distance = dist.GetDistance( p, q );
  2984. </code>
  2985. </remarks>
  2986. </member>
  2987. <member name="M:AForge.Math.Metrics.EuclideanDistance.GetDistance(System.Double[],System.Double[])">
  2988. <summary>
  2989. Returns distance between two N-dimensional double vectors.
  2990. </summary>
  2991. <param name="p">1st point vector.</param>
  2992. <param name="q">2nd point vector.</param>
  2993. <returns>Returns Euclidean distance between two supplied vectors.</returns>
  2994. <exception cref="T:System.ArgumentException">Thrown if the two vectors are of different dimensions (if specified
  2995. array have different length).</exception>
  2996. </member>
  2997. <member name="T:AForge.Math.Metrics.EuclideanSimilarity">
  2998. <summary>
  2999. Euclidean similarity metric.
  3000. </summary>
  3001. <remarks><para>This class represents the
  3002. <a href="http://en.wikipedia.org/wiki/Euclidean_distance">Euclidean Similarity metric</a>,
  3003. which is calculated as 1.0 / ( 1.0 + EuclideanDistance ).</para>
  3004. <para>Sample usage:</para>
  3005. <code>
  3006. // instantiate new similarity class
  3007. EuclideanSimilarity sim = new EuclideanSimilarity( );
  3008. // create two vectors for inputs
  3009. double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 };
  3010. double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 };
  3011. // get simirarity between the two vectors
  3012. double similarityScore = sim.GetSimilarityScore( p, q );
  3013. </code>
  3014. </remarks>
  3015. </member>
  3016. <member name="M:AForge.Math.Metrics.EuclideanSimilarity.GetSimilarityScore(System.Double[],System.Double[])">
  3017. <summary>
  3018. Returns similarity score for two N-dimensional double vectors.
  3019. </summary>
  3020. <param name="p">1st point vector.</param>
  3021. <param name="q">2nd point vector.</param>
  3022. <returns>Returns Euclidean similarity between two supplied vectors.</returns>
  3023. <exception cref="T:System.ArgumentException">Thrown if the two vectors are of different dimensions (if specified
  3024. array have different length).</exception>
  3025. </member>
  3026. <member name="T:AForge.Math.Metrics.HammingDistance">
  3027. <summary>
  3028. Hamming distance metric.
  3029. </summary>
  3030. <remarks><para>This class represents the
  3031. <a href="http://en.wikipedia.org/wiki/Hamming_Distance">Hamming distance metric</a>.</para>
  3032. <para>Sample usage:</para>
  3033. <code>
  3034. // instantiate new distance class
  3035. HammingDistance dist = new HammingDistance( );
  3036. // create two vectors for inputs
  3037. double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 };
  3038. double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 };
  3039. // get distance between the two vectors
  3040. double distance = dist.GetDistance( p, q );
  3041. </code>
  3042. </remarks>
  3043. </member>
  3044. <member name="M:AForge.Math.Metrics.HammingDistance.GetDistance(System.Double[],System.Double[])">
  3045. <summary>
  3046. Returns distance between two N-dimensional double vectors.
  3047. </summary>
  3048. <param name="p">1st point vector.</param>
  3049. <param name="q">2nd point vector.</param>
  3050. <returns>Returns Hamming distance between two supplied vectors.</returns>
  3051. <exception cref="T:System.ArgumentException">Thrown if the two vectors are of different dimensions (if specified
  3052. array have different length).</exception>
  3053. </member>
  3054. <member name="T:AForge.Math.Metrics.IDistance">
  3055. <summary>
  3056. Interface for distance metric algorithms.
  3057. </summary>
  3058. <remarks><para>The interface defines a set of methods implemented
  3059. by distance metric algorithms. These algorithms typically take a set of points and return a
  3060. distance measure of the x and y coordinates. In this case, the points are represented by two vectors.</para>
  3061. <para>Distance metric algorithms are used in many machine learning algorithms e.g K-nearest neighbor
  3062. and K-means clustering.</para>
  3063. <para>For additional details about distance metrics, documentation of the
  3064. particular algorithms should be studied.</para>
  3065. </remarks>
  3066. </member>
  3067. <member name="M:AForge.Math.Metrics.IDistance.GetDistance(System.Double[],System.Double[])">
  3068. <summary>
  3069. Returns distance between two N-dimensional double vectors.
  3070. </summary>
  3071. <param name="p">1st point vector.</param>
  3072. <param name="q">2nd point vector.</param>
  3073. <returns>Returns distance measurement determined by the given algorithm.</returns>
  3074. </member>
  3075. <member name="T:AForge.Math.Metrics.ISimilarity">
  3076. <summary>
  3077. Interface for similarity algorithms.
  3078. </summary>
  3079. <remarks><para>The interface defines a set of methods implemented
  3080. by similarity and correlation algorithms. These algorithms typically take a set of points and return a
  3081. similarity score for the two vectors.</para>
  3082. <para>Similarity and correlation algorithms are used in many machine learning and collaborative
  3083. filtering algorithms.</para>
  3084. <para>For additional details about similarity metrics, documentation of the
  3085. particular algorithms should be studied.</para>
  3086. </remarks>
  3087. </member>
  3088. <member name="M:AForge.Math.Metrics.ISimilarity.GetSimilarityScore(System.Double[],System.Double[])">
  3089. <summary>
  3090. Returns similarity score for two N-dimensional double vectors.
  3091. </summary>
  3092. <param name="p">1st point vector.</param>
  3093. <param name="q">2nd point vector.</param>
  3094. <returns>Returns similarity score determined by the given algorithm.</returns>
  3095. </member>
  3096. <member name="T:AForge.Math.Metrics.JaccardDistance">
  3097. <summary>
  3098. Jaccard distance metric.
  3099. </summary>
  3100. <remarks><para>This class represents the
  3101. <a href="http://en.wikipedia.org/wiki/Jaccard_distance">Jaccard distance metric</a>.</para>
  3102. <para>Sample usage:</para>
  3103. <code>
  3104. // instantiate new distance class
  3105. JaccardDistance dist = new JaccardDistance( );
  3106. // create two vectors for inputs
  3107. double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 };
  3108. double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 };
  3109. // get distance between the two vectors
  3110. double distance = dist.GetDistance( p, q );
  3111. </code>
  3112. </remarks>
  3113. </member>
  3114. <member name="M:AForge.Math.Metrics.JaccardDistance.GetDistance(System.Double[],System.Double[])">
  3115. <summary>
  3116. Returns distance between two N-dimensional double vectors.
  3117. </summary>
  3118. <param name="p">1st point vector.</param>
  3119. <param name="q">2nd point vector.</param>
  3120. <returns>Returns Jaccard distance between two supplied vectors.</returns>
  3121. <exception cref="T:System.ArgumentException">Thrown if the two vectors are of different dimensions (if specified
  3122. array have different length).</exception>
  3123. </member>
  3124. <member name="T:AForge.Math.Metrics.ManhattanDistance">
  3125. <summary>
  3126. Manhattan distance metric.
  3127. </summary>
  3128. <remarks><para>This class represents the
  3129. <a href="http://en.wikipedia.org/wiki/Manhattan_distance">Manhattan distance metric</a>
  3130. (aka City Block and Taxi Cab distance).</para>
  3131. <para>Sample usage:</para>
  3132. <code>
  3133. // instantiate new distance class
  3134. ManhattanDistance dist = new ManhattanDistance( );
  3135. // create two vectors for inputs
  3136. double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 };
  3137. double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 };
  3138. // get distance between the two vectors
  3139. double distance = dist.GetDistance( p, q );
  3140. </code>
  3141. </remarks>
  3142. </member>
  3143. <member name="M:AForge.Math.Metrics.ManhattanDistance.GetDistance(System.Double[],System.Double[])">
  3144. <summary>
  3145. Returns distance between two N-dimensional double vectors.
  3146. </summary>
  3147. <param name="p">1st point vector.</param>
  3148. <param name="q">2nd point vector.</param>
  3149. <returns>Returns Manhattan distance between two supplied vectors.</returns>
  3150. <exception cref="T:System.ArgumentException">Thrown if the two vectors are of different dimensions (if specified
  3151. array have different length).</exception>
  3152. </member>
  3153. <member name="T:AForge.Math.Metrics.PearsonCorrelation">
  3154. <summary>
  3155. Pearson correlation metric.
  3156. </summary>
  3157. <remarks><para>This class represents the
  3158. <a href="http://en.wikipedia.org/wiki/Pearson_correlation">Pearson correlation metric</a>.</para>
  3159. <para>Sample usage:</para>
  3160. <code>
  3161. // instantiate new pearson correlation class
  3162. PearsonCorrelation cor = new PearsonCorrelation( );
  3163. // create two vectors for inputs
  3164. double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 };
  3165. double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 };
  3166. // get correlation between the two vectors
  3167. double correlation = cor.GetSimilarityScore( p, q );
  3168. </code>
  3169. </remarks>
  3170. </member>
  3171. <member name="M:AForge.Math.Metrics.PearsonCorrelation.GetSimilarityScore(System.Double[],System.Double[])">
  3172. <summary>
  3173. Returns the pearson correlation for two N-dimensional double vectors.
  3174. </summary>
  3175. <param name="p">1st point vector.</param>
  3176. <param name="q">2nd point vector.</param>
  3177. <returns>Returns Pearson correlation between two supplied vectors.</returns>
  3178. <exception cref="T:System.ArgumentException">Thrown if the two vectors are of different dimensions (if specified
  3179. array have different length).</exception>
  3180. </member>
  3181. <member name="T:AForge.Math.PerlinNoise">
  3182. <summary>
  3183. Perlin noise function.
  3184. </summary>
  3185. <remarks><para>The class implements 1-D and 2-D Perlin noise functions, which represent
  3186. sum of several smooth noise functions with different frequency and amplitude. The description
  3187. of Perlin noise function and its calculation may be found on
  3188. <a href="http://freespace.virgin.net/hugo.elias/models/m_perlin.htm" target="_blank">Hugo Elias's page</a>.
  3189. </para>
  3190. <para>The number of noise functions, which comprise the resulting Perlin noise function, is
  3191. set by <see cref="P:AForge.Math.PerlinNoise.Octaves"/> property. Amplitude and frequency values for each octave
  3192. start from values, which are set by <see cref="P:AForge.Math.PerlinNoise.InitFrequency"/> and <see cref="P:AForge.Math.PerlinNoise.InitAmplitude"/>
  3193. properties.</para>
  3194. <para>Sample usage (clouds effect):</para>
  3195. <code>
  3196. // create Perlin noise function
  3197. PerlinNoise noise = new PerlinNoise( 8, 0.5, 1.0 / 32 );
  3198. // generate clouds effect
  3199. float[,] texture = new float[height, width];
  3200. for ( int y = 0; y &lt; height; y++ )
  3201. {
  3202. for ( int x = 0; x &lt; width; x++ )
  3203. {
  3204. texture[y, x] =
  3205. Math.Max( 0.0f, Math.Min( 1.0f,
  3206. (float) noise.Function2D( x, y ) * 0.5f + 0.5f
  3207. ) );
  3208. }
  3209. }
  3210. </code>
  3211. </remarks>
  3212. </member>
  3213. <member name="P:AForge.Math.PerlinNoise.InitFrequency">
  3214. <summary>
  3215. Initial frequency.
  3216. </summary>
  3217. <remarks><para>The property sets initial frequency of the first octave. Frequencies for
  3218. next octaves are calculated using the next equation:<br />
  3219. frequency<sub>i</sub> = <see cref="P:AForge.Math.PerlinNoise.InitFrequency"/> * 2<sup>i</sup>,
  3220. where i = [0, <see cref="P:AForge.Math.PerlinNoise.Octaves"/>).
  3221. </para>
  3222. <para>Default value is set to <b>1</b>.</para>
  3223. </remarks>
  3224. </member>
  3225. <member name="P:AForge.Math.PerlinNoise.InitAmplitude">
  3226. <summary>
  3227. Initial amplitude.
  3228. </summary>
  3229. <remarks><para>The property sets initial amplitude of the first octave. Amplitudes for
  3230. next octaves are calculated using the next equation:<br />
  3231. amplitude<sub>i</sub> = <see cref="P:AForge.Math.PerlinNoise.InitAmplitude"/> * <see cref="P:AForge.Math.PerlinNoise.Persistence"/><sup>i</sup>,
  3232. where i = [0, <see cref="P:AForge.Math.PerlinNoise.Octaves"/>).
  3233. </para>
  3234. <para>Default value is set to <b>1</b>.</para>
  3235. </remarks>
  3236. </member>
  3237. <member name="P:AForge.Math.PerlinNoise.Persistence">
  3238. <summary>
  3239. Persistence value.
  3240. </summary>
  3241. <remarks><para>The property sets so called persistence value, which controls the way
  3242. how <see cref="P:AForge.Math.PerlinNoise.InitAmplitude">amplitude</see> is calculated for each octave comprising
  3243. the Perlin noise function.</para>
  3244. <para>Default value is set to <b>0.65</b>.</para>
  3245. </remarks>
  3246. </member>
  3247. <member name="P:AForge.Math.PerlinNoise.Octaves">
  3248. <summary>
  3249. Number of octaves, [1, 32].
  3250. </summary>
  3251. <remarks><para>The property sets the number of noise functions, which sum up the resulting
  3252. Perlin noise function.</para>
  3253. <para>Default value is set to <b>4</b>.</para>
  3254. </remarks>
  3255. </member>
  3256. <member name="M:AForge.Math.PerlinNoise.#ctor">
  3257. <summary>
  3258. Initializes a new instance of the <see cref="T:AForge.Math.PerlinNoise"/> class.
  3259. </summary>
  3260. </member>
  3261. <member name="M:AForge.Math.PerlinNoise.#ctor(System.Int32,System.Double)">
  3262. <summary>
  3263. Initializes a new instance of the <see cref="T:AForge.Math.PerlinNoise"/> class.
  3264. </summary>
  3265. <param name="octaves">Number of octaves (see <see cref="P:AForge.Math.PerlinNoise.Octaves"/> property).</param>
  3266. <param name="persistence">Persistence value (see <see cref="P:AForge.Math.PerlinNoise.Persistence"/> property).</param>
  3267. </member>
  3268. <member name="M:AForge.Math.PerlinNoise.#ctor(System.Int32,System.Double,System.Double,System.Double)">
  3269. <summary>
  3270. Initializes a new instance of the <see cref="T:AForge.Math.PerlinNoise"/> class.
  3271. </summary>
  3272. <param name="octaves">Number of octaves (see <see cref="P:AForge.Math.PerlinNoise.Octaves"/> property).</param>
  3273. <param name="persistence">Persistence value (see <see cref="P:AForge.Math.PerlinNoise.Persistence"/> property).</param>
  3274. <param name="initFrequency">Initial frequency (see <see cref="P:AForge.Math.PerlinNoise.InitFrequency"/> property).</param>
  3275. <param name="initAmplitude">Initial amplitude (see <see cref="P:AForge.Math.PerlinNoise.InitAmplitude"/> property).</param>
  3276. </member>
  3277. <member name="M:AForge.Math.PerlinNoise.Function(System.Double)">
  3278. <summary>
  3279. 1-D Perlin noise function.
  3280. </summary>
  3281. <param name="x">x value.</param>
  3282. <returns>Returns function's value at point <paramref name="x"/>.</returns>
  3283. </member>
  3284. <member name="M:AForge.Math.PerlinNoise.Function2D(System.Double,System.Double)">
  3285. <summary>
  3286. 2-D Perlin noise function.
  3287. </summary>
  3288. <param name="x">x value.</param>
  3289. <param name="y">y value.</param>
  3290. <returns>Returns function's value at point (<paramref name="x"/>, <paramref name="y"/>).</returns>
  3291. </member>
  3292. <member name="M:AForge.Math.PerlinNoise.Noise(System.Int32)">
  3293. <summary>
  3294. Ordinary noise function
  3295. </summary>
  3296. </member>
  3297. <member name="M:AForge.Math.PerlinNoise.SmoothedNoise(System.Double)">
  3298. <summary>
  3299. Smoothed noise.
  3300. </summary>
  3301. </member>
  3302. <member name="M:AForge.Math.PerlinNoise.CosineInterpolate(System.Double,System.Double,System.Double)">
  3303. <summary>
  3304. Cosine interpolation.
  3305. </summary>
  3306. </member>
  3307. <member name="T:AForge.Math.Random.ExponentialGenerator">
  3308. <summary>
  3309. Exponential random numbers generator.
  3310. </summary>
  3311. <remarks><para>The random number generator generates exponential
  3312. random numbers with specified rate value (lambda).</para>
  3313. <para>The generator uses <see cref="T:AForge.Math.Random.UniformOneGenerator"/> generator as a base
  3314. to generate random numbers.</para>
  3315. <para>Sample usage:</para>
  3316. <code>
  3317. // create instance of random generator
  3318. IRandomNumberGenerator generator = new ExponentialGenerator( 5 );
  3319. // generate random number
  3320. float randomNumber = generator.Next( );
  3321. </code>
  3322. </remarks>
  3323. </member>
  3324. <member name="P:AForge.Math.Random.ExponentialGenerator.Rate">
  3325. <summary>
  3326. Rate value (inverse mean).
  3327. </summary>
  3328. <remarks>The rate value should be positive and non zero.</remarks>
  3329. </member>
  3330. <member name="P:AForge.Math.Random.ExponentialGenerator.Mean">
  3331. <summary>
  3332. Mean value of the generator.
  3333. </summary>
  3334. </member>
  3335. <member name="P:AForge.Math.Random.ExponentialGenerator.Variance">
  3336. <summary>
  3337. Variance value of the generator.
  3338. </summary>
  3339. </member>
  3340. <member name="M:AForge.Math.Random.ExponentialGenerator.#ctor(System.Single)">
  3341. <summary>
  3342. Initializes a new instance of the <see cref="T:AForge.Math.Random.ExponentialGenerator"/> class.
  3343. </summary>
  3344. <param name="rate">Rate value.</param>
  3345. <exception cref="T:System.ArgumentException">Rate value should be greater than zero.</exception>
  3346. </member>
  3347. <member name="M:AForge.Math.Random.ExponentialGenerator.#ctor(System.Single,System.Int32)">
  3348. <summary>
  3349. Initializes a new instance of the <see cref="T:AForge.Math.Random.ExponentialGenerator"/> class.
  3350. </summary>
  3351. <param name="rate">Rate value (inverse mean).</param>
  3352. <param name="seed">Seed value to initialize random numbers generator.</param>
  3353. <exception cref="T:System.ArgumentException">Rate value should be greater than zero.</exception>
  3354. </member>
  3355. <member name="M:AForge.Math.Random.ExponentialGenerator.Next">
  3356. <summary>
  3357. Generate next random number
  3358. </summary>
  3359. <returns>Returns next random number.</returns>
  3360. </member>
  3361. <member name="M:AForge.Math.Random.ExponentialGenerator.SetSeed(System.Int32)">
  3362. <summary>
  3363. Set seed of the random numbers generator.
  3364. </summary>
  3365. <param name="seed">Seed value.</param>
  3366. <remarks>Resets random numbers generator initializing it with
  3367. specified seed value.</remarks>
  3368. </member>
  3369. <member name="T:AForge.Math.Random.GaussianGenerator">
  3370. <summary>
  3371. Gaussian random numbers generator.
  3372. </summary>
  3373. <remarks><para>The random number generator generates gaussian
  3374. random numbers with specified mean and standard deviation values.</para>
  3375. <para>The generator uses <see cref="T:AForge.Math.Random.StandardGenerator"/> generator as base
  3376. to generate random numbers.</para>
  3377. <para>Sample usage:</para>
  3378. <code>
  3379. // create instance of random generator
  3380. IRandomNumberGenerator generator = new GaussianGenerator( 5.0, 1.5 );
  3381. // generate random number
  3382. float randomNumber = generator.Next( );
  3383. </code>
  3384. </remarks>
  3385. </member>
  3386. <member name="P:AForge.Math.Random.GaussianGenerator.Mean">
  3387. <summary>
  3388. Mean value of the generator.
  3389. </summary>
  3390. </member>
  3391. <member name="P:AForge.Math.Random.GaussianGenerator.Variance">
  3392. <summary>
  3393. Variance value of the generator.
  3394. </summary>
  3395. </member>
  3396. <member name="P:AForge.Math.Random.GaussianGenerator.StdDev">
  3397. <summary>
  3398. Standard deviation value.
  3399. </summary>
  3400. </member>
  3401. <member name="M:AForge.Math.Random.GaussianGenerator.#ctor(System.Single,System.Single)">
  3402. <summary>
  3403. Initializes a new instance of the <see cref="T:AForge.Math.Random.GaussianGenerator"/> class.
  3404. </summary>
  3405. <param name="mean">Mean value.</param>
  3406. <param name="stdDev">Standard deviation value.</param>
  3407. </member>
  3408. <member name="M:AForge.Math.Random.GaussianGenerator.#ctor(System.Single,System.Single,System.Int32)">
  3409. <summary>
  3410. Initializes a new instance of the <see cref="T:AForge.Math.Random.GaussianGenerator"/> class.
  3411. </summary>
  3412. <param name="mean">Mean value.</param>
  3413. <param name="stdDev">Standard deviation value.</param>
  3414. <param name="seed">Seed value to initialize random numbers generator.</param>
  3415. </member>
  3416. <member name="M:AForge.Math.Random.GaussianGenerator.Next">
  3417. <summary>
  3418. Generate next random number.
  3419. </summary>
  3420. <returns>Returns next random number.</returns>
  3421. </member>
  3422. <member name="M:AForge.Math.Random.GaussianGenerator.SetSeed(System.Int32)">
  3423. <summary>
  3424. Set seed of the random numbers generator.
  3425. </summary>
  3426. <param name="seed">Seed value.</param>
  3427. <remarks>Resets random numbers generator initializing it with
  3428. specified seed value.</remarks>
  3429. </member>
  3430. <member name="T:AForge.Math.Random.IRandomNumberGenerator">
  3431. <summary>
  3432. Interface for random numbers generators.
  3433. </summary>
  3434. <remarks><para>The interface defines set of methods and properties, which should
  3435. be implemented by different algorithms for random numbers generatation.</para>
  3436. </remarks>
  3437. </member>
  3438. <member name="P:AForge.Math.Random.IRandomNumberGenerator.Mean">
  3439. <summary>
  3440. Mean value of generator.
  3441. </summary>
  3442. </member>
  3443. <member name="P:AForge.Math.Random.IRandomNumberGenerator.Variance">
  3444. <summary>
  3445. Variance value of generator.
  3446. </summary>
  3447. </member>
  3448. <member name="M:AForge.Math.Random.IRandomNumberGenerator.Next">
  3449. <summary>
  3450. Generate next random number.
  3451. </summary>
  3452. <returns>Returns next random number.</returns>
  3453. </member>
  3454. <member name="M:AForge.Math.Random.IRandomNumberGenerator.SetSeed(System.Int32)">
  3455. <summary>
  3456. Set seed of the random numbers generator.
  3457. </summary>
  3458. <param name="seed">Seed value.</param>
  3459. </member>
  3460. <member name="T:AForge.Math.Random.StandardGenerator">
  3461. <summary>
  3462. Standard random numbers generator.
  3463. </summary>
  3464. <remarks><para>The random number generator generates gaussian
  3465. random numbers with zero mean and standard deviation of one. The generator
  3466. implements polar form of the Box-Muller transformation.</para>
  3467. <para>The generator uses <see cref="T:AForge.Math.Random.UniformOneGenerator"/> generator as a base
  3468. to generate random numbers.</para>
  3469. <para>Sample usage:</para>
  3470. <code>
  3471. // create instance of random generator
  3472. IRandomNumberGenerator generator = new StandardGenerator( );
  3473. // generate random number
  3474. float randomNumber = generator.Next( );
  3475. </code>
  3476. </remarks>
  3477. </member>
  3478. <member name="P:AForge.Math.Random.StandardGenerator.Mean">
  3479. <summary>
  3480. Mean value of the generator.
  3481. </summary>
  3482. </member>
  3483. <member name="P:AForge.Math.Random.StandardGenerator.Variance">
  3484. <summary>
  3485. Variance value of the generator.
  3486. </summary>
  3487. </member>
  3488. <member name="M:AForge.Math.Random.StandardGenerator.#ctor">
  3489. <summary>
  3490. Initializes a new instance of the <see cref="T:AForge.Math.Random.StandardGenerator"/> class.
  3491. </summary>
  3492. </member>
  3493. <member name="M:AForge.Math.Random.StandardGenerator.#ctor(System.Int32)">
  3494. <summary>
  3495. Initializes a new instance of the <see cref="T:AForge.Math.Random.StandardGenerator"/> class.
  3496. </summary>
  3497. <param name="seed">Seed value to initialize random numbers generator.</param>
  3498. </member>
  3499. <member name="M:AForge.Math.Random.StandardGenerator.Next">
  3500. <summary>
  3501. Generate next random number.
  3502. </summary>
  3503. <returns>Returns next random number.</returns>
  3504. </member>
  3505. <member name="M:AForge.Math.Random.StandardGenerator.SetSeed(System.Int32)">
  3506. <summary>
  3507. Set seed of the random numbers generator.
  3508. </summary>
  3509. <param name="seed">Seed value.</param>
  3510. <remarks>Resets random numbers generator initializing it with
  3511. specified seed value.</remarks>
  3512. </member>
  3513. <member name="T:AForge.Math.Random.UniformGenerator">
  3514. <summary>
  3515. Uniform random numbers generator.
  3516. </summary>
  3517. <remarks><para>The random numbers generator generates uniformly
  3518. distributed numbers in the <see cref="P:AForge.Math.Random.UniformGenerator.Range">specified range</see> - values
  3519. are greater or equal to minimum range's value and less than maximum range's
  3520. value.</para>
  3521. <para>The generator uses <see cref="T:AForge.Math.Random.UniformOneGenerator"/> generator
  3522. to generate random numbers.</para>
  3523. <para>Sample usage:</para>
  3524. <code>
  3525. // create instance of random generator
  3526. IRandomNumberGenerator generator = new UniformGenerator( new Range( 50, 100 ) );
  3527. // generate random number
  3528. float randomNumber = generator.Next( );
  3529. </code>
  3530. </remarks>
  3531. </member>
  3532. <member name="P:AForge.Math.Random.UniformGenerator.Mean">
  3533. <summary>
  3534. Mean value of the generator.
  3535. </summary>
  3536. </member>
  3537. <member name="P:AForge.Math.Random.UniformGenerator.Variance">
  3538. <summary>
  3539. Variance value of the generator.
  3540. </summary>
  3541. </member>
  3542. <member name="P:AForge.Math.Random.UniformGenerator.Range">
  3543. <summary>
  3544. Random numbers range.
  3545. </summary>
  3546. <remarks><para>Range of random numbers to generate. Generated numbers are
  3547. greater or equal to minimum range's value and less than maximum range's
  3548. value.</para>
  3549. </remarks>
  3550. </member>
  3551. <member name="M:AForge.Math.Random.UniformGenerator.#ctor(AForge.Range)">
  3552. <summary>
  3553. Initializes a new instance of the <see cref="T:AForge.Math.Random.UniformGenerator"/> class.
  3554. </summary>
  3555. <param name="range">Random numbers range.</param>
  3556. <remarks>Initializes random numbers generator with zero seed.</remarks>
  3557. </member>
  3558. <member name="M:AForge.Math.Random.UniformGenerator.#ctor(AForge.Range,System.Int32)">
  3559. <summary>
  3560. Initializes a new instance of the <see cref="T:AForge.Math.Random.UniformGenerator"/> class.
  3561. </summary>
  3562. <param name="range">Random numbers range.</param>
  3563. <param name="seed">Seed value to initialize random numbers generator.</param>
  3564. </member>
  3565. <member name="M:AForge.Math.Random.UniformGenerator.Next">
  3566. <summary>
  3567. Generate next random number.
  3568. </summary>
  3569. <returns>Returns next random number.</returns>
  3570. </member>
  3571. <member name="M:AForge.Math.Random.UniformGenerator.SetSeed(System.Int32)">
  3572. <summary>
  3573. Set seed of the random numbers generator.
  3574. </summary>
  3575. <param name="seed">Seed value.</param>
  3576. <remarks>Resets random numbers generator initializing it with
  3577. specified seed value.</remarks>
  3578. </member>
  3579. <member name="T:AForge.Math.Random.UniformOneGenerator">
  3580. <summary>
  3581. Uniform random numbers generator in the range of [0, 1).
  3582. </summary>
  3583. <remarks><para>The random number generator generates uniformly
  3584. distributed numbers in the range of [0, 1) - greater or equal to 0.0
  3585. and less than 1.0.</para>
  3586. <para><note>At this point the generator is based on the
  3587. internal .NET generator, but may be rewritten to
  3588. use faster generation algorithm.</note></para>
  3589. <para>Sample usage:</para>
  3590. <code>
  3591. // create instance of random generator
  3592. IRandomNumberGenerator generator = new UniformOneGenerator( );
  3593. // generate random number
  3594. float randomNumber = generator.Next( );
  3595. </code>
  3596. </remarks>
  3597. </member>
  3598. <member name="P:AForge.Math.Random.UniformOneGenerator.Mean">
  3599. <summary>
  3600. Mean value of the generator.
  3601. </summary>
  3602. </member>
  3603. <member name="P:AForge.Math.Random.UniformOneGenerator.Variance">
  3604. <summary>
  3605. Variance value of the generator.
  3606. </summary>
  3607. </member>
  3608. <member name="M:AForge.Math.Random.UniformOneGenerator.#ctor">
  3609. <summary>
  3610. Initializes a new instance of the <see cref="T:AForge.Math.Random.UniformOneGenerator"/> class.
  3611. </summary>
  3612. <remarks>Initializes random numbers generator with zero seed.</remarks>
  3613. </member>
  3614. <member name="M:AForge.Math.Random.UniformOneGenerator.#ctor(System.Int32)">
  3615. <summary>
  3616. Initializes a new instance of the <see cref="T:AForge.Math.Random.UniformOneGenerator"/> class.
  3617. </summary>
  3618. <param name="seed">Seed value to initialize random numbers generator.</param>
  3619. </member>
  3620. <member name="M:AForge.Math.Random.UniformOneGenerator.Next">
  3621. <summary>
  3622. Generate next random number.
  3623. </summary>
  3624. <returns>Returns next random number.</returns>
  3625. </member>
  3626. <member name="M:AForge.Math.Random.UniformOneGenerator.SetSeed(System.Int32)">
  3627. <summary>
  3628. Set seed of the random numbers generator.
  3629. </summary>
  3630. <param name="seed">Seed value.</param>
  3631. <remarks>Resets random numbers generator initializing it with
  3632. specified seed value.</remarks>
  3633. </member>
  3634. <member name="T:AForge.Math.Statistics">
  3635. <summary>
  3636. Set of statistics functions.
  3637. </summary>
  3638. <remarks>The class represents collection of simple functions used
  3639. in statistics.</remarks>
  3640. </member>
  3641. <member name="M:AForge.Math.Statistics.Mean(System.Int32[])">
  3642. <summary>
  3643. Calculate mean value.
  3644. </summary>
  3645. <param name="values">Histogram array.</param>
  3646. <returns>Returns mean value.</returns>
  3647. <remarks><para>The input array is treated as histogram, i.e. its
  3648. indexes are treated as values of stochastic function, but
  3649. array values are treated as "probabilities" (total amount of
  3650. hits).</para>
  3651. <para>Sample usage:</para>
  3652. <code>
  3653. // create histogram array
  3654. int[] histogram = new int[] { 1, 1, 2, 3, 6, 8, 11, 12, 7, 3 };
  3655. // calculate mean value
  3656. double mean = Statistics.Mean( histogram );
  3657. // output it (5.759)
  3658. Console.WriteLine( "mean = " + mean.ToString( "F3" ) );
  3659. </code>
  3660. </remarks>
  3661. </member>
  3662. <member name="M:AForge.Math.Statistics.StdDev(System.Int32[])">
  3663. <summary>
  3664. Calculate standard deviation.
  3665. </summary>
  3666. <param name="values">Histogram array.</param>
  3667. <returns>Returns value of standard deviation.</returns>
  3668. <remarks><para>The input array is treated as histogram, i.e. its
  3669. indexes are treated as values of stochastic function, but
  3670. array values are treated as "probabilities" (total amount of
  3671. hits).</para>
  3672. <para>Sample usage:</para>
  3673. <code>
  3674. // create histogram array
  3675. int[] histogram = new int[] { 1, 1, 2, 3, 6, 8, 11, 12, 7, 3 };
  3676. // calculate standard deviation value
  3677. double stdDev = Statistics.StdDev( histogram );
  3678. // output it (1.999)
  3679. Console.WriteLine( "std.dev. = " + stdDev.ToString( "F3" ) );
  3680. </code>
  3681. </remarks>
  3682. </member>
  3683. <member name="M:AForge.Math.Statistics.StdDev(System.Int32[],System.Double)">
  3684. <summary>
  3685. Calculate standard deviation.
  3686. </summary>
  3687. <param name="values">Histogram array.</param>
  3688. <param name="mean">Mean value of the histogram.</param>
  3689. <returns>Returns value of standard deviation.</returns>
  3690. <remarks><para>The input array is treated as histogram, i.e. its
  3691. indexes are treated as values of stochastic function, but
  3692. array values are treated as "probabilities" (total amount of
  3693. hits).</para>
  3694. <para>The method is an equevalent to the <see cref="M:AForge.Math.Statistics.StdDev(System.Int32[])"/> method,
  3695. but it relieas on the passed mean value, which is previously calculated
  3696. using <see cref="M:AForge.Math.Statistics.Mean(System.Int32[])"/> method.</para>
  3697. </remarks>
  3698. </member>
  3699. <member name="M:AForge.Math.Statistics.Median(System.Int32[])">
  3700. <summary>
  3701. Calculate median value.
  3702. </summary>
  3703. <param name="values">Histogram array.</param>
  3704. <returns>Returns value of median.</returns>
  3705. <remarks>
  3706. <para>The input array is treated as histogram, i.e. its
  3707. indexes are treated as values of stochastic function, but
  3708. array values are treated as "probabilities" (total amount of
  3709. hits).</para>
  3710. <para><note>The median value is calculated accumulating histogram's
  3711. values starting from the <b>left</b> point until the sum reaches 50% of
  3712. histogram's sum.</note></para>
  3713. <para>Sample usage:</para>
  3714. <code>
  3715. // create histogram array
  3716. int[] histogram = new int[] { 1, 1, 2, 3, 6, 8, 11, 12, 7, 3 };
  3717. // calculate median value
  3718. int median = Statistics.Median( histogram );
  3719. // output it (6)
  3720. Console.WriteLine( "median = " + median );
  3721. </code>
  3722. </remarks>
  3723. </member>
  3724. <member name="M:AForge.Math.Statistics.GetRange(System.Int32[],System.Double)">
  3725. <summary>
  3726. Get range around median containing specified percentage of values.
  3727. </summary>
  3728. <param name="values">Histogram array.</param>
  3729. <param name="percent">Values percentage around median.</param>
  3730. <returns>Returns the range which containes specifies percentage
  3731. of values.</returns>
  3732. <remarks>
  3733. <para>The input array is treated as histogram, i.e. its
  3734. indexes are treated as values of stochastic function, but
  3735. array values are treated as "probabilities" (total amount of
  3736. hits).</para>
  3737. <para>The method calculates range of stochastic variable, which summary probability
  3738. comprises the specified percentage of histogram's hits.</para>
  3739. <para>Sample usage:</para>
  3740. <code>
  3741. // create histogram array
  3742. int[] histogram = new int[] { 1, 1, 2, 3, 6, 8, 11, 12, 7, 3 };
  3743. // get 75% range around median
  3744. IntRange range = Statistics.GetRange( histogram, 0.75 );
  3745. // output it ([4, 8])
  3746. Console.WriteLine( "range = [" + range.Min + ", " + range.Max + "]" );
  3747. </code>
  3748. </remarks>
  3749. </member>
  3750. <member name="M:AForge.Math.Statistics.Entropy(System.Int32[])">
  3751. <summary>
  3752. Calculate entropy value.
  3753. </summary>
  3754. <param name="values">Histogram array.</param>
  3755. <returns>Returns entropy value of the specified histagram array.</returns>
  3756. <remarks><para>The input array is treated as histogram, i.e. its
  3757. indexes are treated as values of stochastic function, but
  3758. array values are treated as "probabilities" (total amount of
  3759. hits).</para>
  3760. <para>Sample usage:</para>
  3761. <code>
  3762. // create histogram array with 2 values of equal probabilities
  3763. int[] histogram1 = new int[2] { 3, 3 };
  3764. // calculate entropy
  3765. double entropy1 = Statistics.Entropy( histogram1 );
  3766. // output it (1.000)
  3767. Console.WriteLine( "entropy1 = " + entropy1.ToString( "F3" ) );
  3768. // create histogram array with 4 values of equal probabilities
  3769. int[] histogram2 = new int[4] { 1, 1, 1, 1 };
  3770. // calculate entropy
  3771. double entropy2 = Statistics.Entropy( histogram2 );
  3772. // output it (2.000)
  3773. Console.WriteLine( "entropy2 = " + entropy2.ToString( "F3" ) );
  3774. // create histogram array with 4 values of different probabilities
  3775. int[] histogram3 = new int[4] { 1, 2, 3, 4 };
  3776. // calculate entropy
  3777. double entropy3 = Statistics.Entropy( histogram3 );
  3778. // output it (1.846)
  3779. Console.WriteLine( "entropy3 = " + entropy3.ToString( "F3" ) );
  3780. </code>
  3781. </remarks>
  3782. </member>
  3783. <member name="M:AForge.Math.Statistics.Mode(System.Int32[])">
  3784. <summary>
  3785. Calculate mode value.
  3786. </summary>
  3787. <param name="values">Histogram array.</param>
  3788. <returns>Returns mode value of the histogram array.</returns>
  3789. <remarks>
  3790. <para>The input array is treated as histogram, i.e. its
  3791. indexes are treated as values of stochastic function, but
  3792. array values are treated as "probabilities" (total amount of
  3793. hits).</para>
  3794. <para><note>Returns the minimum mode value if the specified histogram is multimodal.</note></para>
  3795. <para>Sample usage:</para>
  3796. <code>
  3797. // create array
  3798. int[] values = new int[] { 1, 1, 2, 3, 6, 8, 11, 12, 7, 3 };
  3799. // calculate mode value
  3800. int mode = Statistics.Mode( values );
  3801. // output it (7)
  3802. Console.WriteLine( "mode = " + mode );
  3803. </code>
  3804. </remarks>
  3805. </member>
  3806. <member name="T:AForge.Math.Tools">
  3807. <summary>
  3808. Set of tool functions.
  3809. </summary>
  3810. <remarks>The class contains different utility functions.</remarks>
  3811. </member>
  3812. <member name="M:AForge.Math.Tools.Pow2(System.Int32)">
  3813. <summary>
  3814. Calculates power of 2.
  3815. </summary>
  3816. <param name="power">Power to raise in.</param>
  3817. <returns>Returns specified power of 2 in the case if power is in the range of
  3818. [0, 30]. Otherwise returns 0.</returns>
  3819. </member>
  3820. <member name="M:AForge.Math.Tools.IsPowerOf2(System.Int32)">
  3821. <summary>
  3822. Checks if the specified integer is power of 2.
  3823. </summary>
  3824. <param name="x">Integer number to check.</param>
  3825. <returns>Returns <b>true</b> if the specified number is power of 2.
  3826. Otherwise returns <b>false</b>.</returns>
  3827. </member>
  3828. <member name="M:AForge.Math.Tools.Log2(System.Int32)">
  3829. <summary>
  3830. Get base of binary logarithm.
  3831. </summary>
  3832. <param name="x">Source integer number.</param>
  3833. <returns>Power of the number (base of binary logarithm).</returns>
  3834. </member>
  3835. <member name="T:AForge.Math.Vector3">
  3836. <summary>
  3837. 3D Vector structure with X, Y and Z coordinates.
  3838. </summary>
  3839. <remarks><para>The structure incapsulates X, Y and Z coordinates of a 3D vector and
  3840. provides some operations with it.</para></remarks>
  3841. </member>
  3842. <member name="F:AForge.Math.Vector3.X">
  3843. <summary>
  3844. X coordinate of the vector.
  3845. </summary>
  3846. </member>
  3847. <member name="F:AForge.Math.Vector3.Y">
  3848. <summary>
  3849. Y coordinate of the vector.
  3850. </summary>
  3851. </member>
  3852. <member name="F:AForge.Math.Vector3.Z">
  3853. <summary>
  3854. Z coordinate of the vector.
  3855. </summary>
  3856. </member>
  3857. <member name="P:AForge.Math.Vector3.Max">
  3858. <summary>
  3859. Returns maximum value of the vector.
  3860. </summary>
  3861. <remarks><para>Returns maximum value of all 3 vector's coordinates.</para></remarks>
  3862. </member>
  3863. <member name="P:AForge.Math.Vector3.Min">
  3864. <summary>
  3865. Returns minimum value of the vector.
  3866. </summary>
  3867. <remarks><para>Returns minimum value of all 3 vector's coordinates.</para></remarks>
  3868. </member>
  3869. <member name="P:AForge.Math.Vector3.MaxIndex">
  3870. <summary>
  3871. Returns index of the coordinate with maximum value.
  3872. </summary>
  3873. <remarks><para>Returns index of the coordinate, which has the maximum value - 0 for X,
  3874. 1 for Y or 2 for Z.</para>
  3875. <para><note>If there are multiple coordinates which have the same maximum value, the
  3876. property returns smallest index.</note></para>
  3877. </remarks>
  3878. </member>
  3879. <member name="P:AForge.Math.Vector3.MinIndex">
  3880. <summary>
  3881. Returns index of the coordinate with minimum value.
  3882. </summary>
  3883. <remarks><para>Returns index of the coordinate, which has the minimum value - 0 for X,
  3884. 1 for Y or 2 for Z.</para>
  3885. <para><note>If there are multiple coordinates which have the same minimum value, the
  3886. property returns smallest index.</note></para>
  3887. </remarks>
  3888. </member>
  3889. <member name="P:AForge.Math.Vector3.Norm">
  3890. <summary>
  3891. Returns vector's norm.
  3892. </summary>
  3893. <remarks><para>Returns Euclidean norm of the vector, which is a
  3894. square root of the sum: X<sup>2</sup>+Y<sup>2</sup>+Z<sup>2</sup>.</para>
  3895. </remarks>
  3896. </member>
  3897. <member name="P:AForge.Math.Vector3.Square">
  3898. <summary>
  3899. Returns square of the vector's norm.
  3900. </summary>
  3901. <remarks><para>Return X<sup>2</sup>+Y<sup>2</sup>+Z<sup>2</sup>, which is
  3902. a square of <see cref="P:AForge.Math.Vector3.Norm">vector's norm</see> or a <see cref="M:AForge.Math.Vector3.Dot(AForge.Math.Vector3,AForge.Math.Vector3)">dot product</see> of this vector
  3903. with itself.</para></remarks>
  3904. </member>
  3905. <member name="M:AForge.Math.Vector3.#ctor(System.Single,System.Single,System.Single)">
  3906. <summary>
  3907. Initializes a new instance of the <see cref="T:AForge.Math.Vector3"/> structure.
  3908. </summary>
  3909. <param name="x">X coordinate of the vector.</param>
  3910. <param name="y">Y coordinate of the vector.</param>
  3911. <param name="z">Z coordinate of the vector.</param>
  3912. </member>
  3913. <member name="M:AForge.Math.Vector3.#ctor(System.Single)">
  3914. <summary>
  3915. Initializes a new instance of the <see cref="T:AForge.Math.Vector3"/> structure.
  3916. </summary>
  3917. <param name="value">Value, which is set to all 3 coordinates of the vector.</param>
  3918. </member>
  3919. <member name="M:AForge.Math.Vector3.ToString">
  3920. <summary>
  3921. Returns a string representation of this object.
  3922. </summary>
  3923. <returns>A string representation of this object.</returns>
  3924. </member>
  3925. <member name="M:AForge.Math.Vector3.ToArray">
  3926. <summary>
  3927. Returns array representation of the vector.
  3928. </summary>
  3929. <returns>Array with 3 values containing X/Y/Z coordinates.</returns>
  3930. </member>
  3931. <member name="M:AForge.Math.Vector3.op_Addition(AForge.Math.Vector3,AForge.Math.Vector3)">
  3932. <summary>
  3933. Adds corresponding coordinates of two vectors.
  3934. </summary>
  3935. <param name="vector1">The vector to add to.</param>
  3936. <param name="vector2">The vector to add to the first vector.</param>
  3937. <returns>Returns a vector which coordinates are equal to sum of corresponding
  3938. coordinates of the two specified vectors.</returns>
  3939. </member>
  3940. <member name="M:AForge.Math.Vector3.Add(AForge.Math.Vector3,AForge.Math.Vector3)">
  3941. <summary>
  3942. Adds corresponding coordinates of two vectors.
  3943. </summary>
  3944. <param name="vector1">The vector to add to.</param>
  3945. <param name="vector2">The vector to add to the first vector.</param>
  3946. <returns>Returns a vector which coordinates are equal to sum of corresponding
  3947. coordinates of the two specified vectors.</returns>
  3948. </member>
  3949. <member name="M:AForge.Math.Vector3.op_Addition(AForge.Math.Vector3,System.Single)">
  3950. <summary>
  3951. Adds a value to all coordinates of the specified vector.
  3952. </summary>
  3953. <param name="vector">Vector to add the specified value to.</param>
  3954. <param name="value">Value to add to all coordinates of the vector.</param>
  3955. <returns>Returns new vector with all coordinates increased by the specified value.</returns>
  3956. </member>
  3957. <member name="M:AForge.Math.Vector3.Add(AForge.Math.Vector3,System.Single)">
  3958. <summary>
  3959. Adds a value to all coordinates of the specified vector.
  3960. </summary>
  3961. <param name="vector">Vector to add the specified value to.</param>
  3962. <param name="value">Value to add to all coordinates of the vector.</param>
  3963. <returns>Returns new vector with all coordinates increased by the specified value.</returns>
  3964. </member>
  3965. <member name="M:AForge.Math.Vector3.op_Subtraction(AForge.Math.Vector3,AForge.Math.Vector3)">
  3966. <summary>
  3967. Subtracts corresponding coordinates of two vectors.
  3968. </summary>
  3969. <param name="vector1">The vector to subtract from.</param>
  3970. <param name="vector2">The vector to subtract from the first vector.</param>
  3971. <returns>Returns a vector which coordinates are equal to difference of corresponding
  3972. coordinates of the two specified vectors.</returns>
  3973. </member>
  3974. <member name="M:AForge.Math.Vector3.Subtract(AForge.Math.Vector3,AForge.Math.Vector3)">
  3975. <summary>
  3976. Subtracts corresponding coordinates of two vectors.
  3977. </summary>
  3978. <param name="vector1">The vector to subtract from.</param>
  3979. <param name="vector2">The vector to subtract from the first vector.</param>
  3980. <returns>Returns a vector which coordinates are equal to difference of corresponding
  3981. coordinates of the two specified vectors.</returns>
  3982. </member>
  3983. <member name="M:AForge.Math.Vector3.op_Subtraction(AForge.Math.Vector3,System.Single)">
  3984. <summary>
  3985. Subtracts a value from all coordinates of the specified vector.
  3986. </summary>
  3987. <param name="vector">Vector to subtract the specified value from.</param>
  3988. <param name="value">Value to subtract from all coordinates of the vector.</param>
  3989. <returns>Returns new vector with all coordinates decreased by the specified value.</returns>
  3990. </member>
  3991. <member name="M:AForge.Math.Vector3.Subtract(AForge.Math.Vector3,System.Single)">
  3992. <summary>
  3993. Subtracts a value from all coordinates of the specified vector.
  3994. </summary>
  3995. <param name="vector">Vector to subtract the specified value from.</param>
  3996. <param name="value">Value to subtract from all coordinates of the vector.</param>
  3997. <returns>Returns new vector with all coordinates decreased by the specified value.</returns>
  3998. </member>
  3999. <member name="M:AForge.Math.Vector3.op_Multiply(AForge.Math.Vector3,AForge.Math.Vector3)">
  4000. <summary>
  4001. Multiplies corresponding coordinates of two vectors.
  4002. </summary>
  4003. <param name="vector1">The first vector to multiply.</param>
  4004. <param name="vector2">The second vector to multiply.</param>
  4005. <returns>Returns a vector which coordinates are equal to multiplication of corresponding
  4006. coordinates of the two specified vectors.</returns>
  4007. </member>
  4008. <member name="M:AForge.Math.Vector3.Multiply(AForge.Math.Vector3,AForge.Math.Vector3)">
  4009. <summary>
  4010. Multiplies corresponding coordinates of two vectors.
  4011. </summary>
  4012. <param name="vector1">The first vector to multiply.</param>
  4013. <param name="vector2">The second vector to multiply.</param>
  4014. <returns>Returns a vector which coordinates are equal to multiplication of corresponding
  4015. coordinates of the two specified vectors.</returns>
  4016. </member>
  4017. <member name="M:AForge.Math.Vector3.op_Multiply(AForge.Math.Vector3,System.Single)">
  4018. <summary>
  4019. Multiplies coordinates of the specified vector by the specified factor.
  4020. </summary>
  4021. <param name="vector">Vector to multiply coordinates of.</param>
  4022. <param name="factor">Factor to multiple coordinates of the specified vector by.</param>
  4023. <returns>Returns new vector with all coordinates multiplied by the specified factor.</returns>
  4024. </member>
  4025. <member name="M:AForge.Math.Vector3.Multiply(AForge.Math.Vector3,System.Single)">
  4026. <summary>
  4027. Multiplies coordinates of the specified vector by the specified factor.
  4028. </summary>
  4029. <param name="vector">Vector to multiply coordinates of.</param>
  4030. <param name="factor">Factor to multiple coordinates of the specified vector by.</param>
  4031. <returns>Returns new vector with all coordinates multiplied by the specified factor.</returns>
  4032. </member>
  4033. <member name="M:AForge.Math.Vector3.op_Division(AForge.Math.Vector3,AForge.Math.Vector3)">
  4034. <summary>
  4035. Divides corresponding coordinates of two vectors.
  4036. </summary>
  4037. <param name="vector1">The first vector to divide.</param>
  4038. <param name="vector2">The second vector to devide.</param>
  4039. <returns>Returns a vector which coordinates are equal to coordinates of the first vector divided by
  4040. corresponding coordinates of the second vector.</returns>
  4041. </member>
  4042. <member name="M:AForge.Math.Vector3.Divide(AForge.Math.Vector3,AForge.Math.Vector3)">
  4043. <summary>
  4044. Divides corresponding coordinates of two vectors.
  4045. </summary>
  4046. <param name="vector1">The first vector to divide.</param>
  4047. <param name="vector2">The second vector to devide.</param>
  4048. <returns>Returns a vector which coordinates are equal to coordinates of the first vector divided by
  4049. corresponding coordinates of the second vector.</returns>
  4050. </member>
  4051. <member name="M:AForge.Math.Vector3.op_Division(AForge.Math.Vector3,System.Single)">
  4052. <summary>
  4053. Divides coordinates of the specified vector by the specified factor.
  4054. </summary>
  4055. <param name="vector">Vector to divide coordinates of.</param>
  4056. <param name="factor">Factor to divide coordinates of the specified vector by.</param>
  4057. <returns>Returns new vector with all coordinates divided by the specified factor.</returns>
  4058. </member>
  4059. <member name="M:AForge.Math.Vector3.Divide(AForge.Math.Vector3,System.Single)">
  4060. <summary>
  4061. Divides coordinates of the specified vector by the specified factor.
  4062. </summary>
  4063. <param name="vector">Vector to divide coordinates of.</param>
  4064. <param name="factor">Factor to divide coordinates of the specified vector by.</param>
  4065. <returns>Returns new vector with all coordinates divided by the specified factor.</returns>
  4066. </member>
  4067. <member name="M:AForge.Math.Vector3.op_Equality(AForge.Math.Vector3,AForge.Math.Vector3)">
  4068. <summary>
  4069. Tests whether two specified vectors are equal.
  4070. </summary>
  4071. <param name="vector1">The left-hand vector.</param>
  4072. <param name="vector2">The right-hand vector.</param>
  4073. <returns>Returns <see langword="true"/> if the two vectors are equal or <see langword="false"/> otherwise.</returns>
  4074. </member>
  4075. <member name="M:AForge.Math.Vector3.op_Inequality(AForge.Math.Vector3,AForge.Math.Vector3)">
  4076. <summary>
  4077. Tests whether two specified vectors are not equal.
  4078. </summary>
  4079. <param name="vector1">The left-hand vector.</param>
  4080. <param name="vector2">The right-hand vector.</param>
  4081. <returns>Returns <see langword="true"/> if the two vectors are not equal or <see langword="false"/> otherwise.</returns>
  4082. </member>
  4083. <member name="M:AForge.Math.Vector3.Equals(AForge.Math.Vector3)">
  4084. <summary>
  4085. Tests whether the vector equals to the specified one.
  4086. </summary>
  4087. <param name="vector">The vector to test equality with.</param>
  4088. <returns>Returns <see langword="true"/> if the two vectors are equal or <see langword="false"/> otherwise.</returns>
  4089. </member>
  4090. <member name="M:AForge.Math.Vector3.Equals(System.Object)">
  4091. <summary>
  4092. Tests whether the vector equals to the specified object.
  4093. </summary>
  4094. <param name="obj">The object to test equality with.</param>
  4095. <returns>Returns <see langword="true"/> if the vector equals to the specified object or <see langword="false"/> otherwise.</returns>
  4096. </member>
  4097. <member name="M:AForge.Math.Vector3.GetHashCode">
  4098. <summary>
  4099. Returns the hashcode for this instance.
  4100. </summary>
  4101. <returns>A 32-bit signed integer hash code.</returns>
  4102. </member>
  4103. <member name="M:AForge.Math.Vector3.Normalize">
  4104. <summary>
  4105. Normalizes the vector by dividing it’s all coordinates with the vector's norm.
  4106. </summary>
  4107. <returns>Returns the value of vectors’ norm before normalization.</returns>
  4108. </member>
  4109. <member name="M:AForge.Math.Vector3.Inverse">
  4110. <summary>
  4111. Inverse the vector.
  4112. </summary>
  4113. <returns>Returns a vector with all coordinates equal to 1.0 divided by the value of corresponding coordinate
  4114. in this vector (or equal to 0.0 if this vector has corresponding coordinate also set to 0.0).</returns>
  4115. </member>
  4116. <member name="M:AForge.Math.Vector3.Abs">
  4117. <summary>
  4118. Calculate absolute values of the vector.
  4119. </summary>
  4120. <returns>Returns a vector with all coordinates equal to absolute values of this vector's coordinates.</returns>
  4121. </member>
  4122. <member name="M:AForge.Math.Vector3.Cross(AForge.Math.Vector3,AForge.Math.Vector3)">
  4123. <summary>
  4124. Calculates cross product of two vectors.
  4125. </summary>
  4126. <param name="vector1">First vector to use for cross product calculation.</param>
  4127. <param name="vector2">Second vector to use for cross product calculation.</param>
  4128. <returns>Returns cross product of the two specified vectors.</returns>
  4129. </member>
  4130. <member name="M:AForge.Math.Vector3.Dot(AForge.Math.Vector3,AForge.Math.Vector3)">
  4131. <summary>
  4132. Calculates dot product of two vectors.
  4133. </summary>
  4134. <param name="vector1">First vector to use for dot product calculation.</param>
  4135. <param name="vector2">Second vector to use for dot product calculation.</param>
  4136. <returns>Returns dot product of the two specified vectors.</returns>
  4137. </member>
  4138. <member name="M:AForge.Math.Vector3.ToVector4">
  4139. <summary>
  4140. Converts the vector to a 4D vector.
  4141. </summary>
  4142. <returns>Returns 4D vector which is an extension of the 3D vector.</returns>
  4143. <remarks><para>The method returns a 4D vector which has X, Y and Z coordinates equal to the
  4144. coordinates of this 3D vector and <see cref="F:AForge.Math.Vector4.W">W</see> coordinate set to 1.0.</para>
  4145. </remarks>
  4146. </member>
  4147. <member name="T:AForge.Math.Vector4">
  4148. <summary>
  4149. 4D Vector structure with X, Y, Z and W coordinates.
  4150. </summary>
  4151. <remarks><para>The structure incapsulates X, Y, Z and W coordinates of a 4D vector and
  4152. provides some operations with it.</para></remarks>
  4153. </member>
  4154. <member name="F:AForge.Math.Vector4.X">
  4155. <summary>
  4156. X coordinate of the vector.
  4157. </summary>
  4158. </member>
  4159. <member name="F:AForge.Math.Vector4.Y">
  4160. <summary>
  4161. Y coordinate of the vector.
  4162. </summary>
  4163. </member>
  4164. <member name="F:AForge.Math.Vector4.Z">
  4165. <summary>
  4166. Z coordinate of the vector.
  4167. </summary>
  4168. </member>
  4169. <member name="F:AForge.Math.Vector4.W">
  4170. <summary>
  4171. W coordinate of the vector.
  4172. </summary>
  4173. </member>
  4174. <member name="P:AForge.Math.Vector4.Max">
  4175. <summary>
  4176. Returns maximum value of the vector.
  4177. </summary>
  4178. <remarks><para>Returns maximum value of all 4 vector's coordinates.</para></remarks>
  4179. </member>
  4180. <member name="P:AForge.Math.Vector4.Min">
  4181. <summary>
  4182. Returns minimum value of the vector.
  4183. </summary>
  4184. <remarks><para>Returns minimum value of all 4 vector's coordinates.</para></remarks>
  4185. </member>
  4186. <member name="P:AForge.Math.Vector4.MaxIndex">
  4187. <summary>
  4188. Returns index of the coordinate with maximum value.
  4189. </summary>
  4190. <remarks><para>Returns index of the coordinate, which has the maximum value - 0 for X,
  4191. 1 for Y, 2 for Z or 3 for W.</para>
  4192. <para><note>If there are multiple coordinates which have the same maximum value, the
  4193. property returns smallest index.</note></para>
  4194. </remarks>
  4195. </member>
  4196. <member name="P:AForge.Math.Vector4.MinIndex">
  4197. <summary>
  4198. Returns index of the coordinate with minimum value.
  4199. </summary>
  4200. <remarks><para>Returns index of the coordinate, which has the minimum value - 0 for X,
  4201. 1 for Y, 2 for Z or 3 for W.</para>
  4202. <para><note>If there are multiple coordinates which have the same minimum value, the
  4203. property returns smallest index.</note></para>
  4204. </remarks>
  4205. </member>
  4206. <member name="P:AForge.Math.Vector4.Norm">
  4207. <summary>
  4208. Returns vector's norm.
  4209. </summary>
  4210. <remarks><para>Returns Euclidean norm of the vector, which is a
  4211. square root of the sum: X<sup>2</sup>+Y<sup>2</sup>+Z<sup>2</sup>+W<sup>2</sup>.</para>
  4212. </remarks>
  4213. </member>
  4214. <member name="P:AForge.Math.Vector4.Square">
  4215. <summary>
  4216. Returns square of the vector's norm.
  4217. </summary>
  4218. <remarks><para>Return X<sup>2</sup>+Y<sup>2</sup>+Z<sup>2</sup>+W<sup>2</sup>, which is
  4219. a square of <see cref="P:AForge.Math.Vector4.Norm">vector's norm</see> or a <see cref="M:AForge.Math.Vector4.Dot(AForge.Math.Vector4,AForge.Math.Vector4)">dot product</see> of this vector
  4220. with itself.</para></remarks>
  4221. </member>
  4222. <member name="M:AForge.Math.Vector4.#ctor(System.Single,System.Single,System.Single,System.Single)">
  4223. <summary>
  4224. Initializes a new instance of the <see cref="T:AForge.Math.Vector4"/> structure.
  4225. </summary>
  4226. <param name="x">X coordinate of the vector.</param>
  4227. <param name="y">Y coordinate of the vector.</param>
  4228. <param name="z">Z coordinate of the vector.</param>
  4229. <param name="w">W coordinate of the vector.</param>
  4230. </member>
  4231. <member name="M:AForge.Math.Vector4.#ctor(System.Single)">
  4232. <summary>
  4233. Initializes a new instance of the <see cref="T:AForge.Math.Vector4"/> structure.
  4234. </summary>
  4235. <param name="value">Value, which is set to all 4 coordinates of the vector.</param>
  4236. </member>
  4237. <member name="M:AForge.Math.Vector4.ToString">
  4238. <summary>
  4239. Returns a string representation of this object.
  4240. </summary>
  4241. <returns>A string representation of this object.</returns>
  4242. </member>
  4243. <member name="M:AForge.Math.Vector4.ToArray">
  4244. <summary>
  4245. Returns array representation of the vector.
  4246. </summary>
  4247. <returns>Array with 4 values containing X/Y/Z/W coordinates.</returns>
  4248. </member>
  4249. <member name="M:AForge.Math.Vector4.op_Addition(AForge.Math.Vector4,AForge.Math.Vector4)">
  4250. <summary>
  4251. Adds corresponding coordinates of two vectors.
  4252. </summary>
  4253. <param name="vector1">The vector to add to.</param>
  4254. <param name="vector2">The vector to add to the first vector.</param>
  4255. <returns>Returns a vector which coordinates are equal to sum of corresponding
  4256. coordinates of the two specified vectors.</returns>
  4257. </member>
  4258. <member name="M:AForge.Math.Vector4.Add(AForge.Math.Vector4,AForge.Math.Vector4)">
  4259. <summary>
  4260. Adds corresponding coordinates of two vectors.
  4261. </summary>
  4262. <param name="vector1">The vector to add to.</param>
  4263. <param name="vector2">The vector to add to the first vector.</param>
  4264. <returns>Returns a vector which coordinates are equal to sum of corresponding
  4265. coordinates of the two specified vectors.</returns>
  4266. </member>
  4267. <member name="M:AForge.Math.Vector4.op_Addition(AForge.Math.Vector4,System.Single)">
  4268. <summary>
  4269. Adds a value to all coordinates of the specified vector.
  4270. </summary>
  4271. <param name="vector">Vector to add the specified value to.</param>
  4272. <param name="value">Value to add to all coordinates of the vector.</param>
  4273. <returns>Returns new vector with all coordinates increased by the specified value.</returns>
  4274. </member>
  4275. <member name="M:AForge.Math.Vector4.Add(AForge.Math.Vector4,System.Single)">
  4276. <summary>
  4277. Adds a value to all coordinates of the specified vector.
  4278. </summary>
  4279. <param name="vector">Vector to add the specified value to.</param>
  4280. <param name="value">Value to add to all coordinates of the vector.</param>
  4281. <returns>Returns new vector with all coordinates increased by the specified value.</returns>
  4282. </member>
  4283. <member name="M:AForge.Math.Vector4.op_Subtraction(AForge.Math.Vector4,AForge.Math.Vector4)">
  4284. <summary>
  4285. Subtracts corresponding coordinates of two vectors.
  4286. </summary>
  4287. <param name="vector1">The vector to subtract from.</param>
  4288. <param name="vector2">The vector to subtract from the first vector.</param>
  4289. <returns>Returns a vector which coordinates are equal to difference of corresponding
  4290. coordinates of the two specified vectors.</returns>
  4291. </member>
  4292. <member name="M:AForge.Math.Vector4.Subtract(AForge.Math.Vector4,AForge.Math.Vector4)">
  4293. <summary>
  4294. Subtracts corresponding coordinates of two vectors.
  4295. </summary>
  4296. <param name="vector1">The vector to subtract from.</param>
  4297. <param name="vector2">The vector to subtract from the first vector.</param>
  4298. <returns>Returns a vector which coordinates are equal to difference of corresponding
  4299. coordinates of the two specified vectors.</returns>
  4300. </member>
  4301. <member name="M:AForge.Math.Vector4.op_Subtraction(AForge.Math.Vector4,System.Single)">
  4302. <summary>
  4303. Subtracts a value from all coordinates of the specified vector.
  4304. </summary>
  4305. <param name="vector">Vector to subtract the specified value from.</param>
  4306. <param name="value">Value to subtract from all coordinates of the vector.</param>
  4307. <returns>Returns new vector with all coordinates decreased by the specified value.</returns>
  4308. </member>
  4309. <member name="M:AForge.Math.Vector4.Subtract(AForge.Math.Vector4,System.Single)">
  4310. <summary>
  4311. Subtracts a value from all coordinates of the specified vector.
  4312. </summary>
  4313. <param name="vector">Vector to subtract the specified value from.</param>
  4314. <param name="value">Value to subtract from all coordinates of the vector.</param>
  4315. <returns>Returns new vector with all coordinates decreased by the specified value.</returns>
  4316. </member>
  4317. <member name="M:AForge.Math.Vector4.op_Multiply(AForge.Math.Vector4,AForge.Math.Vector4)">
  4318. <summary>
  4319. Multiplies corresponding coordinates of two vectors.
  4320. </summary>
  4321. <param name="vector1">The first vector to multiply.</param>
  4322. <param name="vector2">The second vector to multiply.</param>
  4323. <returns>Returns a vector which coordinates are equal to multiplication of corresponding
  4324. coordinates of the two specified vectors.</returns>
  4325. </member>
  4326. <member name="M:AForge.Math.Vector4.Multiply(AForge.Math.Vector4,AForge.Math.Vector4)">
  4327. <summary>
  4328. Multiplies corresponding coordinates of two vectors.
  4329. </summary>
  4330. <param name="vector1">The first vector to multiply.</param>
  4331. <param name="vector2">The second vector to multiply.</param>
  4332. <returns>Returns a vector which coordinates are equal to multiplication of corresponding
  4333. coordinates of the two specified vectors.</returns>
  4334. </member>
  4335. <member name="M:AForge.Math.Vector4.op_Multiply(AForge.Math.Vector4,System.Single)">
  4336. <summary>
  4337. Multiplies coordinates of the specified vector by the specified factor.
  4338. </summary>
  4339. <param name="vector">Vector to multiply coordinates of.</param>
  4340. <param name="factor">Factor to multiple coordinates of the specified vector by.</param>
  4341. <returns>Returns new vector with all coordinates multiplied by the specified factor.</returns>
  4342. </member>
  4343. <member name="M:AForge.Math.Vector4.Multiply(AForge.Math.Vector4,System.Single)">
  4344. <summary>
  4345. Multiplies coordinates of the specified vector by the specified factor.
  4346. </summary>
  4347. <param name="vector">Vector to multiply coordinates of.</param>
  4348. <param name="factor">Factor to multiple coordinates of the specified vector by.</param>
  4349. <returns>Returns new vector with all coordinates multiplied by the specified factor.</returns>
  4350. </member>
  4351. <member name="M:AForge.Math.Vector4.op_Division(AForge.Math.Vector4,AForge.Math.Vector4)">
  4352. <summary>
  4353. Divides corresponding coordinates of two vectors.
  4354. </summary>
  4355. <param name="vector1">The first vector to divide.</param>
  4356. <param name="vector2">The second vector to devide.</param>
  4357. <returns>Returns a vector which coordinates are equal to coordinates of the first vector divided by
  4358. corresponding coordinates of the second vector.</returns>
  4359. </member>
  4360. <member name="M:AForge.Math.Vector4.Divide(AForge.Math.Vector4,AForge.Math.Vector4)">
  4361. <summary>
  4362. Divides corresponding coordinates of two vectors.
  4363. </summary>
  4364. <param name="vector1">The first vector to divide.</param>
  4365. <param name="vector2">The second vector to devide.</param>
  4366. <returns>Returns a vector which coordinates are equal to coordinates of the first vector divided by
  4367. corresponding coordinates of the second vector.</returns>
  4368. </member>
  4369. <member name="M:AForge.Math.Vector4.op_Division(AForge.Math.Vector4,System.Single)">
  4370. <summary>
  4371. Divides coordinates of the specified vector by the specified factor.
  4372. </summary>
  4373. <param name="vector">Vector to divide coordinates of.</param>
  4374. <param name="factor">Factor to divide coordinates of the specified vector by.</param>
  4375. <returns>Returns new vector with all coordinates divided by the specified factor.</returns>
  4376. </member>
  4377. <member name="M:AForge.Math.Vector4.Divide(AForge.Math.Vector4,System.Single)">
  4378. <summary>
  4379. Divides coordinates of the specified vector by the specified factor.
  4380. </summary>
  4381. <param name="vector">Vector to divide coordinates of.</param>
  4382. <param name="factor">Factor to divide coordinates of the specified vector by.</param>
  4383. <returns>Returns new vector with all coordinates divided by the specified factor.</returns>
  4384. </member>
  4385. <member name="M:AForge.Math.Vector4.op_Equality(AForge.Math.Vector4,AForge.Math.Vector4)">
  4386. <summary>
  4387. Tests whether two specified vectors are equal.
  4388. </summary>
  4389. <param name="vector1">The left-hand vector.</param>
  4390. <param name="vector2">The right-hand vector.</param>
  4391. <returns>Returns <see langword="true"/> if the two vectors are equal or <see langword="false"/> otherwise.</returns>
  4392. </member>
  4393. <member name="M:AForge.Math.Vector4.op_Inequality(AForge.Math.Vector4,AForge.Math.Vector4)">
  4394. <summary>
  4395. Tests whether two specified vectors are not equal.
  4396. </summary>
  4397. <param name="vector1">The left-hand vector.</param>
  4398. <param name="vector2">The right-hand vector.</param>
  4399. <returns>Returns <see langword="true"/> if the two vectors are not equal or <see langword="false"/> otherwise.</returns>
  4400. </member>
  4401. <member name="M:AForge.Math.Vector4.Equals(AForge.Math.Vector4)">
  4402. <summary>
  4403. Tests whether the vector equals to the specified one.
  4404. </summary>
  4405. <param name="vector">The vector to test equality with.</param>
  4406. <returns>Returns <see langword="true"/> if the two vectors are equal or <see langword="false"/> otherwise.</returns>
  4407. </member>
  4408. <member name="M:AForge.Math.Vector4.Equals(System.Object)">
  4409. <summary>
  4410. Tests whether the vector equals to the specified object.
  4411. </summary>
  4412. <param name="obj">The object to test equality with.</param>
  4413. <returns>Returns <see langword="true"/> if the vector equals to the specified object or <see langword="false"/> otherwise.</returns>
  4414. </member>
  4415. <member name="M:AForge.Math.Vector4.GetHashCode">
  4416. <summary>
  4417. Returns the hashcode for this instance.
  4418. </summary>
  4419. <returns>A 32-bit signed integer hash code.</returns>
  4420. </member>
  4421. <member name="M:AForge.Math.Vector4.Normalize">
  4422. <summary>
  4423. Normalizes the vector by dividing it’s all coordinates with the vector's norm.
  4424. </summary>
  4425. <returns>Returns the value of vectors’ norm before normalization.</returns>
  4426. </member>
  4427. <member name="M:AForge.Math.Vector4.Inverse">
  4428. <summary>
  4429. Inverse the vector.
  4430. </summary>
  4431. <returns>Returns a vector with all coordinates equal to 1.0 divided by the value of corresponding coordinate
  4432. in this vector (or equal to 0.0 if this vector has corresponding coordinate also set to 0.0).</returns>
  4433. </member>
  4434. <member name="M:AForge.Math.Vector4.Abs">
  4435. <summary>
  4436. Calculate absolute values of the vector.
  4437. </summary>
  4438. <returns>Returns a vector with all coordinates equal to absolute values of this vector's coordinates.</returns>
  4439. </member>
  4440. <member name="M:AForge.Math.Vector4.Dot(AForge.Math.Vector4,AForge.Math.Vector4)">
  4441. <summary>
  4442. Calculates dot product of two vectors.
  4443. </summary>
  4444. <param name="vector1">First vector to use for dot product calculation.</param>
  4445. <param name="vector2">Second vector to use for dot product calculation.</param>
  4446. <returns>Returns dot product of the two specified vectors.</returns>
  4447. </member>
  4448. <member name="M:AForge.Math.Vector4.ToVector3">
  4449. <summary>
  4450. Converts the vector to a 3D vector.
  4451. </summary>
  4452. <returns>Returns 3D vector which has X/Y/Z coordinates equal to X/Y/Z coordinates
  4453. of this vector divided by <see cref="F:AForge.Math.Vector4.W"/>.</returns>
  4454. </member>
  4455. </members>
  4456. </doc>