Doodle3D-Slicer/index.js

48 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

2018-06-26 16:08:33 +02:00
import 'babel-polyfill';
2017-11-11 20:23:45 +01:00
import React from 'react';
2021-05-22 15:23:52 +02:00
import { Interface } from './src/index.js';
2017-11-11 20:23:45 +01:00
import { render } from 'react-dom';
2017-11-12 16:58:59 +01:00
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
2017-12-14 11:55:14 +01:00
import jss from 'jss';
import preset from 'jss-preset-default';
import normalize from 'normalize-jss';
import queryString from 'query-string';
2018-01-17 13:26:30 +01:00
import getMuiTheme from 'material-ui/styles/getMuiTheme';
2018-01-17 14:58:36 +01:00
import { grey400, blue500, blue700 } from 'material-ui/styles/colors';
2021-05-22 15:23:52 +02:00
import bunny_url from './data/bunny.stl';
import * as THREE from 'three';
import 'three/examples/js/loaders/STLLoader.js';
import fileSaver from 'file-saver';
2018-01-17 13:26:30 +01:00
const muiTheme = getMuiTheme({
palette: {
primary1Color: blue500,
primary2Color: blue700,
accent1Color: blue500,
}
});
2017-11-12 16:58:59 +01:00
2017-12-14 11:55:14 +01:00
jss.setup(preset());
jss.createStyleSheet(normalize).attach();
jss.createStyleSheet({
'@global': {
'*': { margin: 0, padding: 0 },
'#app, body, html': { height: '100%', fontFamily: 'sans-serif' },
body: { overflow: 'auto' },
html: { overflow: 'hidden' }
}
}).attach();
2017-11-12 13:08:51 +01:00
2021-05-22 15:23:52 +02:00
new THREE.STLLoader().load(bunny_url, geometry => {
const material = new THREE.MeshPhongMaterial({ color: 0xff5533, specular: 0x111111, shininess: 200 });
const mesh = new THREE.Mesh(geometry, material);
render((
<MuiThemeProvider muiTheme={muiTheme}>
<Interface
mesh={mesh}
onSliceSucces={({ gcode }) => fileSaver.saveAs(gcode, 'bunny.gcode')}
/>
</MuiThemeProvider>
), document.getElementById('app'));
});