Viewport.html 15 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>JSDoc: Class: Viewport</title>
  6. <script src="scripts/prettify/prettify.js"> </script>
  7. <script src="scripts/prettify/lang-css.js"> </script>
  8. <!--[if lt IE 9]>
  9. <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  10. <![endif]-->
  11. <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
  12. <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
  13. </head>
  14. <body>
  15. <div id="main">
  16. <h1 class="page-title">Class: Viewport</h1>
  17. <section>
  18. <header>
  19. <h2><span class="attribs"><span class="type-signature"></span></span>Viewport<span class="signature">(canvas)</span><span class="type-signature"></span></h2>
  20. </header>
  21. <article>
  22. <div class="container-overview">
  23. <h4 class="name" id="Viewport"><span class="type-signature"></span>new Viewport<span class="signature">(canvas)</span><span class="type-signature"></span></h4>
  24. <div class="description">
  25. Viewport defines the user view into the content being rendered, similar to a camera it defines the size of the content, rotation and position of the content.
  26. The viewport can be moved, rotated and scaled to navigate the virtual canvas.
  27. </div>
  28. <h5>Parameters:</h5>
  29. <table class="params">
  30. <thead>
  31. <tr>
  32. <th>Name</th>
  33. <th>Type</th>
  34. <th class="last">Description</th>
  35. </tr>
  36. </thead>
  37. <tbody>
  38. <tr>
  39. <td class="name"><code>canvas</code></td>
  40. <td class="type">
  41. <span class="param-type">Element</span>
  42. </td>
  43. <td class="description last">Canvas DOM element where the viewport is being rendered.</td>
  44. </tr>
  45. </tbody>
  46. </table>
  47. <dl class="details">
  48. <dt class="tag-source">Source:</dt>
  49. <dd class="tag-source"><ul class="dummy"><li>
  50. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line13">line 13</a>
  51. </li></ul></dd>
  52. </dl>
  53. </div>
  54. <h3 class="subsection-title">Members</h3>
  55. <h4 class="name" id="canvas"><span class="type-signature"></span>canvas<span class="type-signature"> :Element</span></h4>
  56. <div class="description">
  57. Canvas DOM element where the viewport is being rendered.
  58. </div>
  59. <h5>Type:</h5>
  60. <ul>
  61. <li>
  62. <span class="param-type">Element</span>
  63. </li>
  64. </ul>
  65. <dl class="details">
  66. <dt class="tag-source">Source:</dt>
  67. <dd class="tag-source"><ul class="dummy"><li>
  68. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line27">line 27</a>
  69. </li></ul></dd>
  70. </dl>
  71. <h4 class="name" id="center"><span class="type-signature"></span>center<span class="type-signature"> :<a href="Vector2.html">Vector2</a></span></h4>
  72. <div class="description">
  73. Center point of the viewport. Relative to the size of the canvas.
  74. Rotation and zoom is applied relative to this point.
  75. </div>
  76. <h5>Type:</h5>
  77. <ul>
  78. <li>
  79. <span class="param-type"><a href="Vector2.html">Vector2</a></span>
  80. </li>
  81. </ul>
  82. <dl class="details">
  83. <dt class="tag-source">Source:</dt>
  84. <dd class="tag-source"><ul class="dummy"><li>
  85. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line43">line 43</a>
  86. </li></ul></dd>
  87. </dl>
  88. <h4 class="name" id="centerOnPointer"><span class="type-signature"></span>centerOnPointer<span class="type-signature"></span></h4>
  89. <div class="description">
  90. Flag to indicate if the viewport should move when scaling.
  91. For some application its easier to focus the target if the viewport moves to the pointer location while scaling.
  92. </div>
  93. <dl class="details">
  94. <dt class="tag-source">Source:</dt>
  95. <dd class="tag-source"><ul class="dummy"><li>
  96. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line89">line 89</a>
  97. </li></ul></dd>
  98. </dl>
  99. <h4 class="name" id="inverseMatrix"><span class="type-signature"></span>inverseMatrix<span class="type-signature"> :<a href="Matrix.html">Matrix</a></span></h4>
  100. <div class="description">
  101. Inverse of the local transformation matrix.
  102. Used to transform points from local to global coordinates.
  103. </div>
  104. <h5>Type:</h5>
  105. <ul>
  106. <li>
  107. <span class="param-type"><a href="Matrix.html">Matrix</a></span>
  108. </li>
  109. </ul>
  110. <dl class="details">
  111. <dt class="tag-source">Source:</dt>
  112. <dd class="tag-source"><ul class="dummy"><li>
  113. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line73">line 73</a>
  114. </li></ul></dd>
  115. </dl>
  116. <h4 class="name" id="matrix"><span class="type-signature"></span>matrix<span class="type-signature"> :<a href="Matrix.html">Matrix</a></span></h4>
  117. <div class="description">
  118. Local transformation matrix applied to the object.
  119. </div>
  120. <h5>Type:</h5>
  121. <ul>
  122. <li>
  123. <span class="param-type"><a href="Matrix.html">Matrix</a></span>
  124. </li>
  125. </ul>
  126. <dl class="details">
  127. <dt class="tag-source">Source:</dt>
  128. <dd class="tag-source"><ul class="dummy"><li>
  129. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line64">line 64</a>
  130. </li></ul></dd>
  131. </dl>
  132. <h4 class="name" id="matrixNeedsUpdate"><span class="type-signature"></span>matrixNeedsUpdate<span class="type-signature"> :boolean</span></h4>
  133. <div class="description">
  134. If true the matrix is updated before rendering the object.
  135. Disable this if you want to update the matrix manually.
  136. </div>
  137. <h5>Type:</h5>
  138. <ul>
  139. <li>
  140. <span class="param-type">boolean</span>
  141. </li>
  142. </ul>
  143. <dl class="details">
  144. <dt class="tag-source">Source:</dt>
  145. <dd class="tag-source"><ul class="dummy"><li>
  146. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line82">line 82</a>
  147. </li></ul></dd>
  148. </dl>
  149. <h4 class="name" id="position"><span class="type-signature"></span>position<span class="type-signature"> :<a href="Vector2.html">Vector2</a></span></h4>
  150. <div class="description">
  151. Position of the viewport.
  152. </div>
  153. <h5>Type:</h5>
  154. <ul>
  155. <li>
  156. <span class="param-type"><a href="Vector2.html">Vector2</a></span>
  157. </li>
  158. </ul>
  159. <dl class="details">
  160. <dt class="tag-source">Source:</dt>
  161. <dd class="tag-source"><ul class="dummy"><li>
  162. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line34">line 34</a>
  163. </li></ul></dd>
  164. </dl>
  165. <h4 class="name" id="rotation"><span class="type-signature"></span>rotation<span class="type-signature"> :number</span></h4>
  166. <div class="description">
  167. Rotation of the object relative to its center.
  168. </div>
  169. <h5>Type:</h5>
  170. <ul>
  171. <li>
  172. <span class="param-type">number</span>
  173. </li>
  174. </ul>
  175. <dl class="details">
  176. <dt class="tag-source">Source:</dt>
  177. <dd class="tag-source"><ul class="dummy"><li>
  178. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line57">line 57</a>
  179. </li></ul></dd>
  180. </dl>
  181. <h4 class="name" id="rotationPoint"><span class="type-signature"></span>rotationPoint<span class="type-signature"></span></h4>
  182. <div class="description">
  183. Value of the initial point of rotation if the viewport is being rotated.
  184. Is set to null when the viewport is not being rotated.
  185. </div>
  186. <dl class="details">
  187. <dt class="tag-source">Source:</dt>
  188. <dd class="tag-source"><ul class="dummy"><li>
  189. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line96">line 96</a>
  190. </li></ul></dd>
  191. </dl>
  192. <h4 class="name" id="scale"><span class="type-signature"></span>scale<span class="type-signature"> :number</span></h4>
  193. <div class="description">
  194. Scale of the object.
  195. </div>
  196. <h5>Type:</h5>
  197. <ul>
  198. <li>
  199. <span class="param-type">number</span>
  200. </li>
  201. </ul>
  202. <dl class="details">
  203. <dt class="tag-source">Source:</dt>
  204. <dd class="tag-source"><ul class="dummy"><li>
  205. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line50">line 50</a>
  206. </li></ul></dd>
  207. </dl>
  208. <h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :string</span></h4>
  209. <div class="description">
  210. UUID of the object.
  211. </div>
  212. <h5>Type:</h5>
  213. <ul>
  214. <li>
  215. <span class="param-type">string</span>
  216. </li>
  217. </ul>
  218. <dl class="details">
  219. <dt class="tag-source">Source:</dt>
  220. <dd class="tag-source"><ul class="dummy"><li>
  221. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line20">line 20</a>
  222. </li></ul></dd>
  223. </dl>
  224. <h3 class="subsection-title">Methods</h3>
  225. <h4 class="name" id="centerObject"><span class="type-signature"></span>centerObject<span class="signature">(object, canvas)</span><span class="type-signature"></span></h4>
  226. <div class="description">
  227. Center the viewport relative to a object.
  228. The position of the object is used a central point, this method does not consider "box" attributes or other strucures in the object.
  229. Uses the object's local transformation matrix and the canvas size to calculate the new position of the viewport.
  230. </div>
  231. <h5>Parameters:</h5>
  232. <table class="params">
  233. <thead>
  234. <tr>
  235. <th>Name</th>
  236. <th>Type</th>
  237. <th class="last">Description</th>
  238. </tr>
  239. </thead>
  240. <tbody>
  241. <tr>
  242. <td class="name"><code>object</code></td>
  243. <td class="type">
  244. <span class="param-type"><a href="Object2D.html">Object2D</a></span>
  245. </td>
  246. <td class="description last">Object to be centered on the viewport.</td>
  247. </tr>
  248. <tr>
  249. <td class="name"><code>canvas</code></td>
  250. <td class="type">
  251. <span class="param-type">Element</span>
  252. </td>
  253. <td class="description last">Canvas element where the image is drawn.</td>
  254. </tr>
  255. </tbody>
  256. </table>
  257. <dl class="details">
  258. <dt class="tag-source">Source:</dt>
  259. <dd class="tag-source"><ul class="dummy"><li>
  260. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line145">line 145</a>
  261. </li></ul></dd>
  262. </dl>
  263. <h4 class="name" id="updateMatrix"><span class="type-signature"></span>updateMatrix<span class="signature">()</span><span class="type-signature"></span></h4>
  264. <div class="description">
  265. Calculate and update the viewport transformation matrix.
  266. Also updates the inverse matrix of the viewport.
  267. </div>
  268. <dl class="details">
  269. <dt class="tag-source">Source:</dt>
  270. <dd class="tag-source"><ul class="dummy"><li>
  271. <a href="Viewport.js.html">Viewport.js</a>, <a href="Viewport.js.html#line104">line 104</a>
  272. </li></ul></dd>
  273. </dl>
  274. </article>
  275. </section>
  276. </div>
  277. <nav>
  278. <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="AnimationTimer.html">AnimationTimer</a></li><li><a href="BarGraph.html">BarGraph</a></li><li><a href="BezierCurve.html">BezierCurve</a></li><li><a href="Box.html">Box</a></li><li><a href="Box2.html">Box2</a></li><li><a href="BoxMask.html">BoxMask</a></li><li><a href="Circle.html">Circle</a></li><li><a href="ColorStyle.html">ColorStyle</a></li><li><a href="DOM.html">DOM</a></li><li><a href="EventManager.html">EventManager</a></li><li><a href="FileUtils.html">FileUtils</a></li><li><a href="Gauge.html">Gauge</a></li><li><a href="GradientColorStop.html">GradientColorStop</a></li><li><a href="GradientStyle.html">GradientStyle</a></li><li><a href="Graph.html">Graph</a></li><li><a href="Helpers.html">Helpers</a></li><li><a href="Image.html">Image</a></li><li><a href="Key.html">Key</a></li><li><a href="Line.html">Line</a></li><li><a href="LinearGradientStyle.html">LinearGradientStyle</a></li><li><a href="Mask.html">Mask</a></li><li><a href="Matrix.html">Matrix</a></li><li><a href="MultiLineText.html">MultiLineText</a></li><li><a href="Node.html">Node</a></li><li><a href="NodeConnector.html">NodeConnector</a></li><li><a href="NodeGraph.html">NodeGraph</a></li><li><a href="NodeSocket.html">NodeSocket</a></li><li><a href="Object2D.html">Object2D</a></li><li><a href="Path.html">Path</a></li><li><a href="Pattern.html">Pattern</a></li><li><a href="PatternStyle.html">PatternStyle</a></li><li><a href="PieChart.html">PieChart</a></li><li><a href="Pointer.html">Pointer</a></li><li><a href="QuadraticCurve.html">QuadraticCurve</a></li><li><a href="RadialGradientStyle.html">RadialGradientStyle</a></li><li><a href="Renderer.html">Renderer</a></li><li><a href="RoundedBox.html">RoundedBox</a></li><li><a href="ScatterGraph.html">ScatterGraph</a></li><li><a href="Style.html">Style</a></li><li><a href="Text.html">Text</a></li><li><a href="UUID.html">UUID</a></li><li><a href="Vector2.html">Vector2</a></li><li><a href="Viewport.html">Viewport</a></li><li><a href="ViewportControls.html">ViewportControls</a></li></ul><h3>Global</h3><ul><li><a href="global.html#writeFile">writeFile</a></li></ul>
  279. </nav>
  280. <br class="clear">
  281. <footer>
  282. Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.11</a> on Sat Sep 17 2022 14:24:36 GMT+0100 (Hora de verão da Europa Ocidental)
  283. </footer>
  284. <script> prettyPrint(); </script>
  285. <script src="scripts/linenumber.js"> </script>
  286. </body>
  287. </html>