UNPKG

@yaelg/tresjs-core

Version:

Declarative ThreeJS using Vue Components

33 lines (32 loc) 1.32 kB
import type { Camera, EventDispatcher, Scene, WebGLRenderer } from 'three'; import { Raycaster } from 'three'; import type { ComputedRef, DeepReadonly, MaybeRef, MaybeRefOrGetter, Ref, ShallowRef } from 'vue'; import type { UseRendererOptions } from '../useRenderer'; export interface TresContext { scene: ShallowRef<Scene>; sizes: { height: Ref<number>; width: Ref<number>; aspectRatio: ComputedRef<number>; }; extend: (objects: any) => void; camera: ComputedRef<Camera | undefined>; cameras: DeepReadonly<Ref<Camera[]>>; controls: Ref<(EventDispatcher & { enabled: boolean; }) | null>; renderer: ShallowRef<WebGLRenderer>; raycaster: ShallowRef<Raycaster>; registerCamera: (camera: Camera) => void; setCameraActive: (cameraOrUuid: Camera | string) => void; deregisterCamera: (camera: Camera) => void; } export declare function useTresContextProvider({ scene, canvas, windowSize, disableRender, rendererOptions, }: { scene: Scene; canvas: MaybeRef<HTMLCanvasElement>; windowSize: MaybeRefOrGetter<boolean>; disableRender: MaybeRefOrGetter<boolean>; rendererOptions: UseRendererOptions; }): TresContext; export declare function useTresContext(): TresContext; export declare const useTres: typeof useTresContext;