vispy 0.15.0__cp313-cp313-win_amd64.whl

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.

Potentially problematic release.


This version of vispy might be problematic. Click here for more details.

Files changed (521) hide show
  1. vispy/__init__.py +33 -0
  2. vispy/app/__init__.py +15 -0
  3. vispy/app/_default_app.py +76 -0
  4. vispy/app/_detect_eventloop.py +148 -0
  5. vispy/app/application.py +263 -0
  6. vispy/app/backends/__init__.py +52 -0
  7. vispy/app/backends/_egl.py +264 -0
  8. vispy/app/backends/_glfw.py +513 -0
  9. vispy/app/backends/_jupyter_rfb.py +278 -0
  10. vispy/app/backends/_offscreen_util.py +121 -0
  11. vispy/app/backends/_osmesa.py +235 -0
  12. vispy/app/backends/_pyglet.py +451 -0
  13. vispy/app/backends/_pyqt4.py +36 -0
  14. vispy/app/backends/_pyqt5.py +36 -0
  15. vispy/app/backends/_pyqt6.py +40 -0
  16. vispy/app/backends/_pyside.py +37 -0
  17. vispy/app/backends/_pyside2.py +52 -0
  18. vispy/app/backends/_pyside6.py +53 -0
  19. vispy/app/backends/_qt.py +1003 -0
  20. vispy/app/backends/_sdl2.py +444 -0
  21. vispy/app/backends/_template.py +244 -0
  22. vispy/app/backends/_test.py +8 -0
  23. vispy/app/backends/_tk.py +800 -0
  24. vispy/app/backends/_wx.py +476 -0
  25. vispy/app/backends/tests/__init__.py +0 -0
  26. vispy/app/backends/tests/test_offscreen_util.py +52 -0
  27. vispy/app/backends/tests/test_rfb.py +77 -0
  28. vispy/app/base.py +294 -0
  29. vispy/app/canvas.py +828 -0
  30. vispy/app/qt.py +92 -0
  31. vispy/app/tests/__init__.py +0 -0
  32. vispy/app/tests/qt-designer.ui +58 -0
  33. vispy/app/tests/test_app.py +442 -0
  34. vispy/app/tests/test_backends.py +164 -0
  35. vispy/app/tests/test_canvas.py +122 -0
  36. vispy/app/tests/test_context.py +92 -0
  37. vispy/app/tests/test_qt.py +47 -0
  38. vispy/app/tests/test_simultaneous.py +134 -0
  39. vispy/app/timer.py +174 -0
  40. vispy/color/__init__.py +17 -0
  41. vispy/color/_color_dict.py +193 -0
  42. vispy/color/color_array.py +447 -0
  43. vispy/color/color_space.py +181 -0
  44. vispy/color/colormap.py +1213 -0
  45. vispy/color/tests/__init__.py +0 -0
  46. vispy/color/tests/test_color.py +378 -0
  47. vispy/conftest.py +12 -0
  48. vispy/ext/__init__.py +0 -0
  49. vispy/ext/cocoapy.py +1522 -0
  50. vispy/ext/cubehelix.py +138 -0
  51. vispy/ext/egl.py +375 -0
  52. vispy/ext/fontconfig.py +118 -0
  53. vispy/ext/gdi32plus.py +206 -0
  54. vispy/ext/osmesa.py +105 -0
  55. vispy/geometry/__init__.py +23 -0
  56. vispy/geometry/_triangulation_debugger.py +171 -0
  57. vispy/geometry/calculations.py +162 -0
  58. vispy/geometry/curves.py +399 -0
  59. vispy/geometry/generation.py +643 -0
  60. vispy/geometry/isocurve.py +175 -0
  61. vispy/geometry/isosurface.py +465 -0
  62. vispy/geometry/meshdata.py +700 -0
  63. vispy/geometry/normals.py +78 -0
  64. vispy/geometry/parametric.py +56 -0
  65. vispy/geometry/polygon.py +137 -0
  66. vispy/geometry/rect.py +210 -0
  67. vispy/geometry/tests/__init__.py +0 -0
  68. vispy/geometry/tests/test_calculations.py +23 -0
  69. vispy/geometry/tests/test_generation.py +56 -0
  70. vispy/geometry/tests/test_meshdata.py +106 -0
  71. vispy/geometry/tests/test_triangulation.py +594 -0
  72. vispy/geometry/torusknot.py +142 -0
  73. vispy/geometry/triangulation.py +876 -0
  74. vispy/gloo/__init__.py +56 -0
  75. vispy/gloo/buffer.py +505 -0
  76. vispy/gloo/context.py +272 -0
  77. vispy/gloo/framebuffer.py +257 -0
  78. vispy/gloo/gl/__init__.py +234 -0
  79. vispy/gloo/gl/_constants.py +332 -0
  80. vispy/gloo/gl/_es2.py +986 -0
  81. vispy/gloo/gl/_gl2.py +1365 -0
  82. vispy/gloo/gl/_proxy.py +499 -0
  83. vispy/gloo/gl/_pyopengl2.py +362 -0
  84. vispy/gloo/gl/dummy.py +24 -0
  85. vispy/gloo/gl/es2.py +62 -0
  86. vispy/gloo/gl/gl2.py +98 -0
  87. vispy/gloo/gl/glplus.py +168 -0
  88. vispy/gloo/gl/pyopengl2.py +97 -0
  89. vispy/gloo/gl/tests/__init__.py +0 -0
  90. vispy/gloo/gl/tests/test_basics.py +282 -0
  91. vispy/gloo/gl/tests/test_functionality.py +568 -0
  92. vispy/gloo/gl/tests/test_names.py +246 -0
  93. vispy/gloo/gl/tests/test_use.py +71 -0
  94. vispy/gloo/glir.py +1824 -0
  95. vispy/gloo/globject.py +101 -0
  96. vispy/gloo/preprocessor.py +67 -0
  97. vispy/gloo/program.py +543 -0
  98. vispy/gloo/tests/__init__.py +0 -0
  99. vispy/gloo/tests/test_buffer.py +558 -0
  100. vispy/gloo/tests/test_context.py +119 -0
  101. vispy/gloo/tests/test_framebuffer.py +195 -0
  102. vispy/gloo/tests/test_glir.py +307 -0
  103. vispy/gloo/tests/test_globject.py +35 -0
  104. vispy/gloo/tests/test_program.py +302 -0
  105. vispy/gloo/tests/test_texture.py +732 -0
  106. vispy/gloo/tests/test_use_gloo.py +187 -0
  107. vispy/gloo/tests/test_util.py +60 -0
  108. vispy/gloo/tests/test_wrappers.py +261 -0
  109. vispy/gloo/texture.py +1046 -0
  110. vispy/gloo/util.py +129 -0
  111. vispy/gloo/wrappers.py +762 -0
  112. vispy/glsl/__init__.py +42 -0
  113. vispy/glsl/antialias/antialias.glsl +7 -0
  114. vispy/glsl/antialias/cap-butt.glsl +31 -0
  115. vispy/glsl/antialias/cap-round.glsl +29 -0
  116. vispy/glsl/antialias/cap-square.glsl +30 -0
  117. vispy/glsl/antialias/cap-triangle-in.glsl +30 -0
  118. vispy/glsl/antialias/cap-triangle-out.glsl +30 -0
  119. vispy/glsl/antialias/cap.glsl +67 -0
  120. vispy/glsl/antialias/caps.glsl +67 -0
  121. vispy/glsl/antialias/filled.glsl +50 -0
  122. vispy/glsl/antialias/outline.glsl +40 -0
  123. vispy/glsl/antialias/stroke.glsl +43 -0
  124. vispy/glsl/arrowheads/angle.glsl +99 -0
  125. vispy/glsl/arrowheads/arrowheads.frag +60 -0
  126. vispy/glsl/arrowheads/arrowheads.glsl +12 -0
  127. vispy/glsl/arrowheads/arrowheads.vert +83 -0
  128. vispy/glsl/arrowheads/curved.glsl +48 -0
  129. vispy/glsl/arrowheads/inhibitor.glsl +26 -0
  130. vispy/glsl/arrowheads/stealth.glsl +46 -0
  131. vispy/glsl/arrowheads/triangle.glsl +97 -0
  132. vispy/glsl/arrowheads/util.glsl +13 -0
  133. vispy/glsl/arrows/angle-30.glsl +12 -0
  134. vispy/glsl/arrows/angle-60.glsl +12 -0
  135. vispy/glsl/arrows/angle-90.glsl +12 -0
  136. vispy/glsl/arrows/arrow.frag +39 -0
  137. vispy/glsl/arrows/arrow.vert +49 -0
  138. vispy/glsl/arrows/arrows.glsl +17 -0
  139. vispy/glsl/arrows/common.glsl +187 -0
  140. vispy/glsl/arrows/curved.glsl +63 -0
  141. vispy/glsl/arrows/stealth.glsl +50 -0
  142. vispy/glsl/arrows/triangle-30.glsl +12 -0
  143. vispy/glsl/arrows/triangle-60.glsl +12 -0
  144. vispy/glsl/arrows/triangle-90.glsl +12 -0
  145. vispy/glsl/arrows/util.glsl +98 -0
  146. vispy/glsl/build_spatial_filters.py +660 -0
  147. vispy/glsl/collections/agg-fast-path.frag +20 -0
  148. vispy/glsl/collections/agg-fast-path.vert +78 -0
  149. vispy/glsl/collections/agg-glyph.frag +60 -0
  150. vispy/glsl/collections/agg-glyph.vert +33 -0
  151. vispy/glsl/collections/agg-marker.frag +35 -0
  152. vispy/glsl/collections/agg-marker.vert +48 -0
  153. vispy/glsl/collections/agg-path.frag +55 -0
  154. vispy/glsl/collections/agg-path.vert +166 -0
  155. vispy/glsl/collections/agg-point.frag +21 -0
  156. vispy/glsl/collections/agg-point.vert +35 -0
  157. vispy/glsl/collections/agg-segment.frag +32 -0
  158. vispy/glsl/collections/agg-segment.vert +75 -0
  159. vispy/glsl/collections/marker.frag +38 -0
  160. vispy/glsl/collections/marker.vert +48 -0
  161. vispy/glsl/collections/raw-path.frag +15 -0
  162. vispy/glsl/collections/raw-path.vert +24 -0
  163. vispy/glsl/collections/raw-point.frag +14 -0
  164. vispy/glsl/collections/raw-point.vert +31 -0
  165. vispy/glsl/collections/raw-segment.frag +18 -0
  166. vispy/glsl/collections/raw-segment.vert +26 -0
  167. vispy/glsl/collections/raw-triangle.frag +13 -0
  168. vispy/glsl/collections/raw-triangle.vert +26 -0
  169. vispy/glsl/collections/sdf-glyph-ticks.vert +69 -0
  170. vispy/glsl/collections/sdf-glyph.frag +80 -0
  171. vispy/glsl/collections/sdf-glyph.vert +59 -0
  172. vispy/glsl/collections/tick-labels.vert +71 -0
  173. vispy/glsl/colormaps/autumn.glsl +20 -0
  174. vispy/glsl/colormaps/blues.glsl +20 -0
  175. vispy/glsl/colormaps/color-space.glsl +17 -0
  176. vispy/glsl/colormaps/colormaps.glsl +24 -0
  177. vispy/glsl/colormaps/cool.glsl +20 -0
  178. vispy/glsl/colormaps/fire.glsl +21 -0
  179. vispy/glsl/colormaps/gray.glsl +20 -0
  180. vispy/glsl/colormaps/greens.glsl +20 -0
  181. vispy/glsl/colormaps/hot.glsl +22 -0
  182. vispy/glsl/colormaps/ice.glsl +20 -0
  183. vispy/glsl/colormaps/icefire.glsl +23 -0
  184. vispy/glsl/colormaps/parse.py +40 -0
  185. vispy/glsl/colormaps/reds.glsl +20 -0
  186. vispy/glsl/colormaps/spring.glsl +20 -0
  187. vispy/glsl/colormaps/summer.glsl +20 -0
  188. vispy/glsl/colormaps/user.glsl +22 -0
  189. vispy/glsl/colormaps/util.glsl +41 -0
  190. vispy/glsl/colormaps/wheel.glsl +21 -0
  191. vispy/glsl/colormaps/winter.glsl +20 -0
  192. vispy/glsl/lines/agg.frag +320 -0
  193. vispy/glsl/lines/agg.vert +241 -0
  194. vispy/glsl/markers/arrow.glsl +12 -0
  195. vispy/glsl/markers/asterisk.glsl +16 -0
  196. vispy/glsl/markers/chevron.glsl +14 -0
  197. vispy/glsl/markers/clover.glsl +20 -0
  198. vispy/glsl/markers/club.glsl +31 -0
  199. vispy/glsl/markers/cross.glsl +17 -0
  200. vispy/glsl/markers/diamond.glsl +12 -0
  201. vispy/glsl/markers/disc.glsl +9 -0
  202. vispy/glsl/markers/ellipse.glsl +67 -0
  203. vispy/glsl/markers/hbar.glsl +9 -0
  204. vispy/glsl/markers/heart.glsl +15 -0
  205. vispy/glsl/markers/infinity.glsl +15 -0
  206. vispy/glsl/markers/marker-sdf.frag +74 -0
  207. vispy/glsl/markers/marker-sdf.vert +41 -0
  208. vispy/glsl/markers/marker.frag +36 -0
  209. vispy/glsl/markers/marker.vert +46 -0
  210. vispy/glsl/markers/markers.glsl +24 -0
  211. vispy/glsl/markers/pin.glsl +18 -0
  212. vispy/glsl/markers/ring.glsl +11 -0
  213. vispy/glsl/markers/spade.glsl +28 -0
  214. vispy/glsl/markers/square.glsl +10 -0
  215. vispy/glsl/markers/tag.glsl +11 -0
  216. vispy/glsl/markers/triangle.glsl +14 -0
  217. vispy/glsl/markers/vbar.glsl +9 -0
  218. vispy/glsl/math/circle-through-2-points.glsl +30 -0
  219. vispy/glsl/math/constants.glsl +48 -0
  220. vispy/glsl/math/double.glsl +114 -0
  221. vispy/glsl/math/functions.glsl +20 -0
  222. vispy/glsl/math/point-to-line-distance.glsl +31 -0
  223. vispy/glsl/math/point-to-line-projection.glsl +29 -0
  224. vispy/glsl/math/signed-line-distance.glsl +27 -0
  225. vispy/glsl/math/signed-segment-distance.glsl +30 -0
  226. vispy/glsl/misc/regular-grid.frag +244 -0
  227. vispy/glsl/misc/spatial-filters.frag +1407 -0
  228. vispy/glsl/misc/viewport-NDC.glsl +20 -0
  229. vispy/glsl/transforms/azimuthal-equal-area.glsl +32 -0
  230. vispy/glsl/transforms/azimuthal-equidistant.glsl +38 -0
  231. vispy/glsl/transforms/hammer.glsl +44 -0
  232. vispy/glsl/transforms/identity.glsl +6 -0
  233. vispy/glsl/transforms/identity_forward.glsl +23 -0
  234. vispy/glsl/transforms/identity_inverse.glsl +23 -0
  235. vispy/glsl/transforms/linear-scale.glsl +127 -0
  236. vispy/glsl/transforms/log-scale.glsl +126 -0
  237. vispy/glsl/transforms/mercator-transverse-forward.glsl +40 -0
  238. vispy/glsl/transforms/mercator-transverse-inverse.glsl +40 -0
  239. vispy/glsl/transforms/panzoom.glsl +10 -0
  240. vispy/glsl/transforms/polar.glsl +41 -0
  241. vispy/glsl/transforms/position.glsl +44 -0
  242. vispy/glsl/transforms/power-scale.glsl +139 -0
  243. vispy/glsl/transforms/projection.glsl +7 -0
  244. vispy/glsl/transforms/pvm.glsl +13 -0
  245. vispy/glsl/transforms/rotate.glsl +45 -0
  246. vispy/glsl/transforms/trackball.glsl +15 -0
  247. vispy/glsl/transforms/translate.glsl +35 -0
  248. vispy/glsl/transforms/transverse_mercator.glsl +38 -0
  249. vispy/glsl/transforms/viewport-clipping.glsl +14 -0
  250. vispy/glsl/transforms/viewport-transform.glsl +16 -0
  251. vispy/glsl/transforms/viewport.glsl +50 -0
  252. vispy/glsl/transforms/x.glsl +24 -0
  253. vispy/glsl/transforms/y.glsl +19 -0
  254. vispy/glsl/transforms/z.glsl +14 -0
  255. vispy/io/__init__.py +20 -0
  256. vispy/io/_data/spatial-filters.npy +0 -0
  257. vispy/io/datasets.py +94 -0
  258. vispy/io/image.py +231 -0
  259. vispy/io/mesh.py +122 -0
  260. vispy/io/stl.py +167 -0
  261. vispy/io/tests/__init__.py +0 -0
  262. vispy/io/tests/test_image.py +47 -0
  263. vispy/io/tests/test_io.py +121 -0
  264. vispy/io/wavefront.py +350 -0
  265. vispy/plot/__init__.py +36 -0
  266. vispy/plot/fig.py +58 -0
  267. vispy/plot/plotwidget.py +522 -0
  268. vispy/plot/tests/__init__.py +0 -0
  269. vispy/plot/tests/test_plot.py +46 -0
  270. vispy/scene/__init__.py +43 -0
  271. vispy/scene/cameras/__init__.py +27 -0
  272. vispy/scene/cameras/_base.py +38 -0
  273. vispy/scene/cameras/arcball.py +105 -0
  274. vispy/scene/cameras/base_camera.py +551 -0
  275. vispy/scene/cameras/fly.py +474 -0
  276. vispy/scene/cameras/magnify.py +163 -0
  277. vispy/scene/cameras/panzoom.py +311 -0
  278. vispy/scene/cameras/perspective.py +338 -0
  279. vispy/scene/cameras/tests/__init__.py +0 -0
  280. vispy/scene/cameras/tests/test_cameras.py +27 -0
  281. vispy/scene/cameras/tests/test_link.py +53 -0
  282. vispy/scene/cameras/tests/test_perspective.py +122 -0
  283. vispy/scene/cameras/turntable.py +183 -0
  284. vispy/scene/canvas.py +639 -0
  285. vispy/scene/events.py +85 -0
  286. vispy/scene/node.py +644 -0
  287. vispy/scene/subscene.py +20 -0
  288. vispy/scene/tests/__init__.py +0 -0
  289. vispy/scene/tests/test_canvas.py +119 -0
  290. vispy/scene/tests/test_node.py +142 -0
  291. vispy/scene/tests/test_visuals.py +141 -0
  292. vispy/scene/visuals.py +276 -0
  293. vispy/scene/widgets/__init__.py +18 -0
  294. vispy/scene/widgets/anchor.py +25 -0
  295. vispy/scene/widgets/axis.py +88 -0
  296. vispy/scene/widgets/colorbar.py +176 -0
  297. vispy/scene/widgets/console.py +351 -0
  298. vispy/scene/widgets/grid.py +509 -0
  299. vispy/scene/widgets/label.py +50 -0
  300. vispy/scene/widgets/tests/__init__.py +0 -0
  301. vispy/scene/widgets/tests/test_colorbar.py +47 -0
  302. vispy/scene/widgets/viewbox.py +199 -0
  303. vispy/scene/widgets/widget.py +478 -0
  304. vispy/testing/__init__.py +51 -0
  305. vispy/testing/_runners.py +448 -0
  306. vispy/testing/_testing.py +416 -0
  307. vispy/testing/image_tester.py +494 -0
  308. vispy/testing/rendered_array_tester.py +85 -0
  309. vispy/testing/tests/__init__.py +0 -0
  310. vispy/testing/tests/test_testing.py +20 -0
  311. vispy/util/__init__.py +32 -0
  312. vispy/util/bunch.py +15 -0
  313. vispy/util/check_environment.py +57 -0
  314. vispy/util/config.py +490 -0
  315. vispy/util/dpi/__init__.py +19 -0
  316. vispy/util/dpi/_linux.py +69 -0
  317. vispy/util/dpi/_quartz.py +26 -0
  318. vispy/util/dpi/_win32.py +34 -0
  319. vispy/util/dpi/tests/__init__.py +0 -0
  320. vispy/util/dpi/tests/test_dpi.py +16 -0
  321. vispy/util/eq.py +41 -0
  322. vispy/util/event.py +774 -0
  323. vispy/util/fetching.py +276 -0
  324. vispy/util/filter.py +44 -0
  325. vispy/util/fonts/__init__.py +14 -0
  326. vispy/util/fonts/_freetype.py +73 -0
  327. vispy/util/fonts/_quartz.py +192 -0
  328. vispy/util/fonts/_triage.py +36 -0
  329. vispy/util/fonts/_vispy_fonts.py +20 -0
  330. vispy/util/fonts/_win32.py +105 -0
  331. vispy/util/fonts/data/OpenSans-Bold.ttf +0 -0
  332. vispy/util/fonts/data/OpenSans-BoldItalic.ttf +0 -0
  333. vispy/util/fonts/data/OpenSans-Italic.ttf +0 -0
  334. vispy/util/fonts/data/OpenSans-Regular.ttf +0 -0
  335. vispy/util/fonts/tests/__init__.py +0 -0
  336. vispy/util/fonts/tests/test_font.py +45 -0
  337. vispy/util/fourier.py +69 -0
  338. vispy/util/frozen.py +25 -0
  339. vispy/util/gallery_scraper.py +268 -0
  340. vispy/util/keys.py +91 -0
  341. vispy/util/logs.py +358 -0
  342. vispy/util/osmesa_gl.py +17 -0
  343. vispy/util/profiler.py +135 -0
  344. vispy/util/ptime.py +16 -0
  345. vispy/util/quaternion.py +229 -0
  346. vispy/util/svg/__init__.py +18 -0
  347. vispy/util/svg/base.py +20 -0
  348. vispy/util/svg/color.py +219 -0
  349. vispy/util/svg/element.py +51 -0
  350. vispy/util/svg/geometry.py +478 -0
  351. vispy/util/svg/group.py +66 -0
  352. vispy/util/svg/length.py +81 -0
  353. vispy/util/svg/number.py +25 -0
  354. vispy/util/svg/path.py +332 -0
  355. vispy/util/svg/shapes.py +57 -0
  356. vispy/util/svg/style.py +59 -0
  357. vispy/util/svg/svg.py +40 -0
  358. vispy/util/svg/transform.py +223 -0
  359. vispy/util/svg/transformable.py +28 -0
  360. vispy/util/svg/viewport.py +73 -0
  361. vispy/util/tests/__init__.py +0 -0
  362. vispy/util/tests/test_config.py +58 -0
  363. vispy/util/tests/test_docstring_parameters.py +123 -0
  364. vispy/util/tests/test_emitter_group.py +262 -0
  365. vispy/util/tests/test_event_emitter.py +743 -0
  366. vispy/util/tests/test_fourier.py +35 -0
  367. vispy/util/tests/test_gallery_scraper.py +112 -0
  368. vispy/util/tests/test_import.py +127 -0
  369. vispy/util/tests/test_key.py +22 -0
  370. vispy/util/tests/test_logging.py +45 -0
  371. vispy/util/tests/test_run.py +14 -0
  372. vispy/util/tests/test_transforms.py +42 -0
  373. vispy/util/tests/test_vispy.py +48 -0
  374. vispy/util/transforms.py +201 -0
  375. vispy/util/wrappers.py +155 -0
  376. vispy/version.py +21 -0
  377. vispy/visuals/__init__.py +50 -0
  378. vispy/visuals/_scalable_textures.py +487 -0
  379. vispy/visuals/axis.py +678 -0
  380. vispy/visuals/border.py +208 -0
  381. vispy/visuals/box.py +79 -0
  382. vispy/visuals/collections/__init__.py +30 -0
  383. vispy/visuals/collections/agg_fast_path_collection.py +219 -0
  384. vispy/visuals/collections/agg_path_collection.py +197 -0
  385. vispy/visuals/collections/agg_point_collection.py +52 -0
  386. vispy/visuals/collections/agg_segment_collection.py +142 -0
  387. vispy/visuals/collections/array_list.py +401 -0
  388. vispy/visuals/collections/base_collection.py +482 -0
  389. vispy/visuals/collections/collection.py +253 -0
  390. vispy/visuals/collections/path_collection.py +23 -0
  391. vispy/visuals/collections/point_collection.py +19 -0
  392. vispy/visuals/collections/polygon_collection.py +25 -0
  393. vispy/visuals/collections/raw_path_collection.py +119 -0
  394. vispy/visuals/collections/raw_point_collection.py +113 -0
  395. vispy/visuals/collections/raw_polygon_collection.py +77 -0
  396. vispy/visuals/collections/raw_segment_collection.py +112 -0
  397. vispy/visuals/collections/raw_triangle_collection.py +78 -0
  398. vispy/visuals/collections/segment_collection.py +19 -0
  399. vispy/visuals/collections/triangle_collection.py +16 -0
  400. vispy/visuals/collections/util.py +168 -0
  401. vispy/visuals/colorbar.py +699 -0
  402. vispy/visuals/cube.py +41 -0
  403. vispy/visuals/ellipse.py +162 -0
  404. vispy/visuals/filters/__init__.py +10 -0
  405. vispy/visuals/filters/base_filter.py +242 -0
  406. vispy/visuals/filters/clipper.py +60 -0
  407. vispy/visuals/filters/clipping_planes.py +122 -0
  408. vispy/visuals/filters/color.py +181 -0
  409. vispy/visuals/filters/markers.py +28 -0
  410. vispy/visuals/filters/mesh.py +801 -0
  411. vispy/visuals/filters/picking.py +60 -0
  412. vispy/visuals/filters/tests/__init__.py +3 -0
  413. vispy/visuals/filters/tests/test_primitive_picking_filters.py +70 -0
  414. vispy/visuals/filters/tests/test_wireframe_filter.py +16 -0
  415. vispy/visuals/glsl/__init__.py +1 -0
  416. vispy/visuals/glsl/antialiasing.py +133 -0
  417. vispy/visuals/glsl/color.py +63 -0
  418. vispy/visuals/graphs/__init__.py +1 -0
  419. vispy/visuals/graphs/graph.py +240 -0
  420. vispy/visuals/graphs/layouts/__init__.py +55 -0
  421. vispy/visuals/graphs/layouts/circular.py +49 -0
  422. vispy/visuals/graphs/layouts/force_directed.py +211 -0
  423. vispy/visuals/graphs/layouts/networkx_layout.py +87 -0
  424. vispy/visuals/graphs/layouts/random.py +52 -0
  425. vispy/visuals/graphs/tests/__init__.py +1 -0
  426. vispy/visuals/graphs/tests/test_layouts.py +139 -0
  427. vispy/visuals/graphs/tests/test_networkx_layout.py +47 -0
  428. vispy/visuals/graphs/util.py +120 -0
  429. vispy/visuals/gridlines.py +161 -0
  430. vispy/visuals/gridmesh.py +98 -0
  431. vispy/visuals/histogram.py +58 -0
  432. vispy/visuals/image.py +701 -0
  433. vispy/visuals/image_complex.py +130 -0
  434. vispy/visuals/infinite_line.py +199 -0
  435. vispy/visuals/instanced_mesh.py +152 -0
  436. vispy/visuals/isocurve.py +213 -0
  437. vispy/visuals/isoline.py +241 -0
  438. vispy/visuals/isosurface.py +113 -0
  439. vispy/visuals/line/__init__.py +6 -0
  440. vispy/visuals/line/arrow.py +289 -0
  441. vispy/visuals/line/dash_atlas.py +90 -0
  442. vispy/visuals/line/line.py +545 -0
  443. vispy/visuals/line_plot.py +135 -0
  444. vispy/visuals/linear_region.py +199 -0
  445. vispy/visuals/markers.py +819 -0
  446. vispy/visuals/mesh.py +373 -0
  447. vispy/visuals/mesh_normals.py +159 -0
  448. vispy/visuals/plane.py +54 -0
  449. vispy/visuals/polygon.py +145 -0
  450. vispy/visuals/rectangle.py +196 -0
  451. vispy/visuals/regular_polygon.py +56 -0
  452. vispy/visuals/scrolling_lines.py +197 -0
  453. vispy/visuals/shaders/__init__.py +17 -0
  454. vispy/visuals/shaders/compiler.py +206 -0
  455. vispy/visuals/shaders/expression.py +99 -0
  456. vispy/visuals/shaders/function.py +788 -0
  457. vispy/visuals/shaders/multiprogram.py +145 -0
  458. vispy/visuals/shaders/parsing.py +140 -0
  459. vispy/visuals/shaders/program.py +161 -0
  460. vispy/visuals/shaders/shader_object.py +162 -0
  461. vispy/visuals/shaders/tests/__init__.py +0 -0
  462. vispy/visuals/shaders/tests/test_function.py +486 -0
  463. vispy/visuals/shaders/tests/test_multiprogram.py +78 -0
  464. vispy/visuals/shaders/tests/test_parsing.py +57 -0
  465. vispy/visuals/shaders/variable.py +272 -0
  466. vispy/visuals/spectrogram.py +169 -0
  467. vispy/visuals/sphere.py +80 -0
  468. vispy/visuals/surface_plot.py +192 -0
  469. vispy/visuals/tests/__init__.py +0 -0
  470. vispy/visuals/tests/test_arrows.py +109 -0
  471. vispy/visuals/tests/test_axis.py +120 -0
  472. vispy/visuals/tests/test_collections.py +15 -0
  473. vispy/visuals/tests/test_colorbar.py +179 -0
  474. vispy/visuals/tests/test_colormap.py +97 -0
  475. vispy/visuals/tests/test_ellipse.py +122 -0
  476. vispy/visuals/tests/test_gridlines.py +30 -0
  477. vispy/visuals/tests/test_histogram.py +24 -0
  478. vispy/visuals/tests/test_image.py +392 -0
  479. vispy/visuals/tests/test_image_complex.py +36 -0
  480. vispy/visuals/tests/test_infinite_line.py +53 -0
  481. vispy/visuals/tests/test_instanced_mesh.py +50 -0
  482. vispy/visuals/tests/test_isosurface.py +22 -0
  483. vispy/visuals/tests/test_linear_region.py +152 -0
  484. vispy/visuals/tests/test_markers.py +54 -0
  485. vispy/visuals/tests/test_mesh.py +261 -0
  486. vispy/visuals/tests/test_mesh_normals.py +218 -0
  487. vispy/visuals/tests/test_polygon.py +112 -0
  488. vispy/visuals/tests/test_rectangle.py +163 -0
  489. vispy/visuals/tests/test_regular_polygon.py +111 -0
  490. vispy/visuals/tests/test_scalable_textures.py +196 -0
  491. vispy/visuals/tests/test_sdf.py +73 -0
  492. vispy/visuals/tests/test_spectrogram.py +42 -0
  493. vispy/visuals/tests/test_surface_plot.py +57 -0
  494. vispy/visuals/tests/test_text.py +95 -0
  495. vispy/visuals/tests/test_volume.py +542 -0
  496. vispy/visuals/tests/test_windbarb.py +33 -0
  497. vispy/visuals/text/__init__.py +7 -0
  498. vispy/visuals/text/_sdf_cpu.cp313-win_amd64.pyd +0 -0
  499. vispy/visuals/text/_sdf_cpu.pyx +112 -0
  500. vispy/visuals/text/_sdf_gpu.py +316 -0
  501. vispy/visuals/text/text.py +675 -0
  502. vispy/visuals/transforms/__init__.py +34 -0
  503. vispy/visuals/transforms/_util.py +191 -0
  504. vispy/visuals/transforms/base_transform.py +233 -0
  505. vispy/visuals/transforms/chain.py +300 -0
  506. vispy/visuals/transforms/interactive.py +98 -0
  507. vispy/visuals/transforms/linear.py +564 -0
  508. vispy/visuals/transforms/nonlinear.py +398 -0
  509. vispy/visuals/transforms/tests/__init__.py +0 -0
  510. vispy/visuals/transforms/tests/test_transforms.py +243 -0
  511. vispy/visuals/transforms/transform_system.py +339 -0
  512. vispy/visuals/tube.py +173 -0
  513. vispy/visuals/visual.py +923 -0
  514. vispy/visuals/volume.py +1366 -0
  515. vispy/visuals/windbarb.py +291 -0
  516. vispy/visuals/xyz_axis.py +34 -0
  517. vispy-0.15.0.dist-info/METADATA +243 -0
  518. vispy-0.15.0.dist-info/RECORD +521 -0
  519. vispy-0.15.0.dist-info/WHEEL +5 -0
  520. vispy-0.15.0.dist-info/licenses/LICENSE.txt +36 -0
  521. vispy-0.15.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,48 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+ // Hooks:
