lavavu-osmesa 1.8.75__cp311-cp311-manylinux_2_28_x86_64.whl → 1.8.78__cp311-cp311-manylinux_2_28_x86_64.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.
Files changed (23) hide show
  1. lavavu/LavaVuPython.py +1 -1
  2. lavavu/_LavaVuPython.cpython-311-x86_64-linux-gnu.so +0 -0
  3. lavavu/convert.py +2 -2
  4. lavavu/html/webview.html +1 -1
  5. lavavu/lavavu.py +166 -24
  6. lavavu/vutils.py +4 -9
  7. {lavavu_osmesa-1.8.75.dist-info → lavavu_osmesa-1.8.78.dist-info}/METADATA +3 -3
  8. {lavavu_osmesa-1.8.75.dist-info → lavavu_osmesa-1.8.78.dist-info}/RECORD +58 -58
  9. {lavavu_osmesa-1.8.75.dist-info → lavavu_osmesa-1.8.78.dist-info}/WHEEL +1 -1
  10. lavavu_osmesa.libs/{libLLVM-17-67b6bd0c.so → libLLVM-17-daa109ce.so} +0 -0
  11. lavavu_osmesa.libs/{libOSMesa-dcb3c3c3.so.8.0.0 → libOSMesa-25f49adf.so.8.0.0} +0 -0
  12. lavavu_osmesa.libs/{libavcodec-9b24a347.so.61.10.100 → libavcodec-bf5b2486.so.61.21.100} +0 -0
  13. lavavu_osmesa.libs/libavformat-bc58d938.so.61.9.100 +0 -0
  14. lavavu_osmesa.libs/{libavutil-fe3e056a.so.59.28.100 → libavutil-c492c008.so.59.41.100} +0 -0
  15. lavavu_osmesa.libs/{libglapi-15da1455.so.0.0.0 → libglapi-d9260dde.so.0.0.0} +0 -0
  16. lavavu_osmesa.libs/{libswresample-1fd124bd.so.5.2.100 → libswresample-33f2d514.so.5.4.100} +0 -0
  17. lavavu_osmesa.libs/{libswscale-d65e5891.so.8.2.100 → libswscale-f9d6e3ac.so.8.4.100} +0 -0
  18. lavavu_osmesa.libs/{libtiff-b477d465.so.5.3.0 → libtiff-97fb0e7a.so.5.3.0} +0 -0
  19. lavavu_osmesa.libs/{libx264-3daadd71.so.164 → libx264-f6f11719.so.164} +0 -0
  20. lavavu_osmesa.libs/libavformat-c42ae6a5.so.61.5.101 +0 -0
  21. {lavavu_osmesa-1.8.75.dist-info → lavavu_osmesa-1.8.78.dist-info}/LICENSE.md +0 -0
  22. {lavavu_osmesa-1.8.75.dist-info → lavavu_osmesa-1.8.78.dist-info}/entry_points.txt +0 -0
  23. {lavavu_osmesa-1.8.75.dist-info → lavavu_osmesa-1.8.78.dist-info}/top_level.txt +0 -0
lavavu/LavaVuPython.py CHANGED
@@ -1,5 +1,5 @@
1
1
  # This file was automatically generated by SWIG (https://www.swig.org).
2
- # Version 4.1.0
2
+ # Version 4.2.0
3
3
  #
4
4
  # Do not make changes to this file unless you know what you are doing - modify
5
5
  # the SWIG interface file instead.
