Run curv inside of /tmp

When exporting an stl it writes temporary files which is not allowed
when deployed to aws unless it's in temp.
This commit is contained in:
Kurt Hutten
2021-11-22 20:05:10 +11:00
parent 0face9b9c1
commit fe059384d3
11 changed files with 41 additions and 39 deletions

View File

@@ -25,7 +25,7 @@ const IdeViewer = ({
})
thunkDispatch((dispatch, getState) => {
const state = getState()
if (['png', 'INIT'].includes(state?.objectData?.type)) {
if (['png', 'INIT'].includes(state?.objectData?.type) && (ideType === 'openscad' || state?.objectData?.type === 'INIT' || !state?.objectData?.type)) {
dispatch({ type: 'setLoading' })
requestRender({
state,

View File

@@ -218,7 +218,7 @@ export function PureIdeViewer({
)}
<div // eslint-disable-line jsx-a11y/no-static-element-interactions
className={`opacity-0 absolute inset-0 transition-opacity duration-500 ${
ideType === 'curv' ? // TODO hide axes while curve doesn't have a controllable camera
ideType === 'curv' && dataType === 'png' ? // TODO hide axes while curve doesn't have a controllable camera
'opacity-0' :
!(isDragging || dataType !== 'png')
? 'hover:opacity-50'
@@ -230,7 +230,7 @@ export function PureIdeViewer({
<Controls
onDragStart={() => setIsDragging(true)}
onInit={onInit}
onCameraChange={onCameraChange}
onCameraChange={() => {onCameraChange(); setIsDragging(false)}}
controlsRef={controlsRef}
camera={camera}
/>

View File

@@ -14,33 +14,12 @@ export const render = async ({ code, settings }: RenderArgs) => {
x: Math.round(settings.viewerSize?.width * pixelRatio),
y: Math.round(settings.viewerSize?.height * pixelRatio),
}
const round1dec = (number) => Math.round((number + Number.EPSILON) * 10) / 10
const body = JSON.stringify({
settings: {
size,
viewAll: settings.viewAll,
parameters: settings.parameters,
camera: {
// rounding to give our caching a chance to sometimes work
...settings.camera,
dist: round1dec(settings.camera.dist),
position: {
x: round1dec(settings.camera.position.x),
y: round1dec(settings.camera.position.y),
z: round1dec(settings.camera.position.z),
},
rotation: {
x: round1dec(settings.camera.rotation.x),
y: round1dec(settings.camera.rotation.y),
z: round1dec(settings.camera.rotation.z),
},
},
},
file: code,
})
if (!settings.camera.position) {
return
}
try {
const response = await fetch(lambdaBaseURL + '/curv/preview', {
method: 'POST',