@tresjs/core 2.2.0 → 2.4.0-next.0

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.
@@ -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
- export * from './TresCanvas';
1
+ import TresCanvas from './TresCanvas.vue';
2
+ export { TresCanvas };
@@ -1,4 +1,4 @@
1
- export * from './useCamera';
1
+ export * from './useCamera/';
2
2
  export * from './useRenderLoop/';
3
3
  export * from './useRenderer/';
4
4
  export * from './useLoader';
@@ -1,97 +1,8 @@
1
- import { PerspectiveCamera, OrthographicCamera } from 'three';
2
- import { Ref } from 'vue';
3
- export declare enum CameraType {
4
- Perspective = "Perspective",
5
- Orthographic = "Orthographic"
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
- setFirstCamera: (camera: Camera) => void;
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: import("vue").Ref<boolean>;
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,6 +3,8 @@ export * from './composables';
3
3
  export * from './core/catalogue';
4
4
  export * from './components';
5
5
  export * from './types';
6
+ import { normalizeColor, normalizeVectorFlexibleParam } from './utils/normalize';
7
+ import templateCompilerOptions from './utils/template-compiler-options';
6
8
  export interface TresOptions {
7
9
  extends?: Record<string, unknown>;
8
10
  }
@@ -12,3 +14,4 @@ export interface TresPlugin {
12
14
  }
13
15
  declare const plugin: TresPlugin;
14
16
  export default plugin;
17
+ 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;