vispy 0.15.0__cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.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.
- vispy/__init__.py +33 -0
- vispy/app/__init__.py +15 -0
- vispy/app/_default_app.py +76 -0
- vispy/app/_detect_eventloop.py +148 -0
- vispy/app/application.py +263 -0
- vispy/app/backends/__init__.py +52 -0
- vispy/app/backends/_egl.py +264 -0
- vispy/app/backends/_glfw.py +513 -0
- vispy/app/backends/_jupyter_rfb.py +278 -0
- vispy/app/backends/_offscreen_util.py +121 -0
- vispy/app/backends/_osmesa.py +235 -0
- vispy/app/backends/_pyglet.py +451 -0
- vispy/app/backends/_pyqt4.py +36 -0
- vispy/app/backends/_pyqt5.py +36 -0
- vispy/app/backends/_pyqt6.py +40 -0
- vispy/app/backends/_pyside.py +37 -0
- vispy/app/backends/_pyside2.py +52 -0
- vispy/app/backends/_pyside6.py +53 -0
- vispy/app/backends/_qt.py +1003 -0
- vispy/app/backends/_sdl2.py +444 -0
- vispy/app/backends/_template.py +244 -0
- vispy/app/backends/_test.py +8 -0
- vispy/app/backends/_tk.py +800 -0
- vispy/app/backends/_wx.py +476 -0
- vispy/app/backends/tests/__init__.py +0 -0
- vispy/app/backends/tests/test_offscreen_util.py +52 -0
- vispy/app/backends/tests/test_rfb.py +77 -0
- vispy/app/base.py +294 -0
- vispy/app/canvas.py +828 -0
- vispy/app/qt.py +92 -0
- vispy/app/tests/__init__.py +0 -0
- vispy/app/tests/qt-designer.ui +58 -0
- vispy/app/tests/test_app.py +442 -0
- vispy/app/tests/test_backends.py +164 -0
- vispy/app/tests/test_canvas.py +122 -0
- vispy/app/tests/test_context.py +92 -0
- vispy/app/tests/test_qt.py +47 -0
- vispy/app/tests/test_simultaneous.py +134 -0
- vispy/app/timer.py +174 -0
- vispy/color/__init__.py +17 -0
- vispy/color/_color_dict.py +193 -0
- vispy/color/color_array.py +447 -0
- vispy/color/color_space.py +181 -0
- vispy/color/colormap.py +1213 -0
- vispy/color/tests/__init__.py +0 -0
- vispy/color/tests/test_color.py +378 -0
- vispy/conftest.py +12 -0
- vispy/ext/__init__.py +0 -0
- vispy/ext/cocoapy.py +1522 -0
- vispy/ext/cubehelix.py +138 -0
- vispy/ext/egl.py +375 -0
- vispy/ext/fontconfig.py +118 -0
- vispy/ext/gdi32plus.py +206 -0
- vispy/ext/osmesa.py +105 -0
- vispy/geometry/__init__.py +23 -0
- vispy/geometry/_triangulation_debugger.py +171 -0
- vispy/geometry/calculations.py +162 -0
- vispy/geometry/curves.py +399 -0
- vispy/geometry/generation.py +643 -0
- vispy/geometry/isocurve.py +175 -0
- vispy/geometry/isosurface.py +465 -0
- vispy/geometry/meshdata.py +700 -0
- vispy/geometry/normals.py +78 -0
- vispy/geometry/parametric.py +56 -0
- vispy/geometry/polygon.py +137 -0
- vispy/geometry/rect.py +210 -0
- vispy/geometry/tests/__init__.py +0 -0
- vispy/geometry/tests/test_calculations.py +23 -0
- vispy/geometry/tests/test_generation.py +56 -0
- vispy/geometry/tests/test_meshdata.py +106 -0
- vispy/geometry/tests/test_triangulation.py +594 -0
- vispy/geometry/torusknot.py +142 -0
- vispy/geometry/triangulation.py +876 -0
- vispy/gloo/__init__.py +56 -0
- vispy/gloo/buffer.py +505 -0
- vispy/gloo/context.py +272 -0
- vispy/gloo/framebuffer.py +257 -0
- vispy/gloo/gl/__init__.py +234 -0
- vispy/gloo/gl/_constants.py +332 -0
- vispy/gloo/gl/_es2.py +986 -0
- vispy/gloo/gl/_gl2.py +1365 -0
- vispy/gloo/gl/_proxy.py +499 -0
- vispy/gloo/gl/_pyopengl2.py +362 -0
- vispy/gloo/gl/dummy.py +24 -0
- vispy/gloo/gl/es2.py +62 -0
- vispy/gloo/gl/gl2.py +98 -0
- vispy/gloo/gl/glplus.py +168 -0
- vispy/gloo/gl/pyopengl2.py +97 -0
- vispy/gloo/gl/tests/__init__.py +0 -0
- vispy/gloo/gl/tests/test_basics.py +282 -0
- vispy/gloo/gl/tests/test_functionality.py +568 -0
- vispy/gloo/gl/tests/test_names.py +246 -0
- vispy/gloo/gl/tests/test_use.py +71 -0
- vispy/gloo/glir.py +1824 -0
- vispy/gloo/globject.py +101 -0
- vispy/gloo/preprocessor.py +67 -0
- vispy/gloo/program.py +543 -0
- vispy/gloo/tests/__init__.py +0 -0
- vispy/gloo/tests/test_buffer.py +558 -0
- vispy/gloo/tests/test_context.py +119 -0
- vispy/gloo/tests/test_framebuffer.py +195 -0
- vispy/gloo/tests/test_glir.py +307 -0
- vispy/gloo/tests/test_globject.py +35 -0
- vispy/gloo/tests/test_program.py +302 -0
- vispy/gloo/tests/test_texture.py +732 -0
- vispy/gloo/tests/test_use_gloo.py +187 -0
- vispy/gloo/tests/test_util.py +60 -0
- vispy/gloo/tests/test_wrappers.py +261 -0
- vispy/gloo/texture.py +1046 -0
- vispy/gloo/util.py +129 -0
- vispy/gloo/wrappers.py +762 -0
- vispy/glsl/__init__.py +42 -0
- vispy/glsl/antialias/antialias.glsl +7 -0
- vispy/glsl/antialias/cap-butt.glsl +31 -0
- vispy/glsl/antialias/cap-round.glsl +29 -0
- vispy/glsl/antialias/cap-square.glsl +30 -0
- vispy/glsl/antialias/cap-triangle-in.glsl +30 -0
- vispy/glsl/antialias/cap-triangle-out.glsl +30 -0
- vispy/glsl/antialias/cap.glsl +67 -0
- vispy/glsl/antialias/caps.glsl +67 -0
- vispy/glsl/antialias/filled.glsl +50 -0
- vispy/glsl/antialias/outline.glsl +40 -0
- vispy/glsl/antialias/stroke.glsl +43 -0
- vispy/glsl/arrowheads/angle.glsl +99 -0
- vispy/glsl/arrowheads/arrowheads.frag +60 -0
- vispy/glsl/arrowheads/arrowheads.glsl +12 -0
- vispy/glsl/arrowheads/arrowheads.vert +83 -0
- vispy/glsl/arrowheads/curved.glsl +48 -0
- vispy/glsl/arrowheads/inhibitor.glsl +26 -0
- vispy/glsl/arrowheads/stealth.glsl +46 -0
- vispy/glsl/arrowheads/triangle.glsl +97 -0
- vispy/glsl/arrowheads/util.glsl +13 -0
- vispy/glsl/arrows/angle-30.glsl +12 -0
- vispy/glsl/arrows/angle-60.glsl +12 -0
- vispy/glsl/arrows/angle-90.glsl +12 -0
- vispy/glsl/arrows/arrow.frag +39 -0
- vispy/glsl/arrows/arrow.vert +49 -0
- vispy/glsl/arrows/arrows.glsl +17 -0
- vispy/glsl/arrows/common.glsl +187 -0
- vispy/glsl/arrows/curved.glsl +63 -0
- vispy/glsl/arrows/stealth.glsl +50 -0
- vispy/glsl/arrows/triangle-30.glsl +12 -0
- vispy/glsl/arrows/triangle-60.glsl +12 -0
- vispy/glsl/arrows/triangle-90.glsl +12 -0
- vispy/glsl/arrows/util.glsl +98 -0
- vispy/glsl/build_spatial_filters.py +660 -0
- vispy/glsl/collections/agg-fast-path.frag +20 -0
- vispy/glsl/collections/agg-fast-path.vert +78 -0
- vispy/glsl/collections/agg-glyph.frag +60 -0
- vispy/glsl/collections/agg-glyph.vert +33 -0
- vispy/glsl/collections/agg-marker.frag +35 -0
- vispy/glsl/collections/agg-marker.vert +48 -0
- vispy/glsl/collections/agg-path.frag +55 -0
- vispy/glsl/collections/agg-path.vert +166 -0
- vispy/glsl/collections/agg-point.frag +21 -0
- vispy/glsl/collections/agg-point.vert +35 -0
- vispy/glsl/collections/agg-segment.frag +32 -0
- vispy/glsl/collections/agg-segment.vert +75 -0
- vispy/glsl/collections/marker.frag +38 -0
- vispy/glsl/collections/marker.vert +48 -0
- vispy/glsl/collections/raw-path.frag +15 -0
- vispy/glsl/collections/raw-path.vert +24 -0
- vispy/glsl/collections/raw-point.frag +14 -0
- vispy/glsl/collections/raw-point.vert +31 -0
- vispy/glsl/collections/raw-segment.frag +18 -0
- vispy/glsl/collections/raw-segment.vert +26 -0
- vispy/glsl/collections/raw-triangle.frag +13 -0
- vispy/glsl/collections/raw-triangle.vert +26 -0
- vispy/glsl/collections/sdf-glyph-ticks.vert +69 -0
- vispy/glsl/collections/sdf-glyph.frag +80 -0
- vispy/glsl/collections/sdf-glyph.vert +59 -0
- vispy/glsl/collections/tick-labels.vert +71 -0
- vispy/glsl/colormaps/autumn.glsl +20 -0
- vispy/glsl/colormaps/blues.glsl +20 -0
- vispy/glsl/colormaps/color-space.glsl +17 -0
- vispy/glsl/colormaps/colormaps.glsl +24 -0
- vispy/glsl/colormaps/cool.glsl +20 -0
- vispy/glsl/colormaps/fire.glsl +21 -0
- vispy/glsl/colormaps/gray.glsl +20 -0
- vispy/glsl/colormaps/greens.glsl +20 -0
- vispy/glsl/colormaps/hot.glsl +22 -0
- vispy/glsl/colormaps/ice.glsl +20 -0
- vispy/glsl/colormaps/icefire.glsl +23 -0
- vispy/glsl/colormaps/parse.py +40 -0
- vispy/glsl/colormaps/reds.glsl +20 -0
- vispy/glsl/colormaps/spring.glsl +20 -0
- vispy/glsl/colormaps/summer.glsl +20 -0
- vispy/glsl/colormaps/user.glsl +22 -0
- vispy/glsl/colormaps/util.glsl +41 -0
- vispy/glsl/colormaps/wheel.glsl +21 -0
- vispy/glsl/colormaps/winter.glsl +20 -0
- vispy/glsl/lines/agg.frag +320 -0
- vispy/glsl/lines/agg.vert +241 -0
- vispy/glsl/markers/arrow.glsl +12 -0
- vispy/glsl/markers/asterisk.glsl +16 -0
- vispy/glsl/markers/chevron.glsl +14 -0
- vispy/glsl/markers/clover.glsl +20 -0
- vispy/glsl/markers/club.glsl +31 -0
- vispy/glsl/markers/cross.glsl +17 -0
- vispy/glsl/markers/diamond.glsl +12 -0
- vispy/glsl/markers/disc.glsl +9 -0
- vispy/glsl/markers/ellipse.glsl +67 -0
- vispy/glsl/markers/hbar.glsl +9 -0
- vispy/glsl/markers/heart.glsl +15 -0
- vispy/glsl/markers/infinity.glsl +15 -0
- vispy/glsl/markers/marker-sdf.frag +74 -0
- vispy/glsl/markers/marker-sdf.vert +41 -0
- vispy/glsl/markers/marker.frag +36 -0
- vispy/glsl/markers/marker.vert +46 -0
- vispy/glsl/markers/markers.glsl +24 -0
- vispy/glsl/markers/pin.glsl +18 -0
- vispy/glsl/markers/ring.glsl +11 -0
- vispy/glsl/markers/spade.glsl +28 -0
- vispy/glsl/markers/square.glsl +10 -0
- vispy/glsl/markers/tag.glsl +11 -0
- vispy/glsl/markers/triangle.glsl +14 -0
- vispy/glsl/markers/vbar.glsl +9 -0
- vispy/glsl/math/circle-through-2-points.glsl +30 -0
- vispy/glsl/math/constants.glsl +48 -0
- vispy/glsl/math/double.glsl +114 -0
- vispy/glsl/math/functions.glsl +20 -0
- vispy/glsl/math/point-to-line-distance.glsl +31 -0
- vispy/glsl/math/point-to-line-projection.glsl +29 -0
- vispy/glsl/math/signed-line-distance.glsl +27 -0
- vispy/glsl/math/signed-segment-distance.glsl +30 -0
- vispy/glsl/misc/regular-grid.frag +244 -0
- vispy/glsl/misc/spatial-filters.frag +1407 -0
- vispy/glsl/misc/viewport-NDC.glsl +20 -0
- vispy/glsl/transforms/azimuthal-equal-area.glsl +32 -0
- vispy/glsl/transforms/azimuthal-equidistant.glsl +38 -0
- vispy/glsl/transforms/hammer.glsl +44 -0
- vispy/glsl/transforms/identity.glsl +6 -0
- vispy/glsl/transforms/identity_forward.glsl +23 -0
- vispy/glsl/transforms/identity_inverse.glsl +23 -0
- vispy/glsl/transforms/linear-scale.glsl +127 -0
- vispy/glsl/transforms/log-scale.glsl +126 -0
- vispy/glsl/transforms/mercator-transverse-forward.glsl +40 -0
- vispy/glsl/transforms/mercator-transverse-inverse.glsl +40 -0
- vispy/glsl/transforms/panzoom.glsl +10 -0
- vispy/glsl/transforms/polar.glsl +41 -0
- vispy/glsl/transforms/position.glsl +44 -0
- vispy/glsl/transforms/power-scale.glsl +139 -0
- vispy/glsl/transforms/projection.glsl +7 -0
- vispy/glsl/transforms/pvm.glsl +13 -0
- vispy/glsl/transforms/rotate.glsl +45 -0
- vispy/glsl/transforms/trackball.glsl +15 -0
- vispy/glsl/transforms/translate.glsl +35 -0
- vispy/glsl/transforms/transverse_mercator.glsl +38 -0
- vispy/glsl/transforms/viewport-clipping.glsl +14 -0
- vispy/glsl/transforms/viewport-transform.glsl +16 -0
- vispy/glsl/transforms/viewport.glsl +50 -0
- vispy/glsl/transforms/x.glsl +24 -0
- vispy/glsl/transforms/y.glsl +19 -0
- vispy/glsl/transforms/z.glsl +14 -0
- vispy/io/__init__.py +20 -0
- vispy/io/_data/spatial-filters.npy +0 -0
- vispy/io/datasets.py +94 -0
- vispy/io/image.py +231 -0
- vispy/io/mesh.py +122 -0
- vispy/io/stl.py +167 -0
- vispy/io/tests/__init__.py +0 -0
- vispy/io/tests/test_image.py +47 -0
- vispy/io/tests/test_io.py +121 -0
- vispy/io/wavefront.py +350 -0
- vispy/plot/__init__.py +36 -0
- vispy/plot/fig.py +58 -0
- vispy/plot/plotwidget.py +522 -0
- vispy/plot/tests/__init__.py +0 -0
- vispy/plot/tests/test_plot.py +46 -0
- vispy/scene/__init__.py +43 -0
- vispy/scene/cameras/__init__.py +27 -0
- vispy/scene/cameras/_base.py +38 -0
- vispy/scene/cameras/arcball.py +105 -0
- vispy/scene/cameras/base_camera.py +551 -0
- vispy/scene/cameras/fly.py +474 -0
- vispy/scene/cameras/magnify.py +163 -0
- vispy/scene/cameras/panzoom.py +311 -0
- vispy/scene/cameras/perspective.py +338 -0
- vispy/scene/cameras/tests/__init__.py +0 -0
- vispy/scene/cameras/tests/test_cameras.py +27 -0
- vispy/scene/cameras/tests/test_link.py +53 -0
- vispy/scene/cameras/tests/test_perspective.py +122 -0
- vispy/scene/cameras/turntable.py +183 -0
- vispy/scene/canvas.py +639 -0
- vispy/scene/events.py +85 -0
- vispy/scene/node.py +644 -0
- vispy/scene/subscene.py +20 -0
- vispy/scene/tests/__init__.py +0 -0
- vispy/scene/tests/test_canvas.py +119 -0
- vispy/scene/tests/test_node.py +142 -0
- vispy/scene/tests/test_visuals.py +141 -0
- vispy/scene/visuals.py +276 -0
- vispy/scene/widgets/__init__.py +18 -0
- vispy/scene/widgets/anchor.py +25 -0
- vispy/scene/widgets/axis.py +88 -0
- vispy/scene/widgets/colorbar.py +176 -0
- vispy/scene/widgets/console.py +351 -0
- vispy/scene/widgets/grid.py +509 -0
- vispy/scene/widgets/label.py +50 -0
- vispy/scene/widgets/tests/__init__.py +0 -0
- vispy/scene/widgets/tests/test_colorbar.py +47 -0
- vispy/scene/widgets/viewbox.py +199 -0
- vispy/scene/widgets/widget.py +478 -0
- vispy/testing/__init__.py +51 -0
- vispy/testing/_runners.py +448 -0
- vispy/testing/_testing.py +416 -0
- vispy/testing/image_tester.py +494 -0
- vispy/testing/rendered_array_tester.py +85 -0
- vispy/testing/tests/__init__.py +0 -0
- vispy/testing/tests/test_testing.py +20 -0
- vispy/util/__init__.py +32 -0
- vispy/util/bunch.py +15 -0
- vispy/util/check_environment.py +57 -0
- vispy/util/config.py +490 -0
- vispy/util/dpi/__init__.py +19 -0
- vispy/util/dpi/_linux.py +69 -0
- vispy/util/dpi/_quartz.py +26 -0
- vispy/util/dpi/_win32.py +34 -0
- vispy/util/dpi/tests/__init__.py +0 -0
- vispy/util/dpi/tests/test_dpi.py +16 -0
- vispy/util/eq.py +41 -0
- vispy/util/event.py +774 -0
- vispy/util/fetching.py +276 -0
- vispy/util/filter.py +44 -0
- vispy/util/fonts/__init__.py +14 -0
- vispy/util/fonts/_freetype.py +73 -0
- vispy/util/fonts/_quartz.py +192 -0
- vispy/util/fonts/_triage.py +36 -0
- vispy/util/fonts/_vispy_fonts.py +20 -0
- vispy/util/fonts/_win32.py +105 -0
- vispy/util/fonts/data/OpenSans-Bold.ttf +0 -0
- vispy/util/fonts/data/OpenSans-BoldItalic.ttf +0 -0
- vispy/util/fonts/data/OpenSans-Italic.ttf +0 -0
- vispy/util/fonts/data/OpenSans-Regular.ttf +0 -0
- vispy/util/fonts/tests/__init__.py +0 -0
- vispy/util/fonts/tests/test_font.py +45 -0
- vispy/util/fourier.py +69 -0
- vispy/util/frozen.py +25 -0
- vispy/util/gallery_scraper.py +268 -0
- vispy/util/keys.py +91 -0
- vispy/util/logs.py +358 -0
- vispy/util/osmesa_gl.py +17 -0
- vispy/util/profiler.py +135 -0
- vispy/util/ptime.py +16 -0
- vispy/util/quaternion.py +229 -0
- vispy/util/svg/__init__.py +18 -0
- vispy/util/svg/base.py +20 -0
- vispy/util/svg/color.py +219 -0
- vispy/util/svg/element.py +51 -0
- vispy/util/svg/geometry.py +478 -0
- vispy/util/svg/group.py +66 -0
- vispy/util/svg/length.py +81 -0
- vispy/util/svg/number.py +25 -0
- vispy/util/svg/path.py +332 -0
- vispy/util/svg/shapes.py +57 -0
- vispy/util/svg/style.py +59 -0
- vispy/util/svg/svg.py +40 -0
- vispy/util/svg/transform.py +223 -0
- vispy/util/svg/transformable.py +28 -0
- vispy/util/svg/viewport.py +73 -0
- vispy/util/tests/__init__.py +0 -0
- vispy/util/tests/test_config.py +58 -0
- vispy/util/tests/test_docstring_parameters.py +123 -0
- vispy/util/tests/test_emitter_group.py +262 -0
- vispy/util/tests/test_event_emitter.py +743 -0
- vispy/util/tests/test_fourier.py +35 -0
- vispy/util/tests/test_gallery_scraper.py +112 -0
- vispy/util/tests/test_import.py +127 -0
- vispy/util/tests/test_key.py +22 -0
- vispy/util/tests/test_logging.py +45 -0
- vispy/util/tests/test_run.py +14 -0
- vispy/util/tests/test_transforms.py +42 -0
- vispy/util/tests/test_vispy.py +48 -0
- vispy/util/transforms.py +201 -0
- vispy/util/wrappers.py +155 -0
- vispy/version.py +21 -0
- vispy/visuals/__init__.py +50 -0
- vispy/visuals/_scalable_textures.py +487 -0
- vispy/visuals/axis.py +678 -0
- vispy/visuals/border.py +208 -0
- vispy/visuals/box.py +79 -0
- vispy/visuals/collections/__init__.py +30 -0
- vispy/visuals/collections/agg_fast_path_collection.py +219 -0
- vispy/visuals/collections/agg_path_collection.py +197 -0
- vispy/visuals/collections/agg_point_collection.py +52 -0
- vispy/visuals/collections/agg_segment_collection.py +142 -0
- vispy/visuals/collections/array_list.py +401 -0
- vispy/visuals/collections/base_collection.py +482 -0
- vispy/visuals/collections/collection.py +253 -0
- vispy/visuals/collections/path_collection.py +23 -0
- vispy/visuals/collections/point_collection.py +19 -0
- vispy/visuals/collections/polygon_collection.py +25 -0
- vispy/visuals/collections/raw_path_collection.py +119 -0
- vispy/visuals/collections/raw_point_collection.py +113 -0
- vispy/visuals/collections/raw_polygon_collection.py +77 -0
- vispy/visuals/collections/raw_segment_collection.py +112 -0
- vispy/visuals/collections/raw_triangle_collection.py +78 -0
- vispy/visuals/collections/segment_collection.py +19 -0
- vispy/visuals/collections/triangle_collection.py +16 -0
- vispy/visuals/collections/util.py +168 -0
- vispy/visuals/colorbar.py +699 -0
- vispy/visuals/cube.py +41 -0
- vispy/visuals/ellipse.py +162 -0
- vispy/visuals/filters/__init__.py +10 -0
- vispy/visuals/filters/base_filter.py +242 -0
- vispy/visuals/filters/clipper.py +60 -0
- vispy/visuals/filters/clipping_planes.py +122 -0
- vispy/visuals/filters/color.py +181 -0
- vispy/visuals/filters/markers.py +28 -0
- vispy/visuals/filters/mesh.py +801 -0
- vispy/visuals/filters/picking.py +60 -0
- vispy/visuals/filters/tests/__init__.py +3 -0
- vispy/visuals/filters/tests/test_primitive_picking_filters.py +70 -0
- vispy/visuals/filters/tests/test_wireframe_filter.py +16 -0
- vispy/visuals/glsl/__init__.py +1 -0
- vispy/visuals/glsl/antialiasing.py +133 -0
- vispy/visuals/glsl/color.py +63 -0
- vispy/visuals/graphs/__init__.py +1 -0
- vispy/visuals/graphs/graph.py +240 -0
- vispy/visuals/graphs/layouts/__init__.py +55 -0
- vispy/visuals/graphs/layouts/circular.py +49 -0
- vispy/visuals/graphs/layouts/force_directed.py +211 -0
- vispy/visuals/graphs/layouts/networkx_layout.py +87 -0
- vispy/visuals/graphs/layouts/random.py +52 -0
- vispy/visuals/graphs/tests/__init__.py +1 -0
- vispy/visuals/graphs/tests/test_layouts.py +139 -0
- vispy/visuals/graphs/tests/test_networkx_layout.py +47 -0
- vispy/visuals/graphs/util.py +120 -0
- vispy/visuals/gridlines.py +161 -0
- vispy/visuals/gridmesh.py +98 -0
- vispy/visuals/histogram.py +58 -0
- vispy/visuals/image.py +701 -0
- vispy/visuals/image_complex.py +130 -0
- vispy/visuals/infinite_line.py +199 -0
- vispy/visuals/instanced_mesh.py +152 -0
- vispy/visuals/isocurve.py +213 -0
- vispy/visuals/isoline.py +241 -0
- vispy/visuals/isosurface.py +113 -0
- vispy/visuals/line/__init__.py +6 -0
- vispy/visuals/line/arrow.py +289 -0
- vispy/visuals/line/dash_atlas.py +90 -0
- vispy/visuals/line/line.py +545 -0
- vispy/visuals/line_plot.py +135 -0
- vispy/visuals/linear_region.py +199 -0
- vispy/visuals/markers.py +819 -0
- vispy/visuals/mesh.py +373 -0
- vispy/visuals/mesh_normals.py +159 -0
- vispy/visuals/plane.py +54 -0
- vispy/visuals/polygon.py +145 -0
- vispy/visuals/rectangle.py +196 -0
- vispy/visuals/regular_polygon.py +56 -0
- vispy/visuals/scrolling_lines.py +197 -0
- vispy/visuals/shaders/__init__.py +17 -0
- vispy/visuals/shaders/compiler.py +206 -0
- vispy/visuals/shaders/expression.py +99 -0
- vispy/visuals/shaders/function.py +788 -0
- vispy/visuals/shaders/multiprogram.py +145 -0
- vispy/visuals/shaders/parsing.py +140 -0
- vispy/visuals/shaders/program.py +161 -0
- vispy/visuals/shaders/shader_object.py +162 -0
- vispy/visuals/shaders/tests/__init__.py +0 -0
- vispy/visuals/shaders/tests/test_function.py +486 -0
- vispy/visuals/shaders/tests/test_multiprogram.py +78 -0
- vispy/visuals/shaders/tests/test_parsing.py +57 -0
- vispy/visuals/shaders/variable.py +272 -0
- vispy/visuals/spectrogram.py +169 -0
- vispy/visuals/sphere.py +80 -0
- vispy/visuals/surface_plot.py +192 -0
- vispy/visuals/tests/__init__.py +0 -0
- vispy/visuals/tests/test_arrows.py +109 -0
- vispy/visuals/tests/test_axis.py +120 -0
- vispy/visuals/tests/test_collections.py +15 -0
- vispy/visuals/tests/test_colorbar.py +179 -0
- vispy/visuals/tests/test_colormap.py +97 -0
- vispy/visuals/tests/test_ellipse.py +122 -0
- vispy/visuals/tests/test_gridlines.py +30 -0
- vispy/visuals/tests/test_histogram.py +24 -0
- vispy/visuals/tests/test_image.py +392 -0
- vispy/visuals/tests/test_image_complex.py +36 -0
- vispy/visuals/tests/test_infinite_line.py +53 -0
- vispy/visuals/tests/test_instanced_mesh.py +50 -0
- vispy/visuals/tests/test_isosurface.py +22 -0
- vispy/visuals/tests/test_linear_region.py +152 -0
- vispy/visuals/tests/test_markers.py +54 -0
- vispy/visuals/tests/test_mesh.py +261 -0
- vispy/visuals/tests/test_mesh_normals.py +218 -0
- vispy/visuals/tests/test_polygon.py +112 -0
- vispy/visuals/tests/test_rectangle.py +163 -0
- vispy/visuals/tests/test_regular_polygon.py +111 -0
- vispy/visuals/tests/test_scalable_textures.py +196 -0
- vispy/visuals/tests/test_sdf.py +73 -0
- vispy/visuals/tests/test_spectrogram.py +42 -0
- vispy/visuals/tests/test_surface_plot.py +57 -0
- vispy/visuals/tests/test_text.py +95 -0
- vispy/visuals/tests/test_volume.py +542 -0
- vispy/visuals/tests/test_windbarb.py +33 -0
- vispy/visuals/text/__init__.py +7 -0
- vispy/visuals/text/_sdf_cpu.cpython-313-aarch64-linux-gnu.so +0 -0
- vispy/visuals/text/_sdf_cpu.pyx +112 -0
- vispy/visuals/text/_sdf_gpu.py +316 -0
- vispy/visuals/text/text.py +675 -0
- vispy/visuals/transforms/__init__.py +34 -0
- vispy/visuals/transforms/_util.py +191 -0
- vispy/visuals/transforms/base_transform.py +233 -0
- vispy/visuals/transforms/chain.py +300 -0
- vispy/visuals/transforms/interactive.py +98 -0
- vispy/visuals/transforms/linear.py +564 -0
- vispy/visuals/transforms/nonlinear.py +398 -0
- vispy/visuals/transforms/tests/__init__.py +0 -0
- vispy/visuals/transforms/tests/test_transforms.py +243 -0
- vispy/visuals/transforms/transform_system.py +339 -0
- vispy/visuals/tube.py +173 -0
- vispy/visuals/visual.py +923 -0
- vispy/visuals/volume.py +1366 -0
- vispy/visuals/windbarb.py +291 -0
- vispy/visuals/xyz_axis.py +34 -0
- vispy-0.15.0.dist-info/METADATA +243 -0
- vispy-0.15.0.dist-info/RECORD +521 -0
- vispy-0.15.0.dist-info/WHEEL +6 -0
- vispy-0.15.0.dist-info/licenses/LICENSE.txt +36 -0
- 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
|
+
}
|