lavavu/convert.py CHANGED
@@ -110,10 +110,10 @@ def points_to_volume_histogram(verts, weights, res=8, normed=True, clamp=None, b
110
110
 
111
111
  #H, edges = numpy.histogramdd(verts, bins=RES)
112
112
  if boundingbox is None:
113
- H, edges = numpy.histogramdd(verts, weights=weights, bins=RES, normed=normed) #density=True for newer numpy
113
+ H, edges = numpy.histogramdd(verts, weights=weights, bins=RES, density=normed) #density=True for newer numpy
114
114
  else:
115
115
  rg = ((vmin[0], vmax[0]), (vmin[1], vmax[1]), (vmin[2], vmax[2])) #provide bounding box as range
116
- H, edges = numpy.histogramdd(verts, weights=weights, bins=RES, range=rg, normed=normed) #density=True for newer numpy
116
+ H, edges = numpy.histogramdd(verts, weights=weights, bins=RES, range=rg, density=normed) #density=True for newer numpy
117
117
 
118
118
  #Reverse ordering X,Y,Z to Z,Y,X for volume data
119
119
  values = H.transpose()
lavavu/html/webview.html CHANGED
@@ -27,7 +27,7 @@
27
27
 
28
28
  <input id="fileinput" type="file" style="visibility:hidden" onchange="useFileInput(this)" />
29
29
 
30
- <script async src="https://cdn.jsdelivr.net/gh/lavavu/lavavu.github.io@1.8.75/LavaVu-amalgamated.min.js"></script>
30
+ <script async src="https://cdn.jsdelivr.net/gh/lavavu/lavavu.github.io@1.8.78/LavaVu-amalgamated.min.js"></script>
31
31
  <!--script src="dat.gui.min.js"></script>
32
32
  <script src="OK-min.js"></script>
33
33
 
lavavu/lavavu.py CHANGED
@@ -166,6 +166,37 @@ def _convert(data, dtype=None):
166
166
 
167
167
  return data
168
168
 
169
+ def is_documented_by(original):
170
+ def wrapper(target):
171
+ target.__doc__ = original.__doc__
172
+ return target
173
+ return wrapper
174
+
175
+ def _brightness_contrast_saturation(target, brightness=0.5, contrast=0.5, saturation=0.5):
176
+ """
177
+ Set brightness, contrast and saturation in the range [0,1]
178
+ Zero is minimum level
179
+ 0.5 is default, normal setting
180
+ 1 is maximum level
181
+
182
+ Parameters
183
+ ----------
184
+ brightness : float
185
+ Brightness level from 0 to 1, converts to lavavu brightness in range [-1,1]
186
+ 0 is full black, 0.5 is normal and 1.0 is full white
187
+ contrast : float
188
+ Contrast level from 0 to 1, converts to lavavu contrast in range [0,2]
189
+ 0 is grey, 0.5 is normal and 1.0 is maximum contrast
190
+ saturation : float
191
+ Saturation level from 0 to 1, converts to lavavu saturation in range [0,2]
192
+ 0 is greyscale, 0.5 is normal and 1.0 is maximum over-saturation
193
+ """
194
+ #Brightness in shader is [-1,1] where 0 is default
195
+ target["brightness"] = brightness * 2.0 - 1.0
196
+ #Contrast and saturation range from [0,2] where 1 is default
197
+ target["contrast"] = contrast * 2.0
198
+ target["saturation"] = saturation * 2.0
199
+
169
200
  def grid2d(corners=((0.,1.), (1.,0.)), dims=[2,2]):
170
201
  """
171
202
  Generate a 2d grid of vertices
@@ -1102,7 +1133,7 @@ class Object(dict):
1102
1133
 
1103
1134
  self._loadScalar(data, LavaVuPython.lucLuminanceData, width, height, depth)
1104
1135
 
1105
- def texture(self, data=None, flip=True, filter=2, bgr=False):
1136
+ def texture(self, data=None, flip=True, filter=2, bgr=False, label=""):
1106
1137
  """
1107
1138
  Load or clear texture data for object
1108
1139
 
@@ -1116,6 +1147,10 @@ class Object(dict):
1116
1147
  either (height, width, channels) for RGB(A) image
1117
1148
  or (height, width) for single channel grayscale image
1118
1149
  Pass a string to load a texture from given filename
1150
+ label : string
1151
+ Optional label to load a custom texture by name of uniform used
1152
+ If provided, will attempt to find the texture by this label and replace its data
1153
+ If not provided, will use the default/primary texture for the object
1119
1154
  flip : boolean
1120
1155
  flip the texture vertically after loading
1121
1156
  (default is enabled as usually required for OpenGL but can be disabled)
@@ -1129,7 +1164,7 @@ class Object(dict):
1129
1164
  self.parent.app.clearTexture(self.ref)
1130
1165
  return
1131
1166
  if isinstance(data, str):
1132
- self.parent.app.setTexture(self.ref, data, flip, filter, bgr)
1167
+ self.parent.app.setTexture(self.ref, data, flip, filter, bgr, label)
1133
1168
  return
1134
1169
 
1135
1170
  data = _convert(data)
@@ -1145,9 +1180,9 @@ class Object(dict):
1145
1180
  if data.dtype == numpy.float32:
1146
1181
  data = _convert(data, numpy.uint8)
1147
1182
  if data.dtype == numpy.uint32:
1148
- self.parent.app.textureUInt(self.ref, data.ravel(), width, height, channels, flip, filter, bgr)
1183
+ self.parent.app.textureUInt(self.ref, data.ravel(), width, height, channels, flip, filter, bgr, label)
1149
1184
  elif data.dtype == numpy.uint8:
1150
- self.parent.app.textureUChar(self.ref, data.ravel(), width, height, channels, flip, filter, bgr)
1185
+ self.parent.app.textureUChar(self.ref, data.ravel(), width, height, channels, flip, filter, bgr, label)
1151
1186
 
1152
1187
  def labels(self, data):
1153
1188
  """
@@ -1593,6 +1628,10 @@ class Object(dict):
1593
1628
  """
1594
1629
  self.parent.export_mesh(filepath, [self], rgba)
1595
1630
 
1631
+ @is_documented_by(_brightness_contrast_saturation)
1632
+ def brightness_contrast_saturation(self, brightness=0, contrast=0, saturation=0):
1633
+ return _brightness_contrast_saturation(self)
1634
+
1596
1635
  #Wrapper dict+list of objects
1597
1636
  class _Objects(dict):
1598
1637
  """
@@ -1901,7 +1940,7 @@ class ColourMap(dict):
1901
1940
  Convert to greyscale
1902
1941
  """
1903
1942
  if data is not None:
1904
- if isinstance(data, str) and re.match('^[\w_]+$', data) is not None:
1943
+ if isinstance(data, str) and re.match(r'^[\w_]+$', data) is not None:
1905
1944
  #Single word of alphanumeric characters, if not a built-in map, try matplotlib
1906
1945
  if data not in self.parent.defaultcolourmaps():
1907
1946
  newdata = matplotlib_colourmap(data)
@@ -2280,29 +2319,29 @@ class _LavaVuWrapper(LavaVuPython.LavaVu):
2280
2319
  if _LavaVuWrapper._ctx:
2281
2320
  self.ctx = _LavaVuWrapper._ctx
2282
2321
  else:
2283
- self.ctx = moderngl.create_standalone_context(require=330)
2322
+ import platform
2323
+ if platform.system() == 'Linux':
2324
+ self.ctx = moderngl.create_context(standalone=True, require=330, backend='egl')
2325
+ else:
2326
+ self.ctx = moderngl.create_standalone_context(require=330)
2327
+ #print(self.ctx.info)
2284
2328
  _LavaVuWrapper._ctx = self.ctx
2285
2329
 
2286
2330
  if self.use_moderngl_window and self.ctx:
2287
2331
  # Activate the context
2288
2332
  moderngl_window.activate_context(ctx=self.ctx)
2289
- if self.use_moderngl_window == 'window':
2290
- # Configure with default window class / settings
2291
- from moderngl_window.conf import settings
2292
- settings.WINDOW['gl_version'] = (3, 3)
2293
- settings.WINDOW['samples'] = 4
2294
- if self.resolution:
2295
- settings.WINDOW['size'] = self.resolution
2296
- # Creates the window instance and activates its context
2297
- self.wnd = moderngl_window.create_window_from_settings()
2298
- else:
2299
- # Configure to use provided window class
2300
- window_str = 'moderngl_window.context.' + self.use_moderngl_window + '.Window'
2301
- window_cls = moderngl_window.get_window_cls(window_str)
2302
- if self.resolution:
2303
- self.wnd = window_cls(title="LavaVu", gl_version=(3, 3), samples=4, vsync=True, cursor=True, size=self.resolution)
2304
- else:
2305
- self.wnd = window_cls(title="LavaVu", gl_version=(3, 3), samples=4, vsync=True, cursor=True)
2333
+
2334
+ # Configure with default window class / settings
2335
+ from moderngl_window.conf import settings
2336
+ settings.WINDOW['gl_version'] = (3, 3)
2337
+ if self.use_moderngl_window != 'window':
2338
+ #Use specified class
2339
+ settings.WINDOW['class'] = f'moderngl_window.context.{self.use_moderngl_window}.Window'
2340
+ settings.WINDOW['samples'] = 4
2341
+ if self.resolution:
2342
+ settings.WINDOW['size'] = self.resolution
2343
+ # Creates the window instance and activates its context
2344
+ self.wnd = moderngl_window.create_window_from_settings()
2306
2345
 
2307
2346
  # register event methods
2308
2347
  self.wnd.resize_func = self.resized
@@ -3656,6 +3695,56 @@ class Viewer(dict):
3656
3695
  else:
3657
3696
  return c.tolist()
3658
3697
 
3698
+ def texture(self, label, data=None, flip=True, filter=2, bgr=False):
3699
+ """
3700
+ Load or clear global/shared texture data
3701
+
3702
+ Parameters
3703
+ ----------
3704
+ label : string
3705
+ Label to load a custom texture by name of uniform used
3706
+ Will attempt to find the texture by this label and replace its data
3707
+ data : list or array or string
3708
+ (If data is not provided, the object's texture data will be cleared)
3709
+ Pass a list or numpy uint32 or uint8 array
3710
+ texture data is loaded as raw image data
3711
+ shape of array must be 2d or 3d,
3712
+ either (height, width, channels) for RGB(A) image
3713
+ or (height, width) for single channel grayscale image
3714
+ Pass a string to load a texture from given filename
3715
+ flip : boolean
3716
+ flip the texture vertically after loading
3717
+ (default is enabled as usually required for OpenGL but can be disabled)
3718
+ filter : int
3719
+ type of filtering, 0=None/nearest, 1=linear, 2=mipmap linear
3720
+ bgr : boolean
3721
+ rgb data is in BGR/BGRA format instead of RGB/RGBA
3722
+ """
3723
+ if data is None:
3724
+ #Clear texture
3725
+ self.app.clearTexture(None, label)
3726
+ return
3727
+ if isinstance(data, str):
3728
+ self.app.setTexture(None, data, flip, filter, bgr, label)
3729
+ return
3730
+
3731
+ data = _convert(data)
3732
+ if len(data.shape) < 2:
3733
+ raise ValueError(data.shape + " : Must pass a 2D or 3D data set")
3734
+ if len(data.shape) < 3:
3735
+ height, width = data.shape
3736
+ channels = 1
3737
+ else:
3738
+ height, width, channels = data.shape
3739
+
3740
+ #Convert floating point data
3741
+ if data.dtype == numpy.float32:
3742
+ data = _convert(data, numpy.uint8)
3743
+ if data.dtype == numpy.uint32:
3744
+ self.app.textureUInt(None, data.ravel(), width, height, channels, flip, filter, bgr, label)
3745
+ elif data.dtype == numpy.uint8:
3746
+ self.app.textureUChar(None, data.ravel(), width, height, channels, flip, filter, bgr, label)
3747
+
3659
3748
  def clear(self, objects=True, colourmaps=True):
3660
3749
  """
3661
3750
  Clears all data from the visualisation
@@ -4652,6 +4741,59 @@ class Viewer(dict):
4652
4741
  self.render()
4653
4742
  convert.export_any(filepath, objects)
4654
4743
 
4744
+ @is_documented_by(_brightness_contrast_saturation)
4745
+ def brightness_contrast_saturation(self, brightness=0, contrast=0, saturation=0):
4746
+ return _brightness_contrast_saturation(self, brightness, contrast, saturation)
4747
+
4748
+ def set_properties(self, objects=None, **kwargs):
4749
+ """
4750
+ Set properties on viewer or on a set of objects by name
4751
+
4752
+ Parameters
4753
+ ----------
4754
+ objects : list
4755
+ List of objects or object names, if not provided the properties will be applied globally to the Viewer itself
4756
+ **kwargs :
4757
+ key=value property names and values to set
4758
+ """
4759
+ if objects is None:
4760
+ for key in kwargs:
4761
+ self[key] = kwargs[key]
4762
+ else:
4763
+ for o in objects:
4764
+ if isinstance(o, str):
4765
+ obj = self.objects[o]
4766
+ else:
4767
+ obj = o
4768
+ for key in kwargs:
4769
+ obj[key] = kwargs[key]
4770
+
4771
+ def set_uniforms(self, objects=None, **kwargs):
4772
+ """
4773
+ Set uniform variables on a set of objects by name or all objects
4774
+ Uniforms are parameters sent directly to the shader program and can have any
4775
+ valid GLSL variable name, it just needs to match the declaration in the shader
4776
+
4777
+ Parameters
4778
+ ----------
4779
+ objects : list
4780
+ List of objects or object names, if not provided the full object list will be iterated
4781
+ **kwargs :
4782
+ key=value uniform names and values to set
4783
+ """
4784
+ if objects == None: objects = self.objects.list
4785
+ if not isinstance(objects, list):
4786
+ objects = [objects]
4787
+ for o in objects:
4788
+ if isinstance(o, str):
4789
+ obj = self.objects[o]
4790
+ else:
4791
+ obj = o
4792
+ uniforms = obj['uniforms']
4793
+ for key in kwargs:
4794
+ uniforms[key] = kwargs[key]
4795
+ obj['uniforms'] = uniforms
4796
+
4655
4797
  #Wrapper for list of geomdata objects
4656
4798
  class Geometry(list):
4657
4799
  """
@@ -5278,7 +5420,7 @@ class Video(object):
5278
5420
  def __exit__(self, exc_type, exc_value, exc_traceback):
5279
5421
  self.stop()
5280
5422
  if exc_value == None:
5281
- print('Recording complete, filename: ', self.filename)
5423
+ #print('Recording complete, filename: ', self.filename)
5282
5424
  self.play()
5283
5425
  else:
5284
5426
  print('Recording failed: ', exc_value)
lavavu/vutils.py CHANGED
@@ -81,15 +81,10 @@ def download(url, filename=None, overwrite=False, quiet=False):
81
81
  filename : str
82
82
  Actual filename written to local filesystem
83
83
  """
84
- #Python 3 moved modules
85
- try:
86
- from urllib.request import urlopen, URLError, HTTPError, Request
87
- from urllib.parse import urlparse
88
- from urllib.parse import quote
89
- except ImportError:
90
- from urllib2 import urlopen, URLError, HTTPError, Request
91
- from urllib import quote
92
- from urlparse import urlparse
84
+ from urllib.request import urlopen, URLError, HTTPError, Request
85
+ from urllib.parse import urlparse
86
+ from urllib.parse import quote
87
+ import http.client
93
88
 
94
89
  if filename is None:
95
90
  filename = url[url.rfind("/")+1:]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lavavu-osmesa
3
- Version: 1.8.75
3
+ Version: 1.8.78
4
4
  Summary: Python interface to LavaVu OpenGL 3D scientific visualisation utilities
5
5
  Author-email: Owen Kaluza <owen@kaluza.id.au>
6
6
  License: ### Licensing
@@ -212,7 +212,7 @@ Classifier: Framework :: IPython
212
212
  Requires-Python: >=3.5
213
213
  Description-Content-Type: text/markdown
214
214
  License-File: LICENSE.md
215
- Requires-Dist: numpy >=1.18
215
+ Requires-Dist: numpy>=1.18
216
216
  Requires-Dist: aiohttp
217
217
  Requires-Dist: jupyter-server-proxy
218
218
 
@@ -221,7 +221,7 @@ Requires-Dist: jupyter-server-proxy
221
221
  [![Build Status](https://github.com/lavavu/LavaVu/workflows/Test/badge.svg)](https://github.com/lavavu/LavaVu/actions?query=workflow:Test)
222
222
  [![Deploy Status](https://github.com/lavavu/LavaVu/workflows/Deploy/badge.svg?branch=1.7.3)](https://github.com/lavavu/LavaVu/actions?query=workflow:Deploy)
223
223
  [![DOI](https://zenodo.org/badge/45163055.svg)](https://zenodo.org/badge/latestdoi/45163055)
224
- [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/lavavu/LavaVu/1.8.75)
224
+ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/lavavu/LavaVu/1.8.78)
225
225
 
226
226
  A scientific visualisation tool with a python interface for fast and flexible visual analysis.
227
227
 
@@ -1,72 +1,72 @@
1
- lavavu_osmesa-1.8.75.dist-info/LICENSE.md,sha256=EhfNgC6BYh5gDEaq4tcrN3S0wbO4CtJO46botJnCF8c,8603
2
- lavavu_osmesa-1.8.75.dist-info/entry_points.txt,sha256=LC2qXR6EMe45Cb7zGAF99R9HFrAECP6Qkp_YuG6HZB0,44
3
- lavavu_osmesa-1.8.75.dist-info/WHEEL,sha256=NgovPWl1j4jxbLBZ4WUWvVzJ-8RRAZMdl4suBIcdA48,113
4
- lavavu_osmesa-1.8.75.dist-info/top_level.txt,sha256=JptS0k1nlBumjLs_0hITr3_XUJhxqvKBXD2jGho3E3A,7
5
- lavavu_osmesa-1.8.75.dist-info/RECORD,,
6
- lavavu_osmesa-1.8.75.dist-info/METADATA,sha256=X88k3zMjiqqSt_FSypSj5WlY12QOaKOPk7Zd3hZKLL0,18245
7
- lavavu_osmesa.libs/libavcodec-9b24a347.so.61.10.100,sha256=OuNIeLm5LjB1v3frPdJYB0POTxL6OA6n4f5ZKKnb4Ww,14669737
1
+ lavavu_osmesa.libs/libavutil-c492c008.so.59.41.100,sha256=rNSXK81gDrNyvqnlidHIpxlW3v1OIw4c4DDhsr0MiEQ,1009281
2
+ lavavu_osmesa.libs/libjbig-2504a0c3.so.2.1,sha256=VejIx8sDX3xfCuJkrk9HEyWBYjZbUiTyIRuoPqT-ibE,54265
3
+ lavavu_osmesa.libs/libselinux-64a010fa.so.1,sha256=dNJwuKqYp8fwkmrQ9hom3hVQ-lYUkNxxHb4vmrk8zmE,195097
4
+ lavavu_osmesa.libs/libx264-f6f11719.so.164,sha256=gRSM4VOh2sahsRw-7ElQdJ0NkkJYl1o8pu1C98m2ubs,2431745
8
5
  lavavu_osmesa.libs/libzstd-76b78bac.so.1.4.4,sha256=F2-A6yQ3AA2N0vHZe-81OfEUOcwgjjWiOnYAxk2Kflc,686073
9
- lavavu_osmesa.libs/libglapi-15da1455.so.0.0.0,sha256=J-4aXwZvmt4H2ui9v757tLP85SRGaQM3Yf7x-T03sAU,247921
10
- lavavu_osmesa.libs/libffi-3a37023a.so.6.0.2,sha256=Q1Rq1XplFBXNFHvg92SNmTgQ0T6E9wmcqZcgOZ7DgLE,42489
11
- lavavu_osmesa.libs/libtiff-b477d465.so.5.3.0,sha256=r1onUuuM8PAMq6GY0yo-l0Vc5Wz9J8ILr-sOS7XIMhg,517801
6
+ lavavu_osmesa.libs/libtinfo-a91ae06d.so.6.1,sha256=ylcRm-p3vHbtqqnOK25Yg166VdRjXdG7wt055cEqshY,194041
12
7
  lavavu_osmesa.libs/libpcre2-8-516f4c9d.so.0.7.1,sha256=IcbljW_oKuAVlrAwKz8qtRZxfi1sQH_iKxPSoNpzsmU,547745
13
- lavavu_osmesa.libs/libOSMesa-dcb3c3c3.so.8.0.0,sha256=jq91eNqqtuicwcrl9YJ5aVitQ4QuhldodcpUbRvjVmo,12995657
14
- lavavu_osmesa.libs/libLLVM-17-67b6bd0c.so,sha256=TYyjrYZ3iuwN-Z-FvXCMe81i_BSwpUrwLgVGuTJLYkk,120778961
15
- lavavu_osmesa.libs/libavformat-c42ae6a5.so.61.5.101,sha256=0ij7xfMRC8MIHEMk7U1za3IrlZh-cKPu5J4XELyErqE,2686361
16
- lavavu_osmesa.libs/libjbig-2504a0c3.so.2.1,sha256=VejIx8sDX3xfCuJkrk9HEyWBYjZbUiTyIRuoPqT-ibE,54265
17
- lavavu_osmesa.libs/libbz2-e34b29ae.so.1.0.6,sha256=t0Rx5MGhoqFd8hOzCgew5TwGvZFpy_XTk-dae2FXAEs,79145
18
- lavavu_osmesa.libs/libdrm-41d47e04.so.2.4.0,sha256=9sDQ2C1T7GZWMDE_2apzPgXKepcVFcJ_oD6XvIIjPfU,96417
19
- lavavu_osmesa.libs/libavutil-fe3e056a.so.59.28.100,sha256=8X1JfMTflCGgJXcDUKL_WN4cyi22q1Z0FYYc-8ueZgc,1001001
20
- lavavu_osmesa.libs/libswscale-d65e5891.so.8.2.100,sha256=C-MsUd8yJuEVR5as_wjQUS49Qjs2w1LsTO5x1_jKD5o,619921
21
- lavavu_osmesa.libs/libx264-3daadd71.so.164,sha256=1AiHi-PoYrS70fP_NvC9HYuEKWhqPr5wVP81HJCB32E,2431745
22
8
  lavavu_osmesa.libs/libjpeg-da649728.so.62.2.0,sha256=IoO1YzjSjixVQSs5SiWK95E-RREenSFc2B97tb-x_5E,437961
23
- lavavu_osmesa.libs/libtinfo-a91ae06d.so.6.1,sha256=ylcRm-p3vHbtqqnOK25Yg166VdRjXdG7wt055cEqshY,194041
24
- lavavu_osmesa.libs/libswresample-1fd124bd.so.5.2.100,sha256=sVpZLMPa83wGUyFFiB7RoWljLZZrks-4T0rVFyAS9Ag,128265
25
- lavavu_osmesa.libs/libselinux-64a010fa.so.1,sha256=dNJwuKqYp8fwkmrQ9hom3hVQ-lYUkNxxHb4vmrk8zmE,195097
26
- lavavu/lavavu.py,sha256=wTa9yyjDRdqdsmJbIEkj0vyrd0_ZElFbPg6_sjn8vd0,201960
27
- lavavu/LavaVuPython.py,sha256=Ki8G9XYHkyfqmxG6BohDWomvSn5eJwG9cHqGzEhZDDs,33131
28
- lavavu/font.bin,sha256=fvi5zkvmq6gh9v3jXedBVuxNJWKmHtbjECzv6eT9wb4,225360
29
- lavavu/__init__.py,sha256=JroZQiUbuVN7ifixk2zNDGlyLGaM8bqfRbw4D_F9qIQ,191
30
- lavavu/vutils.py,sha256=L5TpyGlRHThhGChzaKhB70NQd75o3ctyKhSqZTsxceg,5624
31
- lavavu/_LavaVuPython.cpython-311-x86_64-linux-gnu.so,sha256=iyzES7wmicgVL6fHaaOfQEIWZr_-rYyElfjs6PhABws,75915401
9
+ lavavu_osmesa.libs/libavformat-bc58d938.so.61.9.100,sha256=_jLk52JfJky4yX9FTuyUhkhZlRZSTUZ1IamY8LAR85g,2690473
10
+ lavavu_osmesa.libs/libtiff-97fb0e7a.so.5.3.0,sha256=ReUrhN0yHYGg-Fws0_oHS7soNRaqYFAMCqpS5FXXbMU,517801
11
+ lavavu_osmesa.libs/libdrm-41d47e04.so.2.4.0,sha256=9sDQ2C1T7GZWMDE_2apzPgXKepcVFcJ_oD6XvIIjPfU,96417
12
+ lavavu_osmesa.libs/libglapi-d9260dde.so.0.0.0,sha256=lk2-KJ-TfqKogN82K9yu6G_StS6MtPDFNP7dN1CZSjo,247921
13
+ lavavu_osmesa.libs/libLLVM-17-daa109ce.so,sha256=wumzyUaOpJdo9vrpZcOiQFmufeYQGDxsy5-o9UexG6k,120778961
14
+ lavavu_osmesa.libs/libffi-3a37023a.so.6.0.2,sha256=Q1Rq1XplFBXNFHvg92SNmTgQ0T6E9wmcqZcgOZ7DgLE,42489
15
+ lavavu_osmesa.libs/libOSMesa-25f49adf.so.8.0.0,sha256=De9wfVwYetAolbJN8qotdAc3j69RQHdhKrvmay-kD4I,12995657
16
+ lavavu_osmesa.libs/libswresample-33f2d514.so.5.4.100,sha256=hn9aLCevWzi9eoDxHpiY5zl5t0O-GoLHxsr09t-sG34,128265
17
+ lavavu_osmesa.libs/libbz2-e34b29ae.so.1.0.6,sha256=t0Rx5MGhoqFd8hOzCgew5TwGvZFpy_XTk-dae2FXAEs,79145
18
+ lavavu_osmesa.libs/libavcodec-bf5b2486.so.61.21.100,sha256=gSVc1ibCyQ6say6EUqmvXDycPpGcw9eMEszvc-SIJPM,14755777
19
+ lavavu_osmesa.libs/libswscale-f9d6e3ac.so.8.4.100,sha256=Zk_9wt5XFtIVpIJgFSROFt8I_1rk1j-cXZ6VFbua9AQ,619921
20
+ lavavu_osmesa-1.8.78.dist-info/LICENSE.md,sha256=EhfNgC6BYh5gDEaq4tcrN3S0wbO4CtJO46botJnCF8c,8603
21
+ lavavu_osmesa-1.8.78.dist-info/METADATA,sha256=A7H2i2YSz6bKY-cWxwz0jqfs2YlX-N7we2QYBYLhuTc,18244
22
+ lavavu_osmesa-1.8.78.dist-info/entry_points.txt,sha256=LC2qXR6EMe45Cb7zGAF99R9HFrAECP6Qkp_YuG6HZB0,44
23
+ lavavu_osmesa-1.8.78.dist-info/RECORD,,
24
+ lavavu_osmesa-1.8.78.dist-info/WHEEL,sha256=da47F2xkzJkkx2ePR6jDMXUaw3EJ8RiozHF-3rPa9qA,113
25
+ lavavu_osmesa-1.8.78.dist-info/top_level.txt,sha256=JptS0k1nlBumjLs_0hITr3_XUJhxqvKBXD2jGho3E3A,7
26
+ lavavu/convert.py,sha256=tbYRjLE2l1hI4d6tsW41Lia1JXmrWSc0-JAYCiMrjys,35516
32
27
  lavavu/tracers.py,sha256=0dB6v9Jg5G-IeZxiVFvbPoTycGvyAQBtgyEAZUmq4XU,4257
28
+ lavavu/points.py,sha256=jRRtA6CrcA46Y2jUJmkxnIiVoMC5a14xEd_ojhmjhz4,5871
33
29
  lavavu/control.py,sha256=eNocZPc-2Dz-nSty_KRz_9RzLvbU0clJGuAV3qnzxbU,65841
34
- lavavu/server.py,sha256=L-_yPCbNfwYxJCPjDQtr_lxPnDp4oMNVFyxXhBERYrQ,12468
30
+ lavavu/font.bin,sha256=fvi5zkvmq6gh9v3jXedBVuxNJWKmHtbjECzv6eT9wb4,225360
31
+ lavavu/aserver.py,sha256=SfFvLeDTcx1XtS8fY_HIrDmh3q9HicCBRSAriY5yyOE,12003
35
32
  lavavu/__main__.py,sha256=EbDetijCjyoiNxmExqnDGoRVs996tSVave5DML9zuMY,235
36
- lavavu/dict.json,sha256=Zb1QnJOsx2DK3M1tRSXRUQ5PjEpOo3SMM3tTNHIKMPs,52722
37
- lavavu/convert.py,sha256=JT73q32YMchuSIkoH_A0cTUVwfns8fWLGjyWp2A5i5M,35514
33
+ lavavu/vutils.py,sha256=6Vm_xl1bp9mWlfk7jgLDwbRw-tdE_oxin77YkLel3_4,5437
34
+ lavavu/LavaVuPython.py,sha256=ZdBJROEPysd_N_Od88PEO8Y1fjCOd05_vP6YBnJymN0,33131
38
35
  lavavu/amalgamate.py,sha256=Xloq1IZ4VUvYiROzQtwKcQIWC65c7EZrdiGVhZdolL8,586
39
- lavavu/aserver.py,sha256=SfFvLeDTcx1XtS8fY_HIrDmh3q9HicCBRSAriY5yyOE,12003
40
- lavavu/points.py,sha256=jRRtA6CrcA46Y2jUJmkxnIiVoMC5a14xEd_ojhmjhz4,5871
41
- lavavu/shaders/triShader.vert,sha256=pJXftq7IiqiGe7NTMmuBUMDs4OZc9TD8lNJ4q-8B57Q,1120
42
- lavavu/shaders/pointShader.vert,sha256=rnEa8PfIK3kFtFg04Ataf10aWsjEkh1URY2ipV1xTMY,1235
43
- lavavu/shaders/default.frag,sha256=xCkYz8QriRlnAr-NtenZSIWI_liSxv9jz3Lp5immK9k,258
44
- lavavu/shaders/pointShader.frag,sha256=T1PA9Z6FiE66rS2sAmmFIbYM2VqEkLBycxV-sx3nACY,3384
45
- lavavu/shaders/fontShader.vert,sha256=yCBmRugaPUeUQUdIh62-AK_5KELiJqVS2M82iyIqPwo,290
46
- lavavu/shaders/lineShader.vert,sha256=6kJQcfu3eqaj910_KdaklVRvYxNbeu0ZbpDEOxRVde0,522
47
- lavavu/shaders/lineShader.frag,sha256=aCmOWC20fHinR32p6LZPdCZP6abn-K1V2slbJ_5NoVA,945
48
- lavavu/shaders/fontShader.frag,sha256=DXAzO7kS36TBzYMJW0XqFiQQTTc4jFedGiUkLjelYKs,444
49
- lavavu/shaders/triShader.frag,sha256=pG6eWiVgtHB8cSHyB8W3SHrc7-mLqaCRlZaHZfsEKhc,5007
50
- lavavu/shaders/default.vert,sha256=9J5Oqg8ns711fSNeQTtdA7ENb2sfonx0KGh1QfHp5Ws,317
51
- lavavu/shaders/volumeShader.vert,sha256=uGdQjGqi7V5kE6V7nxymfugtU4cbf6u570xBy13RgmY,78
52
- lavavu/shaders/volumeShader.frag,sha256=CIFSfwI8xVZ0ALme2QPMcXWl5yB55WCGnfJZ1Led6TU,16120
53
- lavavu/html/baseviewer.js,sha256=u3UhC1At6rMBKmcQ7d2DXTRxQ20wsQkc4lqA-7sL7i4,9567
54
- lavavu/html/draw.js,sha256=57LlHlYRh0IvWVwzGDnF6PaCxYLzokpokLNCuZlG1ds,84108
55
- lavavu/html/gl-matrix-min.js,sha256=qfhP_dWP2bTSL1ibMX2IYw7KDXBW2IhgpfhvU9kKjhM,23143
56
- lavavu/html/webview-template.html,sha256=Mh9sOd6YEOiwJa_fPwyY4s9AdCuvsaHKLwVipVk_4Go,1530
57
- lavavu/html/emscripten-template.js,sha256=h63mzl3Lv7aQT1wMOiOucPOvHTJjpKkzsL-SFVYaZlA,6135
36
+ lavavu/lavavu.py,sha256=SWErzmykoOphtNAHpMOSzsXaKzvk8XFy-zTXBrPgasE,207530
37
+ lavavu/dict.json,sha256=Zb1QnJOsx2DK3M1tRSXRUQ5PjEpOo3SMM3tTNHIKMPs,52722
38
+ lavavu/__init__.py,sha256=JroZQiUbuVN7ifixk2zNDGlyLGaM8bqfRbw4D_F9qIQ,191
39
+ lavavu/_LavaVuPython.cpython-311-x86_64-linux-gnu.so,sha256=XVNnBBRAsym9wcqeXn9Gc3MsJU9nYP8nReEgN7H9dIw,76846145
40
+ lavavu/server.py,sha256=L-_yPCbNfwYxJCPjDQtr_lxPnDp4oMNVFyxXhBERYrQ,12468
58
41
  lavavu/html/styles.css,sha256=68pH0fWIc0mP1puFbsIg0ET9G1ujd40Aiqfx4phuzjs,2983
59
42
  lavavu/html/control.js,sha256=Gi3eszKip1JsrM1HrMvSJWjqFZql6DPXdMUkU6Zuj7Q,11466
60
- lavavu/html/stats.min.js,sha256=iiwrLW4SUBhrzWrfW2VZP_9mowHX-Ks1EKORFv4EHdE,1965
61
- lavavu/html/emscripten.css,sha256=wkaIJhXaxuMchinQX9Z8c12cJomyvFQMeIZ62WGQEPQ,1813
43
+ lavavu/html/gl-matrix-min.js,sha256=qfhP_dWP2bTSL1ibMX2IYw7KDXBW2IhgpfhvU9kKjhM,23143
62
44
  lavavu/html/OK-min.js,sha256=-4Gc1-dWfxP_w6r9ZOHa8u-X2BlGUoSQbX68lwCxQ3E,39115
63
- lavavu/html/drawbox.js,sha256=SJxFSmWd7QVFI5__66hFkKzLKeqg1JPcx-gJuqdMkXw,34590
64
- lavavu/html/favicon.ico,sha256=OrIWwvxOSnOCuynrGRUyEIVQng0ZwA9Rrz89S9eiog0,1150
45
+ lavavu/html/emscripten-template.js,sha256=h63mzl3Lv7aQT1wMOiOucPOvHTJjpKkzsL-SFVYaZlA,6135
65
46
  lavavu/html/server.js,sha256=b5eNlWWbiEk90n3WARJ1Mh7lmfHM0pOtZfrrmM-wfyc,7099
66
- lavavu/html/dat-gui-light-theme.css,sha256=uPhvJs-1IAsdxudItyOw8lZy8Hrih0zmFM1u-xRwZ-M,1142
67
- lavavu/html/webview.html,sha256=T3AQXMNZwPWpWfdrBe6hjUyZh98_ds15SBjZc1Y-KwY,1522
68
47
  lavavu/html/dat.gui.min.js,sha256=S4_QjoXe4IOpU0f0Sj5jEQLTWPoX9uRl1ohB91jyhuw,56992
69
48
  lavavu/html/control.css,sha256=PVLwmle00ciEckUV5ZIRmI3Whxhl7-mlVexnyyxoU70,3259
70
- lavavu/html/LavaVu-amalgamated.css,sha256=iE2xrxFcwmY0AcASrXxNa_RpvFEbS_YO4H5OILbPteE,8640
71
- lavavu/html/gui.css,sha256=PRDLsYwM6cgLC9zZsEAG0dnnSd-HYH6oSEfsdEBkuxk,582
72
49
  lavavu/html/menu.js,sha256=WCli3UYcQ7frjNq0aAXNALu33iNiN8lpTYwKZ7pUcn4,21501
50
+ lavavu/html/emscripten.css,sha256=wkaIJhXaxuMchinQX9Z8c12cJomyvFQMeIZ62WGQEPQ,1813
51
+ lavavu/html/webview-template.html,sha256=Mh9sOd6YEOiwJa_fPwyY4s9AdCuvsaHKLwVipVk_4Go,1530
52
+ lavavu/html/drawbox.js,sha256=SJxFSmWd7QVFI5__66hFkKzLKeqg1JPcx-gJuqdMkXw,34590
53
+ lavavu/html/dat-gui-light-theme.css,sha256=uPhvJs-1IAsdxudItyOw8lZy8Hrih0zmFM1u-xRwZ-M,1142
54
+ lavavu/html/favicon.ico,sha256=OrIWwvxOSnOCuynrGRUyEIVQng0ZwA9Rrz89S9eiog0,1150
55
+ lavavu/html/gui.css,sha256=PRDLsYwM6cgLC9zZsEAG0dnnSd-HYH6oSEfsdEBkuxk,582
56
+ lavavu/html/draw.js,sha256=57LlHlYRh0IvWVwzGDnF6PaCxYLzokpokLNCuZlG1ds,84108
57
+ lavavu/html/LavaVu-amalgamated.css,sha256=iE2xrxFcwmY0AcASrXxNa_RpvFEbS_YO4H5OILbPteE,8640
58
+ lavavu/html/stats.min.js,sha256=iiwrLW4SUBhrzWrfW2VZP_9mowHX-Ks1EKORFv4EHdE,1965
59
+ lavavu/html/webview.html,sha256=ypEkZ_t6I01qAGL8hyxDoSTF3Bk4Uk7e13_vye-EKTs,1522
60
+ lavavu/html/baseviewer.js,sha256=u3UhC1At6rMBKmcQ7d2DXTRxQ20wsQkc4lqA-7sL7i4,9567
61
+ lavavu/shaders/volumeShader.frag,sha256=CIFSfwI8xVZ0ALme2QPMcXWl5yB55WCGnfJZ1Led6TU,16120
62
+ lavavu/shaders/lineShader.vert,sha256=6kJQcfu3eqaj910_KdaklVRvYxNbeu0ZbpDEOxRVde0,522
63
+ lavavu/shaders/fontShader.vert,sha256=yCBmRugaPUeUQUdIh62-AK_5KELiJqVS2M82iyIqPwo,290
64
+ lavavu/shaders/default.frag,sha256=xCkYz8QriRlnAr-NtenZSIWI_liSxv9jz3Lp5immK9k,258
65
+ lavavu/shaders/pointShader.frag,sha256=T1PA9Z6FiE66rS2sAmmFIbYM2VqEkLBycxV-sx3nACY,3384
66
+ lavavu/shaders/fontShader.frag,sha256=DXAzO7kS36TBzYMJW0XqFiQQTTc4jFedGiUkLjelYKs,444
67
+ lavavu/shaders/pointShader.vert,sha256=rnEa8PfIK3kFtFg04Ataf10aWsjEkh1URY2ipV1xTMY,1235
68
+ lavavu/shaders/triShader.vert,sha256=pJXftq7IiqiGe7NTMmuBUMDs4OZc9TD8lNJ4q-8B57Q,1120
69
+ lavavu/shaders/triShader.frag,sha256=pG6eWiVgtHB8cSHyB8W3SHrc7-mLqaCRlZaHZfsEKhc,5007
70
+ lavavu/shaders/default.vert,sha256=9J5Oqg8ns711fSNeQTtdA7ENb2sfonx0KGh1QfHp5Ws,317
71
+ lavavu/shaders/volumeShader.vert,sha256=uGdQjGqi7V5kE6V7nxymfugtU4cbf6u570xBy13RgmY,78
72
+ lavavu/shaders/lineShader.frag,sha256=aCmOWC20fHinR32p6LZPdCZP6abn-K1V2slbJ_5NoVA,945
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.3.0)
2
+ Generator: setuptools (75.1.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp311-cp311-manylinux_2_28_x86_64
5
5
 
index 195511b..db3eef4 100755
Binary file
index 0fc7500..ab05114 100755
Binary file
index 6b145d8..0d4cb9b 100755
Binary file
index 551d3dd..7522c1b 100755
Binary file
index dae35eb..07ee839 100755
Binary file
index 7e28ab8..3d47415 100755
Binary file
index 5ab16c1..4564390 100755
Binary file