+ - btns
This commit is contained in:
parent
c2f9ab8f36
commit
bfed1bf6e5
|
@ -1,8 +1,10 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { TresCanvas } from '@tresjs/core'
|
import { TresCanvas } from '@tresjs/core'
|
||||||
import { OrbitControls, Environment, Html } from '@tresjs/cientos'
|
import { OrbitControls } from '@tresjs/cientos'
|
||||||
|
import { Vector3 } from 'three';
|
||||||
|
|
||||||
const camera = ref()
|
const camera = ref()
|
||||||
|
const controls = ref()
|
||||||
const controlsState = reactive({
|
const controlsState = reactive({
|
||||||
minDistance: 2,
|
minDistance: 2,
|
||||||
maxDistance: 10,
|
maxDistance: 10,
|
||||||
|
@ -43,9 +45,10 @@ const loadAll = async () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const changeDistance = (v = 1) => {
|
const changeDistance = (v = 1) => {
|
||||||
if(camera.value) {
|
if (camera.value && controls.value) {
|
||||||
console.log(camera.value.position.normalize())
|
const distance = camera.value.position.distanceTo(new Vector3(0, 0, 0));
|
||||||
camera.value.position.z += v
|
const r = distance + v
|
||||||
|
camera.value.position.normalize().multiplyScalar(r)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
@ -62,7 +65,7 @@ onMounted(() => {
|
||||||
</template>
|
</template>
|
||||||
<TresCanvas height="600">
|
<TresCanvas height="600">
|
||||||
<TresPerspectiveCamera :position="[-7, 2, 4]" ref="camera" />
|
<TresPerspectiveCamera :position="[-7, 2, 4]" ref="camera" />
|
||||||
<OrbitControls v-bind="controlsState" make-default />
|
<OrbitControls v-bind="controlsState" ref="controls" make-default />
|
||||||
<Suspense>
|
<Suspense>
|
||||||
<ModelDiagram />
|
<ModelDiagram />
|
||||||
</Suspense>
|
</Suspense>
|
||||||
|
@ -81,10 +84,12 @@ onMounted(() => {
|
||||||
<Icon name="mdi:checkbox-outline" v-if="explosion_state" />
|
<Icon name="mdi:checkbox-outline" v-if="explosion_state" />
|
||||||
<Icon name="mdi:square-outline" v-else />
|
<Icon name="mdi:square-outline" v-else />
|
||||||
</a>
|
</a>
|
||||||
<a @click="changeDistance(0.5)" :class="[{ 'disabled': camera ? camera.position.z >= 9.5 : null }]">
|
<a @click="changeDistance(-0.5)"
|
||||||
|
:class="[{ 'disabled': camera ? (camera.position.distanceTo(new Vector3(0, 0, 0)) <= controlsState.minDistance) : null }]">
|
||||||
<Icon name="mdi:plus-circle-outline" />
|
<Icon name="mdi:plus-circle-outline" />
|
||||||
</a>
|
</a>
|
||||||
<a @click="changeDistance(-0.5)" :class="[{ 'disabled': camera ? camera.position.z <= -9.5 : null }]">
|
<a @click="changeDistance(0.5)"
|
||||||
|
:class="[{ 'disabled': camera ? (camera.position.distanceTo(new Vector3(0, 0, 0)) >= (controlsState.maxDistance)) : null }]">
|
||||||
<Icon name="mdi:minus-circle-outline" />
|
<Icon name="mdi:minus-circle-outline" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue