@tresjs/core 2.3.0 → 2.4.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/TresCanvas.vue.d.ts +114 -0
- package/dist/components/index.d.ts +2 -1
- package/dist/composables/index.d.ts +1 -1
- package/dist/composables/useCamera/index.d.ts +7 -96
- package/dist/composables/useCamera/old.d.ts +98 -0
- package/dist/composables/useRenderer/index.d.ts +4 -3
- package/dist/composables/useTres/index.d.ts +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/provider/index.d.ts +20 -0
- package/dist/tres.js +449 -496
- package/dist/tres.umd.cjs +2 -3
- package/dist/utils/template-compiler-options.d.ts +8 -0
- package/dist/utils/test-utils.d.ts +1 -0
- package/package.json +23 -21
- package/dist/components/TresCanvas.d.ts +0 -25
- package/dist/components/TresScene.d.ts +0 -22
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { type ColorSpace, type ShadowMapType, type ToneMapping } from 'three';
|
|
2
|
+
import type { TresCamera } from '../types/';
|
|
3
|
+
import type { RendererPresetsType } from '../composables/useRenderer/const';
|
|
4
|
+
export interface TresCanvasProps {
|
|
5
|
+
shadows?: boolean;
|
|
6
|
+
shadowMapType?: ShadowMapType;
|
|
7
|
+
useLegacyLights?: boolean;
|
|
8
|
+
outputColorSpace?: ColorSpace;
|
|
9
|
+
toneMapping?: ToneMapping;
|
|
10
|
+
toneMappingExposure?: number;
|
|
11
|
+
context?: WebGLRenderingContext;
|
|
12
|
+
powerPreference?: 'high-performance' | 'low-power' | 'default';
|
|
13
|
+
preserveDrawingBuffer?: boolean;
|
|
14
|
+
clearColor?: string;
|
|
15
|
+
windowSize?: boolean;
|
|
16
|
+
preset?: RendererPresetsType;
|
|
17
|
+
disableRender?: boolean;
|
|
18
|
+
camera?: TresCamera;
|
|
19
|
+
}
|
|
20
|
+
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
21
|
+
shadows: {
|
|
22
|
+
type: import("vue").PropType<boolean>;
|
|
23
|
+
};
|
|
24
|
+
shadowMapType: {
|
|
25
|
+
type: import("vue").PropType<ShadowMapType>;
|
|
26
|
+
};
|
|
27
|
+
useLegacyLights: {
|
|
28
|
+
type: import("vue").PropType<boolean>;
|
|
29
|
+
};
|
|
30
|
+
outputColorSpace: {
|
|
31
|
+
type: import("vue").PropType<ColorSpace>;
|
|
32
|
+
};
|
|
33
|
+
toneMapping: {
|
|
34
|
+
type: import("vue").PropType<ToneMapping>;
|
|
35
|
+
};
|
|
36
|
+
toneMappingExposure: {
|
|
37
|
+
type: import("vue").PropType<number>;
|
|
38
|
+
};
|
|
39
|
+
context: {
|
|
40
|
+
type: import("vue").PropType<WebGLRenderingContext>;
|
|
41
|
+
};
|
|
42
|
+
powerPreference: {
|
|
43
|
+
type: import("vue").PropType<"high-performance" | "low-power" | "default">;
|
|
44
|
+
};
|
|
45
|
+
preserveDrawingBuffer: {
|
|
46
|
+
type: import("vue").PropType<boolean>;
|
|
47
|
+
};
|
|
48
|
+
clearColor: {
|
|
49
|
+
type: import("vue").PropType<string>;
|
|
50
|
+
};
|
|
51
|
+
windowSize: {
|
|
52
|
+
type: import("vue").PropType<boolean>;
|
|
53
|
+
};
|
|
54
|
+
preset: {
|
|
55
|
+
type: import("vue").PropType<"realistic">;
|
|
56
|
+
};
|
|
57
|
+
disableRender: {
|
|
58
|
+
type: import("vue").PropType<boolean>;
|
|
59
|
+
};
|
|
60
|
+
camera: {
|
|
61
|
+
type: import("vue").PropType<TresCamera>;
|
|
62
|
+
};
|
|
63
|
+
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
64
|
+
shadows: {
|
|
65
|
+
type: import("vue").PropType<boolean>;
|
|
66
|
+
};
|
|
67
|
+
shadowMapType: {
|
|
68
|
+
type: import("vue").PropType<ShadowMapType>;
|
|
69
|
+
};
|
|
70
|
+
useLegacyLights: {
|
|
71
|
+
type: import("vue").PropType<boolean>;
|
|
72
|
+
};
|
|
73
|
+
outputColorSpace: {
|
|
74
|
+
type: import("vue").PropType<ColorSpace>;
|
|
75
|
+
};
|
|
76
|
+
toneMapping: {
|
|
77
|
+
type: import("vue").PropType<ToneMapping>;
|
|
78
|
+
};
|
|
79
|
+
toneMappingExposure: {
|
|
80
|
+
type: import("vue").PropType<number>;
|
|
81
|
+
};
|
|
82
|
+
context: {
|
|
83
|
+
type: import("vue").PropType<WebGLRenderingContext>;
|
|
84
|
+
};
|
|
85
|
+
powerPreference: {
|
|
86
|
+
type: import("vue").PropType<"high-performance" | "low-power" | "default">;
|
|
87
|
+
};
|
|
88
|
+
preserveDrawingBuffer: {
|
|
89
|
+
type: import("vue").PropType<boolean>;
|
|
90
|
+
};
|
|
91
|
+
clearColor: {
|
|
92
|
+
type: import("vue").PropType<string>;
|
|
93
|
+
};
|
|
94
|
+
windowSize: {
|
|
95
|
+
type: import("vue").PropType<boolean>;
|
|
96
|
+
};
|
|
97
|
+
preset: {
|
|
98
|
+
type: import("vue").PropType<"realistic">;
|
|
99
|
+
};
|
|
100
|
+
disableRender: {
|
|
101
|
+
type: import("vue").PropType<boolean>;
|
|
102
|
+
};
|
|
103
|
+
camera: {
|
|
104
|
+
type: import("vue").PropType<TresCamera>;
|
|
105
|
+
};
|
|
106
|
+
}>>, {}, {}>, {
|
|
107
|
+
default(): any;
|
|
108
|
+
}>;
|
|
109
|
+
export default _default;
|
|
110
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
111
|
+
new (): {
|
|
112
|
+
$slots: S;
|
|
113
|
+
};
|
|
114
|
+
};
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import TresCanvas from './TresCanvas.vue';
|
|
2
|
+
export { TresCanvas };
|
|
@@ -1,97 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export type Camera = PerspectiveCamera | OrthographicCamera;
|
|
8
|
-
export interface PerspectiveCameraOptions {
|
|
9
|
-
/**
|
|
10
|
-
* Camera frustum vertical field of view, from bottom to top of view, in degrees.
|
|
11
|
-
*
|
|
12
|
-
* @type {number}
|
|
13
|
-
* @memberof PerspectiveCameraOptions
|
|
14
|
-
*/
|
|
15
|
-
fov?: number;
|
|
16
|
-
/**
|
|
17
|
-
* Camera frustum near plane.
|
|
18
|
-
*
|
|
19
|
-
* @type {number}
|
|
20
|
-
* @memberof PerspectiveCameraOptions
|
|
21
|
-
*/
|
|
22
|
-
near?: number;
|
|
23
|
-
/**
|
|
24
|
-
* Camera frustum far plane.
|
|
25
|
-
*
|
|
26
|
-
* @type {number}
|
|
27
|
-
* @memberof PerspectiveCameraOptions
|
|
28
|
-
*/
|
|
29
|
-
far?: number;
|
|
30
|
-
}
|
|
31
|
-
export interface OrthographicCameraOptions {
|
|
32
|
-
/**
|
|
33
|
-
* Camera frustum left plane.
|
|
34
|
-
*
|
|
35
|
-
* @type {number}
|
|
36
|
-
* @memberof OrthographicCameraOptions
|
|
37
|
-
*/
|
|
38
|
-
left?: number;
|
|
39
|
-
/**
|
|
40
|
-
* Camera frustum right plane.
|
|
41
|
-
*
|
|
42
|
-
* @type {number}
|
|
43
|
-
* @memberof OrthographicCameraOptions
|
|
44
|
-
*/
|
|
45
|
-
right?: number;
|
|
46
|
-
/**
|
|
47
|
-
* Camera frustum top plane.
|
|
48
|
-
*
|
|
49
|
-
* @type {number}
|
|
50
|
-
* @memberof OrthographicCameraOptions
|
|
51
|
-
*/
|
|
52
|
-
top?: number;
|
|
53
|
-
/**
|
|
54
|
-
* Camera frustum bottom plane.
|
|
55
|
-
*
|
|
56
|
-
* @type {number}
|
|
57
|
-
* @memberof OrthographicCameraOptions
|
|
58
|
-
*/
|
|
59
|
-
bottom?: number;
|
|
60
|
-
/**
|
|
61
|
-
* Camera frustum near plane.
|
|
62
|
-
*
|
|
63
|
-
* @type {number}
|
|
64
|
-
* @memberof OrthographicCameraOptions
|
|
65
|
-
*/
|
|
66
|
-
near?: number;
|
|
67
|
-
/**
|
|
68
|
-
* Camera frustum far plane.
|
|
69
|
-
*
|
|
70
|
-
* @type {number}
|
|
71
|
-
* @memberof OrthographicCameraOptions
|
|
72
|
-
*/
|
|
73
|
-
far?: number;
|
|
74
|
-
}
|
|
75
|
-
interface UseCameraReturn {
|
|
76
|
-
activeCamera: Ref<Camera | undefined>;
|
|
77
|
-
createCamera: (cameraType?: CameraType, options?: PerspectiveCameraOptions | OrthographicCameraOptions) => Camera;
|
|
78
|
-
updateCamera: () => void;
|
|
79
|
-
pushCamera: (camera: Camera) => void;
|
|
1
|
+
import { ComputedRef } from "vue";
|
|
2
|
+
export declare function useCamera(sizes: any): {
|
|
3
|
+
cameras: import("vue").ShallowRef<TresCamera[]>;
|
|
4
|
+
camera: ComputedRef<any>;
|
|
5
|
+
addCamera: (camera: TresCamera, active?: boolean) => void;
|
|
6
|
+
setCameraToActive: (cameraId: string) => void;
|
|
80
7
|
clearCameras: () => void;
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Create and update cameras
|
|
85
|
-
*
|
|
86
|
-
* ```ts
|
|
87
|
-
* import { useCamera } from '@tresjs/core'
|
|
88
|
-
* const { createCamera, updateCamera } = useCamera()
|
|
89
|
-
* const camera = createCamera(new PerspectiveCamera(45, 1, 0.1, 1000))
|
|
90
|
-
* updateCamera()
|
|
91
|
-
* ```
|
|
92
|
-
*
|
|
93
|
-
* @export
|
|
94
|
-
* @return {*} {UseCameraReturn}
|
|
95
|
-
*/
|
|
96
|
-
export declare function useCamera(): UseCameraReturn;
|
|
97
|
-
export {};
|
|
8
|
+
};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { TresCamera } from 'src/types';
|
|
2
|
+
import { PerspectiveCamera, OrthographicCamera } from 'three';
|
|
3
|
+
import { Ref } from 'vue';
|
|
4
|
+
export declare enum CameraType {
|
|
5
|
+
Perspective = "Perspective",
|
|
6
|
+
Orthographic = "Orthographic"
|
|
7
|
+
}
|
|
8
|
+
export type Camera = PerspectiveCamera | OrthographicCamera;
|
|
9
|
+
export interface PerspectiveCameraOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Camera frustum vertical field of view, from bottom to top of view, in degrees.
|
|
12
|
+
*
|
|
13
|
+
* @type {number}
|
|
14
|
+
* @memberof PerspectiveCameraOptions
|
|
15
|
+
*/
|
|
16
|
+
fov?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Camera frustum near plane.
|
|
19
|
+
*
|
|
20
|
+
* @type {number}
|
|
21
|
+
* @memberof PerspectiveCameraOptions
|
|
22
|
+
*/
|
|
23
|
+
near?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Camera frustum far plane.
|
|
26
|
+
*
|
|
27
|
+
* @type {number}
|
|
28
|
+
* @memberof PerspectiveCameraOptions
|
|
29
|
+
*/
|
|
30
|
+
far?: number;
|
|
31
|
+
}
|
|
32
|
+
export interface OrthographicCameraOptions {
|
|
33
|
+
/**
|
|
34
|
+
* Camera frustum left plane.
|
|
35
|
+
*
|
|
36
|
+
* @type {number}
|
|
37
|
+
* @memberof OrthographicCameraOptions
|
|
38
|
+
*/
|
|
39
|
+
left?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Camera frustum right plane.
|
|
42
|
+
*
|
|
43
|
+
* @type {number}
|
|
44
|
+
* @memberof OrthographicCameraOptions
|
|
45
|
+
*/
|
|
46
|
+
right?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Camera frustum top plane.
|
|
49
|
+
*
|
|
50
|
+
* @type {number}
|
|
51
|
+
* @memberof OrthographicCameraOptions
|
|
52
|
+
*/
|
|
53
|
+
top?: number;
|
|
54
|
+
/**
|
|
55
|
+
* Camera frustum bottom plane.
|
|
56
|
+
*
|
|
57
|
+
* @type {number}
|
|
58
|
+
* @memberof OrthographicCameraOptions
|
|
59
|
+
*/
|
|
60
|
+
bottom?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Camera frustum near plane.
|
|
63
|
+
*
|
|
64
|
+
* @type {number}
|
|
65
|
+
* @memberof OrthographicCameraOptions
|
|
66
|
+
*/
|
|
67
|
+
near?: number;
|
|
68
|
+
/**
|
|
69
|
+
* Camera frustum far plane.
|
|
70
|
+
*
|
|
71
|
+
* @type {number}
|
|
72
|
+
* @memberof OrthographicCameraOptions
|
|
73
|
+
*/
|
|
74
|
+
far?: number;
|
|
75
|
+
}
|
|
76
|
+
interface UseCameraReturn {
|
|
77
|
+
activeCamera: Ref<TresCamera | undefined>;
|
|
78
|
+
createCamera: (cameraType?: CameraType, options?: PerspectiveCameraOptions | OrthographicCameraOptions) => Camera;
|
|
79
|
+
updateCamera: () => void;
|
|
80
|
+
pushCamera: (camera: TresCamera) => void;
|
|
81
|
+
clearCameras: () => void;
|
|
82
|
+
setFirstCamera: (camera: TresCamera) => void;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Create and update cameras
|
|
86
|
+
*
|
|
87
|
+
* ```ts
|
|
88
|
+
* import { useCamera } from '@tresjs/core'
|
|
89
|
+
* const { createCamera, updateCamera } = useCamera()
|
|
90
|
+
* const camera = createCamera(new PerspectiveCamera(45, 1, 0.1, 1000))
|
|
91
|
+
* updateCamera()
|
|
92
|
+
* ```
|
|
93
|
+
*
|
|
94
|
+
* @export
|
|
95
|
+
* @return {*} {UseCameraReturn}
|
|
96
|
+
*/
|
|
97
|
+
export declare function useCamera(): UseCameraReturn;
|
|
98
|
+
export {};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
1
2
|
import { MaybeRefOrGetter } from '@vueuse/core';
|
|
2
3
|
import { WebGLRendererParameters, WebGLRenderer, ShadowMapType, ColorSpace } from 'three';
|
|
3
4
|
import type { ToneMapping } from 'three';
|
|
4
5
|
import { TresColor } from '../../types';
|
|
5
6
|
import { RendererPresetsType } from './const';
|
|
7
|
+
import { TresState } from '../../provider';
|
|
6
8
|
export interface UseRendererOptions extends WebGLRendererParameters {
|
|
7
9
|
/**
|
|
8
10
|
* Enable shadows in the Renderer
|
|
@@ -87,10 +89,9 @@ export interface UseRendererOptions extends WebGLRendererParameters {
|
|
|
87
89
|
* @param canvas
|
|
88
90
|
* @param {UseRendererOptions} [options]
|
|
89
91
|
*/
|
|
90
|
-
export declare function useRenderer(options: UseRendererOptions): {
|
|
92
|
+
export declare function useRenderer(canvas: Ref<HTMLCanvasElement>, tres: TresState, options: UseRendererOptions): {
|
|
91
93
|
renderer: import("vue").ShallowRef<WebGLRenderer | undefined>;
|
|
92
|
-
isReady:
|
|
94
|
+
isReady: Ref<boolean>;
|
|
93
95
|
dispose: () => void;
|
|
94
|
-
aspectRatio: import("vue").ComputedRef<number>;
|
|
95
96
|
};
|
|
96
97
|
export type UseRendererReturn = ReturnType<typeof useRenderer>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Clock, EventDispatcher, Raycaster, Scene, Vector2, WebGLRenderer } from 'three';
|
|
2
2
|
import { ComputedRef, Ref } from 'vue';
|
|
3
|
-
import { Camera } from '../useCamera';
|
|
3
|
+
import { Camera } from '../useCamera/old';
|
|
4
4
|
import type { usePointerEventHandler } from '../usePointerEventHandler';
|
|
5
5
|
export interface TresState {
|
|
6
6
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,9 @@ export * from './composables';
|
|
|
3
3
|
export * from './core/catalogue';
|
|
4
4
|
export * from './components';
|
|
5
5
|
export * from './types';
|
|
6
|
+
export * from './provider';
|
|
6
7
|
import { normalizeColor, normalizeVectorFlexibleParam } from './utils/normalize';
|
|
8
|
+
import templateCompilerOptions from './utils/template-compiler-options';
|
|
7
9
|
export interface TresOptions {
|
|
8
10
|
extends?: Record<string, unknown>;
|
|
9
11
|
}
|
|
@@ -13,4 +15,4 @@ export interface TresPlugin {
|
|
|
13
15
|
}
|
|
14
16
|
declare const plugin: TresPlugin;
|
|
15
17
|
export default plugin;
|
|
16
|
-
export { normalizeColor, normalizeVectorFlexibleParam };
|
|
18
|
+
export { normalizeColor, normalizeVectorFlexibleParam, templateCompilerOptions };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Scene, WebGLRenderer } from 'three';
|
|
2
|
+
import type { ComputedRef, Ref, ShallowRef } from 'vue';
|
|
3
|
+
import { TresCamera } from '../types';
|
|
4
|
+
export type TresState = {
|
|
5
|
+
scene: Readonly<ShallowRef<Scene>>;
|
|
6
|
+
cameras: Readonly<ShallowRef<TresCamera[]>>;
|
|
7
|
+
camera: ComputedRef<TresCamera | undefined>;
|
|
8
|
+
renderer?: Readonly<ShallowRef<WebGLRenderer | null>>;
|
|
9
|
+
addCamera: (camera: TresCamera) => void;
|
|
10
|
+
setCameraToActive: (cameraId: string) => void;
|
|
11
|
+
clearCameras: () => void;
|
|
12
|
+
setRenderer: (renderer: WebGLRenderer) => void;
|
|
13
|
+
sizes: {
|
|
14
|
+
height: Ref<number>;
|
|
15
|
+
width: Ref<number>;
|
|
16
|
+
aspectRatio: ComputedRef<number>;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export declare function useTresContextProvider(scene: Scene, canvas: Ref<HTMLCanvasElement | undefined>, props: any): TresState;
|
|
20
|
+
export declare function useTresContext(): TresState;
|