From f22e19fb3d52ee4360b9f9b33e2d7e900fbe8213 Mon Sep 17 00:00:00 2001 From: Yeicor <4929005+Yeicor@users.noreply.github.com> Date: Sun, 25 Feb 2024 11:23:11 +0100 Subject: [PATCH] double-sided CAD models --- src/models/Model.vue | 7 ++++++- src/tools/Tools.vue | 3 ++- src/viewer/ModelViewerWrapper.vue | 12 ++++++------ yacv_server/gltf.py | 2 +- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/models/Model.vue b/src/models/Model.vue index ea8b3c2..b85fff6 100644 --- a/src/models/Model.vue +++ b/src/models/Model.vue @@ -15,6 +15,7 @@ import {watch} from "vue"; import type ModelViewerWrapper from "../viewer/ModelViewerWrapper.vue"; import {mdiCircleOpacity, mdiDelete, mdiRectangle, mdiRectangleOutline, mdiVectorRectangle} from '@mdi/js' import SvgIcon from '@jamescoyle/vue-icon/lib/svg-icon.vue'; +import type {WebGLProgramParametersWithUniforms, WebGLRenderer} from "three"; const props = defineProps<{ mesh: Mesh, viewer: InstanceType | null, document: Document }>(); const emit = defineEmits<{ remove: [] }>() @@ -85,9 +86,13 @@ function onModelLoad() { // of not actually removing the primitives from the scene graph sceneModel.traverse((child) => { if (child.userData[extrasNameKey] === modelName) { - // if (child.type == 'Line') child.material.linewidth = 2; // Not supported in WebGL2 + // if (child.type == 'Line') { + // child.material.linewidth = 3; // Not supported in WebGL2 + // If wide lines are really needed, we need https://threejs.org/examples/?q=line#webgl_lines_fat + // } if (child.type == 'Points') { child.material.size = 5; + child.material.needsUpdate = true; } } }); diff --git a/src/tools/Tools.vue b/src/tools/Tools.vue index 43980e7..d897fff 100644 --- a/src/tools/Tools.vue +++ b/src/tools/Tools.vue @@ -10,7 +10,6 @@ import { VToolbarTitle, VTooltip, } from "vuetify/lib/components"; -import {defineAsyncComponent, ref, Ref} from "vue"; import OrientationGizmo from "./OrientationGizmo.vue"; import type {PerspectiveCamera} from "three/src/cameras/PerspectiveCamera"; import {OrthographicCamera} from "three/src/cameras/OrthographicCamera"; @@ -21,6 +20,7 @@ import type {Intersection} from "three"; import type {MObject3D} from "./Selection.vue"; import Loading from "../misc/Loading.vue"; import type ModelViewerWrapper from "./viewer/ModelViewerWrapper.vue"; +import {defineAsyncComponent, Ref, ref} from "vue"; const SelectionComponent = defineAsyncComponent({ loader: () => import("./Selection.vue"), @@ -150,6 +150,7 @@ async function openGithub() { Open GitHub +
diff --git a/src/viewer/ModelViewerWrapper.vue b/src/viewer/ModelViewerWrapper.vue index 5bcd691..ff208d4 100644 --- a/src/viewer/ModelViewerWrapper.vue +++ b/src/viewer/ModelViewerWrapper.vue @@ -4,18 +4,16 @@