6
+ // <transform> : vec4 function(position)
7
+ //
8
+ // ----------------------------------------------------------------------------
9
+ #include "math/constants.glsl"
10
+
11
+
12
+ // Externs
13
+ // ------------------------------------
14
+ // attribute vec3 position;
15
+ // attribute float size;
16
+ // attribute vec4 fg_color;
17
+ // attribute vec4 bg_color;
18
+ // attribute float orientation;
19
+ // attribute float linewidth;
20
+
21
+ // Varyings
22
+ // ------------------------------------
23
+ varying float v_size;
24
+ varying vec4 v_fg_color;
25
+ varying vec4 v_bg_color;
26
+ varying vec2 v_orientation;
27
+ varying float v_antialias;
28
+ varying float v_linewidth;
29
+
30
+ // Main (hooked)
31
+ // ------------------------------------
32
+ void main (void)
33
+ {
34
+ // From collection
35
+ fetch_uniforms();
36
+
37
+ v_size = size;
38
+ v_linewidth = linewidth;
39
+ v_antialias = antialias;
40
+ v_fg_color = fg_color;
41
+ v_bg_color = bg_color;
42
+ v_orientation = vec2(cos(orientation), sin(orientation));
43
+
44
+ gl_Position = <transform(position)>;
45
+ gl_PointSize = M_SQRT2 * size + 2.0 * (linewidth + 1.5*antialias);
46
+
47
+ <viewport.transform>;
48
+ }
@@ -0,0 +1,15 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+
6
+ // Varyings
7
+ // ------------------------------------
8
+ varying vec4 v_color;
9
+
10
+ // Main
11
+ // ------------------------------------
12
+ void main()
13
+ {
14
+ gl_FragColor = v_color;
15
+ }
@@ -0,0 +1,24 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+
6
+ // Externs
7
+ // ------------------------------------
8
+ // extern vec3 position;
9
+ // extern float id;
10
+ // extern vec4 color;
11
+ // vec4 transform(vec3 position);
12
+
13
+ // Varyings
14
+ // ------------------------------------
15
+ varying vec4 v_color;
16
+
17
+ // Main
18
+ // ------------------------------------
19
+ void main (void)
20
+ {
21
+ fetch_uniforms();
22
+ v_color = vec4(color.rgb, color.a*id);
23
+ gl_Position = $transform(vec4(position, 1));
24
+ }
@@ -0,0 +1,14 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+
6
+ // Varyings
7
+ // ------------------------------------
8
+ varying float v_size;
9
+ varying vec4 v_color;
10
+
11
+ void main(void)
12
+ {
13
+ gl_FragColor = v_color;
14
+ }
@@ -0,0 +1,31 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+
6
+ // Externs
7
+ // ------------------------------------
8
+ // extern vec3 position;
9
+ // extern float size;
10
+ // extern vec4 color;
11
+ // vec4 transform(vec3 position);
12
+
13
+
14
+ // Varyings
15
+ // ------------------------------------
16
+ varying float v_size;
17
+ varying vec4 v_color;
18
+
19
+
20
+ // Main (hooked)
21
+ // ------------------------------------
22
+ void main()
23
+ {
24
+ fetch_uniforms();
25
+
26
+ v_size = size;
27
+ v_color = color;
28
+
29
+ gl_Position = $transform(vec4(position, 1));
30
+ gl_PointSize = size;
31
+ }
@@ -0,0 +1,18 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+
6
+ // Varyings
7
+ // ------------------------------------
8
+ varying vec4 v_color;
9
+
10
+
11
+ // Main
12
+ // ------------------------------------
13
+ void main (void)
14
+ {
15
+ <viewport.clipping>;
16
+
17
+ gl_FragColor = v_color;
18
+ }
@@ -0,0 +1,26 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+
6
+ // Externs
7
+ // ------------------------------------
8
+ // extern vec3 position;
9
+ // extern vec4 color;
10
+ // extern vec4 viewport;
11
+ // vec4 transform(vec3 position);
12
+
13
+ // Varyings
14
+ // ------------------------------------
15
+ varying vec4 v_color;
16
+
17
+ // Main
18
+ // ------------------------------------
19
+ void main (void)
20
+ {
21
+ // This function is externally generated
22
+ fetch_uniforms();
23
+ v_color = color;
24
+
25
+ gl_Position = $transform(vec4(position, 1));
26
+ }
@@ -0,0 +1,13 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+
6
+ // Varyings
7
+ // ------------------------------------
8
+ varying vec4 v_color;
9
+
10
+ void main(void)
11
+ {
12
+ gl_FragColor = v_color;
13
+ }
@@ -0,0 +1,26 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+
6
+ // Externs
7
+ // ------------------------------------
8
+ // extern vec3 position;
9
+ // extern float size;
10
+ // extern vec4 color;
11
+ // vec4 transform(vec3 position);
12
+
13
+
14
+ // Varyings
15
+ // ------------------------------------
16
+ varying vec4 v_color;
17
+
18
+ // Main
19
+ // ------------------------------------
20
+ void main()
21
+ {
22
+ fetch_uniforms();
23
+ v_color = color;
24
+
25
+ gl_Position = $transform(vec4(position, 1));
26
+ }
@@ -0,0 +1,69 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+ #include "math/constants.glsl"
6
+ #include "misc/viewport-NDC.glsl"
7
+
8
+ // Externs
9
+ // ------------------------------------
10
+ // vec2 position;
11
+ // vec2 texcoord;
12
+ // float scale;
13
+ // vec3 origin;
14
+ // vec3 direction
15
+ // vec4 color;
16
+
17
+ // Varyings
18
+ // ------------------------------------
19
+ varying float v_scale;
20
+ varying vec2 v_texcoord;
21
+ varying vec4 v_color;
22
+
23
+
24
+ // Main
25
+ // ------------------------------------
26
+ void main()
27
+ {
28
+ fetch_uniforms();
29
+
30
+ vec3 up = vec3(0,0,-1);
31
+
32
+ // Untransformed normalized tangent and orhogonal directions
33
+ vec3 tangent = normalize(direction.xyz);
34
+ vec3 ortho = normalize(cross(tangent, up));
35
+
36
+ vec4 T = <transform((origin + scale*tangent))> - <transform(origin)>;
37
+ T = scale*normalize(T);
38
+
39
+ vec4 O = <transform((origin + scale*ortho))> - <transform(origin)>;
40
+ O = scale*normalize(O);
41
+
42
+ vec4 P1_ = <transform(origin)> + ( position.x*T + position.y*O);
43
+ vec2 p1 = NDC_to_viewport(P1_, <viewport.viewport_global>.zw);
44
+ /*
45
+ vec3 P1 = origin + scale*(tangent*position.x + ortho*position.y);
46
+ vec4 P1_ = <transform(P1)>;
47
+ vec2 p1 = NDC_to_viewport(P1_, <viewport.viewport_global>.zw);
48
+ */
49
+
50
+ // This compute an estimation of the actual size of the glyph
51
+ vec3 P2 = origin + scale*(tangent*(position.x+64.0) + ortho*(position.y));
52
+ vec4 P2_ = <transform(P2)>;
53
+ vec2 p2 = NDC_to_viewport(P2_, <viewport.viewport_global>.zw);
54
+
55
+ vec3 P3 = origin + scale*(tangent*(position.x) + ortho*(position.y+64.0));
56
+ vec4 P3_ = <transform(P3)>;
57
+ vec2 p3 = NDC_to_viewport(P3_, <viewport.viewport_global>.zw);
58
+
59
+ float d2 = length(p2 - p1);
60
+ float d3 = length(p3 - p1);
61
+ v_scale = min(d2,d3);
62
+
63
+
64
+ gl_Position = P1_;
65
+ v_texcoord = texcoord;
66
+ v_color = color;
67
+
68
+ <viewport.transform>;
69
+ }
@@ -0,0 +1,80 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+ // Ref: http://www.java-gaming.org/index.php?topic=33612.0
6
+ // http://www.reddit.com/
7
+ // -> r/gamedev/comments/2879jd/just_found_out_about_signed_distance_field_text/
8
+ #include "math/constants.glsl"
9
+ #include "misc/spatial-filters.frag"
10
+
11
+ // Uniforms
12
+ // ------------------------------------
13
+ uniform sampler2D atlas_data;
14
+ uniform vec2 atlas_shape;
15
+
16
+ // Varyings
17
+ // ------------------------------------
18
+ varying float v_scale;
19
+ varying vec2 v_texcoord;
20
+ varying vec4 v_color;
21
+
22
+
23
+ float contour(in float d, in float w)
24
+ {
25
+ return smoothstep(0.5 - w, 0.5 + w, d);
26
+ }
27
+ float sample(sampler2D texture, vec2 uv, float w)
28
+ {
29
+ return contour(texture2D(texture, uv).r, w);
30
+ }
31
+
32
+
33
+ // Main
34
+ // ------------------------------------
35
+ void main(void)
36
+ {
37
+ <viewport.clipping>;
38
+
39
+ vec4 color = v_color;
40
+
41
+ // Retrieve distance from texture
42
+ float dist;
43
+ if(v_scale > 50.) {
44
+ dist = Bicubic(atlas_data, atlas_shape, v_texcoord).r;
45
+ // Debug
46
+ // color = vec4(0,0,1,1);
47
+ } else {
48
+ dist = texture2D(atlas_data, v_texcoord).r;
49
+ }
50
+
51
+
52
+ // fwidth helps keep outlines a constant width irrespective of scaling
53
+ // GLSL's fwidth = abs(dFdx(uv)) + abs(dFdy(uv))
54
+ float width = fwidth(dist);
55
+
56
+ // Regular SDF
57
+ float alpha = contour( dist, width );
58
+
59
+ // Supersampled version (when scale is small)
60
+ if (v_scale < 30.)
61
+ {
62
+ // Debug
63
+ // color = vec4(1,0,0,1);
64
+
65
+ // Supersample, 4 extra points
66
+ // Half of 1/sqrt2; you can play with this
67
+ float dscale = 0.5 * M_SQRT1_2;
68
+ vec2 duv = dscale * (dFdx(v_texcoord) + dFdy(v_texcoord));
69
+ vec4 box = vec4(v_texcoord-duv, v_texcoord+duv);
70
+ float asum = sample(atlas_data, box.xy, width)
71
+ + sample(atlas_data, box.zw, width)
72
+ + sample(atlas_data, box.xw, width)
73
+ + sample(atlas_data, box.zy, width);
74
+
75
+ // weighted average, with 4 extra points having 0.5 weight each,
76
+ // so 1 + 0.5*4 = 3 is the divisor
77
+ alpha = (alpha + 0.5 * asum) / 3.0;
78
+ }
79
+ gl_FragColor = vec4(color.rgb, alpha*color.a);
80
+ }
@@ -0,0 +1,59 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+ #include "math/constants.glsl"
6
+ #include "misc/viewport-NDC.glsl"
7
+
8
+ // Externs
9
+ // ------------------------------------
10
+ // vec2 position;
11
+ // vec2 texcoord;
12
+ // float scale;
13
+ // vec3 origin;
14
+ // vec3 direction
15
+ // vec4 color;
16
+
17
+ // Varyings
18
+ // ------------------------------------
19
+ varying float v_scale;
20
+ varying vec2 v_texcoord;
21
+ varying vec4 v_color;
22
+
23
+
24
+ // Main
25
+ // ------------------------------------
26
+ void main()
27
+ {
28
+ fetch_uniforms();
29
+
30
+ vec3 up = vec3(0,0,-1);
31
+
32
+ // Untransformed normalized tangent and orhogonal directions
33
+ vec3 tangent = normalize(direction.xyz);
34
+ vec3 ortho = normalize(cross(tangent, up));
35
+
36
+ vec3 P1 = origin + scale*(tangent*position.x + ortho*position.y);
37
+ vec4 P1_ = <transform(P1)>;
38
+ vec2 p1 = NDC_to_viewport(P1_, <viewport.viewport_global>.zw);
39
+
40
+ // This compute an estimation of the actual size of the glyph
41
+ vec3 P2 = origin + scale*(tangent*(position.x+64.0) + ortho*(position.y));
42
+ vec4 P2_ = <transform(P2)>;
43
+ vec2 p2 = NDC_to_viewport(P2_, <viewport.viewport_global>.zw);
44
+
45
+ vec3 P3 = origin + scale*(tangent*(position.x) + ortho*(position.y+64.0));
46
+ vec4 P3_ = <transform(P3)>;
47
+ vec2 p3 = NDC_to_viewport(P3_, <viewport.viewport_global>.zw);
48
+
49
+ float d2 = length(p2 - p1);
50
+ float d3 = length(p3 - p1);
51
+ v_scale = min(d2,d3);
52
+
53
+
54
+ gl_Position = P1_;
55
+ v_texcoord = texcoord;
56
+ v_color = color;
57
+
58
+ <viewport.transform>;
59
+ }
@@ -0,0 +1,71 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+ #include "math/constants.glsl"
6
+ #include "misc/viewport-NDC.glsl"
7
+
8
+ // Externs
9
+ // ------------------------------------
10
+ // vec2 position;
11
+ // vec2 texcoord;
12
+ // float scale;
13
+ // vec3 origin;
14
+ // vec3 direction
15
+ // vec4 color;
16
+
17
+ // Varyings
18
+ // ------------------------------------
19
+ varying float v_scale;
20
+ varying vec2 v_texcoord;
21
+ varying vec4 v_color;
22
+
23
+
24
+ // This works because we know the matplotlib API and how a transform is built
25
+ float xscale(float x) { return <transform.xscale.forward!(x)>; }
26
+ float yscale(float y) { return <transform.yscale.forward!(y)>; }
27
+ float zscale(float z) { return <transform.zscale.forward!(z)>; }
28
+ vec3 data_projection(vec3 P) { return <transform.data_projection.forward!(P)>.xyz; }
29
+ vec4 view_projection(vec3 P) { return <transform.view_projection.transform!(vec4(P,1))>; }
30
+
31
+ vec3 data_scale(vec3 P) { return vec3(xscale(P.x), yscale(P.y), zscale(P.z)); }
32
+ vec4 transform(vec3 P) { return view_projection(data_projection(data_scale(P))); }
33
+
34
+
35
+ // Main
36
+ // ------------------------------------
37
+ void main()
38
+ {
39
+ fetch_uniforms();
40
+
41
+ vec3 up = vec3(0,0,-1);
42
+
43
+ vec3 O = data_projection(data_scale(origin));
44
+
45
+ vec3 tangent = normalize(data_projection(data_scale(origin+scale*direction)) - O);
46
+ vec3 ortho = normalize(cross(tangent, up));
47
+
48
+ vec3 P1 = O + scale*(position.x*tangent + position.y*ortho);
49
+ vec4 P1_ = view_projection(P1);
50
+ vec2 p1 = NDC_to_viewport(P1_, <viewport.viewport_global>.zw);
51
+
52
+ // This compute an estimation of the actual size of the glyph
53
+ vec3 P2 = O + scale*(tangent*(position.x+64.0) + ortho*(position.y));
54
+ vec4 P2_ = view_projection(P2);
55
+ vec2 p2 = NDC_to_viewport(P2_, <viewport.viewport_global>.zw);
56
+
57
+ vec3 P3 = O + scale*(tangent*(position.x) + ortho*(position.y+64.0));
58
+ vec4 P3_ = view_projection(P3);
59
+ vec2 p3 = NDC_to_viewport(P3_, <viewport.viewport_global>.zw);
60
+
61
+ float d2 = length(p2 - p1);
62
+ float d3 = length(p3 - p1);
63
+ v_scale = min(d2,d3);
64
+
65
+
66
+ gl_Position = P1_;
67
+ v_texcoord = texcoord;
68
+ v_color = color;
69
+
70
+ <viewport.transform>;
71
+ }
@@ -0,0 +1,20 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+ #include "colormaps/util.glsl"
6
+
7
+ vec3 colormap_autumn(float t)
8
+ {
9
+ return mix(vec3(1.0,0.0,0.0), vec3(1.0,1.0,0.0), t);
10
+ }
11
+
12
+ vec3 colormap_autumn(float t, vec3 under, vec3 over)
13
+ {
14
+ return colormap_underover(t, colormap_autumn(t), under, over);
15
+ }
16
+
17
+ vec4 colormap_autumn(float t, vec4 under, vec4 over)
18
+ {
19
+ return colormap_underover(t, vec4(colormap_autumn(t),1.0), under, over);
20
+ }
@@ -0,0 +1,20 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+ #include "colormaps/util.glsl"
6
+
7
+ vec3 colormap_blues(float t)
8
+ {
9
+ return mix(vec3(1,1,1), vec3(0,0,1), t);
10
+ }
11
+
12
+ vec3 colormap_blues(float t, vec3 under, vec3 over)
13
+ {
14
+ return colormap_underover(t, colormap_blues(t), under, over);
15
+ }
16
+
17
+ vec4 colormap_blues(float t, vec4 under, vec4 over)
18
+ {
19
+ return colormap_underover(t, vec4(colormap_blues(t),1.0), under, over);
20
+ }
@@ -0,0 +1,17 @@
1
+ vec3 hsv_to_rgb(vec3 c)
2
+ {
3
+ vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
4
+ vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
5
+ return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
6
+ }
7
+
8
+ vec3 rgb_to_hsv(vec3 c)
9
+ {
10
+ vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
11
+ vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
12
+ vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
13
+
14
+ float d = q.x - min(q.w, q.y);
15
+ float e = 1.0e-10;
16
+ return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
17
+ }
@@ -0,0 +1,24 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+ #include "colormaps/util.glsl"
6
+ #include "colormaps/user.glsl"
7
+
8
+ #include "colormaps/hot.glsl"
9
+ #include "colormaps/gray.glsl"
10
+ #include "colormaps/cool.glsl"
11
+ #include "colormaps/wheel.glsl"
12
+
13
+ #include "colormaps/autumn.glsl"
14
+ #include "colormaps/winter.glsl"
15
+ #include "colormaps/spring.glsl"
16
+ #include "colormaps/summer.glsl"
17
+
18
+ #include "colormaps/ice.glsl"
19
+ #include "colormaps/fire.glsl"
20
+ #include "colormaps/icefire.glsl"
21
+
22
+ #include "colormaps/reds.glsl"
23
+ #include "colormaps/blues.glsl"
24
+ #include "colormaps/greens.glsl"
@@ -0,0 +1,20 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+ #include "colormaps/util.glsl"
6
+
7
+ vec3 colormap_cool(float t)
8
+ {
9
+ return mix(vec3(0.0,1.0,1.0), vec3(1.0,0.0,1.0), t);
10
+ }
11
+
12
+ vec3 colormap_cool(float t, vec3 under, vec3 over)
13
+ {
14
+ return colormap_underover(t, colormap_cool(t), under, over);
15
+ }
16
+
17
+ vec4 colormap_cool(float t, vec4 under, vec4 over)
18
+ {
19
+ return colormap_underover(t, vec4(colormap_cool(t),1.0), under, over);
20
+ }
@@ -0,0 +1,21 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+ #include "colormaps/util.glsl"
6
+
7
+ vec3 colormap_fire(float t)
8
+ {
9
+ return mix(mix(vec3(1,1,1), vec3(1,1,0), t),
10
+ mix(vec3(1,1,0), vec3(1,0,0), t*t), t);
11
+ }
12
+
13
+ vec3 colormap_fire(float t, vec3 under, vec3 over)
14
+ {
15
+ return colormap_underover(t, colormap_fire(t), under, over);
16
+ }
17
+
18
+ vec4 colormap_fire(float t, vec4 under, vec4 over)
19
+ {
20
+ return colormap_underover(t, vec4(colormap_fire(t),1.0), under, over);
21
+ }
@@ -0,0 +1,20 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+ #include "colormaps/util.glsl"
6
+
7
+ vec3 colormap_gray(float t)
8
+ {
9
+ return vec3(t);
10
+ }
11
+
12
+ vec3 colormap_gray(float t, vec3 under, vec3 over)
13
+ {
14
+ return colormap_underover(t, colormap_gray(t), under, over);
15
+ }
16
+
17
+ vec4 colormap_gray(float t, vec4 under, vec4 over)
18
+ {
19
+ return colormap_underover(t, vec4(colormap_gray(t),1.0), under, over);
20
+ }
@@ -0,0 +1,20 @@
1
+ // ----------------------------------------------------------------------------
2
+ // Copyright (c) 2014, Nicolas P. Rougier. All Rights Reserved.
3
+ // Distributed under the (new) BSD License.
4
+ // ----------------------------------------------------------------------------
5
+ #include "colormaps/util.glsl"
6
+
7
+ vec3 colormap_greens(float t)
8
+ {
9
+ return mix(vec3(1,1,1), vec3(0,1,0), t);
10
+ }
11
+
12
+ vec3 colormap_greens(float t, vec3 under, vec3 over)
13
+ {
14
+ return colormap_underover(t, colormap_greens(t), under, over);
15
+ }
16
+
17
+ vec4 colormap_greens(float t, vec4 under, vec4 over)
18
+ {
19
+ return colormap_underover(t, vec4(colormap_greens(t),1.0), under, over);
20
+ }