summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjaseg <git@jaseg.net>2019-09-29 13:30:38 +0200
committerjaseg <git@jaseg.net>2019-09-29 13:30:38 +0200
commit00380ac6020179de15929afc1b29b7dc5ce094e4 (patch)
tree6295edf8f34670d7b10bc554655607cf70a414ab
parent1a6f2a9caa27bded4551aead34883e7fcdc92d2e (diff)
downloadpogojig-00380ac6020179de15929afc1b29b7dc5ce094e4.tar.gz
pogojig-00380ac6020179de15929afc1b29b7dc5ce094e4.tar.bz2
pogojig-00380ac6020179de15929afc1b29b7dc5ce094e4.zip
Add STL renderer
-rw-r--r--.gitmodules3
-rw-r--r--webapp/pogojig.py9
m---------webapp/static/Madeleine.js0
-rw-r--r--webapp/static/style.css8
-rw-r--r--webapp/templates/jigerator.html21
5 files changed, 35 insertions, 6 deletions
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..94f2319
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "webapp/static/Madeleine.js"]
+ path = webapp/static/Madeleine.js
+ url = https://github.com/JinJunho/Madeleine.js
diff --git a/webapp/pogojig.py b/webapp/pogojig.py
index baaca5a..9312cf5 100644
--- a/webapp/pogojig.py
+++ b/webapp/pogojig.py
@@ -93,9 +93,12 @@ def upload_svg():
flash(f'Error uploading SVG file: {"; ".join(msg for elem in upload_form.errors.values() for msg in elem)}', 'error')
return redirect(url_for('jigerator'))
-@app.route('/render/download')
-def render_download():
- return send_file(tempfile_path(f'renders.zip'),
+@app.route('/render/download/<file>')
+def render_download(file):
+ if file not in ['jig.stl', 'pcb_shape.dxf', 'kicad.zip', 'sources.zip']:
+ abort(404)
+
+ return send_file(tempfile_path(file),
mimetype='application/zip',
as_attachment=True,
attachment_filename=f'{path.splitext(session["filename"])[0]}_pogojig.zip')
diff --git a/webapp/static/Madeleine.js b/webapp/static/Madeleine.js
new file mode 160000
+Subproject 9e39e65b7257bc1139502a14970cc174ca59475
diff --git a/webapp/static/style.css b/webapp/static/style.css
index 857541d..b9a696e 100644
--- a/webapp/static/style.css
+++ b/webapp/static/style.css
@@ -227,3 +227,11 @@ a.btn:active, a.btn:hover, a.btn:visited, a.btn:link {
background-color: #d35f5f;
box-shadow: 1px 2px 4px 1px #000;
}
+
+.controls {
+ padding-top: 8em;
+}
+
+.render_output {
+ padding-bottom: 8em;
+}
diff --git a/webapp/templates/jigerator.html b/webapp/templates/jigerator.html
index 9ee9b84..15711b2 100644
--- a/webapp/templates/jigerator.html
+++ b/webapp/templates/jigerator.html
@@ -116,9 +116,9 @@
</div>
{% else %}
<div class="preview-images">
- <a href="{{url_for('render_download')}}" class="render" style="background-image:url('{{url_for('render_preview')}}');">
- <div class="overlay">Download model and PCB</div>
- </a>
+ <a href="{{url_for('render_download', file='sources.zip')}}" class="render">Download renders</a>
+
+ <div id="stl-target" class="madeleine"></div>
</div>
{% endif %}
</div>
@@ -132,5 +132,20 @@
<div class="copyright">&#169; 2019 jaseg</div>
</div>
</div>
+ <!-- STL viewer -->
+ <link href="static/Madeleine.js/src/css/Madeleine.css" rel="stylesheet">
+ <script src="static/Madeleine.js/src/lib/stats.js"></script>
+ <script src="static/Madeleine.js/src/lib/detector.js"></script>
+ <script src="static/Madeleine.js/src/lib/three.min.js"></script>
+ <script src="static/Madeleine.js/src/Madeleine.js"></script>
+ <script>
+ window.onload = function(){
+ var madeleine = new Madeleine({
+ target: 'target', // target div id
+ data: '{{url_for('render_download', file='jig.stl')}}', // data path
+ path: '.' // path to source directory from current html file
+ });
+ };
+ </script>
</body>
</html>