@tresjs/core 5.0.0-next.3 → 5.0.0-next.5
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/src/components/TresCanvas.vue.d.ts +17 -13
- package/dist/src/composables/index.d.ts +0 -1
- package/dist/src/composables/useCreateRafLoop/index.d.ts +18 -0
- package/dist/src/composables/useEventManager/index.d.ts +2 -2
- package/dist/src/composables/useGraph/index.d.ts +1 -2
- package/dist/src/composables/useLoop/index.d.ts +13 -16
- package/dist/src/composables/useRenderer/useRendererManager.d.ts +13 -8
- package/dist/src/composables/useTresContextProvider/index.d.ts +0 -2
- package/dist/src/index.d.ts +0 -1
- package/dist/src/types/index.d.ts +10 -0
- package/dist/src/utils/createPriorityEventHook.d.ts +3 -5
- package/dist/src/utils/graph.d.ts +5 -4
- package/dist/tres.js +1502 -1589
- package/package.json +5 -5
- package/dist/src/composables/useRenderLoop/index.d.ts +0 -17
- package/dist/src/core/loop.d.ts +0 -36
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TresCamera } from '../types/';
|
|
1
|
+
import { TresCamera, TresContextWithClock } from '../types/';
|
|
2
2
|
import { PointerEvent } from '@pmndrs/pointer-events';
|
|
3
|
-
import { RendererOptions, TresContext
|
|
3
|
+
import { RendererOptions, TresContext } from '../composables';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
export interface TresCanvasProps extends RendererOptions {
|
|
6
6
|
/**
|
|
@@ -25,7 +25,6 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<Tr
|
|
|
25
25
|
context: import('vue').ShallowRef<TresContext | null, TresContext | null>;
|
|
26
26
|
dispose: () => void;
|
|
27
27
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
28
|
-
render: (renderer: TresRenderer) => any;
|
|
29
28
|
click: (event: PointerEvent<MouseEvent>) => any;
|
|
30
29
|
contextmenu: (event: PointerEvent<MouseEvent>) => any;
|
|
31
30
|
pointermove: (event: PointerEvent<MouseEvent>) => any;
|
|
@@ -39,10 +38,12 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<Tr
|
|
|
39
38
|
pointercancel: (event: PointerEvent<MouseEvent>) => any;
|
|
40
39
|
lostpointercapture: (event: PointerEvent<MouseEvent>) => any;
|
|
41
40
|
wheel: (event: PointerEvent<MouseEvent>) => any;
|
|
41
|
+
render: (context: TresContext) => any;
|
|
42
|
+
loop: (context: TresContextWithClock) => any;
|
|
42
43
|
ready: (context: TresContext) => any;
|
|
43
44
|
pointermissed: (event: PointerEvent<MouseEvent>) => any;
|
|
45
|
+
beforeLoop: (context: TresContextWithClock) => any;
|
|
44
46
|
}, string, import('vue').PublicProps, Readonly<TresCanvasProps> & Readonly<{
|
|
45
|
-
onRender?: ((renderer: TresRenderer) => any) | undefined;
|
|
46
47
|
onClick?: ((event: PointerEvent<MouseEvent>) => any) | undefined;
|
|
47
48
|
onContextmenu?: ((event: PointerEvent<MouseEvent>) => any) | undefined;
|
|
48
49
|
onPointermove?: ((event: PointerEvent<MouseEvent>) => any) | undefined;
|
|
@@ -56,25 +57,28 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<Tr
|
|
|
56
57
|
onPointercancel?: ((event: PointerEvent<MouseEvent>) => any) | undefined;
|
|
57
58
|
onLostpointercapture?: ((event: PointerEvent<MouseEvent>) => any) | undefined;
|
|
58
59
|
onWheel?: ((event: PointerEvent<MouseEvent>) => any) | undefined;
|
|
60
|
+
onRender?: ((context: TresContext) => any) | undefined;
|
|
61
|
+
onLoop?: ((context: TresContextWithClock) => any) | undefined;
|
|
59
62
|
onReady?: ((context: TresContext) => any) | undefined;
|
|
60
63
|
onPointermissed?: ((event: PointerEvent<MouseEvent>) => any) | undefined;
|
|
64
|
+
onBeforeLoop?: ((context: TresContextWithClock) => any) | undefined;
|
|
61
65
|
}>, {
|
|
62
|
-
toneMapping: THREE.ToneMapping;
|
|
63
|
-
alpha: boolean;
|
|
64
|
-
logarithmicDepthBuffer: boolean;
|
|
65
|
-
depth: boolean;
|
|
66
|
-
stencil: boolean;
|
|
67
|
-
windowSize: boolean;
|
|
68
|
-
clearColor: THREE.ColorRepresentation;
|
|
69
|
-
shadowMapType: THREE.ShadowMapType;
|
|
70
|
-
enableProvideBridge: boolean;
|
|
71
66
|
antialias: boolean;
|
|
67
|
+
stencil: boolean;
|
|
68
|
+
depth: boolean;
|
|
69
|
+
logarithmicDepthBuffer: boolean;
|
|
72
70
|
preserveDrawingBuffer: boolean;
|
|
71
|
+
alpha: boolean;
|
|
73
72
|
failIfMajorPerformanceCaveat: boolean;
|
|
73
|
+
clearColor: THREE.ColorRepresentation;
|
|
74
74
|
clearAlpha: number;
|
|
75
75
|
shadows: boolean;
|
|
76
|
+
toneMapping: THREE.ToneMapping;
|
|
77
|
+
shadowMapType: THREE.ShadowMapType;
|
|
76
78
|
useLegacyLights: boolean;
|
|
77
79
|
renderMode: "always" | "on-demand" | "manual";
|
|
80
|
+
windowSize: boolean;
|
|
81
|
+
enableProvideBridge: boolean;
|
|
78
82
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
79
83
|
canvasRef: HTMLCanvasElement;
|
|
80
84
|
}, HTMLCanvasElement>, Readonly<{
|
|
@@ -4,7 +4,6 @@ export * from './useGraph';
|
|
|
4
4
|
export * from './useLoader';
|
|
5
5
|
export * from './useLoop';
|
|
6
6
|
export * from './useRenderer/useRendererManager';
|
|
7
|
-
export * from './useRenderLoop';
|
|
8
7
|
export * from './useTres';
|
|
9
8
|
export * from './useTresContextProvider';
|
|
10
9
|
export { UseLoader };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface RafLoopContext {
|
|
2
|
+
delta: number;
|
|
3
|
+
elapsed: number;
|
|
4
|
+
}
|
|
5
|
+
type LoopFunction = (notifySuccess: () => void) => void;
|
|
6
|
+
/**
|
|
7
|
+
* @param defaultFunction the default function that is called before after the after event hook is triggered and after the before is triggered.
|
|
8
|
+
* @param notifySuccess a callback that should be called to indicate a successfull cycle.
|
|
9
|
+
*/
|
|
10
|
+
export declare const useCreateRafLoop: (defaultFunction: LoopFunction, notifySuccess: () => void) => {
|
|
11
|
+
start: () => void;
|
|
12
|
+
stop: () => void;
|
|
13
|
+
isActive: Readonly<import('vue').ShallowRef<boolean>>;
|
|
14
|
+
onBeforeLoop: import('@vueuse/core').EventHookOn<RafLoopContext>;
|
|
15
|
+
onLoop: import('@vueuse/core').EventHookOn<RafLoopContext>;
|
|
16
|
+
replaceLoopFunction: (fn: LoopFunction) => void;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
@@ -2,9 +2,9 @@ import { PointerEvent, PointerEventsMap } from '@pmndrs/pointer-events';
|
|
|
2
2
|
import { Event, Object3D, Object3DEventMap } from 'three';
|
|
3
3
|
import { MaybeRef } from 'vue';
|
|
4
4
|
import { TresContext } from '../useTresContextProvider';
|
|
5
|
-
export declare function useEventManager({ canvas, contextParts: { scene, camera,
|
|
5
|
+
export declare function useEventManager({ canvas, contextParts: { scene, camera, renderer }, }: {
|
|
6
6
|
canvas: MaybeRef<HTMLCanvasElement>;
|
|
7
|
-
contextParts: Pick<TresContext, 'scene' | 'camera' | '
|
|
7
|
+
contextParts: Pick<TresContext, 'scene' | 'camera' | 'renderer'>;
|
|
8
8
|
}): {
|
|
9
9
|
onPointerMissed: import('@vueuse/core').EventHookOn<PointerEvent<MouseEvent> & Event<"click", Object3D<Object3DEventMap & PointerEventsMap>>>;
|
|
10
10
|
};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Object3D } from 'three';
|
|
2
1
|
import { MaybeRef } from '@vueuse/core';
|
|
3
2
|
import { TresObject } from '../../types';
|
|
4
|
-
export declare function useGraph(object: MaybeRef<
|
|
3
|
+
export declare function useGraph(object: MaybeRef<TresObject>): import('vue').ComputedRef<import('../..').TresObjectMap>;
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
onAfterRender: (cb: LoopCallbackFn, index?: number) => {
|
|
15
|
-
off: import('@vueuse/core').Fn;
|
|
16
|
-
};
|
|
1
|
+
import { RafLoopContext } from '../useCreateRafLoop';
|
|
2
|
+
import { TresPartialContext } from '../useTres';
|
|
3
|
+
export type LoopContext = RafLoopContext & TresPartialContext;
|
|
4
|
+
/**
|
|
5
|
+
* Composable that provides control over the render loop and animation lifecycle.
|
|
6
|
+
*/
|
|
7
|
+
export declare const useLoop: () => {
|
|
8
|
+
stop: () => void;
|
|
9
|
+
start: () => void;
|
|
10
|
+
isActive: Readonly<import('vue').ShallowRef<boolean>>;
|
|
11
|
+
onBeforeRender: import('../../utils/createPriorityEventHook').PriorityEventHookOn<LoopContext>;
|
|
12
|
+
onRender: import('../../utils/createPriorityEventHook').PriorityEventHookOn<LoopContext>;
|
|
13
|
+
render: (fn: (notifySuccess: () => void) => void) => void;
|
|
17
14
|
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { RendererLoop } from './../../core/loop';
|
|
2
1
|
import { ColorRepresentation, ColorSpace, ShadowMapType, ToneMapping, WebGLRenderer } from 'three';
|
|
3
2
|
import { TresContext } from '../useTresContextProvider';
|
|
4
|
-
import { MaybeRef, ShallowRef } from 'vue';
|
|
3
|
+
import { MaybeRef, Reactive, ShallowRef } from 'vue';
|
|
5
4
|
import { Renderer } from 'three/webgpu';
|
|
6
5
|
import { SizesType } from '../useSizes';
|
|
7
6
|
import { UseCameraReturn } from '../useCamera';
|
|
@@ -166,23 +165,29 @@ export interface TresRendererSetupContext {
|
|
|
166
165
|
sizes: SizesType;
|
|
167
166
|
scene: ShallowRef<TresScene>;
|
|
168
167
|
camera: UseCameraReturn;
|
|
169
|
-
loop: RendererLoop;
|
|
170
168
|
canvas: MaybeRef<HTMLCanvasElement>;
|
|
171
169
|
}
|
|
172
170
|
export interface UseRendererOptions {
|
|
173
171
|
scene: ShallowRef<TresScene>;
|
|
174
172
|
canvas: MaybeRef<HTMLCanvasElement>;
|
|
175
|
-
options: RendererOptions
|
|
176
|
-
contextParts: Pick<TresContext, 'sizes' | 'camera'
|
|
173
|
+
options: Reactive<RendererOptions>;
|
|
174
|
+
contextParts: Pick<TresContext, 'sizes' | 'camera'>;
|
|
177
175
|
}
|
|
178
|
-
export declare function useRendererManager({ scene, canvas, options, contextParts: { sizes,
|
|
176
|
+
export declare function useRendererManager({ scene, canvas, options, contextParts: { sizes, camera }, }: UseRendererOptions): {
|
|
177
|
+
loop: {
|
|
178
|
+
start: () => void;
|
|
179
|
+
stop: () => void;
|
|
180
|
+
isActive: Readonly<ShallowRef<boolean>>;
|
|
181
|
+
onBeforeLoop: import('@vueuse/core').EventHookOn<import('../useCreateRafLoop').RafLoopContext>;
|
|
182
|
+
onLoop: import('@vueuse/core').EventHookOn<import('../useCreateRafLoop').RafLoopContext>;
|
|
183
|
+
replaceLoopFunction: (fn: (notifySuccess: () => void) => void) => void;
|
|
184
|
+
};
|
|
179
185
|
instance: TresRenderer;
|
|
180
186
|
advance: () => void;
|
|
181
|
-
onRender: import('@vueuse/core').EventHookOn<TresRenderer>;
|
|
182
187
|
onReady: import('@vueuse/core').EventHookOn<TresRenderer>;
|
|
188
|
+
onRender: import('@vueuse/core').EventHookOn<TresRenderer>;
|
|
183
189
|
invalidate: (amountOfFramesToInvalidate?: number) => void;
|
|
184
190
|
canBeInvalidated: import('vue').ComputedRef<boolean>;
|
|
185
|
-
frames: import('vue').Ref<number, number>;
|
|
186
191
|
mode: "always" | "on-demand" | "manual" | undefined;
|
|
187
192
|
};
|
|
188
193
|
export type UseRendererManagerReturn = ReturnType<typeof useRendererManager>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { MaybeRef, MaybeRefOrGetter, Ref, ShallowRef } from 'vue';
|
|
2
|
-
import { RendererLoop } from '../../core/loop';
|
|
3
2
|
import { TresControl, TresScene } from '../../types';
|
|
4
3
|
import { RendererOptions, UseRendererManagerReturn } from '../useRenderer/useRendererManager';
|
|
5
4
|
import { UseCameraReturn } from '../useCamera/';
|
|
@@ -12,7 +11,6 @@ export interface TresContext {
|
|
|
12
11
|
camera: UseCameraReturn;
|
|
13
12
|
controls: Ref<TresControl | null>;
|
|
14
13
|
renderer: UseRendererManagerReturn;
|
|
15
|
-
loop: RendererLoop;
|
|
16
14
|
events: ReturnType<typeof useEventManager>;
|
|
17
15
|
}
|
|
18
16
|
export declare function useTresContextProvider({ scene, canvas, windowSize, rendererOptions, }: {
|
package/dist/src/index.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ import { default as templateCompilerOptions } from './utils/template-compiler-op
|
|
|
5
5
|
export * from './components';
|
|
6
6
|
export * from './composables';
|
|
7
7
|
export * from './core/catalogue';
|
|
8
|
-
export * from './core/loop';
|
|
9
8
|
export * from './directives';
|
|
10
9
|
export * from './types';
|
|
11
10
|
export * from './utils/graph';
|
|
@@ -57,6 +57,12 @@ export interface TresObject3D extends THREE.Object3D<THREE.Object3DEventMap> {
|
|
|
57
57
|
export type TresObject = TresBaseObject & (TresObject3D | THREE.BufferGeometry | THREE.Material | THREE.Fog) & {
|
|
58
58
|
__tres?: LocalState;
|
|
59
59
|
};
|
|
60
|
+
/**
|
|
61
|
+
* Union type covering all common Three.js material types
|
|
62
|
+
* This provides better TypeScript intellisense and type checking
|
|
63
|
+
* when accessing specific material properties
|
|
64
|
+
*/
|
|
65
|
+
export type TresMaterial = THREE.MeshBasicMaterial | THREE.MeshStandardMaterial | THREE.MeshPhysicalMaterial | THREE.MeshLambertMaterial | THREE.MeshPhongMaterial | THREE.MeshToonMaterial | THREE.MeshNormalMaterial | THREE.MeshMatcapMaterial | THREE.MeshDepthMaterial | THREE.MeshDistanceMaterial | THREE.LineBasicMaterial | THREE.LineDashedMaterial | THREE.PointsMaterial | THREE.SpriteMaterial | THREE.ShaderMaterial | THREE.RawShaderMaterial | THREE.ShadowMaterial | THREE.Material;
|
|
60
66
|
export type TresInstance = TresObject & {
|
|
61
67
|
__tres: LocalState;
|
|
62
68
|
};
|
|
@@ -93,6 +99,10 @@ export type TresEuler = THREE.Euler;
|
|
|
93
99
|
export type TresControl = THREE.EventDispatcher & {
|
|
94
100
|
enabled: boolean;
|
|
95
101
|
};
|
|
102
|
+
export type TresContextWithClock = TresContext & {
|
|
103
|
+
delta: number;
|
|
104
|
+
elapsed: number;
|
|
105
|
+
};
|
|
96
106
|
export type WithMathProps<P> = {
|
|
97
107
|
[K in keyof P]: P[K] extends MathRepresentation | THREE.Euler ? MathType<P[K]> : P[K];
|
|
98
108
|
};
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { EventHookOff,
|
|
2
|
-
export type Callback<T> =
|
|
3
|
-
T
|
|
4
|
-
] extends [void] ? () => void : (param: T) => void);
|
|
1
|
+
import { EventHookOff, EventHookTrigger } from '@vueuse/core';
|
|
2
|
+
export type Callback<T> = Parameters<EventHookOff<T>>[0];
|
|
5
3
|
export type PriorityEventHookOn<T> = (fn: Callback<T>, priority?: number) => {
|
|
6
4
|
off: () => void;
|
|
7
5
|
};
|
|
8
6
|
export type PriorityEventHookOff<T> = EventHookOff<T>;
|
|
9
|
-
export type PriorityEventHookTrigger<T
|
|
7
|
+
export type PriorityEventHookTrigger<T> = EventHookTrigger<T>;
|
|
10
8
|
export interface PriorityEventHook<T = any> {
|
|
11
9
|
on: PriorityEventHookOn<T>;
|
|
12
10
|
off: (fn: Callback<T>) => void;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Mesh, Scene } from 'three';
|
|
2
|
+
import { TresMaterial, TresObject } from '../types';
|
|
2
3
|
export interface TresObjectMap {
|
|
3
4
|
nodes: {
|
|
4
|
-
[name: string]:
|
|
5
|
+
[name: string]: TresObject;
|
|
5
6
|
};
|
|
6
7
|
materials: {
|
|
7
|
-
[name: string]:
|
|
8
|
+
[name: string]: TresMaterial;
|
|
8
9
|
};
|
|
9
10
|
meshes: {
|
|
10
11
|
[name: string]: Mesh;
|
|
11
12
|
};
|
|
12
13
|
scene?: Scene;
|
|
13
14
|
}
|
|
14
|
-
export declare function buildGraph(object:
|
|
15
|
+
export declare function buildGraph(object: TresObject): TresObjectMap;
|