@yaelg/tresjs-core
Version:
Declarative ThreeJS using Vue Components
33 lines (32 loc) • 1.32 kB
TypeScript
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;