jsxgraph 1.10.0 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/distrib/docs/files.html +2 -61
  3. package/distrib/docs/index.html +2 -58
  4. package/distrib/docs/static/jsxgraphcore.js +2 -2
  5. package/distrib/docs/symbols/Angle.html +2 -18
  6. package/distrib/docs/symbols/Arc.html +2 -18
  7. package/distrib/docs/symbols/Arrow.html +2 -18
  8. package/distrib/docs/symbols/Arrowparallel.html +2 -18
  9. package/distrib/docs/symbols/Axes3D.html +2 -18
  10. package/distrib/docs/symbols/Axis.html +2 -18
  11. package/distrib/docs/symbols/Axis3D.html +2 -18
  12. package/distrib/docs/symbols/Bisector.html +2 -18
  13. package/distrib/docs/symbols/Bisectorlines.html +2 -18
  14. package/distrib/docs/symbols/Boxplot.html +2 -18
  15. package/distrib/docs/symbols/Button.html +2 -18
  16. package/distrib/docs/symbols/Cardinalspline.html +2 -18
  17. package/distrib/docs/symbols/Chart.html +2 -18
  18. package/distrib/docs/symbols/Checkbox.html +2 -18
  19. package/distrib/docs/symbols/Circle.html +2 -18
  20. package/distrib/docs/symbols/Circle3D.html +2 -18
  21. package/distrib/docs/symbols/Circumcenter.html +2 -18
  22. package/distrib/docs/symbols/Circumcircle.html +2 -18
  23. package/distrib/docs/symbols/CircumcircleArc.html +2 -18
  24. package/distrib/docs/symbols/CircumcircleSector.html +2 -18
  25. package/distrib/docs/symbols/Comb.html +2 -18
  26. package/distrib/docs/symbols/Conic.html +2 -18
  27. package/distrib/docs/symbols/Curve.html +2 -18
  28. package/distrib/docs/symbols/Curve3D.html +2 -18
  29. package/distrib/docs/symbols/CurveDifference.html +2 -18
  30. package/distrib/docs/symbols/CurveIntersection.html +2 -18
  31. package/distrib/docs/symbols/CurveUnion.html +2 -18
  32. package/distrib/docs/symbols/Derivative.html +2 -18
  33. package/distrib/docs/symbols/Ellipse.html +2 -18
  34. package/distrib/docs/symbols/ForeignObject.html +2 -18
  35. package/distrib/docs/symbols/Functiongraph.html +2 -18
  36. package/distrib/docs/symbols/Functiongraph3D.html +2 -18
  37. package/distrib/docs/symbols/Glider.html +2 -18
  38. package/distrib/docs/symbols/Grid.html +2 -18
  39. package/distrib/docs/symbols/Group.html +2 -18
  40. package/distrib/docs/symbols/Hatch.html +2 -18
  41. package/distrib/docs/symbols/Hyperbola.html +2 -18
  42. package/distrib/docs/symbols/Image.html +2 -18
  43. package/distrib/docs/symbols/ImplicitCurve.html +2 -18
  44. package/distrib/docs/symbols/Incenter.html +2 -18
  45. package/distrib/docs/symbols/Incircle.html +2 -18
  46. package/distrib/docs/symbols/Inequality.html +2 -18
  47. package/distrib/docs/symbols/Input.html +2 -18
  48. package/distrib/docs/symbols/Integral.html +2 -18
  49. package/distrib/docs/symbols/Intersection.html +2 -18
  50. package/distrib/docs/symbols/IntersectionCircle3D.html +2 -18
  51. package/distrib/docs/symbols/IntersectionLine3D.html +2 -18
  52. package/distrib/docs/symbols/JXG.AbstractRenderer.html +2 -18
  53. package/distrib/docs/symbols/JXG.Board.html +4 -20
  54. package/distrib/docs/symbols/JXG.Board.infobox.html +2 -18
  55. package/distrib/docs/symbols/JXG.C.html +2 -18
  56. package/distrib/docs/symbols/JXG.CA.html +2 -18
  57. package/distrib/docs/symbols/JXG.CanvasRenderer.html +2 -18
  58. package/distrib/docs/symbols/JXG.Chart.html +2 -18
  59. package/distrib/docs/symbols/JXG.Circle.html +2 -18
  60. package/distrib/docs/symbols/JXG.Circle3D.html +2 -18
  61. package/distrib/docs/symbols/JXG.Complex.html +2 -18
  62. package/distrib/docs/symbols/JXG.Composition.html +2 -18
  63. package/distrib/docs/symbols/JXG.Coords.html +2 -18
  64. package/distrib/docs/symbols/JXG.CoordsElement.html +98 -22
  65. package/distrib/docs/symbols/JXG.Curve.html +2 -18
  66. package/distrib/docs/symbols/JXG.Curve3D.html +2 -18
  67. package/distrib/docs/symbols/JXG.Dump.html +2 -18
  68. package/distrib/docs/symbols/JXG.EventEmitter.html +2 -18
  69. package/distrib/docs/symbols/JXG.Expect.html +2 -18
  70. package/distrib/docs/symbols/JXG.ForeignObject.html +2 -18
  71. package/distrib/docs/symbols/JXG.GeometryElement.html +2 -18
  72. package/distrib/docs/symbols/JXG.GeometryElement3D.html +2 -18
  73. package/distrib/docs/symbols/JXG.GeonextParser.html +2 -18
  74. package/distrib/docs/symbols/JXG.Group.html +2 -18
  75. package/distrib/docs/symbols/JXG.Image.html +2 -18
  76. package/distrib/docs/symbols/JXG.JSXGraph.html +2 -18
  77. package/distrib/docs/symbols/JXG.JessieCode.html +2 -18
  78. package/distrib/docs/symbols/JXG.Legend.html +2 -18
  79. package/distrib/docs/symbols/JXG.Line.html +2 -18
  80. package/distrib/docs/symbols/JXG.Line3D.html +2 -18
  81. package/distrib/docs/symbols/JXG.Math.BoxQuadtree.html +2 -18
  82. package/distrib/docs/symbols/JXG.Math.Clip.html +2 -18
  83. package/distrib/docs/symbols/JXG.Math.Extrapolate.html +2 -18
  84. package/distrib/docs/symbols/JXG.Math.Geometry.html +2 -18
  85. package/distrib/docs/symbols/JXG.Math.ImplicitPlot.html +2 -18
  86. package/distrib/docs/symbols/JXG.Math.IntervalArithmetic.html +2 -18
  87. package/distrib/docs/symbols/JXG.Math.Metapost.html +2 -18
  88. package/distrib/docs/symbols/JXG.Math.Nlp.html +2 -18
  89. package/distrib/docs/symbols/JXG.Math.Numerics.html +2 -18
  90. package/distrib/docs/symbols/JXG.Math.Plot.html +2 -18
  91. package/distrib/docs/symbols/JXG.Math.Poly.Monomial.html +2 -18
  92. package/distrib/docs/symbols/JXG.Math.Poly.Polynomial.html +2 -18
  93. package/distrib/docs/symbols/JXG.Math.Poly.Ring.html +2 -18
  94. package/distrib/docs/symbols/JXG.Math.Poly.html +2 -18
  95. package/distrib/docs/symbols/JXG.Math.ProbFuncs.html +2 -18
  96. package/distrib/docs/symbols/JXG.Math.Quadtree.html +2 -18
  97. package/distrib/docs/symbols/JXG.Math.Statistics.html +22 -34
  98. package/distrib/docs/symbols/JXG.Math.html +2 -18
  99. package/distrib/docs/symbols/JXG.NoRenderer.html +2 -18
  100. package/distrib/docs/symbols/JXG.Options.html +2 -18
  101. package/distrib/docs/symbols/JXG.Plane3D.html +2 -18
  102. package/distrib/docs/symbols/JXG.Point.html +2 -18
  103. package/distrib/docs/symbols/JXG.Point3D.html +2 -18
  104. package/distrib/docs/symbols/JXG.Polygon.html +2 -18
  105. package/distrib/docs/symbols/JXG.Polygon3D.html +2 -18
  106. package/distrib/docs/symbols/JXG.PrefixParser.html +2 -18
  107. package/distrib/docs/symbols/JXG.SVGRenderer.html +2 -18
  108. package/distrib/docs/symbols/JXG.Sphere3D.html +2 -18
  109. package/distrib/docs/symbols/JXG.Surface3D.html +2 -18
  110. package/distrib/docs/symbols/JXG.Text.html +2 -18
  111. package/distrib/docs/symbols/JXG.Text3D.html +2 -18
  112. package/distrib/docs/symbols/JXG.Ticks.html +2 -18
  113. package/distrib/docs/symbols/JXG.Transformation.html +2 -18
  114. package/distrib/docs/symbols/JXG.Turtle.html +2 -18
  115. package/distrib/docs/symbols/JXG.Util.Base64.html +2 -18
  116. package/distrib/docs/symbols/JXG.Util.UTF8.html +2 -18
  117. package/distrib/docs/symbols/JXG.Util.Unzip.html +2 -18
  118. package/distrib/docs/symbols/JXG.Util.html +2 -18
  119. package/distrib/docs/symbols/JXG.VMLRenderer.html +2 -18
  120. package/distrib/docs/symbols/JXG.View3D.html +4 -19
  121. package/distrib/docs/symbols/JXG.XML.html +2 -18
  122. package/distrib/docs/symbols/JXG.html +2 -18
  123. package/distrib/docs/symbols/Label.html +2 -18
  124. package/distrib/docs/symbols/Legend.html +2 -18
  125. package/distrib/docs/symbols/Line.html +2 -18
  126. package/distrib/docs/symbols/Line3D.html +2 -18
  127. package/distrib/docs/symbols/MajorArc.html +2 -18
  128. package/distrib/docs/symbols/MajorSector.html +2 -18
  129. package/distrib/docs/symbols/Measurement.html +2 -18
  130. package/distrib/docs/symbols/Mesh3D.html +2 -18
  131. package/distrib/docs/symbols/Metapostspline.html +2 -18
  132. package/distrib/docs/symbols/Midpoint.html +2 -18
  133. package/distrib/docs/symbols/MinorArc.html +2 -18
  134. package/distrib/docs/symbols/MinorSector.html +2 -18
  135. package/distrib/docs/symbols/Mirrorpoint.html +2 -18
  136. package/distrib/docs/symbols/NonReflexAngle.html +2 -18
  137. package/distrib/docs/symbols/Normal.html +2 -18
  138. package/distrib/docs/symbols/Orthogonalprojection.html +2 -18
  139. package/distrib/docs/symbols/OtherIntersection.html +2 -18
  140. package/distrib/docs/symbols/Parabola.html +2 -18
  141. package/distrib/docs/symbols/Parallel.html +2 -18
  142. package/distrib/docs/symbols/Parallelogram.html +2 -18
  143. package/distrib/docs/symbols/Parallelpoint.html +2 -18
  144. package/distrib/docs/symbols/ParametricSurface3D.html +2 -18
  145. package/distrib/docs/symbols/Perpendicular.html +2 -18
  146. package/distrib/docs/symbols/PerpendicularPoint.html +2 -18
  147. package/distrib/docs/symbols/PerpendicularSegment.html +2 -18
  148. package/distrib/docs/symbols/Point.html +2 -18
  149. package/distrib/docs/symbols/Point3D.html +2 -18
  150. package/distrib/docs/symbols/PolarLine.html +2 -18
  151. package/distrib/docs/symbols/PolePoint.html +2 -18
  152. package/distrib/docs/symbols/Polygon.html +2 -18
  153. package/distrib/docs/symbols/PolygonalChain.html +2 -18
  154. package/distrib/docs/symbols/RadicalAxis.html +2 -18
  155. package/distrib/docs/symbols/Reflection.html +2 -18
  156. package/distrib/docs/symbols/ReflexAngle.html +2 -18
  157. package/distrib/docs/symbols/RegularPolygon.html +2 -18
  158. package/distrib/docs/symbols/Riemannsum.html +2 -18
  159. package/distrib/docs/symbols/Sector.html +2 -18
  160. package/distrib/docs/symbols/Segment.html +2 -18
  161. package/distrib/docs/symbols/Semicircle.html +2 -18
  162. package/distrib/docs/symbols/Slider.html +2 -18
  163. package/distrib/docs/symbols/Slopefield.html +2 -18
  164. package/distrib/docs/symbols/Slopetriangle.html +2 -18
  165. package/distrib/docs/symbols/Smartlabel.html +2 -18
  166. package/distrib/docs/symbols/Sphere3D.html +2 -18
  167. package/distrib/docs/symbols/Spline.html +2 -18
  168. package/distrib/docs/symbols/Stepfunction.html +2 -18
  169. package/distrib/docs/symbols/Tangent.html +2 -18
  170. package/distrib/docs/symbols/TangentTo.html +2 -18
  171. package/distrib/docs/symbols/Tapemeasure.html +2 -18
  172. package/distrib/docs/symbols/Text.html +12 -26
  173. package/distrib/docs/symbols/Text3D.html +2 -18
  174. package/distrib/docs/symbols/Ticks.html +2 -18
  175. package/distrib/docs/symbols/Ticks3D.html +2 -18
  176. package/distrib/docs/symbols/Tracecurve.html +2 -18
  177. package/distrib/docs/symbols/Transformation.html +2 -18
  178. package/distrib/docs/symbols/Turtle.html +2 -18
  179. package/distrib/docs/symbols/Vectorfield.html +2 -18
  180. package/distrib/docs/symbols/Vectorfield3D.html +53 -18
  181. package/distrib/docs/symbols/View3D.html +2 -18
  182. package/distrib/docs/symbols/_global_.html +2 -18
  183. package/distrib/docs/symbols/mirrorelement.html +2 -18
  184. package/distrib/docs/symbols/src/src_3d_box3d.js.html +261 -259
  185. package/distrib/docs/symbols/src/src_3d_curve3d.js.html +205 -156
  186. package/distrib/docs/symbols/src/src_3d_linspace3d.js.html +337 -327
  187. package/distrib/docs/symbols/src/src_3d_point3d.js.html +204 -187
  188. package/distrib/docs/symbols/src/src_3d_text3d.js.html +189 -177
  189. package/distrib/docs/symbols/src/src_3d_view3d.js.html +1246 -1236
  190. package/distrib/docs/symbols/src/src_base_board.js.html +2058 -2057
  191. package/distrib/docs/symbols/src/src_base_constants.js.html +1 -1
  192. package/distrib/docs/symbols/src/src_base_coordselement.js.html +383 -274
  193. package/distrib/docs/symbols/src/src_element_sector.js.html +1 -1
  194. package/distrib/docs/symbols/src/src_math_geometry.js.html +609 -604
  195. package/distrib/docs/symbols/src/src_math_statistics.js.html +418 -411
  196. package/distrib/docs/symbols/src/src_options.js.html +504 -502
  197. package/distrib/docs/symbols/src/src_options3d.js.html +952 -944
  198. package/distrib/docs.zip +0 -0
  199. package/distrib/geogebra.min.js +1 -1
  200. package/distrib/geonext.min.js +1 -1
  201. package/distrib/intergeo.min.js +1 -1
  202. package/distrib/jsxgraph.zip +0 -0
  203. package/distrib/jsxgraphcore.js +2 -2
  204. package/distrib/jsxgraphcore.mjs +2 -2
  205. package/distrib/jsxgraphcore.mjs.map +1 -1
  206. package/distrib/jsxgraphsrc.js +15405 -16038
  207. package/distrib/jsxgraphsrc.mjs +15405 -16038
  208. package/distrib/jsxgraphsrc.mjs.map +1 -1
  209. package/distrib/sketch.min.js +1 -1
  210. package/package.json +1 -1
  211. package/src/3d/box3d.js +2 -0
  212. package/src/3d/curve3d.js +53 -4
  213. package/src/3d/linspace3d.js +17 -7
  214. package/src/3d/point3d.js +20 -3
  215. package/src/3d/text3d.js +20 -8
  216. package/src/3d/view3d.js +17 -7
  217. package/src/base/board.js +1 -0
  218. package/src/base/constants.js +1 -1
  219. package/src/base/coordselement.js +119 -10
  220. package/src/element/sector.js +1 -1
  221. package/src/index.js +0 -3
  222. package/src/math/geometry.js +27 -22
  223. package/src/math/statistics.js +29 -22
  224. package/src/options.js +8 -6
  225. package/src/options3d.js +10 -2
  226. package/src/{server → unused/server}/JXGServer.py +4 -9
  227. package/src/{server → unused/server}/JXGServerModule.py +2 -2
  228. package/src/{server → unused/server}/README.md +25 -14
  229. package/src/{server → unused/server}/RStats.py +1 -1
  230. package/src/{server → unused/server}/YahooFinance.py +4 -4
  231. package/src/{server → unused/server}/fft.py +6 -6
  232. package/src/{server → unused/server}/geoloci.py +17 -17
  233. package/src/{server → unused/server}/jxggroebner.py +22 -22
  234. package/src/index2.js +0 -105
  235. /package/src/{element → unused}/locus.js +0 -0
  236. /package/src/{server → unused/server}/JXG.py +0 -0
  237. /package/src/{server → unused/server}/jxgtestplugin.py +0 -0
  238. /package/src/{server → unused/server}/server.js +0 -0
  239. /package/src/{math → unused}/symbolic.js +0 -0
@@ -1167,1270 +1167,1280 @@
1167
1167
  <span class='line'>1160</span> * Limit 3D coordinates to the bounding cube.
1168
1168
  <span class='line'>1161</span> *
1169
1169
  <span class='line'>1162</span> * @param {Array} c3d 3D coordinates [x,y,z]
1170
- <span class='line'>1163</span> * @returns Array with updated 3D coordinates.
1171
- <span class='line'>1164</span> */</span><span class="WHIT">
1172
- <span class='line'>1165</span> </span><span class="WHIT"> </span><span class="NAME">project3DToCube</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1173
- <span class='line'>1166</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">;</span><span class="WHIT">
1174
- <span class='line'>1167</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1175
- <span class='line'>1168</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1176
- <span class='line'>1169</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1177
- <span class='line'>1170</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1178
- <span class='line'>1171</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1179
- <span class='line'>1172</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1180
- <span class='line'>1173</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1181
- <span class='line'>1174</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1182
- <span class='line'>1175</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1183
- <span class='line'>1176</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1184
- <span class='line'>1177</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1185
- <span class='line'>1178</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1186
- <span class='line'>1179</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1187
- <span class='line'>1180</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1170
+ <span class='line'>1163</span> * @returns Array [Array, Boolean] containing [coords, corrected]. coords contains the updated 3D coordinates,
1171
+ <span class='line'>1164</span> * correct is true if the coords have been changed.
1172
+ <span class='line'>1165</span> */</span><span class="WHIT">
1173
+ <span class='line'>1166</span> </span><span class="WHIT"> </span><span class="NAME">project3DToCube</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1174
+ <span class='line'>1167</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">,</span><span class="WHIT">
1175
+ <span class='line'>1168</span> </span><span class="WHIT"> </span><span class="NAME">isOut</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1176
+ <span class='line'>1169</span>
1177
+ <span class='line'>1170</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1178
+ <span class='line'>1171</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1179
+ <span class='line'>1172</span> </span><span class="WHIT"> </span><span class="NAME">isOut</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1180
+ <span class='line'>1173</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1181
+ <span class='line'>1174</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1182
+ <span class='line'>1175</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1183
+ <span class='line'>1176</span> </span><span class="WHIT"> </span><span class="NAME">isOut</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1184
+ <span class='line'>1177</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1185
+ <span class='line'>1178</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1186
+ <span class='line'>1179</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1187
+ <span class='line'>1180</span> </span><span class="WHIT"> </span><span class="NAME">isOut</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1188
1188
  <span class='line'>1181</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1189
