Skip to content

Commit e644c0f

Browse files
committed
feat(vtk): add tool for displaying rendering capabilities
1 parent 7b40456 commit e644c0f

File tree

8 files changed

+112
-0
lines changed

8 files changed

+112
-0
lines changed

docs/api/source/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,6 @@ Welcome to Trame's documentation!
4242
tools.app
4343
tools.widgets
4444
tools.serve
45+
tools.vtk
4546

4647
.. include:: ../../../README.rst

docs/api/source/tools.vtk.rst

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
VTK rendering backend information
2+
====================================
3+
4+
This utility function/app depends on VTK and will report the rendering capabilities available.
5+
6+
This aim to be used for debugging cloud deployments either by running a command line within the deployment environment or as a standalone trame application.
7+
8+
.. code-block:: bash
9+
10+
# print report to stdout
11+
python -m trame.tools.vtk --stdout
12+
13+
# start trame app
14+
python -m trame.tools.vtk
15+
16+
17+
You can find its configuration as standalone application `here <https://github.com/Kitware/trame/tree/master/examples/deploy/docker/RenderingInfo>`_
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
FROM kitware/trame:py3.10-glvnd
2+
3+
COPY --chown=trame-user:trame-user . /deploy
4+
5+
RUN /opt/trame/entrypoint.sh build
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Disclaimer
2+
3+
The current example rely trame.tools.vtk to display rendering capabilities of your server.
4+
5+
# Build the image
6+
7+
```bash
8+
docker build -t trame-vtk-info .
9+
```
10+
11+
# Run the image on port 8080
12+
13+
```bash
14+
docker run -it --rm -p 8080:80 trame-vtk-info
15+
```
16+
17+
# Deploying into CapRover
18+
19+
If that directory was at the root of a git repo you could run the following command line
20+
21+
```bash
22+
caprover deploy
23+
```
24+
25+
That app could also be deployed by running the following set of commands
26+
27+
```bash
28+
tar -cvf trame-vtk-info.tar captain-definition Dockerfile setup
29+
caprover deploy -t trame-vtk-info.tar
30+
```
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"schemaVersion": 2,
3+
"dockerfilePath": "./Dockerfile"
4+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
trame:
2+
cmd:
3+
- python
4+
- -m
5+
- trame.tools.vtk
6+
- --host
7+
- ${host}
8+
- --port
9+
- ${port}
10+
- --authKey
11+
- ${secret}
12+
- --server
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
trame
2+
vtk

trame/tools/vtk.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import sys
2+
from trame.app import TrameApp
3+
from trame.ui.html import DivLayout
4+
from trame.widgets import html
5+
6+
7+
def get_rendering_information():
8+
try:
9+
import vtk
10+
11+
renderer = vtk.vtkRenderer()
12+
render_window = vtk.vtkRenderWindow()
13+
render_window.AddRenderer(renderer)
14+
render_window.Render()
15+
16+
return render_window.ReportCapabilities()
17+
18+
except ImportError:
19+
return "VTK is not available"
20+
21+
22+
class VtkRenderingInfo(TrameApp):
23+
def __init__(self, server=None):
24+
super().__init__(server)
25+
26+
with DivLayout(self.server) as self.ui:
27+
html.Pre("{{ report }}")
28+
29+
self.state.report = get_rendering_information()
30+
31+
32+
def main():
33+
app = VtkRenderingInfo()
34+
app.server.start()
35+
36+
37+
if __name__ == "__main__":
38+
if "--stdout" in sys.argv:
39+
print(get_rendering_information())
40+
else:
41+
main()

0 commit comments

Comments
 (0)