Skip to content

Commit 6621fa3

Browse files
author
Xing Han Lu
authored
Pre-v0.0.1 PR: Add some tests, update readme (#13)
* Add new demo to tests * Increase sleep time for more consistent loading * Apply black on all demos * Update Readme with new demo * Rename demo apps directories (remove usage-)
1 parent 067bcaa commit 6621fa3

File tree

22 files changed

+160
-162
lines changed

22 files changed

+160
-162
lines changed

README.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,18 +141,18 @@ You can find the complete API reference in [`docs/REFERENCES.md`](./docs/REFEREN
141141

142142
### Point Cloud with PyVista
143143

144-
* [Code](./demos/usage-pyvista-point-cloud)
144+
* [Code](./demos/pyvista-point-cloud)
145145
* Online Demo (coming soon)
146146

147-
![A demo of the usage-pyvista-point-cloud app](demos/usage-pyvista-point-cloud/demo.jpg)
147+
![A demo of the pyvista-point-cloud app](demos/pyvista-point-cloud/demo.jpg)
148148

149149

150150
### Terrain deformation using PyVista and dash-vtk
151151

152-
* [Code](./demos/usage-pyvista-terrain-following-mesh)
152+
* [Code](./demos/pyvista-terrain-following-mesh)
153153
* Online Demo (coming soon)
154154

155-
![A demo of the usage-pyvista-terrain-following-mesh app](demos/usage-pyvista-terrain-following-mesh/demo.jpg)
155+
![A demo of the pyvista-terrain-following-mesh app](demos/pyvista-terrain-following-mesh/demo.jpg)
156156

157157

158158
### Volume Rendering
@@ -167,4 +167,11 @@ You can find the complete API reference in [`docs/REFERENCES.md`](./docs/REFEREN
167167
* [Code](./demos/usage-vtk-cfd)
168168
* Online Demo (coming soon)
169169

170-
![A demo of the usage-vtk-cfd app](demos/usage-vtk-cfd/demo.jpg
170+
![A demo of the usage-vtk-cfd app](demos/usage-vtk-cfd/demo.jpg)
171+
172+
### Synthetic Volume Rendering
173+
174+
* [Code](./demos/synthetic-volume-rendering)
175+
* Online Demo (coming soon)
176+
177+
![A demo of the synthetic-volume-rendering app](demos/synthetic-volume-rendering/demo.jpg)

demos/usage-pyvista-point-cloud/app.py renamed to demos/pyvista-point-cloud/app.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,16 @@
1212
# Get point cloud data from PyVista
1313
dataset = examples.download_lidar()
1414
subset = 0.5
15-
selection = np.random.randint(low=0, high=dataset.n_points-1,
16-
size=int(dataset.n_points * subset))
15+
selection = np.random.randint(
16+
low=0, high=dataset.n_points - 1, size=int(dataset.n_points * subset)
17+
)
1718
points = dataset.points[selection]
1819
xyz = points.ravel()
1920
elevation = points[:, -1].ravel()
2021
min_elevation = np.amin(elevation)
2122
max_elevation = np.amax(elevation)
22-
print(f'Number of points: {points.shape}')
23-
print(f'Elevation range: [{min_elevation}, {max_elevation}]')
23+
print(f"Number of points: {points.shape}")
24+
print(f"Elevation range: [{min_elevation}, {max_elevation}]")
2425

2526
# Setup VTK rendering of PointCloud
2627
app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
@@ -32,7 +33,7 @@
3233
xyz=xyz,
3334
scalars=elevation,
3435
colorDataRange=[min_elevation, max_elevation],
35-
property={ 'pointSize': 2 },
36+
property={"pointSize": 2},
3637
)
3738
]
3839
)

demos/usage-pyvista-terrain-following-mesh/app.py renamed to demos/pyvista-terrain-following-mesh/app.py

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,22 @@
1313

1414
from dash_vtk.utils import presets
1515

16+
1617
def toDropOption(name):
17-
return {'label': name, 'value': name}
18+
return {"label": name, "value": name}
19+
1820

1921
# Get point cloud data from PyVista
2022
uniformGrid = examples.download_crater_topo()
2123
subset = uniformGrid.extract_subset((500, 900, 400, 800, 0, 0), (5, 5, 1))
2224

25+
2326
def updateWarp(factor=1):
2427
terrain = subset.warp_by_scalar(factor=factor)
2528
polydata = terrain.extract_geometry()
2629
points = polydata.points.ravel()
2730
polys = vtk_to_numpy(polydata.GetPolys().GetData())
28-
elevation = polydata['scalar1of1']
31+
elevation = polydata["scalar1of1"]
2932
min_elevation = np.amin(elevation)
3033
max_elevation = np.amax(elevation)
3134
return [points, polys, elevation, [min_elevation, max_elevation]]
@@ -48,37 +51,32 @@ def updateWarp(factor=1):
4851
points=points,
4952
polys=polys,
5053
children=[
51-
dash_vtk.PointData([
52-
dash_vtk.DataArray(
53-
id="vtk-array",
54-
registration="setScalars",
55-
name="elevation",
56-
values=elevation,
57-
)
58-
])
59-
]
54+
dash_vtk.PointData(
55+
[
56+
dash_vtk.DataArray(
57+
id="vtk-array",
58+
registration="setScalars",
59+
name="elevation",
60+
values=elevation,
61+
)
62+
]
63+
)
64+
],
6065
)
6166
],
6267
colorMapPreset="erdc_blue2green_muted",
6368
colorDataRange=color_range,
64-
property={
65-
'edgeVisibility': True,
66-
},
69+
property={"edgeVisibility": True,},
6770
)
68-
]
71+
],
6972
)
7073

7174
app.layout = dbc.Container(
7275
fluid=True,
7376
children=[
7477
dbc.Row(
7578
[
76-
dbc.Col(
77-
width=6,
78-
children=[
79-
html.H1("Terrain deformation"),
80-
]
81-
),
79+
dbc.Col(width=6, children=[html.H1("Terrain deformation"),]),
8280
dbc.Col(
8381
width=3,
8482
children=[
@@ -100,7 +98,7 @@ def updateWarp(factor=1):
10098
options=list(map(toDropOption, presets)),
10199
value="erdc_rainbow_bright",
102100
),
103-
]
101+
],
104102
),
105103
]
106104
),
@@ -123,17 +121,20 @@ def updateWarp(factor=1):
123121

124122

125123
@app.callback(
126-
[Output("vtk-representation", "colorMapPreset"),
127-
Output("vtk-representation", "colorDataRange"),
128-
Output("vtk-polydata", 'points'),
129-
Output("vtk-polydata", 'polys'),
130-
Output("vtk-array", 'values'),
131-
Output("vtk-view", "triggerResetCamera")],
132-
[Input("dropdown-preset", "value"), Input("scale-factor", "value")]
124+
[
125+
Output("vtk-representation", "colorMapPreset"),
126+
Output("vtk-representation", "colorDataRange"),
127+
Output("vtk-polydata", "points"),
128+
Output("vtk-polydata", "polys"),
129+
Output("vtk-array", "values"),
130+
Output("vtk-view", "triggerResetCamera"),
131+
],
132+
[Input("dropdown-preset", "value"), Input("scale-factor", "value")],
133133
)
134134
def updatePresetName(name, scale_factor):
135135
points, polys, elevation, color_range = updateWarp(scale_factor)
136136
return [name, color_range, points, polys, elevation, random.random()]
137137

138+
138139
if __name__ == "__main__":
139140
app.run_server(debug=True)

0 commit comments

Comments
 (0)