- <span class='line'>1182</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1190
- <span class='line'>1183</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1191
- <span class='line'>1184</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1192
- <span class='line'>1185</span>
1193
- <span class='line'>1186</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">;</span><span class="WHIT">
1194
- <span class='line'>1187</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1195
- <span class='line'>1188</span>
1196
- <span class='line'>1189</span> </span><span class="WHIT"> </span><span class="COMM">/**
1197
- <span class='line'>1190</span> * Intersect a ray with the bounding cube of the 3D view.
1198
- <span class='line'>1191</span> * @param {Array} p 3D coordinates [x,y,z]
1199
- <span class='line'>1192</span> * @param {Array} d 3D direction vector of the line (array of length 3)
1200
- <span class='line'>1193</span> * @param {Number} r direction of the ray (positive if r > 0, negative if r &lt; 0).
1201
- <span class='line'>1194</span> * @returns Affine ratio of the intersection of the line with the cube.
1202
- <span class='line'>1195</span> */</span><span class="WHIT">
1203
- <span class='line'>1196</span> </span><span class="WHIT"> </span><span class="NAME">intersectionLineCube</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1204
- <span class='line'>1197</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">r_n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">;</span><span class="WHIT">
1205
- <span class='line'>1198</span>
1206
- <span class='line'>1199</span> </span><span class="WHIT"> </span><span class="NAME">r_n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
1207
- <span class='line'>1200</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1208
- <span class='line'>1201</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1209
- <span class='line'>1202</span> </span><span class="WHIT"> </span><span class="NAME">r0</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1210
- <span class='line'>1203</span> </span><span class="WHIT"> </span><span class="NAME">r1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1211
- <span class='line'>1204</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1212
- <span class='line'>1205</span> </span><span class="WHIT"> </span><span class="NAME">r_n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.max</span><span class="PUNC">(</span><span class="NAME">r_n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Math.min</span><span class="PUNC">(</span><span class="NAME">r0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1213
- <span class='line'>1206</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1214
- <span class='line'>1207</span> </span><span class="WHIT"> </span><span class="NAME">r_n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.min</span><span class="PUNC">(</span><span class="NAME">r_n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Math.max</span><span class="PUNC">(</span><span class="NAME">r0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1215
- <span class='line'>1208</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1216
- <span class='line'>1209</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1217
- <span class='line'>1210</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1218
- <span class='line'>1211</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r_n</span><span class="PUNC">;</span><span class="WHIT">
1219
- <span class='line'>1212</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1220
- <span class='line'>1213</span>
1221
- <span class='line'>1214</span> </span><span class="WHIT"> </span><span class="COMM">/**
1222
- <span class='line'>1215</span> * Test if coordinates are inside of the bounding cube.
1223
- <span class='line'>1216</span> * @param {array} q 3D coordinates [x,y,z] of a point.
1224
- <span class='line'>1217</span> * @returns Boolean
1225
- <span class='line'>1218</span> */</span><span class="WHIT">
1226
- <span class='line'>1219</span> </span><span class="WHIT"> </span><span class="NAME">isInCube</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">q</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1227
- <span class='line'>1220</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1228
- <span class='line'>1221</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1229
- <span class='line'>1222</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1230
- <span class='line'>1223</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1231
- <span class='line'>1224</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1232
- <span class='line'>1225</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1233
- <span class='line'>1226</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT">
1234
- <span class='line'>1227</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1235
- <span class='line'>1228</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1236
- <span class='line'>1229</span>
1237
- <span class='line'>1230</span> </span><span class="WHIT"> </span><span class="COMM">/**
1238
- <span class='line'>1231</span> *
1239
- <span class='line'>1232</span> * @param {JXG.Plane3D} plane1
1240
- <span class='line'>1233</span> * @param {JXG.Plane3D} plane2
1241
- <span class='line'>1234</span> * @param {JXG.Plane3D} d
1242
- <span class='line'>1235</span> * @returns {Array} of length 2 containing the coordinates of the defining points of
1243
- <span class='line'>1236</span> * of the intersection segment.
1244
- <span class='line'>1237</span> */</span><span class="WHIT">
1245
- <span class='line'>1238</span> </span><span class="WHIT"> </span><span class="NAME">intersectionPlanePlane</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">plane1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plane2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1246
- <span class='line'>1239</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ret</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1247
- <span class='line'>1240</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT">
1248
- <span class='line'>1241</span> </span><span class="WHIT"> </span><span class="NAME">dir</span><span class="PUNC">,</span><span class="WHIT">
1249
- <span class='line'>1242</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">,</span><span class="WHIT">
1250
- <span class='line'>1243</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">;</span><span class="WHIT">
1251
- <span class='line'>1244</span>
1252
- <span class='line'>1245</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">plane2.d</span><span class="PUNC">;</span><span class="WHIT">
1253
- <span class='line'>1246</span>
1254
- <span class='line'>1247</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.Geometry.meet3Planes</span><span class="PUNC">(</span><span class="WHIT">
1255
- <span class='line'>1248</span> </span><span class="WHIT"> </span><span class="NAME">plane1.normal</span><span class="PUNC">,</span><span class="WHIT">
1256
- <span class='line'>1249</span> </span><span class="WHIT"> </span><span class="NAME">plane1.d</span><span class="PUNC">,</span><span class="WHIT">
1257
- <span class='line'>1250</span> </span><span class="WHIT"> </span><span class="NAME">plane2.normal</span><span class="PUNC">,</span><span class="WHIT">
1258
- <span class='line'>1251</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">,</span><span class="WHIT">
1259
- <span class='line'>1252</span> </span><span class="WHIT"> </span><span class="NAME">Mat.crossProduct</span><span class="PUNC">(</span><span class="NAME">plane1.normal</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plane2.normal</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1260
- <span class='line'>1253</span> </span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT">
1261
- <span class='line'>1254</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1262
- <span class='line'>1255</span> </span><span class="WHIT"> </span><span class="NAME">dir</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.Geometry.meetPlanePlane</span><span class="PUNC">(</span><span class="WHIT">
1263
- <span class='line'>1256</span> </span><span class="WHIT"> </span><span class="NAME">plane1.vec1</span><span class="PUNC">,</span><span class="WHIT">
1264
- <span class='line'>1257</span> </span><span class="WHIT"> </span><span class="NAME">plane1.vec2</span><span class="PUNC">,</span><span class="WHIT">
1265
- <span class='line'>1258</span> </span><span class="WHIT"> </span><span class="NAME">plane2.vec1</span><span class="PUNC">,</span><span class="WHIT">
1266
- <span class='line'>1259</span> </span><span class="WHIT"> </span><span class="NAME">plane2.vec2</span><span class="WHIT">
1267
- <span class='line'>1260</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1268
- <span class='line'>1261</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.intersectionLineCube</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dir</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Infinity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1269
- <span class='line'>1262</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.axpy</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dir</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1270
- <span class='line'>1263</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isInCube</span><span class="PUNC">(</span><span class="NAME">q</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1271
- <span class='line'>1264</span> </span><span class="WHIT"> </span><span class="NAME">ret</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">;</span><span class="WHIT">
1272
- <span class='line'>1265</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1273
- <span class='line'>1266</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.intersectionLineCube</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dir</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">Infinity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1274
- <span class='line'>1267</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.axpy</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dir</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1275
- <span class='line'>1268</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isInCube</span><span class="PUNC">(</span><span class="NAME">q</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1276
- <span class='line'>1269</span> </span><span class="WHIT"> </span><span class="NAME">ret</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">;</span><span class="WHIT">
1277
- <span class='line'>1270</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1278
- <span class='line'>1271</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">ret</span><span class="PUNC">;</span><span class="WHIT">
1279
- <span class='line'>1272</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1280
- <span class='line'>1273</span>
1281
- <span class='line'>1274</span> </span><span class="WHIT"> </span><span class="COMM">/**
1282
- <span class='line'>1275</span> * Generate mesh for a surface / plane.
1283
- <span class='line'>1276</span> * Returns array [dataX, dataY] for a JSXGraph curve's updateDataArray function.
1284
- <span class='line'>1277</span> * @param {Array|Function} func
1285
- <span class='line'>1278</span> * @param {Array} interval_u
1286
- <span class='line'>1279</span> * @param {Array} interval_v
1287
- <span class='line'>1280</span> * @returns Array
1288
- <span class='line'>1281</span> * @private
1289
- <span class='line'>1282</span> *
1290
- <span class='line'>1283</span> * @example
1291
- <span class='line'>1284</span> * var el = view.create('curve', [[], []]);
1292
- <span class='line'>1285</span> * el.updateDataArray = function () {
1293
- <span class='line'>1286</span> * var steps_u = Type.evaluate(this.visProp.stepsu),
1294
- <span class='line'>1287</span> * steps_v = Type.evaluate(this.visProp.stepsv),
1295
- <span class='line'>1288</span> * r_u = Type.evaluate(this.range_u),
1296
- <span class='line'>1289</span> * r_v = Type.evaluate(this.range_v),
1297
- <span class='line'>1290</span> * func, ret;
1189
+ <span class='line'>1182</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1190
+ <span class='line'>1183</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1191
+ <span class='line'>1184</span> </span><span class="WHIT"> </span><span class="NAME">isOut</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1192
+ <span class='line'>1185</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1193
+ <span class='line'>1186</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1194
+ <span class='line'>1187</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1195
+ <span class='line'>1188</span> </span><span class="WHIT"> </span><span class="NAME">isOut</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1196
+ <span class='line'>1189</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1197
+ <span class='line'>1190</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1198
+ <span class='line'>1191</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">cube</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1199
+ <span class='line'>1192</span> </span><span class="WHIT"> </span><span class="NAME">isOut</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1200
+ <span class='line'>1193</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1201
+ <span class='line'>1194</span>
1202
+ <span class='line'>1195</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">c3d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">isOut</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1203
+ <span class='line'>1196</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1204
+ <span class='line'>1197</span>
1205
+ <span class='line'>1198</span> </span><span class="WHIT"> </span><span class="COMM">/**
1206
+ <span class='line'>1199</span> * Intersect a ray with the bounding cube of the 3D view.
1207
+ <span class='line'>1200</span> * @param {Array} p 3D coordinates [x,y,z]
1208
+ <span class='line'>1201</span> * @param {Array} d 3D direction vector of the line (array of length 3)
1209
+ <span class='line'>1202</span> * @param {Number} r direction of the ray (positive if r > 0, negative if r &lt; 0).
1210
+ <span class='line'>1203</span> * @returns Affine ratio of the intersection of the line with the cube.
1211
+ <span class='line'>1204</span> */</span><span class="WHIT">
1212
+ <span class='line'>1205</span> </span><span class="WHIT"> </span><span class="NAME">intersectionLineCube</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1213
+ <span class='line'>1206</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">r_n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">;</span><span class="WHIT">
1214
+ <span class='line'>1207</span>
1215
+ <span class='line'>1208</span> </span><span class="WHIT"> </span><span class="NAME">r_n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
1216
+ <span class='line'>1209</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1217
+ <span class='line'>1210</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1218
+ <span class='line'>1211</span> </span><span class="WHIT"> </span><span class="NAME">r0</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1219
+ <span class='line'>1212</span> </span><span class="WHIT"> </span><span class="NAME">r1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1220
+ <span class='line'>1213</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1221
+ <span class='line'>1214</span> </span><span class="WHIT"> </span><span class="NAME">r_n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.max</span><span class="PUNC">(</span><span class="NAME">r_n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Math.min</span><span class="PUNC">(</span><span class="NAME">r0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1222
+ <span class='line'>1215</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1223
+ <span class='line'>1216</span> </span><span class="WHIT"> </span><span class="NAME">r_n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.min</span><span class="PUNC">(</span><span class="NAME">r_n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Math.max</span><span class="PUNC">(</span><span class="NAME">r0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1224
+ <span class='line'>1217</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1225
+ <span class='line'>1218</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1226
+ <span class='line'>1219</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1227
+ <span class='line'>1220</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r_n</span><span class="PUNC">;</span><span class="WHIT">
1228
+ <span class='line'>1221</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1229
+ <span class='line'>1222</span>
1230
+ <span class='line'>1223</span> </span><span class="WHIT"> </span><span class="COMM">/**
1231
+ <span class='line'>1224</span> * Test if coordinates are inside of the bounding cube.
1232
+ <span class='line'>1225</span> * @param {array} q 3D coordinates [x,y,z] of a point.
1233
+ <span class='line'>1226</span> * @returns Boolean
1234
+ <span class='line'>1227</span> */</span><span class="WHIT">
1235
+ <span class='line'>1228</span> </span><span class="WHIT"> </span><span class="NAME">isInCube</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">q</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1236
+ <span class='line'>1229</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1237
+ <span class='line'>1230</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1238
+ <span class='line'>1231</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1239
+ <span class='line'>1232</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1240
+ <span class='line'>1233</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1241
+ <span class='line'>1234</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1242
+ <span class='line'>1235</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">this.bbox3D</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT">
1243
+ <span class='line'>1236</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1244
+ <span class='line'>1237</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1245
+ <span class='line'>1238</span>
1246
+ <span class='line'>1239</span> </span><span class="WHIT"> </span><span class="COMM">/**
1247
+ <span class='line'>1240</span> *
1248
+ <span class='line'>1241</span> * @param {JXG.Plane3D} plane1
1249
+ <span class='line'>1242</span> * @param {JXG.Plane3D} plane2
1250
+ <span class='line'>1243</span> * @param {JXG.Plane3D} d
1251
+ <span class='line'>1244</span> * @returns {Array} of length 2 containing the coordinates of the defining points of
1252
+ <span class='line'>1245</span> * of the intersection segment.
1253
+ <span class='line'>1246</span> */</span><span class="WHIT">
1254
+ <span class='line'>1247</span> </span><span class="WHIT"> </span><span class="NAME">intersectionPlanePlane</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">plane1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plane2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1255
+ <span class='line'>1248</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ret</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1256
+ <span class='line'>1249</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT">
1257
+ <span class='line'>1250</span> </span><span class="WHIT"> </span><span class="NAME">dir</span><span class="PUNC">,</span><span class="WHIT">
1258
+ <span class='line'>1251</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">,</span><span class="WHIT">
1259
+ <span class='line'>1252</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">;</span><span class="WHIT">
1260
+ <span class='line'>1253</span>
1261
+ <span class='line'>1254</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">plane2.d</span><span class="PUNC">;</span><span class="WHIT">
1262
+ <span class='line'>1255</span>
1263
+ <span class='line'>1256</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.Geometry.meet3Planes</span><span class="PUNC">(</span><span class="WHIT">
1264
+ <span class='line'>1257</span> </span><span class="WHIT"> </span><span class="NAME">plane1.normal</span><span class="PUNC">,</span><span class="WHIT">
1265
+ <span class='line'>1258</span> </span><span class="WHIT"> </span><span class="NAME">plane1.d</span><span class="PUNC">,</span><span class="WHIT">
1266
+ <span class='line'>1259</span> </span><span class="WHIT"> </span><span class="NAME">plane2.normal</span><span class="PUNC">,</span><span class="WHIT">
1267
+ <span class='line'>1260</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">,</span><span class="WHIT">
1268
+ <span class='line'>1261</span> </span><span class="WHIT"> </span><span class="NAME">Mat.crossProduct</span><span class="PUNC">(</span><span class="NAME">plane1.normal</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">plane2.normal</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1269
+ <span class='line'>1262</span> </span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT">
1270
+ <span class='line'>1263</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1271
+ <span class='line'>1264</span> </span><span class="WHIT"> </span><span class="NAME">dir</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.Geometry.meetPlanePlane</span><span class="PUNC">(</span><span class="WHIT">
1272
+ <span class='line'>1265</span> </span><span class="WHIT"> </span><span class="NAME">plane1.vec1</span><span class="PUNC">,</span><span class="WHIT">
1273
+ <span class='line'>1266</span> </span><span class="WHIT"> </span><span class="NAME">plane1.vec2</span><span class="PUNC">,</span><span class="WHIT">
1274
+ <span class='line'>1267</span> </span><span class="WHIT"> </span><span class="NAME">plane2.vec1</span><span class="PUNC">,</span><span class="WHIT">
1275
+ <span class='line'>1268</span> </span><span class="WHIT"> </span><span class="NAME">plane2.vec2</span><span class="WHIT">
1276
+ <span class='line'>1269</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1277
+ <span class='line'>1270</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.intersectionLineCube</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dir</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Infinity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1278
+ <span class='line'>1271</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.axpy</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dir</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1279
+ <span class='line'>1272</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isInCube</span><span class="PUNC">(</span><span class="NAME">q</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1280
+ <span class='line'>1273</span> </span><span class="WHIT"> </span><span class="NAME">ret</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">;</span><span class="WHIT">
1281
+ <span class='line'>1274</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1282
+ <span class='line'>1275</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.intersectionLineCube</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dir</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">Infinity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1283
+ <span class='line'>1276</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.axpy</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dir</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1284
+ <span class='line'>1277</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isInCube</span><span class="PUNC">(</span><span class="NAME">q</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1285
+ <span class='line'>1278</span> </span><span class="WHIT"> </span><span class="NAME">ret</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">;</span><span class="WHIT">
1286
+ <span class='line'>1279</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1287
+ <span class='line'>1280</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">ret</span><span class="PUNC">;</span><span class="WHIT">
1288
+ <span class='line'>1281</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1289
+ <span class='line'>1282</span>
1290
+ <span class='line'>1283</span> </span><span class="WHIT"> </span><span class="COMM">/**
1291
+ <span class='line'>1284</span> * Generate mesh for a surface / plane.
1292
+ <span class='line'>1285</span> * Returns array [dataX, dataY] for a JSXGraph curve's updateDataArray function.
1293
+ <span class='line'>1286</span> * @param {Array|Function} func
1294
+ <span class='line'>1287</span> * @param {Array} interval_u
1295
+ <span class='line'>1288</span> * @param {Array} interval_v
1296
+ <span class='line'>1289</span> * @returns Array
1297
+ <span class='line'>1290</span> * @private
1298
1298
  <span class='line'>1291</span> *
1299
- <span class='line'>1292</span> * if (this.F !== null) {
1300
- <span class='line'>1293</span> * func = this.F;
1301
- <span class='line'>1294</span> * } else {
1302
- <span class='line'>1295</span> * func = [this.X, this.Y, this.Z];
1303
- <span class='line'>1296</span> * }
1304
- <span class='line'>1297</span> * ret = this.view.getMesh(func,
1305
- <span class='line'>1298</span> * r_u.concat([steps_u]),
1306
- <span class='line'>1299</span> * r_v.concat([steps_v]));
1299
+ <span class='line'>1292</span> * @example
1300
+ <span class='line'>1293</span> * var el = view.create('curve', [[], []]);
1301
+ <span class='line'>1294</span> * el.updateDataArray = function () {
1302
+ <span class='line'>1295</span> * var steps_u = Type.evaluate(this.visProp.stepsu),
1303
+ <span class='line'>1296</span> * steps_v = Type.evaluate(this.visProp.stepsv),
1304
+ <span class='line'>1297</span> * r_u = Type.evaluate(this.range_u),
1305
+ <span class='line'>1298</span> * r_v = Type.evaluate(this.range_v),
1306
+ <span class='line'>1299</span> * func, ret;
1307
1307
  <span class='line'>1300</span> *
1308
- <span class='line'>1301</span> * this.dataX = ret[0];
1309
- <span class='line'>1302</span> * this.dataY = ret[1];
1310
- <span class='line'>1303</span> * };
1311
- <span class='line'>1304</span> *
1312
- <span class='line'>1305</span> */</span><span class="WHIT">
1313
- <span class='line'>1306</span> </span><span class="WHIT"> </span><span class="NAME">getMesh</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">func</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">interval_u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">interval_v</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1314
- <span class='line'>1307</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">,</span><span class="WHIT">
1315
- <span class='line'>1308</span> </span><span class="WHIT"> </span><span class="NAME">c2d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">delta_u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">delta_v</span><span class="PUNC">,</span><span class="WHIT">
1316
- <span class='line'>1309</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1317
- <span class='line'>1310</span> </span><span class="WHIT"> </span><span class="NAME">steps_u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">interval_u</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1318
- <span class='line'>1311</span> </span><span class="WHIT"> </span><span class="NAME">steps_v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">interval_v</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1319
- <span class='line'>1312</span> </span><span class="WHIT"> </span><span class="NAME">dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1320
- <span class='line'>1313</span> </span><span class="WHIT"> </span><span class="NAME">dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1321
- <span class='line'>1314</span>
1322
- <span class='line'>1315</span> </span><span class="WHIT"> </span><span class="NAME">delta_u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">interval_u</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">interval_u</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">steps_u</span><span class="PUNC">;</span><span class="WHIT">
1323
- <span class='line'>1316</span> </span><span class="WHIT"> </span><span class="NAME">delta_v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">interval_v</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">interval_v</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">steps_v</span><span class="PUNC">;</span><span class="WHIT">
1324
- <span class='line'>1317</span>
1325
- <span class='line'>1318</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i_u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="WHIT"> </span><span class="PUNC">&lt;=</span><span class="WHIT"> </span><span class="NAME">steps_u</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1326
- <span class='line'>1319</span> </span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">interval_u</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">delta_u</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="PUNC">;</span><span class="WHIT">
1327
- <span class='line'>1320</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i_v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="WHIT"> </span><span class="PUNC">&lt;=</span><span class="WHIT"> </span><span class="NAME">steps_v</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1328
- <span class='line'>1321</span> </span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">interval_v</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">delta_v</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="PUNC">;</span><span class="WHIT">
1329
- <span class='line'>1322</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.isFunction</span><span class="PUNC">(</span><span class="NAME">func</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1330
- <span class='line'>1323</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1331
- <span class='line'>1324</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1332
- <span class='line'>1325</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1333
- <span class='line'>1326</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1334
- <span class='line'>1327</span> </span><span class="WHIT"> </span><span class="NAME">c2d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.project3DTo2D</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1335
- <span class='line'>1328</span> </span><span class="WHIT"> </span><span class="NAME">dataX.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1336
- <span class='line'>1329</span> </span><span class="WHIT"> </span><span class="NAME">dataY.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1337
- <span class='line'>1330</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1338
- <span class='line'>1331</span> </span><span class="WHIT"> </span><span class="NAME">dataX.push</span><span class="PUNC">(</span><span class="NAME">NaN</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1339
- <span class='line'>1332</span> </span><span class="WHIT"> </span><span class="NAME">dataY.push</span><span class="PUNC">(</span><span class="NAME">NaN</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1340
- <span class='line'>1333</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1341
- <span class='line'>1334</span>
1342
- <span class='line'>1335</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i_v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="WHIT"> </span><span class="PUNC">&lt;=</span><span class="WHIT"> </span><span class="NAME">steps_v</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1343
- <span class='line'>1336</span> </span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">interval_v</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">delta_v</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="PUNC">;</span><span class="WHIT">
1344
- <span class='line'>1337</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i_u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="WHIT"> </span><span class="PUNC">&lt;=</span><span class="WHIT"> </span><span class="NAME">steps_u</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1345
- <span class='line'>1338</span> </span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">interval_u</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">delta_u</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="PUNC">;</span><span class="WHIT">
1346
- <span class='line'>1339</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.isFunction</span><span class="PUNC">(</span><span class="NAME">func</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1347
- <span class='line'>1340</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1348
- <span class='line'>1341</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1349
- <span class='line'>1342</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1350
- <span class='line'>1343</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1351
- <span class='line'>1344</span> </span><span class="WHIT"> </span><span class="NAME">c2d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.project3DTo2D</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1352
- <span class='line'>1345</span> </span><span class="WHIT"> </span><span class="NAME">dataX.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1353
- <span class='line'>1346</span> </span><span class="WHIT"> </span><span class="NAME">dataY.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1354
- <span class='line'>1347</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1355
- <span class='line'>1348</span> </span><span class="WHIT"> </span><span class="NAME">dataX.push</span><span class="PUNC">(</span><span class="NAME">NaN</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1356
- <span class='line'>1349</span> </span><span class="WHIT"> </span><span class="NAME">dataY.push</span><span class="PUNC">(</span><span class="NAME">NaN</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1357
- <span class='line'>1350</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1358
- <span class='line'>1351</span>
1359
- <span class='line'>1352</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">dataX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dataY</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1360
- <span class='line'>1353</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1361
- <span class='line'>1354</span>
1362
- <span class='line'>1355</span> </span><span class="WHIT"> </span><span class="COMM">/**
1363
- <span class='line'>1356</span> *
1364
- <span class='line'>1357</span> */</span><span class="WHIT">
1365
- <span class='line'>1358</span> </span><span class="WHIT"> </span><span class="NAME">animateAzimuth</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1366
- <span class='line'>1359</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide._smin</span><span class="PUNC">,</span><span class="WHIT">
1367
- <span class='line'>1360</span> </span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide._smax</span><span class="PUNC">,</span><span class="WHIT">
1368
- <span class='line'>1361</span> </span><span class="WHIT"> </span><span class="NAME">sdiff</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">,</span><span class="WHIT">
1369
- <span class='line'>1362</span> </span><span class="WHIT"> </span><span class="NAME">newVal</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">0.1</span><span class="PUNC">;</span><span class="WHIT">
1308
+ <span class='line'>1301</span> * if (this.F !== null) {
1309
+ <span class='line'>1302</span> * func = this.F;
1310
+ <span class='line'>1303</span> * } else {
1311
+ <span class='line'>1304</span> * func = [this.X, this.Y, this.Z];
1312
+ <span class='line'>1305</span> * }
1313
+ <span class='line'>1306</span> * ret = this.view.getMesh(func,
1314
+ <span class='line'>1307</span> * r_u.concat([steps_u]),
1315
+ <span class='line'>1308</span> * r_v.concat([steps_v]));
1316
+ <span class='line'>1309</span> *
1317
+ <span class='line'>1310</span> * this.dataX = ret[0];
1318
+ <span class='line'>1311</span> * this.dataY = ret[1];
1319
+ <span class='line'>1312</span> * };
1320
+ <span class='line'>1313</span> *
1321
+ <span class='line'>1314</span> */</span><span class="WHIT">
1322
+ <span class='line'>1315</span> </span><span class="WHIT"> </span><span class="NAME">getMesh</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">func</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">interval_u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">interval_v</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1323
+ <span class='line'>1316</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">,</span><span class="WHIT">
1324
+ <span class='line'>1317</span> </span><span class="WHIT"> </span><span class="NAME">c2d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">delta_u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">delta_v</span><span class="PUNC">,</span><span class="WHIT">
1325
+ <span class='line'>1318</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1326
+ <span class='line'>1319</span> </span><span class="WHIT"> </span><span class="NAME">steps_u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">interval_u</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1327
+ <span class='line'>1320</span> </span><span class="WHIT"> </span><span class="NAME">steps_v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">interval_v</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1328
+ <span class='line'>1321</span> </span><span class="WHIT"> </span><span class="NAME">dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
1329
+ <span class='line'>1322</span> </span><span class="WHIT"> </span><span class="NAME">dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1330
+ <span class='line'>1323</span>
1331
+ <span class='line'>1324</span> </span><span class="WHIT"> </span><span class="NAME">delta_u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">interval_u</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">interval_u</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">steps_u</span><span class="PUNC">;</span><span class="WHIT">
1332
+ <span class='line'>1325</span> </span><span class="WHIT"> </span><span class="NAME">delta_v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">interval_v</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">interval_v</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">steps_v</span><span class="PUNC">;</span><span class="WHIT">
1333
+ <span class='line'>1326</span>
1334
+ <span class='line'>1327</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i_u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="WHIT"> </span><span class="PUNC">&lt;=</span><span class="WHIT"> </span><span class="NAME">steps_u</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1335
+ <span class='line'>1328</span> </span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">interval_u</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">delta_u</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="PUNC">;</span><span class="WHIT">
1336
+ <span class='line'>1329</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i_v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="WHIT"> </span><span class="PUNC">&lt;=</span><span class="WHIT"> </span><span class="NAME">steps_v</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1337
+ <span class='line'>1330</span> </span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">interval_v</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">delta_v</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="PUNC">;</span><span class="WHIT">
1338
+ <span class='line'>1331</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.isFunction</span><span class="PUNC">(</span><span class="NAME">func</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1339
+ <span class='line'>1332</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1340
+ <span class='line'>1333</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1341
+ <span class='line'>1334</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1342
+ <span class='line'>1335</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1343
+ <span class='line'>1336</span> </span><span class="WHIT"> </span><span class="NAME">c2d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.project3DTo2D</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1344
+ <span class='line'>1337</span> </span><span class="WHIT"> </span><span class="NAME">dataX.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1345
+ <span class='line'>1338</span> </span><span class="WHIT"> </span><span class="NAME">dataY.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1346
+ <span class='line'>1339</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1347
+ <span class='line'>1340</span> </span><span class="WHIT"> </span><span class="NAME">dataX.push</span><span class="PUNC">(</span><span class="NAME">NaN</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1348
+ <span class='line'>1341</span> </span><span class="WHIT"> </span><span class="NAME">dataY.push</span><span class="PUNC">(</span><span class="NAME">NaN</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1349
+ <span class='line'>1342</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1350
+ <span class='line'>1343</span>
1351
+ <span class='line'>1344</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i_v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="WHIT"> </span><span class="PUNC">&lt;=</span><span class="WHIT"> </span><span class="NAME">steps_v</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1352
+ <span class='line'>1345</span> </span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">interval_v</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">delta_v</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">i_v</span><span class="PUNC">;</span><span class="WHIT">
1353
+ <span class='line'>1346</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i_u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="WHIT"> </span><span class="PUNC">&lt;=</span><span class="WHIT"> </span><span class="NAME">steps_u</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1354
+ <span class='line'>1347</span> </span><span class="WHIT"> </span><span class="NAME">u</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">interval_u</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">delta_u</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">i_u</span><span class="PUNC">;</span><span class="WHIT">
1355
+ <span class='line'>1348</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.isFunction</span><span class="PUNC">(</span><span class="NAME">func</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1356
+ <span class='line'>1349</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1357
+ <span class='line'>1350</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1358
+ <span class='line'>1351</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">u</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1359
+ <span class='line'>1352</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1360
+ <span class='line'>1353</span> </span><span class="WHIT"> </span><span class="NAME">c2d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.project3DTo2D</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1361
+ <span class='line'>1354</span> </span><span class="WHIT"> </span><span class="NAME">dataX.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1362
+ <span class='line'>1355</span> </span><span class="WHIT"> </span><span class="NAME">dataY.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1363
+ <span class='line'>1356</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1364
+ <span class='line'>1357</span> </span><span class="WHIT"> </span><span class="NAME">dataX.push</span><span class="PUNC">(</span><span class="NAME">NaN</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1365
+ <span class='line'>1358</span> </span><span class="WHIT"> </span><span class="NAME">dataY.push</span><span class="PUNC">(</span><span class="NAME">NaN</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1366
+ <span class='line'>1359</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1367
+ <span class='line'>1360</span>
1368
+ <span class='line'>1361</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">dataX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dataY</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1369
+ <span class='line'>1362</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1370
1370
  <span class='line'>1363</span>
1371
- <span class='line'>1364</span> </span><span class="WHIT"> </span><span class="NAME">this.az_slide.position</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">newVal</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">sdiff</span><span class="PUNC">;</span><span class="WHIT">
1372
- <span class='line'>1365</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.az_slide.position</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1373
- <span class='line'>1366</span> </span><span class="WHIT"> </span><span class="NAME">this.az_slide.position</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0.0</span><span class="PUNC">;</span><span class="WHIT">
1374
- <span class='line'>1367</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1375
- <span class='line'>1368</span> </span><span class="WHIT"> </span><span class="NAME">this.board.update</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1376
- <span class='line'>1369</span>
1377
- <span class='line'>1370</span> </span><span class="WHIT"> </span><span class="NAME">this.timeoutAzimuth</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1378
- <span class='line'>1371</span> </span><span class="WHIT"> </span><span class="NAME">this.animateAzimuth</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1379
- <span class='line'>1372</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1380
- <span class='line'>1373</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1381
- <span class='line'>1374</span>
1382
- <span class='line'>1375</span> </span><span class="WHIT"> </span><span class="COMM">/**
1383
- <span class='line'>1376</span> *
1384
- <span class='line'>1377</span> */</span><span class="WHIT">
1385
- <span class='line'>1378</span> </span><span class="WHIT"> </span><span class="NAME">stopAzimuth</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1386
- <span class='line'>1379</span> </span><span class="WHIT"> </span><span class="NAME">clearTimeout</span><span class="PUNC">(</span><span class="NAME">this.timeoutAzimuth</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1387
- <span class='line'>1380</span> </span><span class="WHIT"> </span><span class="NAME">this.timeoutAzimuth</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
1388
- <span class='line'>1381</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1389
- <span class='line'>1382</span>
1390
- <span class='line'>1383</span> </span><span class="WHIT"> </span><span class="COMM">/**
1391
- <span class='line'>1384</span> * Check if vertical dragging is enabled and which action is needed.
1392
- <span class='line'>1385</span> * Default is shiftKey.
1393
- <span class='line'>1386</span> *
1394
- <span class='line'>1387</span> * @returns Boolean
1395
- <span class='line'>1388</span> * @private
1396
- <span class='line'>1389</span> */</span><span class="WHIT">
1397
- <span class='line'>1390</span> </span><span class="WHIT"> </span><span class="NAME">isVerticalDrag</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1398
- <span class='line'>1391</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.board</span><span class="PUNC">,</span><span class="WHIT">
1399
- <span class='line'>1392</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">;</span><span class="WHIT">
1400
- <span class='line'>1393</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.verticaldrag.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1401
- <span class='line'>1394</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1402
- <span class='line'>1395</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1403
- <span class='line'>1396</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'_'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.verticaldrag.key</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'Key'</span><span class="PUNC">;</span><span class="WHIT">
1404
- <span class='line'>1397</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1405
- <span class='line'>1398</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1406
- <span class='line'>1399</span>
1407
- <span class='line'>1400</span> </span><span class="WHIT"> </span><span class="COMM">/**
1408
- <span class='line'>1401</span> * Sets camera view to the given values.
1409
- <span class='line'>1402</span> *
1410
- <span class='line'>1403</span> * @param {Number} az Value of azimuth.
1411
- <span class='line'>1404</span> * @param {Number} el Value of elevation.
1412
- <span class='line'>1405</span> * @param {Number} [r] Value of radius.
1413
- <span class='line'>1406</span> *
1414
- <span class='line'>1407</span> * @returns {Object} Reference to the view.
1415
- <span class='line'>1408</span> */</span><span class="WHIT">
1416
- <span class='line'>1409</span> </span><span class="WHIT"> </span><span class="NAME">setView</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">az</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1417
- <span class='line'>1410</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.r</span><span class="PUNC">;</span><span class="WHIT">
1418
- <span class='line'>1411</span>
1419
- <span class='line'>1412</span> </span><span class="WHIT"> </span><span class="NAME">this.az_slide.setValue</span><span class="PUNC">(</span><span class="NAME">az</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1420
- <span class='line'>1413</span> </span><span class="WHIT"> </span><span class="NAME">this.el_slide.setValue</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1421
- <span class='line'>1414</span> </span><span class="WHIT"> </span><span class="NAME">this.r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
1422
- <span class='line'>1415</span> </span><span class="WHIT"> </span><span class="NAME">this.board.update</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1423
- <span class='line'>1416</span>
1424
- <span class='line'>1417</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1425
- <span class='line'>1418</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1426
- <span class='line'>1419</span>
1427
- <span class='line'>1420</span> </span><span class="WHIT"> </span><span class="COMM">/**
1428
- <span class='line'>1421</span> * Changes view to the next view stored in the attribute `values`.
1429
- <span class='line'>1422</span> *
1430
- <span class='line'>1423</span> * @see View3D#values
1431
- <span class='line'>1424</span> *
1432
- <span class='line'>1425</span> * @returns {Object} Reference to the view.
1433
- <span class='line'>1426</span> */</span><span class="WHIT">
1434
- <span class='line'>1427</span> </span><span class="WHIT"> </span><span class="NAME">nextView</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1435
- <span class='line'>1428</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">views</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.values</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1436
- <span class='line'>1429</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.visProp._currentview</span><span class="PUNC">;</span><span class="WHIT">
1437
- <span class='line'>1430</span>
1438
- <span class='line'>1431</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="PUNC">;</span><span class="WHIT">
1439
- <span class='line'>1432</span> </span><span class="WHIT"> </span><span class="NAME">this.setCurrentView</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1440
- <span class='line'>1433</span>
1441
- <span class='line'>1434</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1442
- <span class='line'>1435</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1443
- <span class='line'>1436</span>
1444
- <span class='line'>1437</span> </span><span class="WHIT"> </span><span class="COMM">/**
1445
- <span class='line'>1438</span> * Changes view to the previous view stored in the attribute `values`.
1446
- <span class='line'>1439</span> *
1447
- <span class='line'>1440</span> * @see View3D#values
1448
- <span class='line'>1441</span> *
1449
- <span class='line'>1442</span> * @returns {Object} Reference to the view.
1450
- <span class='line'>1443</span> */</span><span class="WHIT">
1451
- <span class='line'>1444</span> </span><span class="WHIT"> </span><span class="NAME">previousView</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1452
- <span class='line'>1445</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">views</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.values</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1453
- <span class='line'>1446</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.visProp._currentview</span><span class="PUNC">;</span><span class="WHIT">
1454
- <span class='line'>1447</span>
1455
- <span class='line'>1448</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="PUNC">;</span><span class="WHIT">
1456
- <span class='line'>1449</span> </span><span class="WHIT"> </span><span class="NAME">this.setCurrentView</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1457
- <span class='line'>1450</span>
1458
- <span class='line'>1451</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1459
- <span class='line'>1452</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1460
- <span class='line'>1453</span>
1461
- <span class='line'>1454</span> </span><span class="WHIT"> </span><span class="COMM">/**
1462
- <span class='line'>1455</span> * Changes view to the determined view stored in the attribute `values`.
1463
- <span class='line'>1456</span> *
1464
- <span class='line'>1457</span> * @see View3D#values
1465
- <span class='line'>1458</span> *
1466
- <span class='line'>1459</span> * @param {Number} n Index of view in attribute `values`.
1467
- <span class='line'>1460</span> * @returns {Object} Reference to the view.
1468
- <span class='line'>1461</span> */</span><span class="WHIT">
1469
- <span class='line'>1462</span> </span><span class="WHIT"> </span><span class="NAME">setCurrentView</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1470
- <span class='line'>1463</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">views</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.values</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1471
- <span class='line'>1464</span>
1472
- <span class='line'>1465</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1473
- <span class='line'>1466</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="PUNC">;</span><span class="WHIT">
1474
- <span class='line'>1467</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1475
- <span class='line'>1468</span>
1476
- <span class='line'>1469</span> </span><span class="WHIT"> </span><span class="NAME">this.setView</span><span class="PUNC">(</span><span class="NAME">views</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">views</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">views</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1477
- <span class='line'>1470</span> </span><span class="WHIT"> </span><span class="NAME">this.visProp._currentview</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
1478
- <span class='line'>1471</span>
1479
- <span class='line'>1472</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1480
- <span class='line'>1473</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1481
- <span class='line'>1474</span>
1482
- <span class='line'>1475</span> </span><span class="WHIT"> </span><span class="COMM">/**
1483
- <span class='line'>1476</span> * Controls the navigation in az direction using either the keyboard or a pointer.
1484
- <span class='line'>1477</span> *
1485
- <span class='line'>1478</span> * @private
1486
- <span class='line'>1479</span> *
1487
- <span class='line'>1480</span> * @param {event} evt either the keydown or the pointer event
1488
- <span class='line'>1481</span> * @returns view
1489
- <span class='line'>1482</span> */</span><span class="WHIT">
1490
- <span class='line'>1483</span> </span><span class="WHIT"> </span><span class="NAME">_azEventHandler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1491
- <span class='line'>1484</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide._smax</span><span class="PUNC">,</span><span class="WHIT">
1492
- <span class='line'>1485</span> </span><span class="WHIT"> </span><span class="NAME">smin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide._smin</span><span class="PUNC">,</span><span class="WHIT">
1493
- <span class='line'>1486</span> </span><span class="WHIT"> </span><span class="NAME">speed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">smax</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">this.board.canvasWidth</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.speed</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1494
- <span class='line'>1487</span> </span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">evt.movementX</span><span class="PUNC">,</span><span class="WHIT">
1495
- <span class='line'>1488</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1496
- <span class='line'>1489</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.el_slide.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1497
- <span class='line'>1490</span>
1498
- <span class='line'>1491</span> </span><span class="WHIT"> </span><span class="COMM">// Doesn't allow navigation if another moving event is triggered</span><span class="WHIT">
1499
- <span class='line'>1492</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.board.mode</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">this.board.BOARD_MODE_DRAG</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1500
- <span class='line'>1493</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1501
- <span class='line'>1494</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1502
- <span class='line'>1495</span>
1503
- <span class='line'>1496</span> </span><span class="WHIT"> </span><span class="COMM">// Calculate new az value if keyboard events are triggered</span><span class="WHIT">
1504
- <span class='line'>1497</span> </span><span class="WHIT"> </span><span class="COMM">// Plus if right-button, minus if left-button</span><span class="WHIT">
1505
- <span class='line'>1498</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.keyboard.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1506
- <span class='line'>1499</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowRight'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1507
- <span class='line'>1500</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.keyboard.step</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">180</span><span class="PUNC">;</span><span class="WHIT">
1508
- <span class='line'>1501</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowLeft'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1509
- <span class='line'>1502</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.keyboard.step</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">180</span><span class="PUNC">;</span><span class="WHIT">
1510
- <span class='line'>1503</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1511
- <span class='line'>1504</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1512
- <span class='line'>1505</span>
1513
- <span class='line'>1506</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1514
- <span class='line'>1507</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">speed</span><span class="PUNC">;</span><span class="WHIT">
1515
- <span class='line'>1508</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1516
- <span class='line'>1509</span>
1517
- <span class='line'>1510</span> </span><span class="WHIT"> </span><span class="COMM">// Project the calculated az value to a usable value in the interval [smin,smax]</span><span class="WHIT">
1518
- <span class='line'>1511</span> </span><span class="WHIT"> </span><span class="COMM">// Use modulo if continuous is true</span><span class="WHIT">
1519
- <span class='line'>1512</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.continuous</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1520
- <span class='line'>1513</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.wrap</span><span class="PUNC">(</span><span class="NAME">az</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1521
- <span class='line'>1514</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1522
- <span class='line'>1515</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1523
- <span class='line'>1516</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.min</span><span class="PUNC">(</span><span class="NAME">smax</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">az</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1524
- <span class='line'>1517</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1525
- <span class='line'>1518</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.max</span><span class="PUNC">(</span><span class="NAME">smin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">az</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1526
- <span class='line'>1519</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1527
- <span class='line'>1520</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1528
- <span class='line'>1521</span>
1529
- <span class='line'>1522</span> </span><span class="WHIT"> </span><span class="NAME">this.setView</span><span class="PUNC">(</span><span class="NAME">az</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1530
- <span class='line'>1523</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1531
- <span class='line'>1524</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1532
- <span class='line'>1525</span>
1533
- <span class='line'>1526</span> </span><span class="WHIT"> </span><span class="COMM">/**
1534
- <span class='line'>1527</span> * Controls the navigation in el direction using either the keyboard or a pointer.
1535
- <span class='line'>1528</span> *
1536
- <span class='line'>1529</span> * @private
1537
- <span class='line'>1530</span> *
1538
- <span class='line'>1531</span> * @param {event} evt either the keydown or the pointer event
1539
- <span class='line'>1532</span> * @returns view
1540
- <span class='line'>1533</span> */</span><span class="WHIT">
1541
- <span class='line'>1534</span> </span><span class="WHIT"> </span><span class="NAME">_elEventHandler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1542
- <span class='line'>1535</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.el_slide._smax</span><span class="PUNC">,</span><span class="WHIT">
1543
- <span class='line'>1536</span> </span><span class="WHIT"> </span><span class="NAME">smin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.el_slide._smin</span><span class="PUNC">,</span><span class="WHIT">
1544
- <span class='line'>1537</span> </span><span class="WHIT"> </span><span class="NAME">speed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">smax</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">this.board.canvasHeight</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.speed</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1545
- <span class='line'>1538</span> </span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">evt.movementY</span><span class="PUNC">,</span><span class="WHIT">
1546
- <span class='line'>1539</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1547
- <span class='line'>1540</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.el_slide.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1548
- <span class='line'>1541</span>
1549
- <span class='line'>1542</span> </span><span class="WHIT"> </span><span class="COMM">// Doesn't allow navigation if another moving event is triggered</span><span class="WHIT">
1550
- <span class='line'>1543</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.board.mode</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">this.board.BOARD_MODE_DRAG</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1551
- <span class='line'>1544</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1552
- <span class='line'>1545</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1553
- <span class='line'>1546</span>
1554
- <span class='line'>1547</span> </span><span class="WHIT"> </span><span class="COMM">// Calculate new az value if keyboard events are triggered</span><span class="WHIT">
1555
- <span class='line'>1548</span> </span><span class="WHIT"> </span><span class="COMM">// Plus if down-button, minus if up-button</span><span class="WHIT">
1556
- <span class='line'>1549</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.keyboard.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1557
- <span class='line'>1550</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowUp'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1558
- <span class='line'>1551</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.keyboard.step</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">180</span><span class="PUNC">;</span><span class="WHIT">
1559
- <span class='line'>1552</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowDown'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1560
- <span class='line'>1553</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.keyboard.step</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">180</span><span class="PUNC">;</span><span class="WHIT">
1561
- <span class='line'>1554</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1562
- <span class='line'>1555</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1563
- <span class='line'>1556</span>
1564
- <span class='line'>1557</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1565
- <span class='line'>1558</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">speed</span><span class="PUNC">;</span><span class="WHIT">
1566
- <span class='line'>1559</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1567
- <span class='line'>1560</span>
1568
- <span class='line'>1561</span> </span><span class="WHIT"> </span><span class="COMM">// Project the calculated el value to a usable value in the interval [smin,smax]</span><span class="WHIT">
1569
- <span class='line'>1562</span> </span><span class="WHIT"> </span><span class="COMM">// Use modulo if continuous is true and the trackball is disabled</span><span class="WHIT">
1570
- <span class='line'>1563</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.continuous</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.trackballEnabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1571
- <span class='line'>1564</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.wrap</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1572
- <span class='line'>1565</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1573
- <span class='line'>1566</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1574
- <span class='line'>1567</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.min</span><span class="PUNC">(</span><span class="NAME">smax</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1575
- <span class='line'>1568</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1576
- <span class='line'>1569</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.max</span><span class="PUNC">(</span><span class="NAME">smin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1577
- <span class='line'>1570</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1578
- <span class='line'>1571</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1579
- <span class='line'>1572</span>
1580
- <span class='line'>1573</span> </span><span class="WHIT"> </span><span class="NAME">this.setView</span><span class="PUNC">(</span><span class="NAME">az</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1581
- <span class='line'>1574</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1582
- <span class='line'>1575</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1583
- <span class='line'>1576</span>
1584
- <span class='line'>1577</span> </span><span class="WHIT"> </span><span class="COMM">/**
1585
- <span class='line'>1578</span> * Controls the navigation in bank direction using either the keyboard or a pointer.
1586
- <span class='line'>1579</span> *
1587
- <span class='line'>1580</span> * @private
1588
- <span class='line'>1581</span> *
1589
- <span class='line'>1582</span> * @param {event} evt either the keydown or the pointer event
1590
- <span class='line'>1583</span> * @returns view
1591
- <span class='line'>1584</span> */</span><span class="WHIT">
1592
- <span class='line'>1585</span> </span><span class="WHIT"> </span><span class="NAME">_bankEventHandler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1593
- <span class='line'>1586</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.bank_slide._smax</span><span class="PUNC">,</span><span class="WHIT">
1594
- <span class='line'>1587</span> </span><span class="WHIT"> </span><span class="NAME">smin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.bank_slide._smin</span><span class="PUNC">,</span><span class="WHIT">
1595
- <span class='line'>1588</span> </span><span class="WHIT"> </span><span class="NAME">step</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">speed</span><span class="PUNC">,</span><span class="WHIT">
1596
- <span class='line'>1589</span> </span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">evt.deltaY</span><span class="PUNC">,</span><span class="WHIT">
1597
- <span class='line'>1590</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.bank_slide.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1598
- <span class='line'>1591</span>
1599
- <span class='line'>1592</span> </span><span class="WHIT"> </span><span class="COMM">// Doesn't allow navigation if another moving event is triggered</span><span class="WHIT">
1600
- <span class='line'>1593</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.board.mode</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">this.board.BOARD_MODE_DRAG</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1601
- <span class='line'>1594</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1602
- <span class='line'>1595</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1603
- <span class='line'>1596</span>
1604
- <span class='line'>1597</span> </span><span class="WHIT"> </span><span class="COMM">// Calculate new bank value if keyboard events are triggered</span><span class="WHIT">
1605
- <span class='line'>1598</span> </span><span class="WHIT"> </span><span class="COMM">// Plus if down-button, minus if up-button</span><span class="WHIT">
1606
- <span class='line'>1599</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.keyboard.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1607
- <span class='line'>1600</span> </span><span class="WHIT"> </span><span class="NAME">step</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.keyboard.step</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">180</span><span class="PUNC">;</span><span class="WHIT">
1608
- <span class='line'>1601</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'.'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'&lt;'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1609
- <span class='line'>1602</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">step</span><span class="PUNC">;</span><span class="WHIT">
1610
- <span class='line'>1603</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">','</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1611
- <span class='line'>1604</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">step</span><span class="PUNC">;</span><span class="WHIT">
1612
- <span class='line'>1605</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1613
- <span class='line'>1606</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1614
- <span class='line'>1607</span>
1615
- <span class='line'>1608</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1616
- <span class='line'>1609</span> </span><span class="WHIT"> </span><span class="NAME">speed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">smax</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">this.board.canvasHeight</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.speed</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1617
- <span class='line'>1610</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">speed</span><span class="PUNC">;</span><span class="WHIT">
1618
- <span class='line'>1611</span>
1619
- <span class='line'>1612</span> </span><span class="WHIT"> </span><span class="COMM">// prevent the pointer wheel from scrolling the page</span><span class="WHIT">
1620
- <span class='line'>1613</span> </span><span class="WHIT"> </span><span class="NAME">evt.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1621
- <span class='line'>1614</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1622
- <span class='line'>1615</span>
1623
- <span class='line'>1616</span> </span><span class="WHIT"> </span><span class="COMM">// Project the calculated bank value to a usable value in the interval [smin,smax]</span><span class="WHIT">
1624
- <span class='line'>1617</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.continuous</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1625
- <span class='line'>1618</span> </span><span class="WHIT"> </span><span class="COMM">// in continuous mode, wrap value around slider range</span><span class="WHIT">
1626
- <span class='line'>1619</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.wrap</span><span class="PUNC">(</span><span class="NAME">bank</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1627
- <span class='line'>1620</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1628
- <span class='line'>1621</span> </span><span class="WHIT"> </span><span class="COMM">// in non-continuous mode, clamp value to slider range</span><span class="WHIT">
1629
- <span class='line'>1622</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.clamp</span><span class="PUNC">(</span><span class="NAME">bank</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1371
+ <span class='line'>1364</span> </span><span class="WHIT"> </span><span class="COMM">/**
1372
+ <span class='line'>1365</span> *
1373
+ <span class='line'>1366</span> */</span><span class="WHIT">
1374
+ <span class='line'>1367</span> </span><span class="WHIT"> </span><span class="NAME">animateAzimuth</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1375
+ <span class='line'>1368</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide._smin</span><span class="PUNC">,</span><span class="WHIT">
1376
+ <span class='line'>1369</span> </span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide._smax</span><span class="PUNC">,</span><span class="WHIT">
1377
+ <span class='line'>1370</span> </span><span class="WHIT"> </span><span class="NAME">sdiff</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">,</span><span class="WHIT">
1378
+ <span class='line'>1371</span> </span><span class="WHIT"> </span><span class="NAME">newVal</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">0.1</span><span class="PUNC">;</span><span class="WHIT">
1379
+ <span class='line'>1372</span>
1380
+ <span class='line'>1373</span> </span><span class="WHIT"> </span><span class="NAME">this.az_slide.position</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">newVal</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">sdiff</span><span class="PUNC">;</span><span class="WHIT">
1381
+ <span class='line'>1374</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.az_slide.position</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1382
+ <span class='line'>1375</span> </span><span class="WHIT"> </span><span class="NAME">this.az_slide.position</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0.0</span><span class="PUNC">;</span><span class="WHIT">
1383
+ <span class='line'>1376</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1384
+ <span class='line'>1377</span> </span><span class="WHIT"> </span><span class="NAME">this.board.update</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1385
+ <span class='line'>1378</span>
1386
+ <span class='line'>1379</span> </span><span class="WHIT"> </span><span class="NAME">this.timeoutAzimuth</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1387
+ <span class='line'>1380</span> </span><span class="WHIT"> </span><span class="NAME">this.animateAzimuth</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1388
+ <span class='line'>1381</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1389
+ <span class='line'>1382</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1390
+ <span class='line'>1383</span>
1391
+ <span class='line'>1384</span> </span><span class="WHIT"> </span><span class="COMM">/**
1392
+ <span class='line'>1385</span> *
1393
+ <span class='line'>1386</span> */</span><span class="WHIT">
1394
+ <span class='line'>1387</span> </span><span class="WHIT"> </span><span class="NAME">stopAzimuth</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1395
+ <span class='line'>1388</span> </span><span class="WHIT"> </span><span class="NAME">clearTimeout</span><span class="PUNC">(</span><span class="NAME">this.timeoutAzimuth</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1396
+ <span class='line'>1389</span> </span><span class="WHIT"> </span><span class="NAME">this.timeoutAzimuth</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
1397
+ <span class='line'>1390</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1398
+ <span class='line'>1391</span>
1399
+ <span class='line'>1392</span> </span><span class="WHIT"> </span><span class="COMM">/**
1400
+ <span class='line'>1393</span> * Check if vertical dragging is enabled and which action is needed.
1401
+ <span class='line'>1394</span> * Default is shiftKey.
1402
+ <span class='line'>1395</span> *
1403
+ <span class='line'>1396</span> * @returns Boolean
1404
+ <span class='line'>1397</span> * @private
1405
+ <span class='line'>1398</span> */</span><span class="WHIT">
1406
+ <span class='line'>1399</span> </span><span class="WHIT"> </span><span class="NAME">isVerticalDrag</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1407
+ <span class='line'>1400</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.board</span><span class="PUNC">,</span><span class="WHIT">
1408
+ <span class='line'>1401</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">;</span><span class="WHIT">
1409
+ <span class='line'>1402</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.verticaldrag.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1410
+ <span class='line'>1403</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1411
+ <span class='line'>1404</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1412
+ <span class='line'>1405</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'_'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.verticaldrag.key</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'Key'</span><span class="PUNC">;</span><span class="WHIT">
1413
+ <span class='line'>1406</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1414
+ <span class='line'>1407</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1415
+ <span class='line'>1408</span>
1416
+ <span class='line'>1409</span> </span><span class="WHIT"> </span><span class="COMM">/**
1417
+ <span class='line'>1410</span> * Sets camera view to the given values.
1418
+ <span class='line'>1411</span> *
1419
+ <span class='line'>1412</span> * @param {Number} az Value of azimuth.
1420
+ <span class='line'>1413</span> * @param {Number} el Value of elevation.
1421
+ <span class='line'>1414</span> * @param {Number} [r] Value of radius.
1422
+ <span class='line'>1415</span> *
1423
+ <span class='line'>1416</span> * @returns {Object} Reference to the view.
1424
+ <span class='line'>1417</span> */</span><span class="WHIT">
1425
+ <span class='line'>1418</span> </span><span class="WHIT"> </span><span class="NAME">setView</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">az</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1426
+ <span class='line'>1419</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.r</span><span class="PUNC">;</span><span class="WHIT">
1427
+ <span class='line'>1420</span>
1428
+ <span class='line'>1421</span> </span><span class="WHIT"> </span><span class="NAME">this.az_slide.setValue</span><span class="PUNC">(</span><span class="NAME">az</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1429
+ <span class='line'>1422</span> </span><span class="WHIT"> </span><span class="NAME">this.el_slide.setValue</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1430
+ <span class='line'>1423</span> </span><span class="WHIT"> </span><span class="NAME">this.r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
1431
+ <span class='line'>1424</span> </span><span class="WHIT"> </span><span class="NAME">this.board.update</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1432
+ <span class='line'>1425</span>
1433
+ <span class='line'>1426</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1434
+ <span class='line'>1427</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1435
+ <span class='line'>1428</span>
1436
+ <span class='line'>1429</span> </span><span class="WHIT"> </span><span class="COMM">/**
1437
+ <span class='line'>1430</span> * Changes view to the next view stored in the attribute `values`.
1438
+ <span class='line'>1431</span> *
1439
+ <span class='line'>1432</span> * @see View3D#values
1440
+ <span class='line'>1433</span> *
1441
+ <span class='line'>1434</span> * @returns {Object} Reference to the view.
1442
+ <span class='line'>1435</span> */</span><span class="WHIT">
1443
+ <span class='line'>1436</span> </span><span class="WHIT"> </span><span class="NAME">nextView</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1444
+ <span class='line'>1437</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">views</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.values</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1445
+ <span class='line'>1438</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.visProp._currentview</span><span class="PUNC">;</span><span class="WHIT">
1446
+ <span class='line'>1439</span>
1447
+ <span class='line'>1440</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="PUNC">;</span><span class="WHIT">
1448
+ <span class='line'>1441</span> </span><span class="WHIT"> </span><span class="NAME">this.setCurrentView</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1449
+ <span class='line'>1442</span>
1450
+ <span class='line'>1443</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1451
+ <span class='line'>1444</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1452
+ <span class='line'>1445</span>
1453
+ <span class='line'>1446</span> </span><span class="WHIT"> </span><span class="COMM">/**
1454
+ <span class='line'>1447</span> * Changes view to the previous view stored in the attribute `values`.
1455
+ <span class='line'>1448</span> *
1456
+ <span class='line'>1449</span> * @see View3D#values
1457
+ <span class='line'>1450</span> *
1458
+ <span class='line'>1451</span> * @returns {Object} Reference to the view.
1459
+ <span class='line'>1452</span> */</span><span class="WHIT">
1460
+ <span class='line'>1453</span> </span><span class="WHIT"> </span><span class="NAME">previousView</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1461
+ <span class='line'>1454</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">views</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.values</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1462
+ <span class='line'>1455</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.visProp._currentview</span><span class="PUNC">;</span><span class="WHIT">
1463
+ <span class='line'>1456</span>
1464
+ <span class='line'>1457</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="PUNC">;</span><span class="WHIT">
1465
+ <span class='line'>1458</span> </span><span class="WHIT"> </span><span class="NAME">this.setCurrentView</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1466
+ <span class='line'>1459</span>
1467
+ <span class='line'>1460</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1468
+ <span class='line'>1461</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1469
+ <span class='line'>1462</span>
1470
+ <span class='line'>1463</span> </span><span class="WHIT"> </span><span class="COMM">/**
1471
+ <span class='line'>1464</span> * Changes view to the determined view stored in the attribute `values`.
1472
+ <span class='line'>1465</span> *
1473
+ <span class='line'>1466</span> * @see View3D#values
1474
+ <span class='line'>1467</span> *
1475
+ <span class='line'>1468</span> * @param {Number} n Index of view in attribute `values`.
1476
+ <span class='line'>1469</span> * @returns {Object} Reference to the view.
1477
+ <span class='line'>1470</span> */</span><span class="WHIT">
1478
+ <span class='line'>1471</span> </span><span class="WHIT"> </span><span class="NAME">setCurrentView</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1479
+ <span class='line'>1472</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">views</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.values</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1480
+ <span class='line'>1473</span>
1481
+ <span class='line'>1474</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1482
+ <span class='line'>1475</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NAME">views.length</span><span class="PUNC">;</span><span class="WHIT">
1483
+ <span class='line'>1476</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1484
+ <span class='line'>1477</span>
1485
+ <span class='line'>1478</span> </span><span class="WHIT"> </span><span class="NAME">this.setView</span><span class="PUNC">(</span><span class="NAME">views</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">views</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">views</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1486
+ <span class='line'>1479</span> </span><span class="WHIT"> </span><span class="NAME">this.visProp._currentview</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
1487
+ <span class='line'>1480</span>
1488
+ <span class='line'>1481</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1489
+ <span class='line'>1482</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1490
+ <span class='line'>1483</span>
1491
+ <span class='line'>1484</span> </span><span class="WHIT"> </span><span class="COMM">/**
1492
+ <span class='line'>1485</span> * Controls the navigation in az direction using either the keyboard or a pointer.
1493
+ <span class='line'>1486</span> *
1494
+ <span class='line'>1487</span> * @private
1495
+ <span class='line'>1488</span> *
1496
+ <span class='line'>1489</span> * @param {event} evt either the keydown or the pointer event
1497
+ <span class='line'>1490</span> * @returns view
1498
+ <span class='line'>1491</span> */</span><span class="WHIT">
1499
+ <span class='line'>1492</span> </span><span class="WHIT"> </span><span class="NAME">_azEventHandler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1500
+ <span class='line'>1493</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide._smax</span><span class="PUNC">,</span><span class="WHIT">
1501
+ <span class='line'>1494</span> </span><span class="WHIT"> </span><span class="NAME">smin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide._smin</span><span class="PUNC">,</span><span class="WHIT">
1502
+ <span class='line'>1495</span> </span><span class="WHIT"> </span><span class="NAME">speed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">smax</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">this.board.canvasWidth</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.speed</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1503
+ <span class='line'>1496</span> </span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">evt.movementX</span><span class="PUNC">,</span><span class="WHIT">
1504
+ <span class='line'>1497</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1505
+ <span class='line'>1498</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.el_slide.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1506
+ <span class='line'>1499</span>
1507
+ <span class='line'>1500</span> </span><span class="WHIT"> </span><span class="COMM">// Doesn't allow navigation if another moving event is triggered</span><span class="WHIT">
1508
+ <span class='line'>1501</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.board.mode</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">this.board.BOARD_MODE_DRAG</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1509
+ <span class='line'>1502</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1510
+ <span class='line'>1503</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1511
+ <span class='line'>1504</span>
1512
+ <span class='line'>1505</span> </span><span class="WHIT"> </span><span class="COMM">// Calculate new az value if keyboard events are triggered</span><span class="WHIT">
1513
+ <span class='line'>1506</span> </span><span class="WHIT"> </span><span class="COMM">// Plus if right-button, minus if left-button</span><span class="WHIT">
1514
+ <span class='line'>1507</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.keyboard.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1515
+ <span class='line'>1508</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowRight'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1516
+ <span class='line'>1509</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.keyboard.step</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">180</span><span class="PUNC">;</span><span class="WHIT">
1517
+ <span class='line'>1510</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowLeft'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1518
+ <span class='line'>1511</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.keyboard.step</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">180</span><span class="PUNC">;</span><span class="WHIT">
1519
+ <span class='line'>1512</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1520
+ <span class='line'>1513</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1521
+ <span class='line'>1514</span>
1522
+ <span class='line'>1515</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1523
+ <span class='line'>1516</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">speed</span><span class="PUNC">;</span><span class="WHIT">
1524
+ <span class='line'>1517</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1525
+ <span class='line'>1518</span>
1526
+ <span class='line'>1519</span> </span><span class="WHIT"> </span><span class="COMM">// Project the calculated az value to a usable value in the interval [smin,smax]</span><span class="WHIT">
1527
+ <span class='line'>1520</span> </span><span class="WHIT"> </span><span class="COMM">// Use modulo if continuous is true</span><span class="WHIT">
1528
+ <span class='line'>1521</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.continuous</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1529
+ <span class='line'>1522</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.wrap</span><span class="PUNC">(</span><span class="NAME">az</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1530
+ <span class='line'>1523</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1531
+ <span class='line'>1524</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1532
+ <span class='line'>1525</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.min</span><span class="PUNC">(</span><span class="NAME">smax</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">az</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1533
+ <span class='line'>1526</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1534
+ <span class='line'>1527</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.max</span><span class="PUNC">(</span><span class="NAME">smin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">az</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1535
+ <span class='line'>1528</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1536
+ <span class='line'>1529</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1537
+ <span class='line'>1530</span>
1538
+ <span class='line'>1531</span> </span><span class="WHIT"> </span><span class="NAME">this.setView</span><span class="PUNC">(</span><span class="NAME">az</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1539
+ <span class='line'>1532</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1540
+ <span class='line'>1533</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1541
+ <span class='line'>1534</span>
1542
+ <span class='line'>1535</span> </span><span class="WHIT"> </span><span class="COMM">/**
1543
+ <span class='line'>1536</span> * Controls the navigation in el direction using either the keyboard or a pointer.
1544
+ <span class='line'>1537</span> *
1545
+ <span class='line'>1538</span> * @private
1546
+ <span class='line'>1539</span> *
1547
+ <span class='line'>1540</span> * @param {event} evt either the keydown or the pointer event
1548
+ <span class='line'>1541</span> * @returns view
1549
+ <span class='line'>1542</span> */</span><span class="WHIT">
1550
+ <span class='line'>1543</span> </span><span class="WHIT"> </span><span class="NAME">_elEventHandler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1551
+ <span class='line'>1544</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.el_slide._smax</span><span class="PUNC">,</span><span class="WHIT">
1552
+ <span class='line'>1545</span> </span><span class="WHIT"> </span><span class="NAME">smin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.el_slide._smin</span><span class="PUNC">,</span><span class="WHIT">
1553
+ <span class='line'>1546</span> </span><span class="WHIT"> </span><span class="NAME">speed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">smax</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">this.board.canvasHeight</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.speed</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1554
+ <span class='line'>1547</span> </span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">evt.movementY</span><span class="PUNC">,</span><span class="WHIT">
1555
+ <span class='line'>1548</span> </span><span class="WHIT"> </span><span class="NAME">az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.az_slide.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1556
+ <span class='line'>1549</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.el_slide.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1557
+ <span class='line'>1550</span>
1558
+ <span class='line'>1551</span> </span><span class="WHIT"> </span><span class="COMM">// Doesn't allow navigation if another moving event is triggered</span><span class="WHIT">
1559
+ <span class='line'>1552</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.board.mode</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">this.board.BOARD_MODE_DRAG</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1560
+ <span class='line'>1553</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1561
+ <span class='line'>1554</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1562
+ <span class='line'>1555</span>
1563
+ <span class='line'>1556</span> </span><span class="WHIT"> </span><span class="COMM">// Calculate new az value if keyboard events are triggered</span><span class="WHIT">
1564
+ <span class='line'>1557</span> </span><span class="WHIT"> </span><span class="COMM">// Plus if down-button, minus if up-button</span><span class="WHIT">
1565
+ <span class='line'>1558</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.keyboard.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1566
+ <span class='line'>1559</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowUp'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1567
+ <span class='line'>1560</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.keyboard.step</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">180</span><span class="PUNC">;</span><span class="WHIT">
1568
+ <span class='line'>1561</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowDown'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1569
+ <span class='line'>1562</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.keyboard.step</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">180</span><span class="PUNC">;</span><span class="WHIT">
1570
+ <span class='line'>1563</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1571
+ <span class='line'>1564</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1572
+ <span class='line'>1565</span>
1573
+ <span class='line'>1566</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1574
+ <span class='line'>1567</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">speed</span><span class="PUNC">;</span><span class="WHIT">
1575
+ <span class='line'>1568</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1576
+ <span class='line'>1569</span>
1577
+ <span class='line'>1570</span> </span><span class="WHIT"> </span><span class="COMM">// Project the calculated el value to a usable value in the interval [smin,smax]</span><span class="WHIT">
1578
+ <span class='line'>1571</span> </span><span class="WHIT"> </span><span class="COMM">// Use modulo if continuous is true and the trackball is disabled</span><span class="WHIT">
1579
+ <span class='line'>1572</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.continuous</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.trackballEnabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1580
+ <span class='line'>1573</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.wrap</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1581
+ <span class='line'>1574</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1582
+ <span class='line'>1575</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1583
+ <span class='line'>1576</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.min</span><span class="PUNC">(</span><span class="NAME">smax</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1584
+ <span class='line'>1577</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1585
+ <span class='line'>1578</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.max</span><span class="PUNC">(</span><span class="NAME">smin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1586
+ <span class='line'>1579</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1587
+ <span class='line'>1580</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1588
+ <span class='line'>1581</span>
1589
+ <span class='line'>1582</span> </span><span class="WHIT"> </span><span class="NAME">this.setView</span><span class="PUNC">(</span><span class="NAME">az</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1590
+ <span class='line'>1583</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1591
+ <span class='line'>1584</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1592
+ <span class='line'>1585</span>
1593
+ <span class='line'>1586</span> </span><span class="WHIT"> </span><span class="COMM">/**
1594
+ <span class='line'>1587</span> * Controls the navigation in bank direction using either the keyboard or a pointer.
1595
+ <span class='line'>1588</span> *
1596
+ <span class='line'>1589</span> * @private
1597
+ <span class='line'>1590</span> *
1598
+ <span class='line'>1591</span> * @param {event} evt either the keydown or the pointer event
1599
+ <span class='line'>1592</span> * @returns view
1600
+ <span class='line'>1593</span> */</span><span class="WHIT">
1601
+ <span class='line'>1594</span> </span><span class="WHIT"> </span><span class="NAME">_bankEventHandler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1602
+ <span class='line'>1595</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.bank_slide._smax</span><span class="PUNC">,</span><span class="WHIT">
1603
+ <span class='line'>1596</span> </span><span class="WHIT"> </span><span class="NAME">smin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.bank_slide._smin</span><span class="PUNC">,</span><span class="WHIT">
1604
+ <span class='line'>1597</span> </span><span class="WHIT"> </span><span class="NAME">step</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">speed</span><span class="PUNC">,</span><span class="WHIT">
1605
+ <span class='line'>1598</span> </span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">evt.deltaY</span><span class="PUNC">,</span><span class="WHIT">
1606
+ <span class='line'>1599</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.bank_slide.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1607
+ <span class='line'>1600</span>
1608
+ <span class='line'>1601</span> </span><span class="WHIT"> </span><span class="COMM">// Doesn't allow navigation if another moving event is triggered</span><span class="WHIT">
1609
+ <span class='line'>1602</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.board.mode</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">this.board.BOARD_MODE_DRAG</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1610
+ <span class='line'>1603</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1611
+ <span class='line'>1604</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1612
+ <span class='line'>1605</span>
1613
+ <span class='line'>1606</span> </span><span class="WHIT"> </span><span class="COMM">// Calculate new bank value if keyboard events are triggered</span><span class="WHIT">
1614
+ <span class='line'>1607</span> </span><span class="WHIT"> </span><span class="COMM">// Plus if down-button, minus if up-button</span><span class="WHIT">
1615
+ <span class='line'>1608</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.keyboard.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1616
+ <span class='line'>1609</span> </span><span class="WHIT"> </span><span class="NAME">step</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.keyboard.step</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Math.PI</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">180</span><span class="PUNC">;</span><span class="WHIT">
1617
+ <span class='line'>1610</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'.'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'&lt;'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1618
+ <span class='line'>1611</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">step</span><span class="PUNC">;</span><span class="WHIT">
1619
+ <span class='line'>1612</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">','</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1620
+ <span class='line'>1613</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">step</span><span class="PUNC">;</span><span class="WHIT">
1621
+ <span class='line'>1614</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1622
+ <span class='line'>1615</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1623
+ <span class='line'>1616</span>
1624
+ <span class='line'>1617</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.key</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1625
+ <span class='line'>1618</span> </span><span class="WHIT"> </span><span class="NAME">speed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">smax</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">this.board.canvasHeight</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.speed</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1626
+ <span class='line'>1619</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">delta</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">speed</span><span class="PUNC">;</span><span class="WHIT">
1627
+ <span class='line'>1620</span>
1628
+ <span class='line'>1621</span> </span><span class="WHIT"> </span><span class="COMM">// prevent the pointer wheel from scrolling the page</span><span class="WHIT">
1629
+ <span class='line'>1622</span> </span><span class="WHIT"> </span><span class="NAME">evt.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1630
1630
  <span class='line'>1623</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1631
1631
  <span class='line'>1624</span>
1632
- <span class='line'>1625</span> </span><span class="WHIT"> </span><span class="NAME">this.bank_slide.setValue</span><span class="PUNC">(</span><span class="NAME">bank</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1633
- <span class='line'>1626</span> </span><span class="WHIT"> </span><span class="NAME">this.board.update</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1634
- <span class='line'>1627</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1635
- <span class='line'>1628</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1636
- <span class='line'>1629</span>
1637
- <span class='line'>1630</span> </span><span class="WHIT"> </span><span class="COMM">/**
1638
- <span class='line'>1631</span> * Controls the navigation using either virtual trackball.
1639
- <span class='line'>1632</span> *
1640
- <span class='line'>1633</span> * @private
1641
- <span class='line'>1634</span> *
1642
- <span class='line'>1635</span> * @param {event} evt either the keydown or the pointer event
1643
- <span class='line'>1636</span> * @returns view
1644
- <span class='line'>1637</span> */</span><span class="WHIT">
1645
- <span class='line'>1638</span> </span><span class="WHIT"> </span><span class="NAME">_trackballHandler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1646
- <span class='line'>1639</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.board.getMousePosition</span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1647
- <span class='line'>1640</span> </span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">center</span><span class="PUNC">;</span><span class="WHIT">
1648
- <span class='line'>1641</span>
1649
- <span class='line'>1642</span> </span><span class="WHIT"> </span><span class="NAME">center</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Coords</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_USER</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">this.llftCorner</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.size</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.llftCorner</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.size</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1650
- <span class='line'>1643</span> </span><span class="WHIT"> </span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">center.scrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1651
- <span class='line'>1644</span> </span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">center.scrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1652
- <span class='line'>1645</span> </span><span class="WHIT"> </span><span class="NAME">this._trackball</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1653
- <span class='line'>1646</span> </span><span class="WHIT"> </span><span class="NAME">dx</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">evt.movementX</span><span class="PUNC">,</span><span class="WHIT">
1654
- <span class='line'>1647</span> </span><span class="WHIT"> </span><span class="NAME">dy</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">evt.movementY</span><span class="PUNC">,</span><span class="WHIT">
1655
- <span class='line'>1648</span> </span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT">
1656
- <span class='line'>1649</span> </span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">y</span><span class="WHIT">
1657
- <span class='line'>1650</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1658
- <span class='line'>1651</span> </span><span class="WHIT"> </span><span class="NAME">this.board.update</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1659
- <span class='line'>1652</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1660
- <span class='line'>1653</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1661
- <span class='line'>1654</span>
1662
- <span class='line'>1655</span> </span><span class="WHIT"> </span><span class="COMM">/**
1663
- <span class='line'>1656</span> * Event handler for pointer down event. Triggers handling of all 3D navigation.
1664
- <span class='line'>1657</span> *
1665
- <span class='line'>1658</span> * @private
1666
- <span class='line'>1659</span> * @param {event} evt
1667
- <span class='line'>1660</span> * @returns view
1668
- <span class='line'>1661</span> */</span><span class="WHIT">
1669
- <span class='line'>1662</span> </span><span class="WHIT"> </span><span class="NAME">pointerDownHandler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1670
- <span class='line'>1663</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">target</span><span class="PUNC">;</span><span class="WHIT">
1671
- <span class='line'>1664</span>
1672
- <span class='line'>1665</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveAz</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1673
- <span class='line'>1666</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveEl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1674
- <span class='line'>1667</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveBank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1675
- <span class='line'>1668</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveTrackball</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1676
- <span class='line'>1669</span>
1677
- <span class='line'>1670</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.board.mode</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">this.board.BOARD_MODE_NONE</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1678
- <span class='line'>1671</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
1679
- <span class='line'>1672</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1632
+ <span class='line'>1625</span> </span><span class="WHIT"> </span><span class="COMM">// Project the calculated bank value to a usable value in the interval [smin,smax]</span><span class="WHIT">
1633
+ <span class='line'>1626</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.continuous</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1634
+ <span class='line'>1627</span> </span><span class="WHIT"> </span><span class="COMM">// in continuous mode, wrap value around slider range</span><span class="WHIT">
1635
+ <span class='line'>1628</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.wrap</span><span class="PUNC">(</span><span class="NAME">bank</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1636
+ <span class='line'>1629</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1637
+ <span class='line'>1630</span> </span><span class="WHIT"> </span><span class="COMM">// in non-continuous mode, clamp value to slider range</span><span class="WHIT">
1638
+ <span class='line'>1631</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.clamp</span><span class="PUNC">(</span><span class="NAME">bank</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smin</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">smax</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1639
+ <span class='line'>1632</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1640
+ <span class='line'>1633</span>
1641
+ <span class='line'>1634</span> </span><span class="WHIT"> </span><span class="NAME">this.bank_slide.setValue</span><span class="PUNC">(</span><span class="NAME">bank</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1642
+ <span class='line'>1635</span> </span><span class="WHIT"> </span><span class="NAME">this.board.update</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1643
+ <span class='line'>1636</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1644
+ <span class='line'>1637</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1645
+ <span class='line'>1638</span>
1646
+ <span class='line'>1639</span> </span><span class="WHIT"> </span><span class="COMM">/**
1647
+ <span class='line'>1640</span> * Controls the navigation using either virtual trackball.
1648
+ <span class='line'>1641</span> *
1649
+ <span class='line'>1642</span> * @private
1650
+ <span class='line'>1643</span> *
1651
+ <span class='line'>1644</span> * @param {event} evt either the keydown or the pointer event
1652
+ <span class='line'>1645</span> * @returns view
1653
+ <span class='line'>1646</span> */</span><span class="WHIT">
1654
+ <span class='line'>1647</span> </span><span class="WHIT"> </span><span class="NAME">_trackballHandler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1655
+ <span class='line'>1648</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.board.getMousePosition</span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1656
+ <span class='line'>1649</span> </span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">center</span><span class="PUNC">;</span><span class="WHIT">
1657
+ <span class='line'>1650</span>
1658
+ <span class='line'>1651</span> </span><span class="WHIT"> </span><span class="NAME">center</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Coords</span><span class="PUNC">(</span><span class="NAME">Const.COORDS_BY_USER</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">this.llftCorner</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.size</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.llftCorner</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.size</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.board</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1659
+ <span class='line'>1652</span> </span><span class="WHIT"> </span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">center.scrCoords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1660
+ <span class='line'>1653</span> </span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">center.scrCoords</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1661
+ <span class='line'>1654</span> </span><span class="WHIT"> </span><span class="NAME">this._trackball</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1662
+ <span class='line'>1655</span> </span><span class="WHIT"> </span><span class="NAME">dx</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">evt.movementX</span><span class="PUNC">,</span><span class="WHIT">
1663
+ <span class='line'>1656</span> </span><span class="WHIT"> </span><span class="NAME">dy</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">evt.movementY</span><span class="PUNC">,</span><span class="WHIT">
1664
+ <span class='line'>1657</span> </span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT">
1665
+ <span class='line'>1658</span> </span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">y</span><span class="WHIT">
1666
+ <span class='line'>1659</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1667
+ <span class='line'>1660</span> </span><span class="WHIT"> </span><span class="NAME">this.board.update</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1668
+ <span class='line'>1661</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
1669
+ <span class='line'>1662</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1670
+ <span class='line'>1663</span>
1671
+ <span class='line'>1664</span> </span><span class="WHIT"> </span><span class="COMM">/**
1672
+ <span class='line'>1665</span> * Event handler for pointer down event. Triggers handling of all 3D navigation.
1673
+ <span class='line'>1666</span> *
1674
+ <span class='line'>1667</span> * @private
1675
+ <span class='line'>1668</span> * @param {event} evt
1676
+ <span class='line'>1669</span> * @returns view
1677
+ <span class='line'>1670</span> */</span><span class="WHIT">
1678
+ <span class='line'>1671</span> </span><span class="WHIT"> </span><span class="NAME">pointerDownHandler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1679
+ <span class='line'>1672</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">target</span><span class="PUNC">;</span><span class="WHIT">
1680
1680
  <span class='line'>1673</span>
1681
- <span class='line'>1674</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.trackball.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1682
- <span class='line'>1675</span> </span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.trackball.button</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1683
- <span class='line'>1676</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.trackball.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1684
- <span class='line'>1677</span>
1685
- <span class='line'>1678</span> </span><span class="WHIT"> </span><span class="COMM">// Move events for virtual trackball</span><span class="WHIT">
1686
- <span class='line'>1679</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1687
- <span class='line'>1680</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">evt.button</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1688
- <span class='line'>1681</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.ctrlKey</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
1689
- <span class='line'>1682</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1690
- <span class='line'>1683</span> </span><span class="WHIT"> </span><span class="COMM">// If outside is true then the event listener is bound to the document, otherwise to the div</span><span class="WHIT">
1691
- <span class='line'>1684</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.trackball.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1692
- <span class='line'>1685</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointermove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._trackballHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1693
- <span class='line'>1686</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveTrackball</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1694
- <span class='line'>1687</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1695
- <span class='line'>1688</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1696
- <span class='line'>1689</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1697
- <span class='line'>1690</span> </span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.button</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1698
- <span class='line'>1691</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1699
- <span class='line'>1692</span>
1700
- <span class='line'>1693</span> </span><span class="WHIT"> </span><span class="COMM">// Move events for azimuth</span><span class="WHIT">
1701
- <span class='line'>1694</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1702
- <span class='line'>1695</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">evt.button</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1703
- <span class='line'>1696</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.ctrlKey</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
1704
- <span class='line'>1697</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1705
- <span class='line'>1698</span> </span><span class="WHIT"> </span><span class="COMM">// If outside is true then the event listener is bound to the document, otherwise to the div</span><span class="WHIT">
1706
- <span class='line'>1699</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1707
- <span class='line'>1700</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointermove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._azEventHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1708
- <span class='line'>1701</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveAz</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1709
- <span class='line'>1702</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1710
- <span class='line'>1703</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1711
- <span class='line'>1704</span>
1712
- <span class='line'>1705</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1713
- <span class='line'>1706</span> </span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.button</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1714
- <span class='line'>1707</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1715
- <span class='line'>1708</span>
1716
- <span class='line'>1709</span> </span><span class="WHIT"> </span><span class="COMM">// Events for elevation</span><span class="WHIT">
1717
- <span class='line'>1710</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1718
- <span class='line'>1711</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">evt.button</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1719
- <span class='line'>1712</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.ctrlKey</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
1720
- <span class='line'>1713</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1721
- <span class='line'>1714</span> </span><span class="WHIT"> </span><span class="COMM">// If outside is true then the event listener is bound to the document, otherwise to the div</span><span class="WHIT">
1722
- <span class='line'>1715</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1723
- <span class='line'>1716</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointermove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._elEventHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1724
- <span class='line'>1717</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveEl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1725
- <span class='line'>1718</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1726
- <span class='line'>1719</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1727
- <span class='line'>1720</span>
1728
- <span class='line'>1721</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1729
- <span class='line'>1722</span> </span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.button</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1730
- <span class='line'>1723</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1731
- <span class='line'>1724</span>
1732
- <span class='line'>1725</span> </span><span class="WHIT"> </span><span class="COMM">// Events for bank</span><span class="WHIT">
1733
- <span class='line'>1726</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1734
- <span class='line'>1727</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">evt.button</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1735
- <span class='line'>1728</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.ctrlKey</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
1736
- <span class='line'>1729</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1737
- <span class='line'>1730</span> </span><span class="WHIT"> </span><span class="COMM">// If `outside` is true, we bind the event listener to</span><span class="WHIT">
1738
- <span class='line'>1731</span> </span><span class="WHIT"> </span><span class="COMM">// the document. otherwise, we bind it to the div. we</span><span class="WHIT">
1739
- <span class='line'>1732</span> </span><span class="WHIT"> </span><span class="COMM">// register the event listener as active so it can</span><span class="WHIT">
1740
- <span class='line'>1733</span> </span><span class="WHIT"> </span><span class="COMM">// prevent the pointer wheel from scrolling the page</span><span class="WHIT">
1741
- <span class='line'>1734</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1742
- <span class='line'>1735</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'wheel'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._bankEventHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">passive</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1743
- <span class='line'>1736</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveBank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1744
- <span class='line'>1737</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1745
- <span class='line'>1738</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1746
- <span class='line'>1739</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1747
- <span class='line'>1740</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointerup'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.pointerUpHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1748
- <span class='line'>1741</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1749
- <span class='line'>1742</span>
1750
- <span class='line'>1743</span> </span><span class="WHIT"> </span><span class="COMM">/**
1751
- <span class='line'>1744</span> * Event handler for pointer up event. Triggers handling of all 3D navigation.
1752
- <span class='line'>1745</span> *
1753
- <span class='line'>1746</span> * @private
1754
- <span class='line'>1747</span> * @param {event} evt
1755
- <span class='line'>1748</span> * @returns view
1756
- <span class='line'>1749</span> */</span><span class="WHIT">
1757
- <span class='line'>1750</span> </span><span class="WHIT"> </span><span class="NAME">pointerUpHandler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1758
- <span class='line'>1751</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">target</span><span class="PUNC">;</span><span class="WHIT">
1759
- <span class='line'>1752</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._hasMoveAz</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1760
- <span class='line'>1753</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1761
- <span class='line'>1754</span> </span><span class="WHIT"> </span><span class="NAME">Env.removeEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointermove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._azEventHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1762
- <span class='line'>1755</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveAz</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1763
- <span class='line'>1756</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1764
- <span class='line'>1757</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._hasMoveEl</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1765
- <span class='line'>1758</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1766
- <span class='line'>1759</span> </span><span class="WHIT"> </span><span class="NAME">Env.removeEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointermove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._elEventHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1767
- <span class='line'>1760</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveEl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1768
- <span class='line'>1761</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1769
- <span class='line'>1762</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._hasMoveBank</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1770
- <span class='line'>1763</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1771
- <span class='line'>1764</span> </span><span class="WHIT"> </span><span class="NAME">Env.removeEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'wheel'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._bankEventHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1772
- <span class='line'>1765</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveBank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1773
- <span class='line'>1766</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1774
- <span class='line'>1767</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._hasMoveTrackball</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1775
- <span class='line'>1768</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1776
- <span class='line'>1769</span> </span><span class="WHIT"> </span><span class="NAME">Env.removeEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointermove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._trackballHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1777
- <span class='line'>1770</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveTrackball</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1778
- <span class='line'>1771</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1779
- <span class='line'>1772</span> </span><span class="WHIT"> </span><span class="NAME">Env.removeEvent</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointerup'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.pointerUpHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1780
- <span class='line'>1773</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1781
- <span class='line'>1774</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1782
- <span class='line'>1775</span>
1783
- <span class='line'>1776</span> </span><span class="COMM">/**
1784
- <span class='line'>1777</span> * @class This element creates a 3D view.
1785
- <span class='line'>1778</span> * @pseudo
1786
- <span class='line'>1779</span> * @description A View3D element provides the container and the methods to create and display 3D elements.
1787
- <span class='line'>1780</span> * It is contained in a JSXGraph board.
1788
- <span class='line'>1781</span> * &lt;p>
1789
- <span class='line'>1782</span> * It is advisable to disable panning of the board by setting the board attribute "pan":
1790
- <span class='line'>1783</span> * &lt;pre>
1791
- <span class='line'>1784</span> * pan: {anabled: fasle}
1792
- <span class='line'>1785</span> * &lt;/pre>
1793
- <span class='line'>1786</span> * Otherwise users will not be able to rotate the scene with their fingers on a touch device.
1794
- <span class='line'>1787</span> *
1795
- <span class='line'>1788</span> * @name View3D
1796
- <span class='line'>1789</span> * @augments JXG.View3D
1797
- <span class='line'>1790</span> * @constructor
1798
- <span class='line'>1791</span> * @type Object
1799
- <span class='line'>1792</span> * @throws {Exception} If the element cannot be constructed with the given parent objects an exception is thrown.
1800
- <span class='line'>1793</span> * @param {Array_Array_Array} lower,dim,cube Here, lower is an array of the form [x, y] and
1801
- <span class='line'>1794</span> * dim is an array of the form [w, h].
1802
- <span class='line'>1795</span> * The arrays [x, y] and [w, h] define the 2D frame into which the 3D cube is
1803
- <span class='line'>1796</span> * (roughly) projected. If the view's azimuth=0 and elevation=0, the 3D view will cover a rectangle with lower left corner
1804
- <span class='line'>1797</span> * [x,y] and side lengths [w, h] of the board.
1805
- <span class='line'>1798</span> * The array 'cube' is of the form [[x1, x2], [y1, y2], [z1, z2]]
1806
- <span class='line'>1799</span> * which determines the coordinate ranges of the 3D cube.
1807
- <span class='line'>1800</span> *
1808
- <span class='line'>1801</span> * @example
1809
- <span class='line'>1802</span> * var bound = [-4, 6];
1810
- <span class='line'>1803</span> * var view = board.create('view3d',
1811
- <span class='line'>1804</span> * [[-4, -3], [8, 8],
1812
- <span class='line'>1805</span> * [bound, bound, bound]],
1813
- <span class='line'>1806</span> * {
1814
- <span class='line'>1807</span> * projection: 'parallel',
1815
- <span class='line'>1808</span> * trackball: {enabled:true},
1816
- <span class='line'>1809</span> * });
1817
- <span class='line'>1810</span> *
1818
- <span class='line'>1811</span> * var curve = view.create('curve3d', [
1819
- <span class='line'>1812</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1820
- <span class='line'>1813</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1821
- <span class='line'>1814</span> * (t) => Math.sin(3 * t),
1822
- <span class='line'>1815</span> * [-Math.PI, Math.PI]
1823
- <span class='line'>1816</span> * ], { strokeWidth: 4 });
1824
- <span class='line'>1817</span> *
1825
- <span class='line'>1818</span> * &lt;/pre>&lt;div id="JXG9b327a6c-1bd6-4e40-a502-59d024dbfd1b" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
1826
- <span class='line'>1819</span> * &lt;script type="text/javascript">
1827
- <span class='line'>1820</span> * (function() {
1828
- <span class='line'>1821</span> * var board = JXG.JSXGraph.initBoard('JXG9b327a6c-1bd6-4e40-a502-59d024dbfd1b',
1829
- <span class='line'>1822</span> * {boundingbox: [-8, 8, 8,-8], pan: {enabled: false}, axis: false, showcopyright: false, shownavigation: false});
1830
- <span class='line'>1823</span> * var bound = [-4, 6];
1831
- <span class='line'>1824</span> * var view = board.create('view3d',
1832
- <span class='line'>1825</span> * [[-4, -3], [8, 8],
1833
- <span class='line'>1826</span> * [bound, bound, bound]],
1834
- <span class='line'>1827</span> * {
1835
- <span class='line'>1828</span> * projection: 'parallel',
1836
- <span class='line'>1829</span> * trackball: {enabled:true},
1837
- <span class='line'>1830</span> * });
1838
- <span class='line'>1831</span> *
1839
- <span class='line'>1832</span> * var curve = view.create('curve3d', [
1840
- <span class='line'>1833</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1841
- <span class='line'>1834</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1842
- <span class='line'>1835</span> * (t) => Math.sin(3 * t),
1843
- <span class='line'>1836</span> * [-Math.PI, Math.PI]
1844
- <span class='line'>1837</span> * ], { strokeWidth: 4 });
1845
- <span class='line'>1838</span> *
1846
- <span class='line'>1839</span> * })();
1681
+ <span class='line'>1674</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveAz</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1682
+ <span class='line'>1675</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveEl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1683
+ <span class='line'>1676</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveBank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1684
+ <span class='line'>1677</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveTrackball</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1685
+ <span class='line'>1678</span>
1686
+ <span class='line'>1679</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.board.mode</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">this.board.BOARD_MODE_NONE</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1687
+ <span class='line'>1680</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
1688
+ <span class='line'>1681</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1689
+ <span class='line'>1682</span>
1690
+ <span class='line'>1683</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.trackball.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1691
+ <span class='line'>1684</span> </span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.trackball.button</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1692
+ <span class='line'>1685</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.trackball.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1693
+ <span class='line'>1686</span>
1694
+ <span class='line'>1687</span> </span><span class="WHIT"> </span><span class="COMM">// Move events for virtual trackball</span><span class="WHIT">
1695
+ <span class='line'>1688</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1696
+ <span class='line'>1689</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">evt.button</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1697
+ <span class='line'>1690</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.ctrlKey</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
1698
+ <span class='line'>1691</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1699
+ <span class='line'>1692</span> </span><span class="WHIT"> </span><span class="COMM">// If outside is true then the event listener is bound to the document, otherwise to the div</span><span class="WHIT">
1700
+ <span class='line'>1693</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.trackball.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1701
+ <span class='line'>1694</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointermove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._trackballHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1702
+ <span class='line'>1695</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveTrackball</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1703
+ <span class='line'>1696</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1704
+ <span class='line'>1697</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1705
+ <span class='line'>1698</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1706
+ <span class='line'>1699</span> </span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.button</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1707
+ <span class='line'>1700</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1708
+ <span class='line'>1701</span>
1709
+ <span class='line'>1702</span> </span><span class="WHIT"> </span><span class="COMM">// Move events for azimuth</span><span class="WHIT">
1710
+ <span class='line'>1703</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1711
+ <span class='line'>1704</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">evt.button</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1712
+ <span class='line'>1705</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.ctrlKey</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
1713
+ <span class='line'>1706</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1714
+ <span class='line'>1707</span> </span><span class="WHIT"> </span><span class="COMM">// If outside is true then the event listener is bound to the document, otherwise to the div</span><span class="WHIT">
1715
+ <span class='line'>1708</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1716
+ <span class='line'>1709</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointermove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._azEventHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1717
+ <span class='line'>1710</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveAz</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1718
+ <span class='line'>1711</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1719
+ <span class='line'>1712</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1720
+ <span class='line'>1713</span>
1721
+ <span class='line'>1714</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1722
+ <span class='line'>1715</span> </span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.button</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1723
+ <span class='line'>1716</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1724
+ <span class='line'>1717</span>
1725
+ <span class='line'>1718</span> </span><span class="WHIT"> </span><span class="COMM">// Events for elevation</span><span class="WHIT">
1726
+ <span class='line'>1719</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1727
+ <span class='line'>1720</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">evt.button</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1728
+ <span class='line'>1721</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.ctrlKey</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
1729
+ <span class='line'>1722</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1730
+ <span class='line'>1723</span> </span><span class="WHIT"> </span><span class="COMM">// If outside is true then the event listener is bound to the document, otherwise to the div</span><span class="WHIT">
1731
+ <span class='line'>1724</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1732
+ <span class='line'>1725</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointermove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._elEventHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1733
+ <span class='line'>1726</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveEl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1734
+ <span class='line'>1727</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1735
+ <span class='line'>1728</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1736
+ <span class='line'>1729</span>
1737
+ <span class='line'>1730</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.enabled</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1738
+ <span class='line'>1731</span> </span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.button</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1739
+ <span class='line'>1732</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1740
+ <span class='line'>1733</span>
1741
+ <span class='line'>1734</span> </span><span class="WHIT"> </span><span class="COMM">// Events for bank</span><span class="WHIT">
1742
+ <span class='line'>1735</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1743
+ <span class='line'>1736</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">neededButton</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">evt.button</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1744
+ <span class='line'>1737</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">evt.ctrlKey</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
1745
+ <span class='line'>1738</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1746
+ <span class='line'>1739</span> </span><span class="WHIT"> </span><span class="COMM">// If `outside` is true, we bind the event listener to</span><span class="WHIT">
1747
+ <span class='line'>1740</span> </span><span class="WHIT"> </span><span class="COMM">// the document. otherwise, we bind it to the div. we</span><span class="WHIT">
1748
+ <span class='line'>1741</span> </span><span class="WHIT"> </span><span class="COMM">// register the event listener as active so it can</span><span class="WHIT">
1749
+ <span class='line'>1742</span> </span><span class="WHIT"> </span><span class="COMM">// prevent the pointer wheel from scrolling the page</span><span class="WHIT">
1750
+ <span class='line'>1743</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1751
+ <span class='line'>1744</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'wheel'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._bankEventHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">passive</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1752
+ <span class='line'>1745</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveBank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1753
+ <span class='line'>1746</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1754
+ <span class='line'>1747</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1755
+ <span class='line'>1748</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1756
+ <span class='line'>1749</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointerup'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.pointerUpHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1757
+ <span class='line'>1750</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1758
+ <span class='line'>1751</span>
1759
+ <span class='line'>1752</span> </span><span class="WHIT"> </span><span class="COMM">/**
1760
+ <span class='line'>1753</span> * Event handler for pointer up event. Triggers handling of all 3D navigation.
1761
+ <span class='line'>1754</span> *
1762
+ <span class='line'>1755</span> * @private
1763
+ <span class='line'>1756</span> * @param {event} evt
1764
+ <span class='line'>1757</span> * @returns view
1765
+ <span class='line'>1758</span> */</span><span class="WHIT">
1766
+ <span class='line'>1759</span> </span><span class="WHIT"> </span><span class="NAME">pointerUpHandler</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">evt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1767
+ <span class='line'>1760</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">target</span><span class="PUNC">;</span><span class="WHIT">
1768
+ <span class='line'>1761</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._hasMoveAz</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1769
+ <span class='line'>1762</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1770
+ <span class='line'>1763</span> </span><span class="WHIT"> </span><span class="NAME">Env.removeEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointermove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._azEventHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1771
+ <span class='line'>1764</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveAz</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1772
+ <span class='line'>1765</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1773
+ <span class='line'>1766</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._hasMoveEl</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1774
+ <span class='line'>1767</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.el.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1775
+ <span class='line'>1768</span> </span><span class="WHIT"> </span><span class="NAME">Env.removeEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointermove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._elEventHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1776
+ <span class='line'>1769</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveEl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1777
+ <span class='line'>1770</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1778
+ <span class='line'>1771</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._hasMoveBank</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1779
+ <span class='line'>1772</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.bank.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1780
+ <span class='line'>1773</span> </span><span class="WHIT"> </span><span class="NAME">Env.removeEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'wheel'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._bankEventHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1781
+ <span class='line'>1774</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveBank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1782
+ <span class='line'>1775</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1783
+ <span class='line'>1776</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._hasMoveTrackball</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1784
+ <span class='line'>1777</span> </span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.visProp.az.pointer.outside</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">document</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.board.containerObj</span><span class="PUNC">;</span><span class="WHIT">
1785
+ <span class='line'>1778</span> </span><span class="WHIT"> </span><span class="NAME">Env.removeEvent</span><span class="PUNC">(</span><span class="NAME">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointermove'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._trackballHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1786
+ <span class='line'>1779</span> </span><span class="WHIT"> </span><span class="NAME">this._hasMoveTrackball</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1787
+ <span class='line'>1780</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1788
+ <span class='line'>1781</span> </span><span class="WHIT"> </span><span class="NAME">Env.removeEvent</span><span class="PUNC">(</span><span class="NAME">document</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointerup'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.pointerUpHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1789
+ <span class='line'>1782</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1790
+ <span class='line'>1783</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1791
+ <span class='line'>1784</span>
1792
+ <span class='line'>1785</span> </span><span class="COMM">/**
1793
+ <span class='line'>1786</span> * @class This element creates a 3D view.
1794
+ <span class='line'>1787</span> * @pseudo
1795
+ <span class='line'>1788</span> * @description A View3D element provides the container and the methods to create and display 3D elements.
1796
+ <span class='line'>1789</span> * It is contained in a JSXGraph board.
1797
+ <span class='line'>1790</span> * &lt;p>
1798
+ <span class='line'>1791</span> * It is advisable to disable panning of the board by setting the board attribute "pan":
1799
+ <span class='line'>1792</span> * &lt;pre>
1800
+ <span class='line'>1793</span> * pan: {anabled: fasle}
1801
+ <span class='line'>1794</span> * &lt;/pre>
1802
+ <span class='line'>1795</span> * Otherwise users will not be able to rotate the scene with their fingers on a touch device.
1803
+ <span class='line'>1796</span> *
1804
+ <span class='line'>1797</span> * @name View3D
1805
+ <span class='line'>1798</span> * @augments JXG.View3D
1806
+ <span class='line'>1799</span> * @constructor
1807
+ <span class='line'>1800</span> * @type Object
1808
+ <span class='line'>1801</span> * @throws {Exception} If the element cannot be constructed with the given parent objects an exception is thrown.
1809
+ <span class='line'>1802</span> * @param {Array_Array_Array} lower,dim,cube Here, lower is an array of the form [x, y] and
1810
+ <span class='line'>1803</span> * dim is an array of the form [w, h].
1811
+ <span class='line'>1804</span> * The arrays [x, y] and [w, h] define the 2D frame into which the 3D cube is
1812
+ <span class='line'>1805</span> * (roughly) projected. If the view's azimuth=0 and elevation=0, the 3D view will cover a rectangle with lower left corner
1813
+ <span class='line'>1806</span> * [x,y] and side lengths [w, h] of the board.
1814
+ <span class='line'>1807</span> * The array 'cube' is of the form [[x1, x2], [y1, y2], [z1, z2]]
1815
+ <span class='line'>1808</span> * which determines the coordinate ranges of the 3D cube.
1816
+ <span class='line'>1809</span> *
1817
+ <span class='line'>1810</span> * @example
1818
+ <span class='line'>1811</span> * var bound = [-4, 6];
1819
+ <span class='line'>1812</span> * var view = board.create('view3d',
1820
+ <span class='line'>1813</span> * [[-4, -3], [8, 8],
1821
+ <span class='line'>1814</span> * [bound, bound, bound]],
1822
+ <span class='line'>1815</span> * {
1823
+ <span class='line'>1816</span> * projection: 'parallel',
1824
+ <span class='line'>1817</span> * trackball: {enabled:true},
1825
+ <span class='line'>1818</span> * });
1826
+ <span class='line'>1819</span> *
1827
+ <span class='line'>1820</span> * var curve = view.create('curve3d', [
1828
+ <span class='line'>1821</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1829
+ <span class='line'>1822</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1830
+ <span class='line'>1823</span> * (t) => Math.sin(3 * t),
1831
+ <span class='line'>1824</span> * [-Math.PI, Math.PI]
1832
+ <span class='line'>1825</span> * ], { strokeWidth: 4 });
1833
+ <span class='line'>1826</span> *
1834
+ <span class='line'>1827</span> * &lt;/pre>&lt;div id="JXG9b327a6c-1bd6-4e40-a502-59d024dbfd1b" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
1835
+ <span class='line'>1828</span> * &lt;script type="text/javascript">
1836
+ <span class='line'>1829</span> * (function() {
1837
+ <span class='line'>1830</span> * var board = JXG.JSXGraph.initBoard('JXG9b327a6c-1bd6-4e40-a502-59d024dbfd1b',
1838
+ <span class='line'>1831</span> * {boundingbox: [-8, 8, 8,-8], pan: {enabled: false}, axis: false, showcopyright: false, shownavigation: false});
1839
+ <span class='line'>1832</span> * var bound = [-4, 6];
1840
+ <span class='line'>1833</span> * var view = board.create('view3d',
1841
+ <span class='line'>1834</span> * [[-4, -3], [8, 8],
1842
+ <span class='line'>1835</span> * [bound, bound, bound]],
1843
+ <span class='line'>1836</span> * {
1844
+ <span class='line'>1837</span> * projection: 'parallel',
1845
+ <span class='line'>1838</span> * trackball: {enabled:true},
1846
+ <span class='line'>1839</span> * });
1847
1847
  <span class='line'>1840</span> *
1848
- <span class='line'>1841</span> * &lt;/script>&lt;pre>
1849
- <span class='line'>1842</span> *
1850
- <span class='line'>1843</span> * @example
1851
- <span class='line'>1844</span> * var bound = [-4, 6];
1852
- <span class='line'>1845</span> * var view = board.create('view3d',
1853
- <span class='line'>1846</span> * [[-4, -3], [8, 8],
1854
- <span class='line'>1847</span> * [bound, bound, bound]],
1855
- <span class='line'>1848</span> * {
1856
- <span class='line'>1849</span> * projection: 'central',
1857
- <span class='line'>1850</span> * trackball: {enabled:true},
1848
+ <span class='line'>1841</span> * var curve = view.create('curve3d', [
1849
+ <span class='line'>1842</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1850
+ <span class='line'>1843</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1851
+ <span class='line'>1844</span> * (t) => Math.sin(3 * t),
1852
+ <span class='line'>1845</span> * [-Math.PI, Math.PI]
1853
+ <span class='line'>1846</span> * ], { strokeWidth: 4 });
1854
+ <span class='line'>1847</span> *
1855
+ <span class='line'>1848</span> * })();
1856
+ <span class='line'>1849</span> *
1857
+ <span class='line'>1850</span> * &lt;/script>&lt;pre>
1858
1858
  <span class='line'>1851</span> *
1859
- <span class='line'>1852</span> * xPlaneRear: { visible: false },
1860
- <span class='line'>1853</span> * yPlaneRear: { visible: false }
1861
- <span class='line'>1854</span> *
1862
- <span class='line'>1855</span> * });
1863
- <span class='line'>1856</span> *
1864
- <span class='line'>1857</span> * var curve = view.create('curve3d', [
1865
- <span class='line'>1858</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1866
- <span class='line'>1859</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1867
- <span class='line'>1860</span> * (t) => Math.sin(3 * t),
1868
- <span class='line'>1861</span> * [-Math.PI, Math.PI]
1869
- <span class='line'>1862</span> * ], { strokeWidth: 4 });
1859
+ <span class='line'>1852</span> * @example
1860
+ <span class='line'>1853</span> * var bound = [-4, 6];
1861
+ <span class='line'>1854</span> * var view = board.create('view3d',
1862
+ <span class='line'>1855</span> * [[-4, -3], [8, 8],
1863
+ <span class='line'>1856</span> * [bound, bound, bound]],
1864
+ <span class='line'>1857</span> * {
1865
+ <span class='line'>1858</span> * projection: 'central',
1866
+ <span class='line'>1859</span> * trackball: {enabled:true},
1867
+ <span class='line'>1860</span> *
1868
+ <span class='line'>1861</span> * xPlaneRear: { visible: false },
1869
+ <span class='line'>1862</span> * yPlaneRear: { visible: false }
1870
1870
  <span class='line'>1863</span> *
1871
- <span class='line'>1864</span> * &lt;/pre>&lt;div id="JXG0dc2493d-fb2f-40d5-bdb8-762ba0ad2007" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
1872
- <span class='line'>1865</span> * &lt;script type="text/javascript">
1873
- <span class='line'>1866</span> * (function() {
1874
- <span class='line'>1867</span> * var board = JXG.JSXGraph.initBoard('JXG0dc2493d-fb2f-40d5-bdb8-762ba0ad2007',
1875
- <span class='line'>1868</span> * {boundingbox: [-8, 8, 8,-8], axis: false, pan: {enabled: false}, showcopyright: false, shownavigation: false});
1876
- <span class='line'>1869</span> * var bound = [-4, 6];
1877
- <span class='line'>1870</span> * var view = board.create('view3d',
1878
- <span class='line'>1871</span> * [[-4, -3], [8, 8],
1879
- <span class='line'>1872</span> * [bound, bound, bound]],
1880
- <span class='line'>1873</span> * {
1881
- <span class='line'>1874</span> * projection: 'central',
1882
- <span class='line'>1875</span> * trackball: {enabled:true},
1883
- <span class='line'>1876</span> *
1884
- <span class='line'>1877</span> * xPlaneRear: { visible: false },
1885
- <span class='line'>1878</span> * yPlaneRear: { visible: false }
1886
- <span class='line'>1879</span> *
1887
- <span class='line'>1880</span> * });
1888
- <span class='line'>1881</span> *
1889
- <span class='line'>1882</span> * var curve = view.create('curve3d', [
1890
- <span class='line'>1883</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1891
- <span class='line'>1884</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1892
- <span class='line'>1885</span> * (t) => Math.sin(3 * t),
1893
- <span class='line'>1886</span> * [-Math.PI, Math.PI]
1894
- <span class='line'>1887</span> * ], { strokeWidth: 4 });
1871
+ <span class='line'>1864</span> * });
1872
+ <span class='line'>1865</span> *
1873
+ <span class='line'>1866</span> * var curve = view.create('curve3d', [
1874
+ <span class='line'>1867</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1875
+ <span class='line'>1868</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1876
+ <span class='line'>1869</span> * (t) => Math.sin(3 * t),
1877
+ <span class='line'>1870</span> * [-Math.PI, Math.PI]
1878
+ <span class='line'>1871</span> * ], { strokeWidth: 4 });
1879
+ <span class='line'>1872</span> *
1880
+ <span class='line'>1873</span> * &lt;/pre>&lt;div id="JXG0dc2493d-fb2f-40d5-bdb8-762ba0ad2007" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
1881
+ <span class='line'>1874</span> * &lt;script type="text/javascript">
1882
+ <span class='line'>1875</span> * (function() {
1883
+ <span class='line'>1876</span> * var board = JXG.JSXGraph.initBoard('JXG0dc2493d-fb2f-40d5-bdb8-762ba0ad2007',
1884
+ <span class='line'>1877</span> * {boundingbox: [-8, 8, 8,-8], axis: false, pan: {enabled: false}, showcopyright: false, shownavigation: false});
1885
+ <span class='line'>1878</span> * var bound = [-4, 6];
1886
+ <span class='line'>1879</span> * var view = board.create('view3d',
1887
+ <span class='line'>1880</span> * [[-4, -3], [8, 8],
1888
+ <span class='line'>1881</span> * [bound, bound, bound]],
1889
+ <span class='line'>1882</span> * {
1890
+ <span class='line'>1883</span> * projection: 'central',
1891
+ <span class='line'>1884</span> * trackball: {enabled:true},
1892
+ <span class='line'>1885</span> *
1893
+ <span class='line'>1886</span> * xPlaneRear: { visible: false },
1894
+ <span class='line'>1887</span> * yPlaneRear: { visible: false }
1895
1895
  <span class='line'>1888</span> *
1896
- <span class='line'>1889</span> * })();
1896
+ <span class='line'>1889</span> * });
1897
1897
  <span class='line'>1890</span> *
1898
- <span class='line'>1891</span> * &lt;/script>&lt;pre>
1899
- <span class='line'>1892</span> *
1900
- <span class='line'>1893</span> * @example
1901
- <span class='line'>1894</span> * var bound = [-4, 6];
1902
- <span class='line'>1895</span> * var view = board.create('view3d',
1903
- <span class='line'>1896</span> * [[-4, -3], [8, 8],
1904
- <span class='line'>1897</span> * [bound, bound, bound]],
1905
- <span class='line'>1898</span> * {
1906
- <span class='line'>1899</span> * projection: 'central',
1907
- <span class='line'>1900</span> * trackball: {enabled:true},
1898
+ <span class='line'>1891</span> * var curve = view.create('curve3d', [
1899
+ <span class='line'>1892</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1900
+ <span class='line'>1893</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1901
+ <span class='line'>1894</span> * (t) => Math.sin(3 * t),
1902
+ <span class='line'>1895</span> * [-Math.PI, Math.PI]
1903
+ <span class='line'>1896</span> * ], { strokeWidth: 4 });
1904
+ <span class='line'>1897</span> *
1905
+ <span class='line'>1898</span> * })();
1906
+ <span class='line'>1899</span> *
1907
+ <span class='line'>1900</span> * &lt;/script>&lt;pre>
1908
1908
  <span class='line'>1901</span> *
1909
- <span class='line'>1902</span> * // Main axes
1910
- <span class='line'>1903</span> * axesPosition: 'border',
1911
- <span class='line'>1904</span> *
1912
- <span class='line'>1905</span> * // Axes at the border
1913
- <span class='line'>1906</span> * xAxisBorder: { ticks3d: { ticksDistance: 2} },
1914
- <span class='line'>1907</span> * yAxisBorder: { ticks3d: { ticksDistance: 2} },
1915
- <span class='line'>1908</span> * zAxisBorder: { ticks3d: { ticksDistance: 2} },
1916
- <span class='line'>1909</span> *
1917
- <span class='line'>1910</span> * // No axes on planes
1918
- <span class='line'>1911</span> * xPlaneRearYAxis: {visible: false},
1919
- <span class='line'>1912</span> * xPlaneRearZAxis: {visible: false},
1920
- <span class='line'>1913</span> * yPlaneRearXAxis: {visible: false},
1921
- <span class='line'>1914</span> * yPlaneRearZAxis: {visible: false},
1922
- <span class='line'>1915</span> * zPlaneRearXAxis: {visible: false},
1923
- <span class='line'>1916</span> * zPlaneRearYAxis: {visible: false}
1924
- <span class='line'>1917</span> * });
1909
+ <span class='line'>1902</span> * @example
1910
+ <span class='line'>1903</span> * var bound = [-4, 6];
1911
+ <span class='line'>1904</span> * var view = board.create('view3d',
1912
+ <span class='line'>1905</span> * [[-4, -3], [8, 8],
1913
+ <span class='line'>1906</span> * [bound, bound, bound]],
1914
+ <span class='line'>1907</span> * {
1915
+ <span class='line'>1908</span> * projection: 'central',
1916
+ <span class='line'>1909</span> * trackball: {enabled:true},
1917
+ <span class='line'>1910</span> *
1918
+ <span class='line'>1911</span> * // Main axes
1919
+ <span class='line'>1912</span> * axesPosition: 'border',
1920
+ <span class='line'>1913</span> *
1921
+ <span class='line'>1914</span> * // Axes at the border
1922
+ <span class='line'>1915</span> * xAxisBorder: { ticks3d: { ticksDistance: 2} },
1923
+ <span class='line'>1916</span> * yAxisBorder: { ticks3d: { ticksDistance: 2} },
1924
+ <span class='line'>1917</span> * zAxisBorder: { ticks3d: { ticksDistance: 2} },
1925
1925
  <span class='line'>1918</span> *
1926
- <span class='line'>1919</span> * var curve = view.create('curve3d', [
1927
- <span class='line'>1920</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1928
- <span class='line'>1921</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1929
- <span class='line'>1922</span> * (t) => Math.sin(3 * t),
1930
- <span class='line'>1923</span> * [-Math.PI, Math.PI]
1931
- <span class='line'>1924</span> * ], { strokeWidth: 4 });
1932
- <span class='line'>1925</span> *
1933
- <span class='line'>1926</span> * &lt;/pre>&lt;div id="JXG586f3551-335c-47e9-8d72-835409f6a103" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
1934
- <span class='line'>1927</span> * &lt;script type="text/javascript">
1935
- <span class='line'>1928</span> * (function() {
1936
- <span class='line'>1929</span> * var board = JXG.JSXGraph.initBoard('JXG586f3551-335c-47e9-8d72-835409f6a103',
1937
- <span class='line'>1930</span> * {boundingbox: [-8, 8, 8,-8], axis: false, pan: {enabled: false}, showcopyright: false, shownavigation: false});
1938
- <span class='line'>1931</span> * var bound = [-4, 6];
1939
- <span class='line'>1932</span> * var view = board.create('view3d',
1940
- <span class='line'>1933</span> * [[-4, -3], [8, 8],
1941
- <span class='line'>1934</span> * [bound, bound, bound]],
1942
- <span class='line'>1935</span> * {
1943
- <span class='line'>1936</span> * projection: 'central',
1944
- <span class='line'>1937</span> * trackball: {enabled:true},
1945
- <span class='line'>1938</span> *
1946
- <span class='line'>1939</span> * // Main axes
1947
- <span class='line'>1940</span> * axesPosition: 'border',
1948
- <span class='line'>1941</span> *
1949
- <span class='line'>1942</span> * // Axes at the border
1950
- <span class='line'>1943</span> * xAxisBorder: { ticks3d: { ticksDistance: 2} },
1951
- <span class='line'>1944</span> * yAxisBorder: { ticks3d: { ticksDistance: 2} },
1952
- <span class='line'>1945</span> * zAxisBorder: { ticks3d: { ticksDistance: 2} },
1953
- <span class='line'>1946</span> *
1954
- <span class='line'>1947</span> * // No axes on planes
1955
- <span class='line'>1948</span> * xPlaneRearYAxis: {visible: false},
1956
- <span class='line'>1949</span> * xPlaneRearZAxis: {visible: false},
1957
- <span class='line'>1950</span> * yPlaneRearXAxis: {visible: false},
1958
- <span class='line'>1951</span> * yPlaneRearZAxis: {visible: false},
1959
- <span class='line'>1952</span> * zPlaneRearXAxis: {visible: false},
1960
- <span class='line'>1953</span> * zPlaneRearYAxis: {visible: false}
1961
- <span class='line'>1954</span> * });
1926
+ <span class='line'>1919</span> * // No axes on planes
1927
+ <span class='line'>1920</span> * xPlaneRearYAxis: {visible: false},
1928
+ <span class='line'>1921</span> * xPlaneRearZAxis: {visible: false},
1929
+ <span class='line'>1922</span> * yPlaneRearXAxis: {visible: false},
1930
+ <span class='line'>1923</span> * yPlaneRearZAxis: {visible: false},
1931
+ <span class='line'>1924</span> * zPlaneRearXAxis: {visible: false},
1932
+ <span class='line'>1925</span> * zPlaneRearYAxis: {visible: false}
1933
+ <span class='line'>1926</span> * });
1934
+ <span class='line'>1927</span> *
1935
+ <span class='line'>1928</span> * var curve = view.create('curve3d', [
1936
+ <span class='line'>1929</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1937
+ <span class='line'>1930</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1938
+ <span class='line'>1931</span> * (t) => Math.sin(3 * t),
1939
+ <span class='line'>1932</span> * [-Math.PI, Math.PI]
1940
+ <span class='line'>1933</span> * ], { strokeWidth: 4 });
1941
+ <span class='line'>1934</span> *
1942
+ <span class='line'>1935</span> * &lt;/pre>&lt;div id="JXG586f3551-335c-47e9-8d72-835409f6a103" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
1943
+ <span class='line'>1936</span> * &lt;script type="text/javascript">
1944
+ <span class='line'>1937</span> * (function() {
1945
+ <span class='line'>1938</span> * var board = JXG.JSXGraph.initBoard('JXG586f3551-335c-47e9-8d72-835409f6a103',
1946
+ <span class='line'>1939</span> * {boundingbox: [-8, 8, 8,-8], axis: false, pan: {enabled: false}, showcopyright: false, shownavigation: false});
1947
+ <span class='line'>1940</span> * var bound = [-4, 6];
1948
+ <span class='line'>1941</span> * var view = board.create('view3d',
1949
+ <span class='line'>1942</span> * [[-4, -3], [8, 8],
1950
+ <span class='line'>1943</span> * [bound, bound, bound]],
1951
+ <span class='line'>1944</span> * {
1952
+ <span class='line'>1945</span> * projection: 'central',
1953
+ <span class='line'>1946</span> * trackball: {enabled:true},
1954
+ <span class='line'>1947</span> *
1955
+ <span class='line'>1948</span> * // Main axes
1956
+ <span class='line'>1949</span> * axesPosition: 'border',
1957
+ <span class='line'>1950</span> *
1958
+ <span class='line'>1951</span> * // Axes at the border
1959
+ <span class='line'>1952</span> * xAxisBorder: { ticks3d: { ticksDistance: 2} },
1960
+ <span class='line'>1953</span> * yAxisBorder: { ticks3d: { ticksDistance: 2} },
1961
+ <span class='line'>1954</span> * zAxisBorder: { ticks3d: { ticksDistance: 2} },
1962
1962
  <span class='line'>1955</span> *
1963
- <span class='line'>1956</span> * var curve = view.create('curve3d', [
1964
- <span class='line'>1957</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1965
- <span class='line'>1958</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1966
- <span class='line'>1959</span> * (t) => Math.sin(3 * t),
1967
- <span class='line'>1960</span> * [-Math.PI, Math.PI]
1968
- <span class='line'>1961</span> * ], { strokeWidth: 4 });
1969
- <span class='line'>1962</span> *
1970
- <span class='line'>1963</span> * })();
1963
+ <span class='line'>1956</span> * // No axes on planes
1964
+ <span class='line'>1957</span> * xPlaneRearYAxis: {visible: false},
1965
+ <span class='line'>1958</span> * xPlaneRearZAxis: {visible: false},
1966
+ <span class='line'>1959</span> * yPlaneRearXAxis: {visible: false},
1967
+ <span class='line'>1960</span> * yPlaneRearZAxis: {visible: false},
1968
+ <span class='line'>1961</span> * zPlaneRearXAxis: {visible: false},
1969
+ <span class='line'>1962</span> * zPlaneRearYAxis: {visible: false}
1970
+ <span class='line'>1963</span> * });
1971
1971
  <span class='line'>1964</span> *
1972
- <span class='line'>1965</span> * &lt;/script>&lt;pre>
1973
- <span class='line'>1966</span> *
1974
- <span class='line'>1967</span> * @example
1975
- <span class='line'>1968</span> * var bound = [-4, 6];
1976
- <span class='line'>1969</span> * var view = board.create('view3d',
1977
- <span class='line'>1970</span> * [[-4, -3], [8, 8],
1978
- <span class='line'>1971</span> * [bound, bound, bound]],
1979
- <span class='line'>1972</span> * {
1980
- <span class='line'>1973</span> * projection: 'central',
1981
- <span class='line'>1974</span> * trackball: {enabled:true},
1972
+ <span class='line'>1965</span> * var curve = view.create('curve3d', [
1973
+ <span class='line'>1966</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1974
+ <span class='line'>1967</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1975
+ <span class='line'>1968</span> * (t) => Math.sin(3 * t),
1976
+ <span class='line'>1969</span> * [-Math.PI, Math.PI]
1977
+ <span class='line'>1970</span> * ], { strokeWidth: 4 });
1978
+ <span class='line'>1971</span> *
1979
+ <span class='line'>1972</span> * })();
1980
+ <span class='line'>1973</span> *
1981
+ <span class='line'>1974</span> * &lt;/script>&lt;pre>
1982
1982
  <span class='line'>1975</span> *
1983
- <span class='line'>1976</span> * axesPosition: 'none'
1984
- <span class='line'>1977</span> * });
1985
- <span class='line'>1978</span> *
1986
- <span class='line'>1979</span> * var curve = view.create('curve3d', [
1987
- <span class='line'>1980</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1988
- <span class='line'>1981</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1989
- <span class='line'>1982</span> * (t) => Math.sin(3 * t),
1990
- <span class='line'>1983</span> * [-Math.PI, Math.PI]
1991
- <span class='line'>1984</span> * ], { strokeWidth: 4 });
1992
- <span class='line'>1985</span> *
1993
- <span class='line'>1986</span> * &lt;/pre>&lt;div id="JXG9a9467e1-f189-4c8c-adb2-d4f49bc7fa26" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
1994
- <span class='line'>1987</span> * &lt;script type="text/javascript">
1995
- <span class='line'>1988</span> * (function() {
1996
- <span class='line'>1989</span> * var board = JXG.JSXGraph.initBoard('JXG9a9467e1-f189-4c8c-adb2-d4f49bc7fa26',
1997
- <span class='line'>1990</span> * {boundingbox: [-8, 8, 8,-8], axis: false, pan: {enabled: false}, showcopyright: false, shownavigation: false});
1998
- <span class='line'>1991</span> * var bound = [-4, 6];
1999
- <span class='line'>1992</span> * var view = board.create('view3d',
2000
- <span class='line'>1993</span> * [[-4, -3], [8, 8],
2001
- <span class='line'>1994</span> * [bound, bound, bound]],
2002
- <span class='line'>1995</span> * {
2003
- <span class='line'>1996</span> * projection: 'central',
2004
- <span class='line'>1997</span> * trackball: {enabled:true},
2005
- <span class='line'>1998</span> *
2006
- <span class='line'>1999</span> * axesPosition: 'none'
2007
- <span class='line'>2000</span> * });
2008
- <span class='line'>2001</span> *
2009
- <span class='line'>2002</span> * var curve = view.create('curve3d', [
2010
- <span class='line'>2003</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
2011
- <span class='line'>2004</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
2012
- <span class='line'>2005</span> * (t) => Math.sin(3 * t),
2013
- <span class='line'>2006</span> * [-Math.PI, Math.PI]
2014
- <span class='line'>2007</span> * ], { strokeWidth: 4 });
2015
- <span class='line'>2008</span> *
2016
- <span class='line'>2009</span> * })();
1983
+ <span class='line'>1976</span> * @example
1984
+ <span class='line'>1977</span> * var bound = [-4, 6];
1985
+ <span class='line'>1978</span> * var view = board.create('view3d',
1986
+ <span class='line'>1979</span> * [[-4, -3], [8, 8],
1987
+ <span class='line'>1980</span> * [bound, bound, bound]],
1988
+ <span class='line'>1981</span> * {
1989
+ <span class='line'>1982</span> * projection: 'central',
1990
+ <span class='line'>1983</span> * trackball: {enabled:true},
1991
+ <span class='line'>1984</span> *
1992
+ <span class='line'>1985</span> * axesPosition: 'none'
1993
+ <span class='line'>1986</span> * });
1994
+ <span class='line'>1987</span> *
1995
+ <span class='line'>1988</span> * var curve = view.create('curve3d', [
1996
+ <span class='line'>1989</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
1997
+ <span class='line'>1990</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
1998
+ <span class='line'>1991</span> * (t) => Math.sin(3 * t),
1999
+ <span class='line'>1992</span> * [-Math.PI, Math.PI]
2000
+ <span class='line'>1993</span> * ], { strokeWidth: 4 });
2001
+ <span class='line'>1994</span> *
2002
+ <span class='line'>1995</span> * &lt;/pre>&lt;div id="JXG9a9467e1-f189-4c8c-adb2-d4f49bc7fa26" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2003
+ <span class='line'>1996</span> * &lt;script type="text/javascript">
2004
+ <span class='line'>1997</span> * (function() {
2005
+ <span class='line'>1998</span> * var board = JXG.JSXGraph.initBoard('JXG9a9467e1-f189-4c8c-adb2-d4f49bc7fa26',
2006
+ <span class='line'>1999</span> * {boundingbox: [-8, 8, 8,-8], axis: false, pan: {enabled: false}, showcopyright: false, shownavigation: false});
2007
+ <span class='line'>2000</span> * var bound = [-4, 6];
2008
+ <span class='line'>2001</span> * var view = board.create('view3d',
2009
+ <span class='line'>2002</span> * [[-4, -3], [8, 8],
2010
+ <span class='line'>2003</span> * [bound, bound, bound]],
2011
+ <span class='line'>2004</span> * {
2012
+ <span class='line'>2005</span> * projection: 'central',
2013
+ <span class='line'>2006</span> * trackball: {enabled:true},
2014
+ <span class='line'>2007</span> *
2015
+ <span class='line'>2008</span> * axesPosition: 'none'
2016
+ <span class='line'>2009</span> * });
2017
2017
  <span class='line'>2010</span> *
2018
- <span class='line'>2011</span> * &lt;/script>&lt;pre>
2019
- <span class='line'>2012</span> *
2020
- <span class='line'>2013</span> * @example
2021
- <span class='line'>2014</span> * var bound = [-4, 6];
2022
- <span class='line'>2015</span> * var view = board.create('view3d',
2023
- <span class='line'>2016</span> * [[-4, -3], [8, 8],
2024
- <span class='line'>2017</span> * [bound, bound, bound]],
2025
- <span class='line'>2018</span> * {
2026
- <span class='line'>2019</span> * projection: 'central',
2027
- <span class='line'>2020</span> * trackball: {enabled:true},
2018
+ <span class='line'>2011</span> * var curve = view.create('curve3d', [
2019
+ <span class='line'>2012</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
2020
+ <span class='line'>2013</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
2021
+ <span class='line'>2014</span> * (t) => Math.sin(3 * t),
2022
+ <span class='line'>2015</span> * [-Math.PI, Math.PI]
2023
+ <span class='line'>2016</span> * ], { strokeWidth: 4 });
2024
+ <span class='line'>2017</span> *
2025
+ <span class='line'>2018</span> * })();
2026
+ <span class='line'>2019</span> *
2027
+ <span class='line'>2020</span> * &lt;/script>&lt;pre>
2028
2028
  <span class='line'>2021</span> *
2029
- <span class='line'>2022</span> * // Main axes
2030
- <span class='line'>2023</span> * axesPosition: 'border',
2031
- <span class='line'>2024</span> *
2032
- <span class='line'>2025</span> * // Axes at the border
2033
- <span class='line'>2026</span> * xAxisBorder: { ticks3d: { ticksDistance: 2} },
2034
- <span class='line'>2027</span> * yAxisBorder: { ticks3d: { ticksDistance: 2} },
2035
- <span class='line'>2028</span> * zAxisBorder: { ticks3d: { ticksDistance: 2} },
2036
- <span class='line'>2029</span> *
2037
- <span class='line'>2030</span> * xPlaneRear: {
2038
- <span class='line'>2031</span> * fillColor: '#fff',
2039
- <span class='line'>2032</span> * mesh3d: {visible: false}
2040
- <span class='line'>2033</span> * },
2041
- <span class='line'>2034</span> * yPlaneRear: {
2042
- <span class='line'>2035</span> * fillColor: '#fff',
2043
- <span class='line'>2036</span> * mesh3d: {visible: false}
2044
- <span class='line'>2037</span> * },
2045
- <span class='line'>2038</span> * zPlaneRear: {
2046
- <span class='line'>2039</span> * fillColor: '#fff',
2047
- <span class='line'>2040</span> * mesh3d: {visible: false}
2048
- <span class='line'>2041</span> * },
2049
- <span class='line'>2042</span> * xPlaneFront: {
2050
- <span class='line'>2043</span> * visible: true,
2029
+ <span class='line'>2022</span> * @example
2030
+ <span class='line'>2023</span> * var bound = [-4, 6];
2031
+ <span class='line'>2024</span> * var view = board.create('view3d',
2032
+ <span class='line'>2025</span> * [[-4, -3], [8, 8],
2033
+ <span class='line'>2026</span> * [bound, bound, bound]],
2034
+ <span class='line'>2027</span> * {
2035
+ <span class='line'>2028</span> * projection: 'central',
2036
+ <span class='line'>2029</span> * trackball: {enabled:true},
2037
+ <span class='line'>2030</span> *
2038
+ <span class='line'>2031</span> * // Main axes
2039
+ <span class='line'>2032</span> * axesPosition: 'border',
2040
+ <span class='line'>2033</span> *
2041
+ <span class='line'>2034</span> * // Axes at the border
2042
+ <span class='line'>2035</span> * xAxisBorder: { ticks3d: { ticksDistance: 2} },
2043
+ <span class='line'>2036</span> * yAxisBorder: { ticks3d: { ticksDistance: 2} },
2044
+ <span class='line'>2037</span> * zAxisBorder: { ticks3d: { ticksDistance: 2} },
2045
+ <span class='line'>2038</span> *
2046
+ <span class='line'>2039</span> * xPlaneRear: {
2047
+ <span class='line'>2040</span> * fillColor: '#fff',
2048
+ <span class='line'>2041</span> * mesh3d: {visible: false}
2049
+ <span class='line'>2042</span> * },
2050
+ <span class='line'>2043</span> * yPlaneRear: {
2051
2051
  <span class='line'>2044</span> * fillColor: '#fff',
2052
2052
  <span class='line'>2045</span> * mesh3d: {visible: false}
2053
2053
  <span class='line'>2046</span> * },
2054
- <span class='line'>2047</span> * yPlaneFront: {
2055
- <span class='line'>2048</span> * visible: true,
2056
- <span class='line'>2049</span> * fillColor: '#fff',
2057
- <span class='line'>2050</span> * mesh3d: {visible: false}
2058
- <span class='line'>2051</span> * },
2059
- <span class='line'>2052</span> * zPlaneFront: {
2060
- <span class='line'>2053</span> * visible: true,
2061
- <span class='line'>2054</span> * fillColor: '#fff',
2062
- <span class='line'>2055</span> * mesh3d: {visible: false}
2063
- <span class='line'>2056</span> * },
2064
- <span class='line'>2057</span> *
2065
- <span class='line'>2058</span> * // No axes on planes
2066
- <span class='line'>2059</span> * xPlaneRearYAxis: {visible: false},
2067
- <span class='line'>2060</span> * xPlaneRearZAxis: {visible: false},
2068
- <span class='line'>2061</span> * yPlaneRearXAxis: {visible: false},
2069
- <span class='line'>2062</span> * yPlaneRearZAxis: {visible: false},
2070
- <span class='line'>2063</span> * zPlaneRearXAxis: {visible: false},
2071
- <span class='line'>2064</span> * zPlaneRearYAxis: {visible: false},
2072
- <span class='line'>2065</span> * xPlaneFrontYAxis: {visible: false},
2073
- <span class='line'>2066</span> * xPlaneFrontZAxis: {visible: false},
2074
- <span class='line'>2067</span> * yPlaneFrontXAxis: {visible: false},
2075
- <span class='line'>2068</span> * yPlaneFrontZAxis: {visible: false},
2076
- <span class='line'>2069</span> * zPlaneFrontXAxis: {visible: false},
2077
- <span class='line'>2070</span> * zPlaneFrontYAxis: {visible: false}
2078
- <span class='line'>2071</span> *
2079
- <span class='line'>2072</span> * });
2080
- <span class='line'>2073</span> *
2081
- <span class='line'>2074</span> * var curve = view.create('curve3d', [
2082
- <span class='line'>2075</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
2083
- <span class='line'>2076</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
2084
- <span class='line'>2077</span> * (t) => Math.sin(3 * t),
2085
- <span class='line'>2078</span> * [-Math.PI, Math.PI]
2086
- <span class='line'>2079</span> * ], { strokeWidth: 4 });
2054
+ <span class='line'>2047</span> * zPlaneRear: {
2055
+ <span class='line'>2048</span> * fillColor: '#fff',
2056
+ <span class='line'>2049</span> * mesh3d: {visible: false}
2057
+ <span class='line'>2050</span> * },
2058
+ <span class='line'>2051</span> * xPlaneFront: {
2059
+ <span class='line'>2052</span> * visible: true,
2060
+ <span class='line'>2053</span> * fillColor: '#fff',
2061
+ <span class='line'>2054</span> * mesh3d: {visible: false}
2062
+ <span class='line'>2055</span> * },
2063
+ <span class='line'>2056</span> * yPlaneFront: {
2064
+ <span class='line'>2057</span> * visible: true,
2065
+ <span class='line'>2058</span> * fillColor: '#fff',
2066
+ <span class='line'>2059</span> * mesh3d: {visible: false}
2067
+ <span class='line'>2060</span> * },
2068
+ <span class='line'>2061</span> * zPlaneFront: {
2069
+ <span class='line'>2062</span> * visible: true,
2070
+ <span class='line'>2063</span> * fillColor: '#fff',
2071
+ <span class='line'>2064</span> * mesh3d: {visible: false}
2072
+ <span class='line'>2065</span> * },
2073
+ <span class='line'>2066</span> *
2074
+ <span class='line'>2067</span> * // No axes on planes
2075
+ <span class='line'>2068</span> * xPlaneRearYAxis: {visible: false},
2076
+ <span class='line'>2069</span> * xPlaneRearZAxis: {visible: false},
2077
+ <span class='line'>2070</span> * yPlaneRearXAxis: {visible: false},
2078
+ <span class='line'>2071</span> * yPlaneRearZAxis: {visible: false},
2079
+ <span class='line'>2072</span> * zPlaneRearXAxis: {visible: false},
2080
+ <span class='line'>2073</span> * zPlaneRearYAxis: {visible: false},
2081
+ <span class='line'>2074</span> * xPlaneFrontYAxis: {visible: false},
2082
+ <span class='line'>2075</span> * xPlaneFrontZAxis: {visible: false},
2083
+ <span class='line'>2076</span> * yPlaneFrontXAxis: {visible: false},
2084
+ <span class='line'>2077</span> * yPlaneFrontZAxis: {visible: false},
2085
+ <span class='line'>2078</span> * zPlaneFrontXAxis: {visible: false},
2086
+ <span class='line'>2079</span> * zPlaneFrontYAxis: {visible: false}
2087
2087
  <span class='line'>2080</span> *
2088
- <span class='line'>2081</span> * &lt;/pre>&lt;div id="JXGbd41a4e3-1bf7-4764-b675-98b01667103b" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2089
- <span class='line'>2082</span> * &lt;script type="text/javascript">
2090
- <span class='line'>2083</span> * (function() {
2091
- <span class='line'>2084</span> * var board = JXG.JSXGraph.initBoard('JXGbd41a4e3-1bf7-4764-b675-98b01667103b',
2092
- <span class='line'>2085</span> * {boundingbox: [-8, 8, 8,-8], axis: false, pan: {enabled: false}, showcopyright: false, shownavigation: false});
2093
- <span class='line'>2086</span> * var bound = [-4, 6];
2094
- <span class='line'>2087</span> * var view = board.create('view3d',
2095
- <span class='line'>2088</span> * [[-4, -3], [8, 8],
2096
- <span class='line'>2089</span> * [bound, bound, bound]],
2097
- <span class='line'>2090</span> * {
2098
- <span class='line'>2091</span> * projection: 'central',
2099
- <span class='line'>2092</span> * trackball: {enabled:true},
2100
- <span class='line'>2093</span> *
2101
- <span class='line'>2094</span> * // Main axes
2102
- <span class='line'>2095</span> * axesPosition: 'border',
2103
- <span class='line'>2096</span> *
2104
- <span class='line'>2097</span> * // Axes at the border
2105
- <span class='line'>2098</span> * xAxisBorder: { ticks3d: { ticksDistance: 2} },
2106
- <span class='line'>2099</span> * yAxisBorder: { ticks3d: { ticksDistance: 2} },
2107
- <span class='line'>2100</span> * zAxisBorder: { ticks3d: { ticksDistance: 2} },
2108
- <span class='line'>2101</span> *
2109
- <span class='line'>2102</span> * xPlaneRear: {
2110
- <span class='line'>2103</span> * fillColor: '#fff',
2111
- <span class='line'>2104</span> * mesh3d: {visible: false}
2112
- <span class='line'>2105</span> * },
2113
- <span class='line'>2106</span> * yPlaneRear: {
2114
- <span class='line'>2107</span> * fillColor: '#fff',
2115
- <span class='line'>2108</span> * mesh3d: {visible: false}
2116
- <span class='line'>2109</span> * },
2117
- <span class='line'>2110</span> * zPlaneRear: {
2118
- <span class='line'>2111</span> * fillColor: '#fff',
2119
- <span class='line'>2112</span> * mesh3d: {visible: false}
2120
- <span class='line'>2113</span> * },
2121
- <span class='line'>2114</span> * xPlaneFront: {
2122
- <span class='line'>2115</span> * visible: true,
2088
+ <span class='line'>2081</span> * });
2089
+ <span class='line'>2082</span> *
2090
+ <span class='line'>2083</span> * var curve = view.create('curve3d', [
2091
+ <span class='line'>2084</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
2092
+ <span class='line'>2085</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
2093
+ <span class='line'>2086</span> * (t) => Math.sin(3 * t),
2094
+ <span class='line'>2087</span> * [-Math.PI, Math.PI]
2095
+ <span class='line'>2088</span> * ], { strokeWidth: 4 });
2096
+ <span class='line'>2089</span> *
2097
+ <span class='line'>2090</span> * &lt;/pre>&lt;div id="JXGbd41a4e3-1bf7-4764-b675-98b01667103b" class="jxgbox" style="width: 300px; height: 300px;">&lt;/div>
2098
+ <span class='line'>2091</span> * &lt;script type="text/javascript">
2099
+ <span class='line'>2092</span> * (function() {
2100
+ <span class='line'>2093</span> * var board = JXG.JSXGraph.initBoard('JXGbd41a4e3-1bf7-4764-b675-98b01667103b',
2101
+ <span class='line'>2094</span> * {boundingbox: [-8, 8, 8,-8], axis: false, pan: {enabled: false}, showcopyright: false, shownavigation: false});
2102
+ <span class='line'>2095</span> * var bound = [-4, 6];
2103
+ <span class='line'>2096</span> * var view = board.create('view3d',
2104
+ <span class='line'>2097</span> * [[-4, -3], [8, 8],
2105
+ <span class='line'>2098</span> * [bound, bound, bound]],
2106
+ <span class='line'>2099</span> * {
2107
+ <span class='line'>2100</span> * projection: 'central',
2108
+ <span class='line'>2101</span> * trackball: {enabled:true},
2109
+ <span class='line'>2102</span> *
2110
+ <span class='line'>2103</span> * // Main axes
2111
+ <span class='line'>2104</span> * axesPosition: 'border',
2112
+ <span class='line'>2105</span> *
2113
+ <span class='line'>2106</span> * // Axes at the border
2114
+ <span class='line'>2107</span> * xAxisBorder: { ticks3d: { ticksDistance: 2} },
2115
+ <span class='line'>2108</span> * yAxisBorder: { ticks3d: { ticksDistance: 2} },
2116
+ <span class='line'>2109</span> * zAxisBorder: { ticks3d: { ticksDistance: 2} },
2117
+ <span class='line'>2110</span> *
2118
+ <span class='line'>2111</span> * xPlaneRear: {
2119
+ <span class='line'>2112</span> * fillColor: '#fff',
2120
+ <span class='line'>2113</span> * mesh3d: {visible: false}
2121
+ <span class='line'>2114</span> * },
2122
+ <span class='line'>2115</span> * yPlaneRear: {
2123
2123
  <span class='line'>2116</span> * fillColor: '#fff',
2124
2124
  <span class='line'>2117</span> * mesh3d: {visible: false}
2125
2125
  <span class='line'>2118</span> * },
2126
- <span class='line'>2119</span> * yPlaneFront: {
2127
- <span class='line'>2120</span> * visible: true,
2128
- <span class='line'>2121</span> * fillColor: '#fff',
2129
- <span class='line'>2122</span> * mesh3d: {visible: false}
2130
- <span class='line'>2123</span> * },
2131
- <span class='line'>2124</span> * zPlaneFront: {
2132
- <span class='line'>2125</span> * visible: true,
2133
- <span class='line'>2126</span> * fillColor: '#fff',
2134
- <span class='line'>2127</span> * mesh3d: {visible: false}
2135
- <span class='line'>2128</span> * },
2136
- <span class='line'>2129</span> *
2137
- <span class='line'>2130</span> * // No axes on planes
2138
- <span class='line'>2131</span> * xPlaneRearYAxis: {visible: false},
2139
- <span class='line'>2132</span> * xPlaneRearZAxis: {visible: false},
2140
- <span class='line'>2133</span> * yPlaneRearXAxis: {visible: false},
2141
- <span class='line'>2134</span> * yPlaneRearZAxis: {visible: false},
2142
- <span class='line'>2135</span> * zPlaneRearXAxis: {visible: false},
2143
- <span class='line'>2136</span> * zPlaneRearYAxis: {visible: false},
2144
- <span class='line'>2137</span> * xPlaneFrontYAxis: {visible: false},
2145
- <span class='line'>2138</span> * xPlaneFrontZAxis: {visible: false},
2146
- <span class='line'>2139</span> * yPlaneFrontXAxis: {visible: false},
2147
- <span class='line'>2140</span> * yPlaneFrontZAxis: {visible: false},
2148
- <span class='line'>2141</span> * zPlaneFrontXAxis: {visible: false},
2149
- <span class='line'>2142</span> * zPlaneFrontYAxis: {visible: false}
2150
- <span class='line'>2143</span> *
2151
- <span class='line'>2144</span> * });
2152
- <span class='line'>2145</span> *
2153
- <span class='line'>2146</span> * var curve = view.create('curve3d', [
2154
- <span class='line'>2147</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
2155
- <span class='line'>2148</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
2156
- <span class='line'>2149</span> * (t) => Math.sin(3 * t),
2157
- <span class='line'>2150</span> * [-Math.PI, Math.PI]
2158
- <span class='line'>2151</span> * ], { strokeWidth: 4 });
2159
- <span class='line'>2152</span> * })();
2160
- <span class='line'>2153</span> *
2161
- <span class='line'>2154</span> * &lt;/script>&lt;pre>
2162
- <span class='line'>2155</span> *
2163
- <span class='line'>2156</span> * @example
2164
- <span class='line'>2157</span> * var bound = [-5, 5];
2165
- <span class='line'>2158</span> * var view = board.create('view3d',
2166
- <span class='line'>2159</span> * [[-6, -3],
2167
- <span class='line'>2160</span> * [8, 8],
2168
- <span class='line'>2161</span> * [bound, bound, bound]],
2169
- <span class='line'>2162</span> * {
2170
- <span class='line'>2163</span> * // Main axes
2171
- <span class='line'>2164</span> * axesPosition: 'center',
2172
- <span class='line'>2165</span> * xAxis: { strokeColor: 'blue', strokeWidth: 3},
2173
- <span class='line'>2166</span> *
2174
- <span class='line'>2167</span> * // Planes
2175
- <span class='line'>2168</span> * xPlaneRear: { fillColor: 'yellow', mesh3d: {visible: false}},
2176
- <span class='line'>2169</span> * yPlaneFront: { visible: true, fillColor: 'blue'},
2177
- <span class='line'>2170</span> *
2178
- <span class='line'>2171</span> * // Axes on planes
2179
- <span class='line'>2172</span> * xPlaneRearYAxis: {strokeColor: 'red'},
2180
- <span class='line'>2173</span> * xPlaneRearZAxis: {strokeColor: 'red'},
2181
- <span class='line'>2174</span> *
2182
- <span class='line'>2175</span> * yPlaneFrontXAxis: {strokeColor: 'blue'},
2183
- <span class='line'>2176</span> * yPlaneFrontZAxis: {strokeColor: 'blue'},
2184
- <span class='line'>2177</span> *
2185
- <span class='line'>2178</span> * zPlaneFrontXAxis: {visible: false},
2186
- <span class='line'>2179</span> * zPlaneFrontYAxis: {visible: false}
2187
- <span class='line'>2180</span> * });
2188
- <span class='line'>2181</span> *
2189
- <span class='line'>2182</span> * &lt;/pre>&lt;div id="JXGdd06d90e-be5d-4531-8f0b-65fc30b1a7c7" class="jxgbox" style="width: 500px; height: 500px;">&lt;/div>
2190
- <span class='line'>2183</span> * &lt;script type="text/javascript">
2191
- <span class='line'>2184</span> * (function() {
2192
- <span class='line'>2185</span> * var board = JXG.JSXGraph.initBoard('JXGdd06d90e-be5d-4531-8f0b-65fc30b1a7c7',
2193
- <span class='line'>2186</span> * {boundingbox: [-8, 8, 8,-8], axis: false, pan: {enabled: false}, showcopyright: false, shownavigation: false});
2194
- <span class='line'>2187</span> * var bound = [-5, 5];
2195
- <span class='line'>2188</span> * var view = board.create('view3d',
2196
- <span class='line'>2189</span> * [[-6, -3], [8, 8],
2197
- <span class='line'>2190</span> * [bound, bound, bound]],
2198
- <span class='line'>2191</span> * {
2199
- <span class='line'>2192</span> * // Main axes
2200
- <span class='line'>2193</span> * axesPosition: 'center',
2201
- <span class='line'>2194</span> * xAxis: { strokeColor: 'blue', strokeWidth: 3},
2202
- <span class='line'>2195</span> * // Planes
2203
- <span class='line'>2196</span> * xPlaneRear: { fillColor: 'yellow', mesh3d: {visible: false}},
2204
- <span class='line'>2197</span> * yPlaneFront: { visible: true, fillColor: 'blue'},
2205
- <span class='line'>2198</span> * // Axes on planes
2206
- <span class='line'>2199</span> * xPlaneRearYAxis: {strokeColor: 'red'},
2207
- <span class='line'>2200</span> * xPlaneRearZAxis: {strokeColor: 'red'},
2208
- <span class='line'>2201</span> * yPlaneFrontXAxis: {strokeColor: 'blue'},
2209
- <span class='line'>2202</span> * yPlaneFrontZAxis: {strokeColor: 'blue'},
2210
- <span class='line'>2203</span> * zPlaneFrontXAxis: {visible: false},
2211
- <span class='line'>2204</span> * zPlaneFrontYAxis: {visible: false}
2212
- <span class='line'>2205</span> * });
2213
- <span class='line'>2206</span> * })();
2214
- <span class='line'>2207</span> *
2215
- <span class='line'>2208</span> * &lt;/script>&lt;pre>
2216
- <span class='line'>2209</span> *
2217
- <span class='line'>2210</span> */</span><span class="WHIT">
2218
- <span class='line'>2211</span> </span><span class="NAME">JXG.createView3D</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2219
- <span class='line'>2212</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">view</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr_az</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr_el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr_bank</span><span class="PUNC">,</span><span class="WHIT">
2220
- <span class='line'>2213</span> </span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">w</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">h</span><span class="PUNC">,</span><span class="WHIT">
2221
- <span class='line'>2214</span> </span><span class="WHIT"> </span><span class="NAME">coords</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// llft corner</span><span class="WHIT">
2222
- <span class='line'>2215</span> </span><span class="WHIT"> </span><span class="NAME">size</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// [w, h]</span><span class="WHIT">
2223
- <span class='line'>2216</span>
2224
- <span class='line'>2217</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'view3d'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2225
- <span class='line'>2218</span> </span><span class="WHIT"> </span><span class="NAME">view</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">JXG.View3D</span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2226
- <span class='line'>2219</span> </span><span class="WHIT"> </span><span class="NAME">view.defaultAxes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.create</span><span class="PUNC">(</span><span class="STRN">'axes3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2227
- <span class='line'>2220</span>
2228
- <span class='line'>2221</span> </span><span class="WHIT"> </span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2229
- <span class='line'>2222</span> </span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2230
- <span class='line'>2223</span> </span><span class="WHIT"> </span><span class="NAME">w</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">size</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2231
- <span class='line'>2224</span> </span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">size</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2126
+ <span class='line'>2119</span> * zPlaneRear: {
2127
+ <span class='line'>2120</span> * fillColor: '#fff',
2128
+ <span class='line'>2121</span> * mesh3d: {visible: false}
2129
+ <span class='line'>2122</span> * },
2130
+ <span class='line'>2123</span> * xPlaneFront: {
2131
+ <span class='line'>2124</span> * visible: true,
2132
+ <span class='line'>2125</span> * fillColor: '#fff',
2133
+ <span class='line'>2126</span> * mesh3d: {visible: false}
2134
+ <span class='line'>2127</span> * },
2135
+ <span class='line'>2128</span> * yPlaneFront: {
2136
+ <span class='line'>2129</span> * visible: true,
2137
+ <span class='line'>2130</span> * fillColor: '#fff',
2138
+ <span class='line'>2131</span> * mesh3d: {visible: false}
2139
+ <span class='line'>2132</span> * },
2140
+ <span class='line'>2133</span> * zPlaneFront: {
2141
+ <span class='line'>2134</span> * visible: true,
2142
+ <span class='line'>2135</span> * fillColor: '#fff',
2143
+ <span class='line'>2136</span> * mesh3d: {visible: false}
2144
+ <span class='line'>2137</span> * },
2145
+ <span class='line'>2138</span> *
2146
+ <span class='line'>2139</span> * // No axes on planes
2147
+ <span class='line'>2140</span> * xPlaneRearYAxis: {visible: false},
2148
+ <span class='line'>2141</span> * xPlaneRearZAxis: {visible: false},
2149
+ <span class='line'>2142</span> * yPlaneRearXAxis: {visible: false},
2150
+ <span class='line'>2143</span> * yPlaneRearZAxis: {visible: false},
2151
+ <span class='line'>2144</span> * zPlaneRearXAxis: {visible: false},
2152
+ <span class='line'>2145</span> * zPlaneRearYAxis: {visible: false},
2153
+ <span class='line'>2146</span> * xPlaneFrontYAxis: {visible: false},
2154
+ <span class='line'>2147</span> * xPlaneFrontZAxis: {visible: false},
2155
+ <span class='line'>2148</span> * yPlaneFrontXAxis: {visible: false},
2156
+ <span class='line'>2149</span> * yPlaneFrontZAxis: {visible: false},
2157
+ <span class='line'>2150</span> * zPlaneFrontXAxis: {visible: false},
2158
+ <span class='line'>2151</span> * zPlaneFrontYAxis: {visible: false}
2159
+ <span class='line'>2152</span> *
2160
+ <span class='line'>2153</span> * });
2161
+ <span class='line'>2154</span> *
2162
+ <span class='line'>2155</span> * var curve = view.create('curve3d', [
2163
+ <span class='line'>2156</span> * (t) => (2 + Math.cos(3 * t)) * Math.cos(2 * t),
2164
+ <span class='line'>2157</span> * (t) => (2 + Math.cos(3 * t)) * Math.sin(2 * t),
2165
+ <span class='line'>2158</span> * (t) => Math.sin(3 * t),
2166
+ <span class='line'>2159</span> * [-Math.PI, Math.PI]
2167
+ <span class='line'>2160</span> * ], { strokeWidth: 4 });
2168
+ <span class='line'>2161</span> * })();
2169
+ <span class='line'>2162</span> *
2170
+ <span class='line'>2163</span> * &lt;/script>&lt;pre>
2171
+ <span class='line'>2164</span> *
2172
+ <span class='line'>2165</span> * @example
2173
+ <span class='line'>2166</span> * var bound = [-5, 5];
2174
+ <span class='line'>2167</span> * var view = board.create('view3d',
2175
+ <span class='line'>2168</span> * [[-6, -3],
2176
+ <span class='line'>2169</span> * [8, 8],
2177
+ <span class='line'>2170</span> * [bound, bound, bound]],
2178
+ <span class='line'>2171</span> * {
2179
+ <span class='line'>2172</span> * // Main axes
2180
+ <span class='line'>2173</span> * axesPosition: 'center',
2181
+ <span class='line'>2174</span> * xAxis: { strokeColor: 'blue', strokeWidth: 3},
2182
+ <span class='line'>2175</span> *
2183
+ <span class='line'>2176</span> * // Planes
2184
+ <span class='line'>2177</span> * xPlaneRear: { fillColor: 'yellow', mesh3d: {visible: false}},
2185
+ <span class='line'>2178</span> * yPlaneFront: { visible: true, fillColor: 'blue'},
2186
+ <span class='line'>2179</span> *
2187
+ <span class='line'>2180</span> * // Axes on planes
2188
+ <span class='line'>2181</span> * xPlaneRearYAxis: {strokeColor: 'red'},
2189
+ <span class='line'>2182</span> * xPlaneRearZAxis: {strokeColor: 'red'},
2190
+ <span class='line'>2183</span> *
2191
+ <span class='line'>2184</span> * yPlaneFrontXAxis: {strokeColor: 'blue'},
2192
+ <span class='line'>2185</span> * yPlaneFrontZAxis: {strokeColor: 'blue'},
2193
+ <span class='line'>2186</span> *
2194
+ <span class='line'>2187</span> * zPlaneFrontXAxis: {visible: false},
2195
+ <span class='line'>2188</span> * zPlaneFrontYAxis: {visible: false}
2196
+ <span class='line'>2189</span> * });
2197
+ <span class='line'>2190</span> *
2198
+ <span class='line'>2191</span> * &lt;/pre>&lt;div id="JXGdd06d90e-be5d-4531-8f0b-65fc30b1a7c7" class="jxgbox" style="width: 500px; height: 500px;">&lt;/div>
2199
+ <span class='line'>2192</span> * &lt;script type="text/javascript">
2200
+ <span class='line'>2193</span> * (function() {
2201
+ <span class='line'>2194</span> * var board = JXG.JSXGraph.initBoard('JXGdd06d90e-be5d-4531-8f0b-65fc30b1a7c7',
2202
+ <span class='line'>2195</span> * {boundingbox: [-8, 8, 8,-8], axis: false, pan: {enabled: false}, showcopyright: false, shownavigation: false});
2203
+ <span class='line'>2196</span> * var bound = [-5, 5];
2204
+ <span class='line'>2197</span> * var view = board.create('view3d',
2205
+ <span class='line'>2198</span> * [[-6, -3], [8, 8],
2206
+ <span class='line'>2199</span> * [bound, bound, bound]],
2207
+ <span class='line'>2200</span> * {
2208
+ <span class='line'>2201</span> * // Main axes
2209
+ <span class='line'>2202</span> * axesPosition: 'center',
2210
+ <span class='line'>2203</span> * xAxis: { strokeColor: 'blue', strokeWidth: 3},
2211
+ <span class='line'>2204</span> * // Planes
2212
+ <span class='line'>2205</span> * xPlaneRear: { fillColor: 'yellow', mesh3d: {visible: false}},
2213
+ <span class='line'>2206</span> * yPlaneFront: { visible: true, fillColor: 'blue'},
2214
+ <span class='line'>2207</span> * // Axes on planes
2215
+ <span class='line'>2208</span> * xPlaneRearYAxis: {strokeColor: 'red'},
2216
+ <span class='line'>2209</span> * xPlaneRearZAxis: {strokeColor: 'red'},
2217
+ <span class='line'>2210</span> * yPlaneFrontXAxis: {strokeColor: 'blue'},
2218
+ <span class='line'>2211</span> * yPlaneFrontZAxis: {strokeColor: 'blue'},
2219
+ <span class='line'>2212</span> * zPlaneFrontXAxis: {visible: false},
2220
+ <span class='line'>2213</span> * zPlaneFrontYAxis: {visible: false}
2221
+ <span class='line'>2214</span> * });
2222
+ <span class='line'>2215</span> * })();
2223
+ <span class='line'>2216</span> *
2224
+ <span class='line'>2217</span> * &lt;/script>&lt;pre>
2225
+ <span class='line'>2218</span> *
2226
+ <span class='line'>2219</span> */</span><span class="WHIT">
2227
+ <span class='line'>2220</span> </span><span class="NAME">JXG.createView3D</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2228
+ <span class='line'>2221</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">view</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr_az</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr_el</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr_bank</span><span class="PUNC">,</span><span class="WHIT">
2229
+ <span class='line'>2222</span> </span><span class="WHIT"> </span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">w</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">h</span><span class="PUNC">,</span><span class="WHIT">
2230
+ <span class='line'>2223</span> </span><span class="WHIT"> </span><span class="NAME">coords</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// llft corner</span><span class="WHIT">
2231
+ <span class='line'>2224</span> </span><span class="WHIT"> </span><span class="NAME">size</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// [w, h]</span><span class="WHIT">
2232
2232
  <span class='line'>2225</span>
2233
- <span class='line'>2226</span> </span><span class="WHIT"> </span><span class="NAME">attr_az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'view3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'az'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'slider'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2234
- <span class='line'>2227</span> </span><span class="WHIT"> </span><span class="NAME">attr_az.name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'az'</span><span class="PUNC">;</span><span class="WHIT">
2235
- <span class='line'>2228</span>
2236
- <span class='line'>2229</span> </span><span class="WHIT"> </span><span class="NAME">attr_el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'view3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'el'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'slider'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2237
- <span class='line'>2230</span> </span><span class="WHIT"> </span><span class="NAME">attr_el.name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'el'</span><span class="PUNC">;</span><span class="WHIT">
2238
- <span class='line'>2231</span>
2239
- <span class='line'>2232</span> </span><span class="WHIT"> </span><span class="NAME">attr_bank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'view3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'bank'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'slider'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2240
- <span class='line'>2233</span> </span><span class="WHIT"> </span><span class="NAME">attr_bank.name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'bank'</span><span class="PUNC">;</span><span class="WHIT">
2233
+ <span class='line'>2226</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'view3d'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2234
+ <span class='line'>2227</span> </span><span class="WHIT"> </span><span class="NAME">view</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">JXG.View3D</span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2235
+ <span class='line'>2228</span> </span><span class="WHIT"> </span><span class="NAME">view.defaultAxes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.create</span><span class="PUNC">(</span><span class="STRN">'axes3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2236
+ <span class='line'>2229</span>
2237
+ <span class='line'>2230</span> </span><span class="WHIT"> </span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2238
+ <span class='line'>2231</span> </span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">coords</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2239
+ <span class='line'>2232</span> </span><span class="WHIT"> </span><span class="NAME">w</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">size</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2240
+ <span class='line'>2233</span> </span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">size</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2241
2241
  <span class='line'>2234</span>
2242
- <span class='line'>2235</span> </span><span class="WHIT"> </span><span class="COMM">/**
2243
- <span class='line'>2236</span> * Slider to adapt azimuth angle
2244
- <span class='line'>2237</span> * @name JXG.View3D#az_slide
2245
- <span class='line'>2238</span> * @type {Slider}
2246
- <span class='line'>2239</span> */</span><span class="WHIT">
2247
- <span class='line'>2240</span> </span><span class="WHIT"> </span><span class="NAME">view.az_slide</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="WHIT">
2248
- <span class='line'>2241</span> </span><span class="WHIT"> </span><span class="STRN">'slider'</span><span class="PUNC">,</span><span class="WHIT">
2249
- <span class='line'>2242</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2250
- <span class='line'>2243</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2251
- <span class='line'>2244</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">w</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2252
- <span class='line'>2245</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2253
- <span class='line'>2246</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_az.min</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2254
- <span class='line'>2247</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_az.start</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2255
- <span class='line'>2248</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_az.max</span><span class="PUNC">)</span><span class="WHIT">
2256
- <span class='line'>2249</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT">
2257
- <span class='line'>2250</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2258
- <span class='line'>2251</span> </span><span class="WHIT"> </span><span class="NAME">attr_az</span><span class="WHIT">
2259
- <span class='line'>2252</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2260
- <span class='line'>2253</span> </span><span class="WHIT"> </span><span class="COMM">// view.az_slide.inherits.push(view);</span><span class="WHIT">
2261
- <span class='line'>2254</span> </span><span class="WHIT"> </span><span class="NAME">view.inherits.push</span><span class="PUNC">(</span><span class="NAME">view.az_slide</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2262
- <span class='line'>2255</span>
2263
- <span class='line'>2256</span> </span><span class="WHIT"> </span><span class="COMM">/**
2264
- <span class='line'>2257</span> * Slider to adapt elevation angle
2265
- <span class='line'>2258</span> *
2266
- <span class='line'>2259</span> * @name JXG.View3D#el_slide
2267
- <span class='line'>2260</span> * @type {Slider}
2268
- <span class='line'>2261</span> */</span><span class="WHIT">
2269
- <span class='line'>2262</span> </span><span class="WHIT"> </span><span class="NAME">view.el_slide</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="WHIT">
2270
- <span class='line'>2263</span> </span><span class="WHIT"> </span><span class="STRN">'slider'</span><span class="PUNC">,</span><span class="WHIT">
2271
- <span class='line'>2264</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2272
- <span class='line'>2265</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2273
- <span class='line'>2266</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">h</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2274
- <span class='line'>2267</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2275
- <span class='line'>2268</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_el.min</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2276
- <span class='line'>2269</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_el.start</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2277
- <span class='line'>2270</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_el.max</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT">
2278
- <span class='line'>2271</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2279
- <span class='line'>2272</span> </span><span class="WHIT"> </span><span class="NAME">attr_el</span><span class="WHIT">
2280
- <span class='line'>2273</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2281
- <span class='line'>2274</span> </span><span class="WHIT"> </span><span class="NAME">view.inherits.push</span><span class="PUNC">(</span><span class="NAME">view.el_slide</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2282
- <span class='line'>2275</span>
2283
- <span class='line'>2276</span> </span><span class="WHIT"> </span><span class="COMM">/**
2284
- <span class='line'>2277</span> * Slider to adjust bank angle
2285
- <span class='line'>2278</span> *
2286
- <span class='line'>2279</span> * @name JXG.View3D#bank_slide
2287
- <span class='line'>2280</span> * @type {Slider}
2288
- <span class='line'>2281</span> */</span><span class="WHIT">
2289
- <span class='line'>2282</span> </span><span class="WHIT"> </span><span class="NAME">view.bank_slide</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="WHIT">
2290
- <span class='line'>2283</span> </span><span class="WHIT"> </span><span class="STRN">'slider'</span><span class="PUNC">,</span><span class="WHIT">
2291
- <span class='line'>2284</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2292
- <span class='line'>2285</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2293
- <span class='line'>2286</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">w</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2294
- <span class='line'>2287</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2295
- <span class='line'>2288</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_bank.min</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2296
- <span class='line'>2289</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_bank.start</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2297
- <span class='line'>2290</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_bank.max</span><span class="PUNC">)</span><span class="WHIT">
2298
- <span class='line'>2291</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT">
2299
- <span class='line'>2292</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2300
- <span class='line'>2293</span> </span><span class="WHIT"> </span><span class="NAME">attr_bank</span><span class="WHIT">
2301
- <span class='line'>2294</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2302
- <span class='line'>2295</span> </span><span class="WHIT"> </span><span class="NAME">view.inherits.push</span><span class="PUNC">(</span><span class="NAME">view.bank_slide</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2303
- <span class='line'>2296</span>
2304
- <span class='line'>2297</span> </span><span class="WHIT"> </span><span class="COMM">// Set special infobox attributes of view3d.infobox</span><span class="WHIT">
2305
- <span class='line'>2298</span> </span><span class="WHIT"> </span><span class="NAME">view.board.infobox.setAttribute</span><span class="PUNC">(</span><span class="NAME">attr.infobox</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2306
- <span class='line'>2299</span>
2307
- <span class='line'>2300</span> </span><span class="WHIT"> </span><span class="COMM">// 3d infobox: drag direction and coordinates</span><span class="WHIT">
2308
- <span class='line'>2301</span> </span><span class="WHIT"> </span><span class="NAME">view.board.highlightInfobox</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2309
- <span class='line'>2302</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">foot</span><span class="PUNC">,</span><span class="WHIT">
2310
- <span class='line'>2303</span> </span><span class="WHIT"> </span><span class="NAME">pre</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT">
2311
- <span class='line'>2304</span> </span><span class="WHIT"> </span><span class="NAME">brd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board</span><span class="PUNC">,</span><span class="WHIT">
2312
- <span class='line'>2305</span> </span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox</span><span class="PUNC">,</span><span class="WHIT">
2313
- <span class='line'>2306</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
2314
- <span class='line'>2307</span>
2315
- <span class='line'>2308</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.mode</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">this.BOARD_MODE_DRAG</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2316
- <span class='line'>2309</span> </span><span class="WHIT"> </span><span class="COMM">// Drag direction is only shown during dragging</span><span class="WHIT">
2317
- <span class='line'>2310</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">view.isVerticalDrag</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2318
- <span class='line'>2311</span> </span><span class="WHIT"> </span><span class="NAME">pre</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'&lt;span style="color:black; font-size:200%">\u21C5 &nbsp;&lt;/span>'</span><span class="PUNC">;</span><span class="WHIT">
2319
- <span class='line'>2312</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2320
- <span class='line'>2313</span> </span><span class="WHIT"> </span><span class="NAME">pre</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'&lt;span style="color:black; font-size:200%">\u21C4 &nbsp;&lt;/span>'</span><span class="PUNC">;</span><span class="WHIT">
2321
- <span class='line'>2314</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2322
- <span class='line'>2315</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2323
- <span class='line'>2316</span>
2324
- <span class='line'>2317</span> </span><span class="WHIT"> </span><span class="COMM">// Search 3D parent</span><span class="WHIT">
2325
- <span class='line'>2318</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">el.parents.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2326
- <span class='line'>2319</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">brd.objects</span><span class="PUNC">[</span><span class="NAME">el.parents</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2327
- <span class='line'>2320</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p.is3D</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2328
- <span class='line'>2321</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
2329
- <span class='line'>2322</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2330
- <span class='line'>2323</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2331
- <span class='line'>2324</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2332
- <span class='line'>2325</span> </span><span class="WHIT"> </span><span class="NAME">foot</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p.coords</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2333
- <span class='line'>2326</span> </span><span class="WHIT"> </span><span class="NAME">view._w0</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.innerProduct</span><span class="PUNC">(</span><span class="NAME">view.matrix3D</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">foot</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2242
+ <span class='line'>2235</span> </span><span class="WHIT"> </span><span class="NAME">attr_az</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'view3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'az'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'slider'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2243
+ <span class='line'>2236</span> </span><span class="WHIT"> </span><span class="NAME">attr_az.name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'az'</span><span class="PUNC">;</span><span class="WHIT">
2244
+ <span class='line'>2237</span>
2245
+ <span class='line'>2238</span> </span><span class="WHIT"> </span><span class="NAME">attr_el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'view3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'el'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'slider'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2246
+ <span class='line'>2239</span> </span><span class="WHIT"> </span><span class="NAME">attr_el.name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'el'</span><span class="PUNC">;</span><span class="WHIT">
2247
+ <span class='line'>2240</span>
2248
+ <span class='line'>2241</span> </span><span class="WHIT"> </span><span class="NAME">attr_bank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'view3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'bank'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'slider'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2249
+ <span class='line'>2242</span> </span><span class="WHIT"> </span><span class="NAME">attr_bank.name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'bank'</span><span class="PUNC">;</span><span class="WHIT">
2250
+ <span class='line'>2243</span>
2251
+ <span class='line'>2244</span> </span><span class="WHIT"> </span><span class="COMM">/**
2252
+ <span class='line'>2245</span> * Slider to adapt azimuth angle
2253
+ <span class='line'>2246</span> * @name JXG.View3D#az_slide
2254
+ <span class='line'>2247</span> * @type {Slider}
2255
+ <span class='line'>2248</span> */</span><span class="WHIT">
2256
+ <span class='line'>2249</span> </span><span class="WHIT"> </span><span class="NAME">view.az_slide</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="WHIT">
2257
+ <span class='line'>2250</span> </span><span class="WHIT"> </span><span class="STRN">'slider'</span><span class="PUNC">,</span><span class="WHIT">
2258
+ <span class='line'>2251</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2259
+ <span class='line'>2252</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2260
+ <span class='line'>2253</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">w</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2261
+ <span class='line'>2254</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2262
+ <span class='line'>2255</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_az.min</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2263
+ <span class='line'>2256</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_az.start</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2264
+ <span class='line'>2257</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_az.max</span><span class="PUNC">)</span><span class="WHIT">
2265
+ <span class='line'>2258</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT">
2266
+ <span class='line'>2259</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2267
+ <span class='line'>2260</span> </span><span class="WHIT"> </span><span class="NAME">attr_az</span><span class="WHIT">
2268
+ <span class='line'>2261</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2269
+ <span class='line'>2262</span> </span><span class="WHIT"> </span><span class="COMM">// view.az_slide.inherits.push(view);</span><span class="WHIT">
2270
+ <span class='line'>2263</span> </span><span class="WHIT"> </span><span class="NAME">view.inherits.push</span><span class="PUNC">(</span><span class="NAME">view.az_slide</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2271
+ <span class='line'>2264</span>
2272
+ <span class='line'>2265</span> </span><span class="WHIT"> </span><span class="COMM">/**
2273
+ <span class='line'>2266</span> * Slider to adapt elevation angle
2274
+ <span class='line'>2267</span> *
2275
+ <span class='line'>2268</span> * @name JXG.View3D#el_slide
2276
+ <span class='line'>2269</span> * @type {Slider}
2277
+ <span class='line'>2270</span> */</span><span class="WHIT">
2278
+ <span class='line'>2271</span> </span><span class="WHIT"> </span><span class="NAME">view.el_slide</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="WHIT">
2279
+ <span class='line'>2272</span> </span><span class="WHIT"> </span><span class="STRN">'slider'</span><span class="PUNC">,</span><span class="WHIT">
2280
+ <span class='line'>2273</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2281
+ <span class='line'>2274</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2282
+ <span class='line'>2275</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">h</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2283
+ <span class='line'>2276</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2284
+ <span class='line'>2277</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_el.min</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2285
+ <span class='line'>2278</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_el.start</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2286
+ <span class='line'>2279</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_el.max</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT">
2287
+ <span class='line'>2280</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2288
+ <span class='line'>2281</span> </span><span class="WHIT"> </span><span class="NAME">attr_el</span><span class="WHIT">
2289
+ <span class='line'>2282</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2290
+ <span class='line'>2283</span> </span><span class="WHIT"> </span><span class="NAME">view.inherits.push</span><span class="PUNC">(</span><span class="NAME">view.el_slide</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2291
+ <span class='line'>2284</span>
2292
+ <span class='line'>2285</span> </span><span class="WHIT"> </span><span class="COMM">/**
2293
+ <span class='line'>2286</span> * Slider to adjust bank angle
2294
+ <span class='line'>2287</span> *
2295
+ <span class='line'>2288</span> * @name JXG.View3D#bank_slide
2296
+ <span class='line'>2289</span> * @type {Slider}
2297
+ <span class='line'>2290</span> */</span><span class="WHIT">
2298
+ <span class='line'>2291</span> </span><span class="WHIT"> </span><span class="NAME">view.bank_slide</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">board.create</span><span class="PUNC">(</span><span class="WHIT">
2299
+ <span class='line'>2292</span> </span><span class="WHIT"> </span><span class="STRN">'slider'</span><span class="PUNC">,</span><span class="WHIT">
2300
+ <span class='line'>2293</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2301
+ <span class='line'>2294</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2302
+ <span class='line'>2295</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">w</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2303
+ <span class='line'>2296</span> </span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
2304
+ <span class='line'>2297</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_bank.min</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2305
+ <span class='line'>2298</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_bank.start</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
2306
+ <span class='line'>2299</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">attr_bank.max</span><span class="PUNC">)</span><span class="WHIT">
2307
+ <span class='line'>2300</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT">
2308
+ <span class='line'>2301</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
2309
+ <span class='line'>2302</span> </span><span class="WHIT"> </span><span class="NAME">attr_bank</span><span class="WHIT">
2310
+ <span class='line'>2303</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2311
+ <span class='line'>2304</span> </span><span class="WHIT"> </span><span class="NAME">view.inherits.push</span><span class="PUNC">(</span><span class="NAME">view.bank_slide</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2312
+ <span class='line'>2305</span>
2313
+ <span class='line'>2306</span> </span><span class="WHIT"> </span><span class="COMM">// Set special infobox attributes of view3d.infobox</span><span class="WHIT">
2314
+ <span class='line'>2307</span> </span><span class="WHIT"> </span><span class="COMM">// Using setAttribute() is not possible here, since we have to</span><span class="WHIT">
2315
+ <span class='line'>2308</span> </span><span class="WHIT"> </span><span class="COMM">// avoid a call of board.update().</span><span class="WHIT">
2316
+ <span class='line'>2309</span> </span><span class="WHIT"> </span><span class="NAME">view.board.infobox.visProp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.merge</span><span class="PUNC">(</span><span class="NAME">view.board.infobox.visProp</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr.infobox</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2317
+ <span class='line'>2310</span>
2318
+ <span class='line'>2311</span> </span><span class="WHIT"> </span><span class="COMM">// 3d infobox: drag direction and coordinates</span><span class="WHIT">
2319
+ <span class='line'>2312</span> </span><span class="WHIT"> </span><span class="NAME">view.board.highlightInfobox</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2320
+ <span class='line'>2313</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">foot</span><span class="PUNC">,</span><span class="WHIT">
2321
+ <span class='line'>2314</span> </span><span class="WHIT"> </span><span class="NAME">pre</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT">
2322
+ <span class='line'>2315</span> </span><span class="WHIT"> </span><span class="NAME">brd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board</span><span class="PUNC">,</span><span class="WHIT">
2323
+ <span class='line'>2316</span> </span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox</span><span class="PUNC">,</span><span class="WHIT">
2324
+ <span class='line'>2317</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
2325
+ <span class='line'>2318</span>
2326
+ <span class='line'>2319</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.mode</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">this.BOARD_MODE_DRAG</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2327
+ <span class='line'>2320</span> </span><span class="WHIT"> </span><span class="COMM">// Drag direction is only shown during dragging</span><span class="WHIT">
2328
+ <span class='line'>2321</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">view.isVerticalDrag</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2329
+ <span class='line'>2322</span> </span><span class="WHIT"> </span><span class="NAME">pre</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'&lt;span style="color:black; font-size:200%">\u21C5 &nbsp;&lt;/span>'</span><span class="PUNC">;</span><span class="WHIT">
2330
+ <span class='line'>2323</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2331
+ <span class='line'>2324</span> </span><span class="WHIT"> </span><span class="NAME">pre</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'&lt;span style="color:black; font-size:200%">\u21C4 &nbsp;&lt;/span>'</span><span class="PUNC">;</span><span class="WHIT">
2332
+ <span class='line'>2325</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2333
+ <span class='line'>2326</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2334
2334
  <span class='line'>2327</span>
2335
- <span class='line'>2328</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.project2DTo3DPlane</span><span class="PUNC">(</span><span class="NAME">p.element2D</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">foot</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2336
- <span class='line'>2329</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">view.isInCube</span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2337
- <span class='line'>2330</span> </span><span class="WHIT"> </span><span class="NAME">view.board.highlightCustomInfobox</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2338
- <span class='line'>2331</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
2339
- <span class='line'>2332</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2340
- <span class='line'>2333</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">p.visProp.infoboxdigits</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2341
- <span class='line'>2334</span> </span><span class="WHIT"> </span><span class="NAME">infobox</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.board.infobox</span><span class="PUNC">;</span><span class="WHIT">
2342
- <span class='line'>2335</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'auto'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2343
- <span class='line'>2336</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">infobox.useLocale</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2344
- <span class='line'>2337</span> </span><span class="WHIT"> </span><span class="NAME">arr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">pre</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'('</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox.formatNumberLocale</span><span class="PUNC">(</span><span class="NAME">p.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox.formatNumberLocale</span><span class="PUNC">(</span><span class="NAME">p.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox.formatNumberLocale</span><span class="PUNC">(</span><span class="NAME">p.Z</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2345
- <span class='line'>2338</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2346
- <span class='line'>2339</span> </span><span class="WHIT"> </span><span class="NAME">arr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">pre</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'('</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Type.autoDigits</span><span class="PUNC">(</span><span class="NAME">p.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Type.autoDigits</span><span class="PUNC">(</span><span class="NAME">p.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Type.autoDigits</span><span class="PUNC">(</span><span class="NAME">p.Z</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2347
- <span class='line'>2340</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2348
- <span class='line'>2341</span>
2349
- <span class='line'>2342</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2350
- <span class='line'>2343</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">infobox.useLocale</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2351
- <span class='line'>2344</span> </span><span class="WHIT"> </span><span class="NAME">arr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">pre</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'('</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox.formatNumberLocale</span><span class="PUNC">(</span><span class="NAME">p.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox.formatNumberLocale</span><span class="PUNC">(</span><span class="NAME">p.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox.formatNumberLocale</span><span class="PUNC">(</span><span class="NAME">p.Z</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2352
- <span class='line'>2345</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2353
- <span class='line'>2346</span> </span><span class="WHIT"> </span><span class="NAME">arr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">pre</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'('</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Type.toFixed</span><span class="PUNC">(</span><span class="NAME">p.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Type.toFixed</span><span class="PUNC">(</span><span class="NAME">p.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Type.toFixed</span><span class="PUNC">(</span><span class="NAME">p.Z</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2354
- <span class='line'>2347</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2355
- <span class='line'>2348</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2356
- <span class='line'>2349</span> </span><span class="WHIT"> </span><span class="NAME">view.board.highlightCustomInfobox</span><span class="PUNC">(</span><span class="NAME">arr.join</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2357
- <span class='line'>2350</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2358
- <span class='line'>2351</span> </span><span class="WHIT"> </span><span class="NAME">view.board.highlightCustomInfobox</span><span class="PUNC">(</span><span class="STRN">'('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">', '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2359
- <span class='line'>2352</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2360
- <span class='line'>2353</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2361
- <span class='line'>2354</span>
2362
- <span class='line'>2355</span>
2363
- <span class='line'>2356</span> </span><span class="WHIT"> </span><span class="COMM">// Hack needed to enable addEvent for view3D:</span><span class="WHIT">
2364
- <span class='line'>2357</span> </span><span class="WHIT"> </span><span class="NAME">view.BOARD_MODE_NONE</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0x0000</span><span class="PUNC">;</span><span class="WHIT">
2365
- <span class='line'>2358</span>
2366
- <span class='line'>2359</span> </span><span class="WHIT"> </span><span class="COMM">// Add events for the keyboard navigation</span><span class="WHIT">
2367
- <span class='line'>2360</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">board.containerObj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'keydown'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2368
- <span class='line'>2361</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="PUNC">,</span><span class="WHIT">
2369
- <span class='line'>2362</span> </span><span class="WHIT"> </span><span class="NAME">catchEvt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
2370
- <span class='line'>2363</span>
2371
- <span class='line'>2364</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">view.visProp.el.keyboard.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
2372
- <span class='line'>2365</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowUp'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowDown'</span><span class="PUNC">)</span><span class="WHIT">
2373
- <span class='line'>2366</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2374
- <span class='line'>2367</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">view.visProp.el.keyboard.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2375
- <span class='line'>2368</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2376
- <span class='line'>2369</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">event.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2377
- <span class='line'>2370</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">event.ctrlKey</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2378
- <span class='line'>2371</span> </span><span class="WHIT"> </span><span class="NAME">view._elEventHandler</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2379
- <span class='line'>2372</span> </span><span class="WHIT"> </span><span class="NAME">catchEvt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2380
- <span class='line'>2373</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2381
- <span class='line'>2374</span>
2382
- <span class='line'>2375</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2383
- <span class='line'>2376</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">view.visProp.el.keyboard.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
2384
- <span class='line'>2377</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowLeft'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowRight'</span><span class="PUNC">)</span><span class="WHIT">
2385
- <span class='line'>2378</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2386
- <span class='line'>2379</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">view.visProp.az.keyboard.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2387
- <span class='line'>2380</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2388
- <span class='line'>2381</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">event.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2389
- <span class='line'>2382</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">event.ctrlKey</span><span class="PUNC">)</span><span class="WHIT">
2390
- <span class='line'>2383</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2391
- <span class='line'>2384</span> </span><span class="WHIT"> </span><span class="NAME">view._azEventHandler</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2392
- <span class='line'>2385</span> </span><span class="WHIT"> </span><span class="NAME">catchEvt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2393
- <span class='line'>2386</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2394
- <span class='line'>2387</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2395
- <span class='line'>2388</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">view.visProp.bank.keyboard.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">','</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'&lt;'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'.'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2396
- <span class='line'>2389</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">view.visProp.bank.keyboard.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2397
- <span class='line'>2390</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">event.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">event.ctrlKey</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2398
- <span class='line'>2391</span> </span><span class="WHIT"> </span><span class="NAME">view._bankEventHandler</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2399
- <span class='line'>2392</span> </span><span class="WHIT"> </span><span class="NAME">catchEvt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2400
- <span class='line'>2393</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2401
- <span class='line'>2394</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2402
- <span class='line'>2395</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'PageUp'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2403
- <span class='line'>2396</span> </span><span class="WHIT"> </span><span class="NAME">view.nextView</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2404
- <span class='line'>2397</span> </span><span class="WHIT"> </span><span class="NAME">catchEvt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2405
- <span class='line'>2398</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'PageDown'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2406
- <span class='line'>2399</span> </span><span class="WHIT"> </span><span class="NAME">view.previousView</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2407
- <span class='line'>2400</span> </span><span class="WHIT"> </span><span class="NAME">catchEvt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2408
- <span class='line'>2401</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2409
- <span class='line'>2402</span>
2410
- <span class='line'>2403</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">catchEvt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2411
- <span class='line'>2404</span> </span><span class="WHIT"> </span><span class="COMM">// We stop event handling only in the case if the keypress could be</span><span class="WHIT">
2412
- <span class='line'>2405</span> </span><span class="WHIT"> </span><span class="COMM">// used for the 3D view. If this is not done, input fields et al</span><span class="WHIT">
2413
- <span class='line'>2406</span> </span><span class="WHIT"> </span><span class="COMM">// can not be used any more.</span><span class="WHIT">
2414
- <span class='line'>2407</span> </span><span class="WHIT"> </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2415
- <span class='line'>2408</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2416
- <span class='line'>2409</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">view</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2417
- <span class='line'>2410</span>
2418
- <span class='line'>2411</span> </span><span class="WHIT"> </span><span class="COMM">// Add events for the pointer navigation</span><span class="WHIT">
2419
- <span class='line'>2412</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">board.containerObj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointerdown'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">view.pointerDownHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">view</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2420
- <span class='line'>2413</span>
2421
- <span class='line'>2414</span> </span><span class="WHIT"> </span><span class="COMM">// Initialize view rotation matrix</span><span class="WHIT">
2422
- <span class='line'>2415</span> </span><span class="WHIT"> </span><span class="NAME">view.getAnglesFromSliders</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2423
- <span class='line'>2416</span> </span><span class="WHIT"> </span><span class="NAME">view.matrix3DRot</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.getRotationFromAngles</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2424
- <span class='line'>2417</span>
2425
- <span class='line'>2418</span> </span><span class="WHIT"> </span><span class="COMM">// override angle slider bounds when trackball navigation is enabled</span><span class="WHIT">
2426
- <span class='line'>2419</span> </span><span class="WHIT"> </span><span class="NAME">view.updateAngleSliderBounds</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2335
+ <span class='line'>2328</span> </span><span class="WHIT"> </span><span class="COMM">// Search 3D parent</span><span class="WHIT">
2336
+ <span class='line'>2329</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">el.parents.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2337
+ <span class='line'>2330</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">brd.objects</span><span class="PUNC">[</span><span class="NAME">el.parents</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2338
+ <span class='line'>2331</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p.is3D</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2339
+ <span class='line'>2332</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
2340
+ <span class='line'>2333</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2341
+ <span class='line'>2334</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2342
+ <span class='line'>2335</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2343
+ <span class='line'>2336</span> </span><span class="WHIT"> </span><span class="NAME">foot</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p.coords</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2344
+ <span class='line'>2337</span> </span><span class="WHIT"> </span><span class="NAME">view._w0</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.innerProduct</span><span class="PUNC">(</span><span class="NAME">view.matrix3D</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">foot</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2345
+ <span class='line'>2338</span>
2346
+ <span class='line'>2339</span> </span><span class="WHIT"> </span><span class="NAME">c3d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.project2DTo3DPlane</span><span class="PUNC">(</span><span class="NAME">p.element2D</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">foot</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2347
+ <span class='line'>2340</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">view.isInCube</span><span class="PUNC">(</span><span class="NAME">c3d</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2348
+ <span class='line'>2341</span> </span><span class="WHIT"> </span><span class="NAME">view.board.highlightCustomInfobox</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2349
+ <span class='line'>2342</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
2350
+ <span class='line'>2343</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2351
+ <span class='line'>2344</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">p.visProp.infoboxdigits</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2352
+ <span class='line'>2345</span> </span><span class="WHIT"> </span><span class="NAME">infobox</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.board.infobox</span><span class="PUNC">;</span><span class="WHIT">
2353
+ <span class='line'>2346</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'auto'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2354
+ <span class='line'>2347</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">infobox.useLocale</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2355
+ <span class='line'>2348</span> </span><span class="WHIT"> </span><span class="NAME">arr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">pre</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'('</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox.formatNumberLocale</span><span class="PUNC">(</span><span class="NAME">p.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox.formatNumberLocale</span><span class="PUNC">(</span><span class="NAME">p.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox.formatNumberLocale</span><span class="PUNC">(</span><span class="NAME">p.Z</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2356
+ <span class='line'>2349</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2357
+ <span class='line'>2350</span> </span><span class="WHIT"> </span><span class="NAME">arr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">pre</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'('</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Type.autoDigits</span><span class="PUNC">(</span><span class="NAME">p.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Type.autoDigits</span><span class="PUNC">(</span><span class="NAME">p.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Type.autoDigits</span><span class="PUNC">(</span><span class="NAME">p.Z</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2358
+ <span class='line'>2351</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2359
+ <span class='line'>2352</span>
2360
+ <span class='line'>2353</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2361
+ <span class='line'>2354</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">infobox.useLocale</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2362
+ <span class='line'>2355</span> </span><span class="WHIT"> </span><span class="NAME">arr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">pre</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'('</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox.formatNumberLocale</span><span class="PUNC">(</span><span class="NAME">p.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox.formatNumberLocale</span><span class="PUNC">(</span><span class="NAME">p.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">infobox.formatNumberLocale</span><span class="PUNC">(</span><span class="NAME">p.Z</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2363
+ <span class='line'>2356</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2364
+ <span class='line'>2357</span> </span><span class="WHIT"> </span><span class="NAME">arr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">pre</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'('</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Type.toFixed</span><span class="PUNC">(</span><span class="NAME">p.X</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Type.toFixed</span><span class="PUNC">(</span><span class="NAME">p.Y</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' | '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Type.toFixed</span><span class="PUNC">(</span><span class="NAME">p.Z</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
2365
+ <span class='line'>2358</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2366
+ <span class='line'>2359</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2367
+ <span class='line'>2360</span> </span><span class="WHIT"> </span><span class="NAME">view.board.highlightCustomInfobox</span><span class="PUNC">(</span><span class="NAME">arr.join</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2368
+ <span class='line'>2361</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2369
+ <span class='line'>2362</span> </span><span class="WHIT"> </span><span class="NAME">view.board.highlightCustomInfobox</span><span class="PUNC">(</span><span class="STRN">'('</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">x</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">', '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">')'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2370
+ <span class='line'>2363</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2371
+ <span class='line'>2364</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2372
+ <span class='line'>2365</span>
2373
+ <span class='line'>2366</span> </span><span class="WHIT"> </span><span class="COMM">// Hack needed to enable addEvent for view3D:</span><span class="WHIT">
2374
+ <span class='line'>2367</span> </span><span class="WHIT"> </span><span class="NAME">view.BOARD_MODE_NONE</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0x0000</span><span class="PUNC">;</span><span class="WHIT">
2375
+ <span class='line'>2368</span>
2376
+ <span class='line'>2369</span> </span><span class="WHIT"> </span><span class="COMM">// Add events for the keyboard navigation</span><span class="WHIT">
2377
+ <span class='line'>2370</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">board.containerObj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'keydown'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2378
+ <span class='line'>2371</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="PUNC">,</span><span class="WHIT">
2379
+ <span class='line'>2372</span> </span><span class="WHIT"> </span><span class="NAME">catchEvt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
2380
+ <span class='line'>2373</span>
2381
+ <span class='line'>2374</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">view.visProp.el.keyboard.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
2382
+ <span class='line'>2375</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowUp'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowDown'</span><span class="PUNC">)</span><span class="WHIT">
2383
+ <span class='line'>2376</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2384
+ <span class='line'>2377</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">view.visProp.el.keyboard.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2385
+ <span class='line'>2378</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2386
+ <span class='line'>2379</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">event.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2387
+ <span class='line'>2380</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">event.ctrlKey</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2388
+ <span class='line'>2381</span> </span><span class="WHIT"> </span><span class="NAME">view._elEventHandler</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2389
+ <span class='line'>2382</span> </span><span class="WHIT"> </span><span class="NAME">catchEvt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2390
+ <span class='line'>2383</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2391
+ <span class='line'>2384</span>
2392
+ <span class='line'>2385</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2393
+ <span class='line'>2386</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">view.visProp.el.keyboard.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
2394
+ <span class='line'>2387</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowLeft'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'ArrowRight'</span><span class="PUNC">)</span><span class="WHIT">
2395
+ <span class='line'>2388</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2396
+ <span class='line'>2389</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">view.visProp.az.keyboard.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2397
+ <span class='line'>2390</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2398
+ <span class='line'>2391</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">event.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
2399
+ <span class='line'>2392</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">event.ctrlKey</span><span class="PUNC">)</span><span class="WHIT">
2400
+ <span class='line'>2393</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2401
+ <span class='line'>2394</span> </span><span class="WHIT"> </span><span class="NAME">view._azEventHandler</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2402
+ <span class='line'>2395</span> </span><span class="WHIT"> </span><span class="NAME">catchEvt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2403
+ <span class='line'>2396</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2404
+ <span class='line'>2397</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2405
+ <span class='line'>2398</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">view.visProp.bank.keyboard.enabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">','</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'&lt;'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'.'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'>'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2406
+ <span class='line'>2399</span> </span><span class="WHIT"> </span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">view.visProp.bank.keyboard.key</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2407
+ <span class='line'>2400</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'none'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'shift'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">event.shiftKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">neededKey.indexOf</span><span class="PUNC">(</span><span class="STRN">'ctrl'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">event.ctrlKey</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2408
+ <span class='line'>2401</span> </span><span class="WHIT"> </span><span class="NAME">view._bankEventHandler</span><span class="PUNC">(</span><span class="NAME">event</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2409
+ <span class='line'>2402</span> </span><span class="WHIT"> </span><span class="NAME">catchEvt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2410
+ <span class='line'>2403</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2411
+ <span class='line'>2404</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2412
+ <span class='line'>2405</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'PageUp'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2413
+ <span class='line'>2406</span> </span><span class="WHIT"> </span><span class="NAME">view.nextView</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2414
+ <span class='line'>2407</span> </span><span class="WHIT"> </span><span class="NAME">catchEvt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2415
+ <span class='line'>2408</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">event.key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'PageDown'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2416
+ <span class='line'>2409</span> </span><span class="WHIT"> </span><span class="NAME">view.previousView</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2417
+ <span class='line'>2410</span> </span><span class="WHIT"> </span><span class="NAME">catchEvt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
2418
+ <span class='line'>2411</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2419
+ <span class='line'>2412</span>
2420
+ <span class='line'>2413</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">catchEvt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2421
+ <span class='line'>2414</span> </span><span class="WHIT"> </span><span class="COMM">// We stop event handling only in the case if the keypress could be</span><span class="WHIT">
2422
+ <span class='line'>2415</span> </span><span class="WHIT"> </span><span class="COMM">// used for the 3D view. If this is not done, input fields et al</span><span class="WHIT">
2423
+ <span class='line'>2416</span> </span><span class="WHIT"> </span><span class="COMM">// can not be used any more.</span><span class="WHIT">
2424
+ <span class='line'>2417</span> </span><span class="WHIT"> </span><span class="NAME">event.preventDefault</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2425
+ <span class='line'>2418</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2426
+ <span class='line'>2419</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">view</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2427
2427
  <span class='line'>2420</span>
2428
- <span class='line'>2421</span> </span><span class="WHIT"> </span><span class="NAME">view.board.update</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2429
- <span class='line'>2422</span>
2430
- <span class='line'>2423</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">view</span><span class="PUNC">;</span><span class="WHIT">
2431
- <span class='line'>2424</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2432
- <span class='line'>2425</span>
2433
- <span class='line'>2426</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"view3d"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createView3D</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2428
+ <span class='line'>2421</span> </span><span class="WHIT"> </span><span class="COMM">// Add events for the pointer navigation</span><span class="WHIT">
2429
+ <span class='line'>2422</span> </span><span class="WHIT"> </span><span class="NAME">Env.addEvent</span><span class="PUNC">(</span><span class="NAME">board.containerObj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'pointerdown'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">view.pointerDownHandler</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">view</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2430
+ <span class='line'>2423</span>
2431
+ <span class='line'>2424</span> </span><span class="WHIT"> </span><span class="COMM">// Initialize view rotation matrix</span><span class="WHIT">
2432
+ <span class='line'>2425</span> </span><span class="WHIT"> </span><span class="NAME">view.getAnglesFromSliders</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2433
+ <span class='line'>2426</span> </span><span class="WHIT"> </span><span class="NAME">view.matrix3DRot</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.getRotationFromAngles</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2434
2434
  <span class='line'>2427</span>
2435
- <span class='line'>2428</span> </span><span class="NAME">export</span><span class="WHIT"> </span><span class="KEYW">default</span><span class="WHIT"> </span><span class="NAME">JXG.View3D</span><span class="PUNC">;</span><span class="WHIT">
2436
- <span class='line'>2429</span> </span></pre></body></html>
2435
+ <span class='line'>2428</span> </span><span class="WHIT"> </span><span class="COMM">// override angle slider bounds when trackball navigation is enabled</span><span class="WHIT">
2436
+ <span class='line'>2429</span> </span><span class="WHIT"> </span><span class="NAME">view.updateAngleSliderBounds</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2437
+ <span class='line'>2430</span>
2438
+ <span class='line'>2431</span> </span><span class="WHIT"> </span><span class="NAME">view.board.update</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2439
+ <span class='line'>2432</span>
2440
+ <span class='line'>2433</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">view</span><span class="PUNC">;</span><span class="WHIT">
2441
+ <span class='line'>2434</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
2442
+ <span class='line'>2435</span>
2443
+ <span class='line'>2436</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">"view3d"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createView3D</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2444
+ <span class='line'>2437</span>
2445
+ <span class='line'>2438</span> </span><span class="NAME">export</span><span class="WHIT"> </span><span class="KEYW">default</span><span class="WHIT"> </span><span class="NAME">JXG.View3D</span><span class="PUNC">;</span><span class="WHIT">
2446
+ <span class='line'>2439</span> </span></pre></body></html>