capytaine 2.3__cp310-cp310-win_amd64.whl → 3.0.0a1__cp310-cp310-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.
- capytaine/__about__.py +7 -2
- capytaine/__init__.py +11 -15
- capytaine/bem/engines.py +234 -354
- capytaine/bem/problems_and_results.py +30 -21
- capytaine/bem/solver.py +205 -81
- capytaine/bodies/bodies.py +279 -862
- capytaine/bodies/dofs.py +136 -9
- capytaine/bodies/hydrostatics.py +540 -0
- capytaine/bodies/multibodies.py +216 -0
- capytaine/green_functions/{libs/Delhommeau_float32.cp310-win_amd64.dll.a → Delhommeau_float32.cp310-win_amd64.dll.a} +0 -0
- capytaine/green_functions/Delhommeau_float32.cp310-win_amd64.pyd +0 -0
- capytaine/green_functions/{libs/Delhommeau_float64.cp310-win_amd64.dll.a → Delhommeau_float64.cp310-win_amd64.dll.a} +0 -0
- capytaine/green_functions/Delhommeau_float64.cp310-win_amd64.pyd +0 -0
- capytaine/green_functions/abstract_green_function.py +2 -2
- capytaine/green_functions/delhommeau.py +50 -31
- capytaine/green_functions/hams.py +19 -13
- capytaine/io/legacy.py +3 -103
- capytaine/io/xarray.py +15 -10
- capytaine/meshes/__init__.py +2 -6
- capytaine/meshes/abstract_meshes.py +375 -0
- capytaine/meshes/clean.py +302 -0
- capytaine/meshes/clip.py +347 -0
- capytaine/meshes/export.py +89 -0
- capytaine/meshes/geometry.py +244 -394
- capytaine/meshes/io.py +433 -0
- capytaine/meshes/meshes.py +621 -676
- capytaine/meshes/predefined/cylinders.py +22 -56
- capytaine/meshes/predefined/rectangles.py +26 -85
- capytaine/meshes/predefined/spheres.py +4 -11
- capytaine/meshes/quality.py +118 -407
- capytaine/meshes/surface_integrals.py +48 -29
- capytaine/meshes/symmetric_meshes.py +641 -0
- capytaine/meshes/visualization.py +353 -0
- capytaine/post_pro/free_surfaces.py +1 -4
- capytaine/post_pro/kochin.py +10 -10
- capytaine/tools/block_circulant_matrices.py +275 -0
- capytaine/tools/lists_of_points.py +2 -2
- capytaine/tools/memory_monitor.py +45 -0
- capytaine/tools/symbolic_multiplication.py +31 -5
- capytaine/tools/timer.py +68 -42
- capytaine-3.0.0a1.dist-info/DELVEWHEEL +2 -0
- {capytaine-2.3.dist-info → capytaine-3.0.0a1.dist-info}/METADATA +8 -14
- capytaine-3.0.0a1.dist-info/RECORD +70 -0
- capytaine/bodies/predefined/__init__.py +0 -6
- capytaine/bodies/predefined/cylinders.py +0 -151
- capytaine/bodies/predefined/rectangles.py +0 -111
- capytaine/bodies/predefined/spheres.py +0 -70
- capytaine/green_functions/FinGreen3D/.gitignore +0 -1
- capytaine/green_functions/FinGreen3D/FinGreen3D.f90 +0 -3589
- capytaine/green_functions/FinGreen3D/LICENSE +0 -165
- capytaine/green_functions/FinGreen3D/Makefile +0 -16
- capytaine/green_functions/FinGreen3D/README.md +0 -24
- capytaine/green_functions/FinGreen3D/test_program.f90 +0 -39
- capytaine/green_functions/LiangWuNoblesse/.gitignore +0 -1
- capytaine/green_functions/LiangWuNoblesse/LICENSE +0 -504
- capytaine/green_functions/LiangWuNoblesse/LiangWuNoblesseWaveTerm.f90 +0 -751
- capytaine/green_functions/LiangWuNoblesse/Makefile +0 -18
- capytaine/green_functions/LiangWuNoblesse/README.md +0 -2
- capytaine/green_functions/LiangWuNoblesse/test_program.f90 +0 -28
- capytaine/green_functions/libs/Delhommeau_float32.cp310-win_amd64.pyd +0 -0
- capytaine/green_functions/libs/Delhommeau_float64.cp310-win_amd64.pyd +0 -0
- capytaine/green_functions/libs/__init__.py +0 -0
- capytaine/io/mesh_loaders.py +0 -1086
- capytaine/io/mesh_writers.py +0 -692
- capytaine/io/meshio.py +0 -38
- capytaine/matrices/__init__.py +0 -16
- capytaine/matrices/block.py +0 -592
- capytaine/matrices/block_toeplitz.py +0 -325
- capytaine/matrices/builders.py +0 -89
- capytaine/matrices/linear_solvers.py +0 -232
- capytaine/matrices/low_rank.py +0 -395
- capytaine/meshes/clipper.py +0 -465
- capytaine/meshes/collections.py +0 -334
- capytaine/meshes/mesh_like_protocol.py +0 -37
- capytaine/meshes/properties.py +0 -276
- capytaine/meshes/quadratures.py +0 -80
- capytaine/meshes/symmetric.py +0 -392
- capytaine/tools/lru_cache.py +0 -49
- capytaine/ui/vtk/__init__.py +0 -3
- capytaine/ui/vtk/animation.py +0 -329
- capytaine/ui/vtk/body_viewer.py +0 -28
- capytaine/ui/vtk/helpers.py +0 -82
- capytaine/ui/vtk/mesh_viewer.py +0 -461
- capytaine-2.3.dist-info/DELVEWHEEL +0 -2
- capytaine-2.3.dist-info/RECORD +0 -97
- {capytaine-2.3.dist-info → capytaine-3.0.0a1.dist-info}/LICENSE +0 -0
- {capytaine-2.3.dist-info → capytaine-3.0.0a1.dist-info}/WHEEL +0 -0
- {capytaine-2.3.dist-info → capytaine-3.0.0a1.dist-info}/entry_points.txt +0 -0
capytaine/ui/vtk/mesh_viewer.py
DELETED
|
@@ -1,461 +0,0 @@
|
|
|
1
|
-
"""3D display of a mesh with VTK.
|
|
2
|
-
Based on meshmagick <https://github.com/LHEEA/meshmagick> by François Rongère.
|
|
3
|
-
"""
|
|
4
|
-
# Copyright (C) 2017-2019 Matthieu Ancellin, based on the work of François Rongère
|
|
5
|
-
# See LICENSE file at <https://github.com/mancellin/capytaine>
|
|
6
|
-
|
|
7
|
-
import datetime
|
|
8
|
-
from itertools import cycle
|
|
9
|
-
from os import getcwd
|
|
10
|
-
|
|
11
|
-
from capytaine.ui.vtk.helpers import compute_vtk_polydata
|
|
12
|
-
from capytaine.tools.optional_imports import import_optional_dependency
|
|
13
|
-
|
|
14
|
-
vtk = import_optional_dependency("vtk")
|
|
15
|
-
|
|
16
|
-
__year__ = datetime.datetime.now().year
|
|
17
|
-
|
|
18
|
-
COLORS = cycle([(1, 1, 0), (1, 0, 1), (1, 0, 0), (0, 1, 0), (0, 0, 1), (0, 1, 1)])
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class MeshViewer:
|
|
22
|
-
"""This class implements a viewer based on VTK"""
|
|
23
|
-
def __init__(self):
|
|
24
|
-
|
|
25
|
-
# Building renderer
|
|
26
|
-
self.renderer = vtk.vtkRenderer()
|
|
27
|
-
self.renderer.SetBackground(0.7706, 0.8165, 1.0)
|
|
28
|
-
|
|
29
|
-
# Building render window
|
|
30
|
-
self.render_window = vtk.vtkRenderWindow()
|
|
31
|
-
self.render_window.SetSize(1024, 768)
|
|
32
|
-
self.render_window.SetWindowName("Mesh viewer")
|
|
33
|
-
self.render_window.AddRenderer(self.renderer)
|
|
34
|
-
|
|
35
|
-
# Building interactor
|
|
36
|
-
self.render_window_interactor = vtk.vtkRenderWindowInteractor()
|
|
37
|
-
self.render_window_interactor.SetRenderWindow(self.render_window)
|
|
38
|
-
self.render_window_interactor.GetInteractorStyle().SetCurrentStyleToTrackballCamera()
|
|
39
|
-
self.render_window_interactor.AddObserver('KeyPressEvent', self.on_key_press, 0.0)
|
|
40
|
-
|
|
41
|
-
# Building axes view
|
|
42
|
-
axes = vtk.vtkAxesActor()
|
|
43
|
-
widget = vtk.vtkOrientationMarkerWidget()
|
|
44
|
-
widget.SetOrientationMarker(axes)
|
|
45
|
-
self.widget = widget
|
|
46
|
-
|
|
47
|
-
self.widget.SetInteractor(self.render_window_interactor)
|
|
48
|
-
self.widget.SetEnabled(1)
|
|
49
|
-
self.widget.InteractiveOn()
|
|
50
|
-
|
|
51
|
-
# Building command annotations
|
|
52
|
-
command_text = ("left mouse : rotate\n"
|
|
53
|
-
"right mouse : zoom\n"
|
|
54
|
-
"middle mouse : pan\n"
|
|
55
|
-
"ctrl+left mouse : spin\n"
|
|
56
|
-
"n : (un)show normals\n"
|
|
57
|
-
"b : (un)show axes box\n"
|
|
58
|
-
"f : focus on the mouse cursor\n"
|
|
59
|
-
"r : reset view\n"
|
|
60
|
-
"s : surface representation\n"
|
|
61
|
-
"w : wire representation\n"
|
|
62
|
-
"h : (un)show Oxy plane\n"
|
|
63
|
-
"x : save\n"
|
|
64
|
-
"c : screenshot\n"
|
|
65
|
-
"q : quit")
|
|
66
|
-
|
|
67
|
-
corner_annotation = vtk.vtkCornerAnnotation()
|
|
68
|
-
corner_annotation.SetLinearFontScaleFactor(2)
|
|
69
|
-
corner_annotation.SetNonlinearFontScaleFactor(1)
|
|
70
|
-
corner_annotation.SetMaximumFontSize(20)
|
|
71
|
-
corner_annotation.SetText(3, command_text)
|
|
72
|
-
corner_annotation.GetTextProperty().SetColor(0., 0., 0.)
|
|
73
|
-
self.renderer.AddViewProp(corner_annotation)
|
|
74
|
-
|
|
75
|
-
copyright_text = (f"Capytaine — Copyright 2017-{__year__} University College Dublin\n"
|
|
76
|
-
f"based on Meshmagick Viewer — Copyright 2014-{__year__}, École Centrale de Nantes")
|
|
77
|
-
|
|
78
|
-
copyright_annotation = vtk.vtkCornerAnnotation()
|
|
79
|
-
copyright_annotation.SetLinearFontScaleFactor(0.5)
|
|
80
|
-
copyright_annotation.SetNonlinearFontScaleFactor(1)
|
|
81
|
-
copyright_annotation.SetMaximumFontSize(12)
|
|
82
|
-
copyright_annotation.SetText(1, copyright_text)
|
|
83
|
-
copyright_annotation.GetTextProperty().SetColor(0., 0., 0.)
|
|
84
|
-
self.renderer.AddViewProp(copyright_annotation)
|
|
85
|
-
|
|
86
|
-
self.polydatas = []
|
|
87
|
-
self.normals = []
|
|
88
|
-
self.axes = []
|
|
89
|
-
self.oxy_plane = None
|
|
90
|
-
|
|
91
|
-
# DISPLAY OF A MESH
|
|
92
|
-
|
|
93
|
-
def add_polydata(self, polydata, color=(1, 1, 0), representation='surface'):
|
|
94
|
-
"""Add a polydata object to the viewer
|
|
95
|
-
|
|
96
|
-
Parameters
|
|
97
|
-
----------
|
|
98
|
-
polydata : vtkPolyData
|
|
99
|
-
the object to be added
|
|
100
|
-
color : array_like, optional
|
|
101
|
-
the color of the object. Default is yellow (1, 1, 0)
|
|
102
|
-
representation : str
|
|
103
|
-
the representation mode of the object ('surface' or 'wireframe'). Default is 'surface'.
|
|
104
|
-
"""
|
|
105
|
-
|
|
106
|
-
assert isinstance(polydata, vtk.vtkPolyData)
|
|
107
|
-
assert representation in ('surface', 'wireframe')
|
|
108
|
-
|
|
109
|
-
self.polydatas.append(polydata)
|
|
110
|
-
|
|
111
|
-
# Building mapper
|
|
112
|
-
mapper = vtk.vtkPolyDataMapper()
|
|
113
|
-
mapper.SetInputData(polydata)
|
|
114
|
-
|
|
115
|
-
# Building actor
|
|
116
|
-
actor = vtk.vtkActor()
|
|
117
|
-
actor.SetMapper(mapper)
|
|
118
|
-
|
|
119
|
-
# Properties setting
|
|
120
|
-
actor.GetProperty().SetColor(color)
|
|
121
|
-
actor.GetProperty().EdgeVisibilityOn()
|
|
122
|
-
actor.GetProperty().SetEdgeColor(0, 0, 0)
|
|
123
|
-
actor.GetProperty().SetLineWidth(1)
|
|
124
|
-
actor.GetProperty().SetPointSize(10)
|
|
125
|
-
if representation == 'wireframe':
|
|
126
|
-
actor.GetProperty().SetRepresentationToWireframe()
|
|
127
|
-
|
|
128
|
-
self.renderer.AddActor(actor)
|
|
129
|
-
self.renderer.Modified()
|
|
130
|
-
|
|
131
|
-
def add_mesh(self, mesh, color=None, representation='surface'):
|
|
132
|
-
vtk_polydata = compute_vtk_polydata(mesh)
|
|
133
|
-
if color is None:
|
|
134
|
-
color = next(COLORS)
|
|
135
|
-
self.add_polydata(vtk_polydata, color=color, representation=representation)
|
|
136
|
-
|
|
137
|
-
# ADD MORE DETAILS
|
|
138
|
-
|
|
139
|
-
def add_oxy_plane(self):
|
|
140
|
-
"""Displays the Oxy plane"""
|
|
141
|
-
|
|
142
|
-
one_mesh_in_the_viewer = self.polydatas[0]
|
|
143
|
-
|
|
144
|
-
plane = vtk.vtkPlaneSource()
|
|
145
|
-
(xmin, xmax, ymin, ymax, _, _) = one_mesh_in_the_viewer.GetBounds()
|
|
146
|
-
|
|
147
|
-
dx = max(0.1 * (xmax - xmin), 0.1)
|
|
148
|
-
dy = max(0.1 * (ymax - ymin), 0.1)
|
|
149
|
-
|
|
150
|
-
plane.SetOrigin(xmin - dx, ymax + dy, 0)
|
|
151
|
-
plane.SetPoint1(xmin - dx, ymin - dy, 0)
|
|
152
|
-
plane.SetPoint2(xmax + dx, ymax + dy, 0)
|
|
153
|
-
plane.Update()
|
|
154
|
-
polydata = plane.GetOutput()
|
|
155
|
-
|
|
156
|
-
mapper = vtk.vtkPolyDataMapper()
|
|
157
|
-
mapper.SetInputData(polydata)
|
|
158
|
-
|
|
159
|
-
actor = vtk.vtkActor()
|
|
160
|
-
actor.SetMapper(mapper)
|
|
161
|
-
|
|
162
|
-
color = [0., 102. / 255, 204. / 255]
|
|
163
|
-
actor.GetProperty().SetColor(color)
|
|
164
|
-
actor.GetProperty().SetEdgeColor(0, 0, 0)
|
|
165
|
-
actor.GetProperty().SetLineWidth(1)
|
|
166
|
-
|
|
167
|
-
self.renderer.AddActor(actor)
|
|
168
|
-
self.renderer.Modified()
|
|
169
|
-
self.oxy_plane = actor
|
|
170
|
-
|
|
171
|
-
def show_normals(self):
|
|
172
|
-
"""Shows the normals of the current objects"""
|
|
173
|
-
|
|
174
|
-
for polydata in self.polydatas:
|
|
175
|
-
normals = vtk.vtkPolyDataNormals()
|
|
176
|
-
normals.ConsistencyOff()
|
|
177
|
-
normals.ComputeCellNormalsOn()
|
|
178
|
-
normals.SetInputData(polydata)
|
|
179
|
-
normals.Update()
|
|
180
|
-
|
|
181
|
-
normals_at_centers = vtk.vtkCellCenters()
|
|
182
|
-
normals_at_centers.SetInputConnection(normals.GetOutputPort())
|
|
183
|
-
|
|
184
|
-
arrows = vtk.vtkArrowSource()
|
|
185
|
-
arrows.SetTipResolution(16)
|
|
186
|
-
arrows.SetTipLength(0.5)
|
|
187
|
-
arrows.SetTipRadius(0.1)
|
|
188
|
-
|
|
189
|
-
glyph = vtk.vtkGlyph3D()
|
|
190
|
-
glyph.SetSourceConnection(arrows.GetOutputPort())
|
|
191
|
-
glyph.SetInputConnection(normals_at_centers.GetOutputPort())
|
|
192
|
-
glyph.SetVectorModeToUseNormal()
|
|
193
|
-
glyph.SetScaleModeToScaleByVector()
|
|
194
|
-
glyph.SetScaleFactor(1) # FIXME: may be too big ...
|
|
195
|
-
# glyph.SetVectorModeToUseNormal()
|
|
196
|
-
# glyph.SetVectorModeToUseVector()
|
|
197
|
-
# glyph.SetScaleModeToDataScalingOff()
|
|
198
|
-
glyph.Update()
|
|
199
|
-
|
|
200
|
-
glyph_mapper = vtk.vtkPolyDataMapper()
|
|
201
|
-
glyph_mapper.SetInputConnection(glyph.GetOutputPort())
|
|
202
|
-
|
|
203
|
-
glyph_actor = vtk.vtkActor()
|
|
204
|
-
glyph_actor.SetMapper(glyph_mapper)
|
|
205
|
-
|
|
206
|
-
self.renderer.AddActor(glyph_actor)
|
|
207
|
-
self.normals.append(glyph_actor)
|
|
208
|
-
|
|
209
|
-
def show_axes(self):
|
|
210
|
-
"""Shows the axes around the main object"""
|
|
211
|
-
|
|
212
|
-
tprop = vtk.vtkTextProperty()
|
|
213
|
-
tprop.SetColor(0., 0., 0.)
|
|
214
|
-
tprop.ShadowOn()
|
|
215
|
-
|
|
216
|
-
axes = vtk.vtkCubeAxesActor2D()
|
|
217
|
-
axes.SetInputData(self.polydatas[0])
|
|
218
|
-
|
|
219
|
-
axes.SetCamera(self.renderer.GetActiveCamera())
|
|
220
|
-
axes.SetLabelFormat("%6.4g")
|
|
221
|
-
axes.SetFlyModeToOuterEdges()
|
|
222
|
-
axes.SetFontFactor(0.8)
|
|
223
|
-
axes.SetAxisTitleTextProperty(tprop)
|
|
224
|
-
axes.SetAxisLabelTextProperty(tprop)
|
|
225
|
-
# axes.DrawGridLinesOn()
|
|
226
|
-
|
|
227
|
-
self.renderer.AddViewProp(axes)
|
|
228
|
-
self.axes.append(axes)
|
|
229
|
-
|
|
230
|
-
def save(self):
|
|
231
|
-
"""Saves the main object in a 'mmviewer_save.vtp' vtp file is the current folder"""
|
|
232
|
-
|
|
233
|
-
writer = vtk.vtkXMLPolyDataWriter()
|
|
234
|
-
writer.SetDataModeToAscii()
|
|
235
|
-
writer.SetFileName('mmviewer_save.vtp')
|
|
236
|
-
|
|
237
|
-
for polydata in self.polydatas:
|
|
238
|
-
writer.SetInputData(polydata)
|
|
239
|
-
writer.Write()
|
|
240
|
-
|
|
241
|
-
print("File 'mmviewer_save.vtp' written in %s" % getcwd())
|
|
242
|
-
return
|
|
243
|
-
|
|
244
|
-
def screenshot(self):
|
|
245
|
-
"""Saves a screenshot of the current window in a file screenshot.png"""
|
|
246
|
-
w2if = vtk.vtkWindowToImageFilter()
|
|
247
|
-
w2if.SetInput(self.render_window)
|
|
248
|
-
w2if.Update()
|
|
249
|
-
|
|
250
|
-
writer = vtk.vtkPNGWriter()
|
|
251
|
-
writer.SetFileName("screenshot.png")
|
|
252
|
-
writer.SetInputData(w2if.GetOutput())
|
|
253
|
-
writer.Write()
|
|
254
|
-
|
|
255
|
-
print("File 'screenshot.png' written in %s" % getcwd())
|
|
256
|
-
return
|
|
257
|
-
|
|
258
|
-
# INTERACTION
|
|
259
|
-
|
|
260
|
-
def show(self):
|
|
261
|
-
"""Show the viewer"""
|
|
262
|
-
self.renderer.ResetCamera()
|
|
263
|
-
self.render_window.Render()
|
|
264
|
-
self.render_window_interactor.Start()
|
|
265
|
-
|
|
266
|
-
def on_key_press(self, obj, event):
|
|
267
|
-
"""Event trig at keystroke"""
|
|
268
|
-
key = obj.GetKeySym()
|
|
269
|
-
|
|
270
|
-
if key == 'n':
|
|
271
|
-
if self.normals:
|
|
272
|
-
# self.normals = False
|
|
273
|
-
for actor in self.normals:
|
|
274
|
-
self.renderer.RemoveActor(actor)
|
|
275
|
-
self.renderer.Render()
|
|
276
|
-
self.normals = []
|
|
277
|
-
else:
|
|
278
|
-
self.show_normals()
|
|
279
|
-
self.renderer.Render()
|
|
280
|
-
|
|
281
|
-
elif key == 'b':
|
|
282
|
-
if self.axes:
|
|
283
|
-
for axis in self.axes:
|
|
284
|
-
self.renderer.RemoveActor(axis)
|
|
285
|
-
self.axes = []
|
|
286
|
-
else:
|
|
287
|
-
self.show_axes()
|
|
288
|
-
|
|
289
|
-
elif key == 'x':
|
|
290
|
-
self.save()
|
|
291
|
-
|
|
292
|
-
elif key == 'c':
|
|
293
|
-
self.screenshot()
|
|
294
|
-
|
|
295
|
-
elif key == 'h':
|
|
296
|
-
if self.oxy_plane:
|
|
297
|
-
self.renderer.RemoveActor(self.oxy_plane)
|
|
298
|
-
self.oxy_plane = None
|
|
299
|
-
else:
|
|
300
|
-
self.add_oxy_plane()
|
|
301
|
-
|
|
302
|
-
elif key == 'e' or key == 'q':
|
|
303
|
-
self.render_window_interactor.GetRenderWindow().Finalize()
|
|
304
|
-
self.render_window_interactor.TerminateApp()
|
|
305
|
-
|
|
306
|
-
def finalize(self):
|
|
307
|
-
"""Cleanly close the viewer"""
|
|
308
|
-
del self.render_window
|
|
309
|
-
del self.render_window_interactor
|
|
310
|
-
|
|
311
|
-
# =======================================
|
|
312
|
-
# =======================================
|
|
313
|
-
# =======================================
|
|
314
|
-
|
|
315
|
-
# OTHER METHODS THAT ARE CURRENTLY UNUSED
|
|
316
|
-
|
|
317
|
-
def add_point(self, pos, color=(0, 0, 0)):
|
|
318
|
-
"""Add a point to the viewer
|
|
319
|
-
|
|
320
|
-
Parameters
|
|
321
|
-
----------
|
|
322
|
-
pos : array_like
|
|
323
|
-
The point's position
|
|
324
|
-
color : array_like, optional
|
|
325
|
-
The RGB color required for the point. Default is (0, 0, 0) corresponding to black.
|
|
326
|
-
|
|
327
|
-
Returns
|
|
328
|
-
-------
|
|
329
|
-
vtkPolyData
|
|
330
|
-
"""
|
|
331
|
-
|
|
332
|
-
assert len(pos) == 3
|
|
333
|
-
|
|
334
|
-
p = vtk.vtkPoints()
|
|
335
|
-
v = vtk.vtkCellArray()
|
|
336
|
-
|
|
337
|
-
i = p.InsertNextPoint(pos)
|
|
338
|
-
v.InsertNextCell(1)
|
|
339
|
-
v.InsertCellPoint(i)
|
|
340
|
-
|
|
341
|
-
pd = vtk.vtkPolyData()
|
|
342
|
-
pd.SetPoints(p)
|
|
343
|
-
pd.SetVerts(v)
|
|
344
|
-
|
|
345
|
-
self.add_polydata(pd, color=color)
|
|
346
|
-
|
|
347
|
-
return pd
|
|
348
|
-
|
|
349
|
-
def add_line(self, p0, p1, color=(0, 0, 0)):
|
|
350
|
-
"""Add a line to the viewer
|
|
351
|
-
|
|
352
|
-
Parameters
|
|
353
|
-
----------
|
|
354
|
-
p0 : array_like
|
|
355
|
-
position of one end point of the line
|
|
356
|
-
p1 : array_like
|
|
357
|
-
position of a second end point of the line
|
|
358
|
-
color : array_like, optional
|
|
359
|
-
RGB color of the line. Default is black (0, 0, 0)
|
|
360
|
-
|
|
361
|
-
Returns
|
|
362
|
-
-------
|
|
363
|
-
vtkPolyData
|
|
364
|
-
"""
|
|
365
|
-
|
|
366
|
-
assert len(p0) == 3 and len(p1) == 3
|
|
367
|
-
|
|
368
|
-
points = vtk.vtkPoints()
|
|
369
|
-
points.InsertNextPoint(p0)
|
|
370
|
-
points.InsertNextPoint(p1)
|
|
371
|
-
|
|
372
|
-
line = vtk.vtkLine()
|
|
373
|
-
line.GetPointIds().SetId(0, 0)
|
|
374
|
-
line.GetPointIds().SetId(1, 1)
|
|
375
|
-
|
|
376
|
-
lines = vtk.vtkCellArray()
|
|
377
|
-
lines.InsertNextCell(line)
|
|
378
|
-
|
|
379
|
-
lines_pd = vtk.vtkPolyData()
|
|
380
|
-
lines_pd.SetPoints(points)
|
|
381
|
-
lines_pd.SetLines(lines)
|
|
382
|
-
|
|
383
|
-
self.add_polydata(lines_pd, color=color)
|
|
384
|
-
|
|
385
|
-
return lines_pd
|
|
386
|
-
|
|
387
|
-
def add_vector(self, point, value, scale=1, color=(0, 0, 0)):
|
|
388
|
-
"""Add a vector to the viewer
|
|
389
|
-
|
|
390
|
-
Parameters
|
|
391
|
-
----------
|
|
392
|
-
point : array_like
|
|
393
|
-
starting point position of the vector
|
|
394
|
-
value : float
|
|
395
|
-
the magnitude of the vector
|
|
396
|
-
scale : float, optional
|
|
397
|
-
the scaling to apply to the vector for better visualization. Default is 1.
|
|
398
|
-
color : array_like
|
|
399
|
-
The color of the vector. Default is black (0, 0, 0)
|
|
400
|
-
"""
|
|
401
|
-
|
|
402
|
-
points = vtk.vtkPoints()
|
|
403
|
-
idx = points.InsertNextPoint(point)
|
|
404
|
-
|
|
405
|
-
vert = vtk.vtkCellArray()
|
|
406
|
-
vert.InsertNextCell(1)
|
|
407
|
-
vert.InsertCellPoint(idx)
|
|
408
|
-
pd_point = vtk.vtkPolyData()
|
|
409
|
-
pd_point.SetPoints(points)
|
|
410
|
-
pd_point.SetVerts(vert)
|
|
411
|
-
|
|
412
|
-
arrow = vtk.vtkArrowSource()
|
|
413
|
-
arrow.SetTipResolution(16)
|
|
414
|
-
arrow.SetTipLength(0.1)
|
|
415
|
-
arrow.SetTipRadius(0.02)
|
|
416
|
-
arrow.SetShaftRadius(0.005)
|
|
417
|
-
|
|
418
|
-
vec = vtk.vtkFloatArray()
|
|
419
|
-
vec.SetNumberOfComponents(3)
|
|
420
|
-
v0, v1, v2 = value / scale
|
|
421
|
-
vec.InsertTuple3(idx, v0, v1, v2)
|
|
422
|
-
pd_point.GetPointData().SetVectors(vec)
|
|
423
|
-
|
|
424
|
-
g_glyph = vtk.vtkGlyph3D()
|
|
425
|
-
# g_glyph.SetScaleModeToDataScalingOff()
|
|
426
|
-
g_glyph.SetVectorModeToUseVector()
|
|
427
|
-
g_glyph.SetInputData(pd_point)
|
|
428
|
-
g_glyph.SetSourceConnection(arrow.GetOutputPort())
|
|
429
|
-
g_glyph.SetScaleModeToScaleByVector()
|
|
430
|
-
# g_glyph.SetScaleFactor(10)
|
|
431
|
-
g_glyph.ScalingOn()
|
|
432
|
-
g_glyph.Update()
|
|
433
|
-
|
|
434
|
-
g_glyph_mapper = vtk.vtkPolyDataMapper()
|
|
435
|
-
g_glyph_mapper.SetInputConnection(g_glyph.GetOutputPort())
|
|
436
|
-
|
|
437
|
-
g_glyph_actor = vtk.vtkActor()
|
|
438
|
-
g_glyph_actor.SetMapper(g_glyph_mapper)
|
|
439
|
-
g_glyph_actor.GetProperty().SetColor(color)
|
|
440
|
-
|
|
441
|
-
self.renderer.AddActor(g_glyph_actor)
|
|
442
|
-
|
|
443
|
-
def add_plane(self, center, normal):
|
|
444
|
-
"""Add a plane to the viewer
|
|
445
|
-
|
|
446
|
-
Parameters
|
|
447
|
-
----------
|
|
448
|
-
center : array_like
|
|
449
|
-
The origin of the plane
|
|
450
|
-
normal : array_like
|
|
451
|
-
The normal of the plane
|
|
452
|
-
"""
|
|
453
|
-
|
|
454
|
-
plane = vtk.vtkPlaneSource()
|
|
455
|
-
plane.SetCenter(center)
|
|
456
|
-
plane.SetNormal(normal)
|
|
457
|
-
|
|
458
|
-
mapper = vtk.vtkPolyDataMapper()
|
|
459
|
-
mapper.SetInputData(plane.GetOutput())
|
|
460
|
-
|
|
461
|
-
# FIXME: terminer l'implementation et l'utiliser pour le plan de la surface libre
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
Version: 1.10.1
|
|
2
|
-
Arguments: ['C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-9rerwt60\\cp310-win_amd64\\build\\venv\\Scripts\\delvewheel', 'repair', '-w', 'C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-9rerwt60\\cp310-win_amd64\\repaired_wheel', 'C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-9rerwt60\\cp310-win_amd64\\built_wheel\\capytaine-2.3-cp310-cp310-win_amd64.whl', '--no-mangle-all']
|
capytaine-2.3.dist-info/RECORD
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
capytaine/__about__.py,sha256=LRZ6r4hFLAiFQOnekKww3qXw0AwGCtRHyfduv0eZKcc,429
|
|
2
|
-
capytaine/__init__.py,sha256=BHnatA7zRAuTQpRuNgHp9cx0WwXmHV1qkT9ev98eUzk,2184
|
|
3
|
-
capytaine/bem/airy_waves.py,sha256=vap1Qmdo-m1lZ-WLj_5TJY2v3_bNJNtJ_04OkJX83fA,3609
|
|
4
|
-
capytaine/bem/engines.py,sha256=8ShZTaYTYUKSQwt_sHwWH8BfBlt1G0RkDM3mSfuyeE4,18511
|
|
5
|
-
capytaine/bem/problems_and_results.py,sha256=j3xdiKZ77fvTMQ8l_JyArTPtcZ284IX1dxgciVbuDZg,27632
|
|
6
|
-
capytaine/bem/solver.py,sha256=e1oHAC8c6paOMpeClg34zA3II90Ao_Rzdx-uHIozr1E,29389
|
|
7
|
-
capytaine/bem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
-
capytaine/bodies/bodies.py,sha256=kTPL3cyk47erZXaVAi9Z1Oqfz0Cfv_GjS9vZO0KqplI,53456
|
|
9
|
-
capytaine/bodies/dofs.py,sha256=CCGNYqilJE6eppyKxiF_712Vc5iCkbbbrRFCZwvKLdY,617
|
|
10
|
-
capytaine/bodies/__init__.py,sha256=1157LRyNMo7TFZOMvlsC7NPPSMflsZVPfMxeLyNUQkU,161
|
|
11
|
-
capytaine/bodies/predefined/cylinders.py,sha256=1F9aLXp5ZzUcdo0_xncIliNIK3KAIFMc2XspjfWPh-k,5747
|
|
12
|
-
capytaine/bodies/predefined/rectangles.py,sha256=4iHUNJO_5oX8Xfhj2zTg4mIbOu7Myab7owd7FQREPb4,4611
|
|
13
|
-
capytaine/bodies/predefined/spheres.py,sha256=vHCuB9wq7Fkgx62tYSSpxqo8mgNna49nAQ_bS4GcfAI,2668
|
|
14
|
-
capytaine/bodies/predefined/__init__.py,sha256=oXMF4lq-wIWO5IWtUt4ZywVAGIi926zYTUz2j_iogT4,344
|
|
15
|
-
capytaine/green_functions/abstract_green_function.py,sha256=PjV2qANb71JEK1YI1GPCF4_2UmBZLN7YCKllvMP6ELY,2898
|
|
16
|
-
capytaine/green_functions/delhommeau.py,sha256=CwLaP2r-qaEZeAr0LaLJL7Hdt4cCGLF_QITsQ27jjcA,23860
|
|
17
|
-
capytaine/green_functions/hams.py,sha256=MS04A6ucbxk7tqGcgrihthbz1Uj4jpL1B4LvdN0C-jc,8456
|
|
18
|
-
capytaine/green_functions/__init__.py,sha256=Rvl4Xv0MbD9NOpcnYkiSpeD097l_SQX8C5r-9CvdIZs,109
|
|
19
|
-
capytaine/green_functions/FinGreen3D/.gitignore,sha256=IxYDvaMqbeEuzSKLq9nRgJIH2AtjPp-ugUuPMhlNirE,8
|
|
20
|
-
capytaine/green_functions/FinGreen3D/FinGreen3D.f90,sha256=tBsSc6BfQJpaFQ6j6tEYWG25u_SixJnooiCfQ1Uu9MI,119957
|
|
21
|
-
capytaine/green_functions/FinGreen3D/LICENSE,sha256=6n0EnHcF3BOvwgLdGOGCfzSE-CEv0_p7gvxKDDY0Msk,7816
|
|
22
|
-
capytaine/green_functions/FinGreen3D/Makefile,sha256=GncBNZbtwwyR3MsuXTydppLxzAzSpC6_NKdgEFZiirQ,370
|
|
23
|
-
capytaine/green_functions/FinGreen3D/README.md,sha256=DshpH31IvMrxmF0qhYoW5GlK32s_jM8kacBKjW_K_y4,2004
|
|
24
|
-
capytaine/green_functions/FinGreen3D/test_program.f90,sha256=JYDnew3326C_hCZISpWDS_3Xk5SGEJW-p48hE22XwQY,965
|
|
25
|
-
capytaine/green_functions/LiangWuNoblesse/.gitignore,sha256=IxYDvaMqbeEuzSKLq9nRgJIH2AtjPp-ugUuPMhlNirE,8
|
|
26
|
-
capytaine/green_functions/LiangWuNoblesse/LiangWuNoblesseWaveTerm.f90,sha256=BYaVrslAbglcI-7-kOz7qH3AQKLY4rvCmXaa7zfDCaM,22552
|
|
27
|
-
capytaine/green_functions/LiangWuNoblesse/LICENSE,sha256=f_4ZVFh8d9-6HPjrmy6nQ2cfpuY_nnovJYEZ1C4U7v4,27030
|
|
28
|
-
capytaine/green_functions/LiangWuNoblesse/Makefile,sha256=25uL3q1VNE9ladcJf9CWMHJ1j2nm8klpKQ-uFEUWctQ,431
|
|
29
|
-
capytaine/green_functions/LiangWuNoblesse/README.md,sha256=mrO9uR0UcNbDOXRjNwahU7AIto-DXHXmNiA5gJ1jKpk,104
|
|
30
|
-
capytaine/green_functions/LiangWuNoblesse/test_program.f90,sha256=xBkCHsS17Mik7IKgTKRTZNz4EwQcPgnJM1WSmopEWqQ,522
|
|
31
|
-
capytaine/green_functions/libs/Delhommeau_float32.cp310-win_amd64.dll.a,sha256=FRbH0F5JyKoOhA1wE04YEEaaU7-2q57-IHZng0z3Dfk,1886
|
|
32
|
-
capytaine/green_functions/libs/Delhommeau_float32.cp310-win_amd64.pyd,sha256=eVeX92LEbEKQy-gnXND0saveHB68JqtRjXbbQ7B_ELI,417166
|
|
33
|
-
capytaine/green_functions/libs/Delhommeau_float64.cp310-win_amd64.dll.a,sha256=yYEw91ZfsNiUAOhMswK1O__djIXYk5OwOIZ1ZrqqYyg,1886
|
|
34
|
-
capytaine/green_functions/libs/Delhommeau_float64.cp310-win_amd64.pyd,sha256=jS-R8iK1vrX6Q9SCnROnXSYyXZfkRCRpbwVIFTHJC4k,475069
|
|
35
|
-
capytaine/green_functions/libs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
-
capytaine/io/bemio.py,sha256=_UKSNaI-uuT3ICSEpBRSHhWqN3cFjuBab2t-EJLRtxU,7487
|
|
37
|
-
capytaine/io/legacy.py,sha256=YwVxJKzofVyTshOcb84wr1l0Q2W4USeJNKau5PSBx5o,15058
|
|
38
|
-
capytaine/io/meshio.py,sha256=bu575xBYbl_7VOUwJz7cvtEPe1twYud2hZDWlbX3jjg,1507
|
|
39
|
-
capytaine/io/mesh_loaders.py,sha256=5Zb33dgfEZ2B-3SzbMML__N8yGfpbXDDgwuh6Fd561M,32857
|
|
40
|
-
capytaine/io/mesh_writers.py,sha256=pk88khE-8uXFJj1jmy80C6-saVn8-B7GohSmCWtco9k,21776
|
|
41
|
-
capytaine/io/wamit.py,sha256=ZCYQBPa2vBWLadtZP9Gkvrq_GpYdhxs4ekPLFDHTHRQ,16507
|
|
42
|
-
capytaine/io/xarray.py,sha256=g0wNvPqvfP6ZqPscKmqDCmyafBdZg5HapXsfEMa67MA,27577
|
|
43
|
-
capytaine/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
44
|
-
capytaine/matrices/block.py,sha256=Kqsyx1NkFyvwGuNB5Ws-UW5tcMa6pAYDfs6BfiVO0Tw,26078
|
|
45
|
-
capytaine/matrices/block_toeplitz.py,sha256=2G6Hg3cY6nhAsGPpz84utaXKPd0rALdRtGH9MQyd7LQ,13255
|
|
46
|
-
capytaine/matrices/builders.py,sha256=gAV7nDKaC-vwZNieJeOjdErUG19fJHyOA8VCU69-0Rc,3242
|
|
47
|
-
capytaine/matrices/linear_solvers.py,sha256=yobnf7afu7a5Sgby9z8ZcHAjSRlQxVQj7a4Qprvc-qY,9169
|
|
48
|
-
capytaine/matrices/low_rank.py,sha256=ftWVq35dP-9fNZcqMU6FOXyQcrg_3-0u3ba7g1oW0Oo,16391
|
|
49
|
-
capytaine/matrices/__init__.py,sha256=BYCiuVbu4sp3Z6mdbK5uTphUTalvaLhHX1aPLljlsRA,720
|
|
50
|
-
capytaine/meshes/clipper.py,sha256=3C1vxe6mlAYdv0uvtvc3ZA_Lb43ks7UZmDZ1mE9ImRc,19142
|
|
51
|
-
capytaine/meshes/collections.py,sha256=8El0zPaUIWbGu_hoqo_CNIv_rbuLfO77AaxNmTr3R7c,11423
|
|
52
|
-
capytaine/meshes/geometry.py,sha256=QSowVTd4dva0pe4osfFZj0giaL-7Dj-T3wdVZ4k-Clg,14516
|
|
53
|
-
capytaine/meshes/meshes.py,sha256=-avX1RpGhCp2rLyNtuC7kSBSivjpaguV_K_9x4LfUN8,33165
|
|
54
|
-
capytaine/meshes/mesh_like_protocol.py,sha256=ACIwdvJO_qK6wwvbXUT8s5EoHAIUWWJNoBpDrR_3WCY,1066
|
|
55
|
-
capytaine/meshes/properties.py,sha256=zNnQCTAMReiJDMguU9pPwca_Zj_NDTTRqT-uVgABI0E,11066
|
|
56
|
-
capytaine/meshes/quadratures.py,sha256=j6waiQlEoRfzUsnTL2dQg9Ynq5WYkwZT7vV8KOCwN4E,3307
|
|
57
|
-
capytaine/meshes/quality.py,sha256=YVS294DJCTEyB9qGXEP56h9yqxjWIl6hg8P0QI2msIo,14831
|
|
58
|
-
capytaine/meshes/surface_integrals.py,sha256=7s_LOtyz2I1SFFsUE1YMoeSR-02MsocRb8AJS6hTEjc,2326
|
|
59
|
-
capytaine/meshes/symmetric.py,sha256=_yQ8iRiCooFtvH6ryoOUYv0nIbutYiz5atU2rD8USIM,16089
|
|
60
|
-
capytaine/meshes/__init__.py,sha256=FKeQT_I3TAb9iHNqJi0qf9HPo_O001P4fXhZQZ8Oj50,367
|
|
61
|
-
capytaine/meshes/predefined/cylinders.py,sha256=r2UC8uMb60QyyUBaMEvCEkJ9EmazZvDnO-p0GsS2Us8,15160
|
|
62
|
-
capytaine/meshes/predefined/rectangles.py,sha256=wX0vtY8YLMmJ3UZk2oi7q5eKakDnULCXxMhO1KC8eC8,12555
|
|
63
|
-
capytaine/meshes/predefined/spheres.py,sha256=1_fwCvK2sdv3VPdH8xzMeLasbIb-ZYQkT5YQP5hKcDQ,2274
|
|
64
|
-
capytaine/meshes/predefined/__init__.py,sha256=BQJOD_GolXloY8Lww0Orhhi0F5m838urQl_-MbsfKLI,371
|
|
65
|
-
capytaine/post_pro/free_surfaces.py,sha256=QwkBHU3si7TlXu3reWFDAuWQb_HrlkeMZwDmArJpzM0,3205
|
|
66
|
-
capytaine/post_pro/impedance.py,sha256=Or2rzFQDewXc0aeO1_Q_B3Sy0sR_hK6afW1VcVe6zT4,3584
|
|
67
|
-
capytaine/post_pro/kochin.py,sha256=xM--OknA8T9zp9m_zgSuUYyJw6tlqIMOeCEB6d375nA,1981
|
|
68
|
-
capytaine/post_pro/rao.py,sha256=vyrNCCInAAsVZHsM3agsk35-PLelcMLAV25LsAUJwlQ,2353
|
|
69
|
-
capytaine/post_pro/__init__.py,sha256=Q5cAAosHI_X24h6mALZvfJWGUobCxWyB4lSMHFMDX4M,280
|
|
70
|
-
capytaine/tools/cache_on_disk.py,sha256=LwUaMkvd-Z46EXeVyYhGQpeNve5PVpM2qj0ESUHXYRs,938
|
|
71
|
-
capytaine/tools/deprecation_handling.py,sha256=oewPgemWDwbZ9of3uPS5k_RZ4kBldHtHYvjbX2PgerY,827
|
|
72
|
-
capytaine/tools/lists_of_points.py,sha256=OOCZkFBsPZj25KGYAvX2BhVLNnxbR-1lT3BSoEDq5YQ,1880
|
|
73
|
-
capytaine/tools/lru_cache.py,sha256=OH1J6XhXyKQGKfDhngBne_D_C2Jub3g92Y5JWWcN4ik,1758
|
|
74
|
-
capytaine/tools/optional_imports.py,sha256=L2_6h1My2jjl7GHL0_hmHsjOE8hRWFrs0eiq_OIDTH8,887
|
|
75
|
-
capytaine/tools/prony_decomposition.py,sha256=_iqHEhop8oBREz0zY35WXV-UkPw1QHbQhP6L_BrtCQM,5297
|
|
76
|
-
capytaine/tools/symbolic_multiplication.py,sha256=MQLsbAfQcWEn7YgcSNRhBmHMRRXY_8wA9Okt4IGaDmI,4560
|
|
77
|
-
capytaine/tools/timer.py,sha256=Ch47sRiDcOF-EcVrdM7Eyv4Lch2wqf2eQpIXNgHENMY,1528
|
|
78
|
-
capytaine/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
79
|
-
capytaine/ui/cli.py,sha256=DLgsJdmMASM70BqN7bbNQxBkiHKReJDJqgf4E9mr_yk,825
|
|
80
|
-
capytaine/ui/rich.py,sha256=kxI4CVa4ycJBloEHvLpLqrEArkLT4wAdcPKhbEw2hcY,238
|
|
81
|
-
capytaine/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
82
|
-
capytaine/ui/vtk/animation.py,sha256=xdSWUxSwz4pVICJ6u7yqEGYYyEgzJUM84vekZJag3vk,12772
|
|
83
|
-
capytaine/ui/vtk/body_viewer.py,sha256=1WGMjHBRhyGkCFxgvJKs_dY-eL2YCCKhqqehKgIwwBc,1060
|
|
84
|
-
capytaine/ui/vtk/helpers.py,sha256=V1_DeB6svtTlzdNzdcL7-GGj5QvCW6wpVzhXVmpVlwI,2722
|
|
85
|
-
capytaine/ui/vtk/mesh_viewer.py,sha256=V6ReLbsArkVAZRX6QZdqHhyo1dStT2ql8T2AzpP8HbA,15211
|
|
86
|
-
capytaine/ui/vtk/__init__.py,sha256=mtXE0si8Fc8QGneQIQNdGPPzhRLNwi4bPMUmQ9Vs1io,164
|
|
87
|
-
capytaine-2.3.dist-info/DELVEWHEEL,sha256=FdT4M7_3SRuVMroFsIseqapxhOHUUgqkS2PDw3DdHFw,419
|
|
88
|
-
capytaine-2.3.dist-info/entry_points.txt,sha256=R72-je8lc6ELm8ftt7lJ7f1aalnQs5BWYrGDBMexHII,53
|
|
89
|
-
capytaine-2.3.dist-info/LICENSE,sha256=Czg9WmPaZE9ijZnDOXbqZIftiaqlnwsyV5kt6sEXHms,35821
|
|
90
|
-
capytaine-2.3.dist-info/METADATA,sha256=NSFNwYHZoOfMqn7if-xXY-r9qOLAGrlbUSG8qtlahy8,45516
|
|
91
|
-
capytaine-2.3.dist-info/RECORD,,
|
|
92
|
-
capytaine-2.3.dist-info/WHEEL,sha256=1nIT8bOU3dBEtO1OHNUw1PB7s17JH9tAQ93SLqU9JNM,85
|
|
93
|
-
capytaine.libs/libgcc_s_seh-1.dll,sha256=q2m46g2pAq7jvn1d0qbVW6WqyOpxQ6KtnAdh5r3gCxY,111616
|
|
94
|
-
capytaine.libs/libgfortran-5.dll,sha256=wLLASxjhj_hbogJghmWeKSyi6w4L9h8xR04-iS1Ejq4,3118080
|
|
95
|
-
capytaine.libs/libgomp-1.dll,sha256=yCJD_z8GQ7Hi7iXgwG2hkjFAOqf-KeE45YnavaKCpf8,280576
|
|
96
|
-
capytaine.libs/libquadmath-0.dll,sha256=vIpjCdqsQ0SQ3J3DscTl99gInyZO6VayFN2xrTg0d3s,362496
|
|
97
|
-
capytaine.libs/libwinpthread-1.dll,sha256=EOuEmPH-j0Z0z_whHcbHQU6FHiCOyfNp9_-IhdgmQUY,54784
|
|
File without changes
|
|
File without changes
|
|
File without changes
|