@tresjs/core 0.3.0 → 0.5.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.
package/dist/tres.umd.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * name: @tresjs/core
3
- * version: v0.3.0
3
+ * version: v0.5.0
4
4
  * (c) 2022
5
5
  * description: Declarative ThreeJS using Vue Components
6
6
  * author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
7
7
  */
8
- (function(d,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue"),require("three"),require("@vueuse/core")):typeof define=="function"&&define.amd?define(["exports","vue","three","@vueuse/core"],n):(d=typeof globalThis<"u"?globalThis:d||self,n(d.tres={},d.Vue,d.Three,d.VueUseCore))})(this,function(d,n,m,$){"use strict";function Y(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const s in e)if(s!=="default"){const r=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,r.get?r:{enumerable:!0,get:()=>e[s]})}}return t.default=e,Object.freeze(t)}const Z=Y(m);var _=(e=>(e.Perspective="Perspective",e.Orthographic="Orthographic",e))(_||{});const x={cameras:[]},E=45;let L;function k(){const{width:e,height:t}=$.useWindowSize();function s(c="Perspective",o){if(c==="Perspective"){const{near:g,far:y,fov:p}=o||{near:.1,far:1e3,fov:E};L=new m.PerspectiveCamera(p,r.value,g,y),x.cameras.push(L)}else{const{left:g,right:y,top:p,bottom:S,near:O,far:w}=o||{left:-100,right:100,top:100,bottom:-100,near:.1,far:1e3};L=new m.OrthographicCamera(g,y,p,S,O,w),x.cameras.push(L)}return x.cameras.push(L),L}const r=n.computed(()=>e.value/t.value),a=n.computed(()=>x.cameras[0]);function i(){a.value instanceof m.PerspectiveCamera&&(a.value.aspect=r.value),a.value.updateProjectionMatrix()}function u(c){x.cameras.push(c),c instanceof m.PerspectiveCamera&&(c.aspect=r.value),c.updateProjectionMatrix()}return n.watch(r,i),{activeCamera:a,createCamera:s,updateCamera:i,pushCamera:u}}let z={...Z};function U(){return{extend:t=>{z=Object.assign(z,t)},catalogue:z}}const H=e=>typeof e<"u",q=e=>!!e&&e.constructor===Array;function W(e){return typeof e=="number"?[e,e,e]:e instanceof m.Vector3?[e.x,e.y,e.z]:e}function v(e){return e instanceof m.Color?e:Array.isArray(e)?new m.Color(...e):new m.Color(e)}const D="[TresJS \u25B2 \u25A0 \u25CF] ";function I(){function e(r,a){console.error(`${D} ${r}`,a)}function t(r){console.warn(`${D} ${r}`)}function s(r,a){}return{logError:e,logWarning:t,logMessage:s}}const B=new m.Scene,R=n.ref(!1);function j(){const{logMessage:e}=I();function t(){B==null||B.clear(),R.value=!R.value,e("clear Scene",B)}return{isSceneReset:R,clearScene:t,scene:B}}const ee=["rotation","scale","position"];function N(){const{catalogue:e}=U(),{logMessage:t,logError:s}=I();function r(){return Object.entries(e).filter(([a,i])=>{var u,c;return(c=(u=i==null?void 0:i.prototype)==null?void 0:u.constructor)==null?void 0:c.toString().includes("class")}).map(([a,i])=>{const u=n.defineComponent({name:a,setup(c,{slots:o,attrs:g,...y}){t(a,{props:c,slots:o,attrs:g,ctx:y});let p;const{scene:S}=j(),{pushCamera:O}=k();function w(){if((o==null?void 0:o.default)&&(o==null?void 0:o.default())){const b=o.default().map(f=>{var C;let M;return(C=f==null?void 0:f.props)!=null&&C.args?M=new e[f.type.name](...f.props.args):M=new e[f.type.name],f!=null&&f.props&&h(f.props,M),M});p=new i(...b)}else g.args?p=new i(...g.args):p=new i;h(g,p),a==="PerspectiveCamera"||a==="OrtographicCamera"?O(p):S==null||S.add(p),t("Instance added",S),y.expose(p)}function h(b,f){Object.entries(b).forEach(([M,C])=>{const P=M.replace(/(-\w)/g,F=>F[1].toUpperCase());if(!(P==="args"||C===void 0)){ee.includes(M)&&C&&(C=W(C));try{f[P]&&H(f[P].set)?q(C)?f[P].set(...C):f[P].set(C):(C===""&&(C=!0),f[P]=C)}catch(F){s(`There was an error setting ${P} property`,F)}}}),b.ref&&(b.ref=f)}return w(),()=>{}}});return[a,u]})}return{createComponentInstances:r}}let G;function A(e,t,s){const r=new m.Clock,{scene:a}=j(),i=()=>{const c=r.getElapsedTime(),o=r.getDelta();a&&(t&&t(o,c),e(o,c),s&&s(o,c)),G=requestAnimationFrame(i)};i();function u(){cancelAnimationFrame(G)}return{disposeLoop:u}}function J(){const e=new m.LoadingManager,t=n.ref(e);return{loadingManager:e,loadingManagerRef:t}}async function te(e){const{loadingManager:t}=J(),s=new m.TextureLoader(t),r=a=>new Promise((i,u)=>{s.load(a,c=>i(c),()=>null,()=>{u(new Error("[useTextures] - Failed to load texture"))})});if(q(e)){const a=await Promise.all(e.map(i=>r(i)));return e.length>1?a:a[0]}else{const{map:a,displacementMap:i,normalMap:u,roughnessMap:c,metalnessMap:o,aoMap:g}=e;return{map:a?await r(a):null,displacementMap:i?await r(i):null,normalMap:u?await r(u):null,roughnessMap:c?await r(c):null,metalnessMap:o?await r(o):null,aoMap:g?await r(g):null}}}const T=n.reactive({});function V(){function e(s){return T[s]}function t(s,r){T[s]=r}return{state:T,...n.toRefs(T),getState:e,setState:t}}let l,K;function Q(e,t){const{width:s,height:r}=$.useWindowSize(),{logMessage:a}=I(),i=n.computed(()=>s.value/r.value),{scene:u}=j(),{activeCamera:c}=k(),{setState:o}=V();o("scene",u),o("camera",c);function g(){l&&(l.shadowMap.enabled=!0,l.shadowMap.type=m.PCFSoftShadowMap)}function y(){l&&(l.setSize(s.value,r.value),l.setPixelRatio(Math.min(window.devicePixelRatio,2)))}function p(){l&&(l.dispose(),l=null),a("disposeRenderer",l),K()}n.watch(i,y);function S(){if(a("Render init",{renderer:l,canvas:e,scene:u}),!l&&e.value&&u){const w={canvas:e.value,...t};t!=null&&t.context&&(w.context=t.context),l=new m.WebGLRenderer(w),t!=null&&t.shadows&&g(),l.physicallyCorrectLights=(t==null?void 0:t.physicallyCorrectLights)||!1,t!=null&&t.outputEncoding&&(l.outputEncoding=t.outputEncoding),t!=null&&t.toneMapping&&(l.toneMapping=t.toneMapping,l.toneMappingExposure=1),y(),l.render(u,c.value),o("renderer",l),K=A(()=>{u&&l&&l.render(u,c.value)}).disposeLoop}o("loop",A)}function O(w){l&&l.setClearColor(v(w))}return S(),{renderer:l,setClearColor:O,updateRenderer:y,disposeRenderer:p}}const X=n.defineComponent({__name:"TresCanvas",props:{camera:null,ortographic:{type:Boolean},gl:null,shadows:{type:Boolean,default:!1},physicallyCorrectLights:{type:Boolean,default:!1},outputEncoding:{default:m.sRGBEncoding},alpha:{type:Boolean,default:!1},background:null,async:{type:Boolean,default:!1}},setup(e){const t=e;let s,r=()=>{};const a=n.ref(),i=n.ref(!0),{scene:u,clearScene:c}=j(),o=n.useSlots(),g=n.useAttrs(),{createCamera:y}=k();let p;const S=V();n.provide("UseTresState",S.state);const O=o.default?o==null?void 0:o.default().some(h=>h.type.name==="PerspectiveCamera"||h.type.name==="OrtographicCamera"):!1;if(u&&!O)if(t.camera){const{position:h,...b}=t.camera;if(p=y(t.ortographic===!0?_.Orthographic:_.Perspective,b||{}),h){const f=W(h);p.position.set(f[0],f[1],f[2])}u.add(p)}else p=y(t.ortographic===!0?_.Orthographic:_.Perspective,{}),p.position.set(5,5,5),u.add(p);n.watch(t,()=>{s&&(r(),c(),w())});function w(){const h=Q(a,{antialias:!0,physicallyCorrectLights:t.physicallyCorrectLights,shadows:t.shadows,context:t.gl||null,alpha:t.alpha});s=h.renderer,r=h.disposeRenderer,t.background&&h.setClearColor(t.background)}return n.onMounted(()=>{w()}),n.onBeforeUnmount(()=>{c(),r()}),(h,b)=>{var f,M,C,P;return n.openBlock(),n.createElementBlock("div",{id:"tres-container",style:n.normalizeStyle({position:"relative",top:0,left:0,right:0,bottom:0,overflow:"hidden",width:((M=(f=n.unref(g))==null?void 0:f.style)==null?void 0:M.width)||"100%",height:"100%"})},[n.createElementVNode("canvas",{ref_key:"canvasRef",ref:a,style:n.normalizeStyle({width:((P=(C=n.unref(g))==null?void 0:C.style)==null?void 0:P.width)||"100%",height:"100%",overflow:"hidden"})},null,4),e.async?(n.openBlock(),n.createBlock(n.Suspense,{key:0},{default:n.withCtx(()=>[i.value?n.renderSlot(h.$slots,"default",{key:0}):n.createCommentVNode("",!0)]),_:3})):(n.openBlock(),n.createElementBlock(n.Fragment,{key:1},[i.value?n.renderSlot(h.$slots,"default",{key:0}):n.createCommentVNode("",!0)],64))],4)}}}),ne=Object.freeze(Object.defineProperty({__proto__:null,default:X},Symbol.toStringTag,{value:"Module"})),re=Symbol("UseTresState"),ae={install(e){e.component("TresCanvas",X);const{createComponentInstances:t}=N();t().forEach(([r,a])=>{e.component(r,a)})}};d.CameraType=_,d.TresCanvas=ne,d.UseTresStateSymbol=re,d.default=ae,d.useCamera=k,d.useCatalog=U,d.useInstanceCreator=N,d.useLoadingManager=J,d.useLoop=A,d.useRenderer=Q,d.useScene=j,d.useTexture=te,d.useTres=V,Object.defineProperties(d,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
8
+ (function(u,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue"),require("@vueuse/core"),require("three")):typeof define=="function"&&define.amd?define(["exports","vue","@vueuse/core","three"],o):(u=typeof globalThis<"u"?globalThis:u||self,o(u.tres={},u.Vue,u.VueUseCore,u.Three))})(this,function(u,o,f,m){"use strict";function ee(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const te=ee(m);var V=(e=>(e.Perspective="Perspective",e.Orthographic="Orthographic",e))(V||{});const b={cameras:[]},ne=45;let P;function A(){const{width:e,height:t}=f.useWindowSize();function n(c="Perspective",i){if(c==="Perspective"){const{near:g,far:C,fov:h}=i||{near:.1,far:1e3,fov:ne};P=new m.PerspectiveCamera(h,r.value,g,C),b.cameras.push(P)}else{const{left:g,right:C,top:h,bottom:w,near:O,far:L}=i||{left:-100,right:100,top:100,bottom:-100,near:.1,far:1e3};P=new m.OrthographicCamera(g,C,h,w,O,L),b.cameras.push(P)}return b.cameras.push(P),P}const r=o.computed(()=>e.value/t.value),a=o.computed(()=>b.cameras[0]);function s(){a.value instanceof m.PerspectiveCamera&&(a.value.aspect=r.value),a.value.updateProjectionMatrix()}function p(c){const i=o.inject("camera");c&&i&&(i.value=c),b.cameras.push(c),c instanceof m.PerspectiveCamera&&(c.aspect=r.value),c.updateProjectionMatrix()}return o.watch(r,s),{activeCamera:a,createCamera:n,updateCamera:s,pushCamera:p}}let U={...te};delete U.Scene;function $(){return{extend:t=>{U=Object.assign(U,t)},catalogue:U}}const re=e=>typeof e<"u",T=e=>!!e&&e.constructor===Array;function ae(e){return typeof e=="number"?[e,e,e]:e instanceof m.Vector3?[e.x,e.y,e.z]:e}function W(e){return e instanceof m.Color?e:Array.isArray(e)?new m.Color(...e):new m.Color(e)}const q="[TresJS \u25B2 \u25A0 \u25CF] ";function z(){function e(r,a){console.error(`${q} ${r}`,a||"")}function t(r){console.warn(`${q} ${r}`)}function n(r,a){}return{logError:e,logWarning:t,logMessage:n}}const oe=["rotation","scale","position"];function N(){const{catalogue:e}=$(),{logMessage:t,logError:n}=z();function r(){return Object.entries(e).filter(([a,s])=>{var p,c;return(c=(p=s==null?void 0:s.prototype)==null?void 0:p.constructor)==null?void 0:c.toString().includes("class")}).map(([a,s])=>{const p=o.defineComponent({name:a,setup(c,{slots:i,attrs:g,...C}){t(a,{props:c,slots:i,attrs:g,ctx:C});let h;const{scene:w}=I(),{pushCamera:O}=A();function L(){if((i==null?void 0:i.default)&&(i==null?void 0:i.default())){const v=i.default().map(l=>{var y;let M;return(y=l==null?void 0:l.props)!=null&&y.args?M=new e[l.type.name](...l.props.args):M=new e[l.type.name],l!=null&&l.props&&j(l.props,M),M});h=new s(...v)}else g.args?h=new s(...g.args):h=new s;j(g,h),a==="PerspectiveCamera"||a==="OrtographicCamera"?O(h):w==null||w.value.add(h),t("Instance added",w),C.expose(h)}function j(v,l){Object.entries(v).forEach(([M,y])=>{const S=M.replace(/(-\w)/g,_=>_[1].toUpperCase());if(!(S==="args"||y===void 0)){oe.includes(M)&&y&&(y=ae(y));try{l[S]&&re(l[S].set)?T(y)?l[S].set(...y):l[S].set(y):(y===""&&(y=!0),l[S]=y)}catch(_){n(`There was an error setting ${S} property`,_)}}}),v.ref&&(v.ref=l)}return L(),()=>{}}});return[a,p]})}return{createComponentInstances:r}}const k=f.createEventHook(),G=f.createEventHook(),J=f.createEventHook(),K=new m.Clock,{pause:se,resume:ie,isActive:ce}=f.useRafFn(()=>{const e=K.getElapsedTime(),t=K.getDelta();k.trigger({delta:t,elapsed:e}),G.trigger({delta:t,elapsed:e}),J.trigger({delta:t,elapsed:e})},{immediate:!1});function B(){return{onBeforeLoop:k.on,onLoop:G.on,onAfterLoop:J.on,pause:se,resume:ie,isActive:ce}}const ue=o.shallowRef(new m.Scene);function I(){return{scene:ue}}function Q(e){const t={nodes:{},materials:{}};return e&&e.traverse(n=>{n.name&&(t.nodes[n.name]=n),n.material&&!t.materials[n.material.name]&&(t.materials[n.material.name]=n.material)}),t}async function le(e,t,n,r,a){const{logError:s}=z(),p=new e;a&&a(p),n&&n(e);const i=(Array.isArray(t)?t:[t]).map(g=>new Promise((C,h)=>{p.load(g,w=>{w.scene&&Object.assign(w,Q(w.scene)),C(w)},r,w=>h(s("[useLoader] - Failed to load resource",w)))}));return T(t)?await Promise.all(i):await i[0]}async function fe(e){const t=new m.LoadingManager,n=new m.TextureLoader(t),r=a=>new Promise((s,p)=>{n.load(a,c=>s(c),()=>null,()=>{p(new Error("[useTextures] - Failed to load texture"))})});if(T(e)){const a=await Promise.all(e.map(s=>r(s)));return e.length>1?a:a[0]}else{const{map:a,displacementMap:s,normalMap:p,roughnessMap:c,metalnessMap:i,aoMap:g}=e;return{map:a?await r(a):null,displacementMap:s?await r(s):null,normalMap:p?await r(p):null,roughnessMap:c?await r(c):null,metalnessMap:i?await r(i):null,aoMap:g?await r(g):null}}}const x=o.reactive({});function pe(){function e(n){return x[n]}function t(n,r){x[n]=r}return{state:x,...o.toRefs(x),getState:e,setState:t}}const d=o.shallowRef(),D=o.ref(!1);function X(e,t,n){const{alpha:r=!1,antialias:a,depth:s,logarithmicDepthBuffer:p,failIfMajorPerformanceCaveat:c,precision:i,premultipliedAlpha:g,stencil:C,shadows:h=!1,shadowMapType:w=m.PCFShadowMap,physicallyCorrectLights:O=!1,outputEncoding:L=m.LinearEncoding,toneMapping:j=m.NoToneMapping,toneMappingExposure:v=1,context:l=void 0,powerPreference:M="default",preserveDrawingBuffer:y=!1,clearColor:S=W("#000000"),windowSize:_=!1}=n,{width:F,height:R}=_?f.useWindowSize():f.useElementSize(t),{pixelRatio:Y}=f.useDevicePixelRatio(),{pause:we,resume:Ce}=B(),ye=o.computed(()=>F.value/R.value),Z=()=>{!d.value||(d.value.setSize(F.value,R.value),d.value.setPixelRatio(Y.value))},E=()=>{!d.value||(d.value.shadowMap.enabled=f.resolveUnref(h),d.value.outputEncoding=f.resolveUnref(L),d.value.shadowMap.type=f.resolveUnref(w),d.value.physicallyCorrectLights=f.resolveUnref(O),d.value.toneMapping=f.resolveUnref(j),d.value.toneMappingExposure=f.resolveUnref(v),d.value.setClearColor(W(f.resolveUnref(S))))},Se=()=>{const H=f.unrefElement(e);d.value||!H||(d.value=new m.WebGLRenderer({canvas:H,alpha:r,antialias:a,context:l,depth:s,failIfMajorPerformanceCaveat:c,logarithmicDepthBuffer:p,powerPreference:M,precision:i,stencil:C,preserveDrawingBuffer:y,premultipliedAlpha:g}),E(),Z(),Ce(),D.value=!0)},Me=()=>{!d.value||(d.value.dispose(),d.value=void 0,D.value=!1,we())};return o.watch([F,R,Y],Z),o.watch(()=>[h,w,L,O,j,v,S],E),o.watch(()=>[e,t],()=>{f.unrefElement(e)&&f.unrefElement(t)&&Se()},{immediate:!0,deep:!0}),{renderer:d,isReady:D,dispose:Me,aspectRatio:ye}}const me=o.defineComponent({name:"TresCanvas",props:{shadows:Boolean,shadowMapType:Object,physicallyCorrectLights:Boolean,outputEncoding:Object,toneMapping:Object,toneMappingExposure:Number,context:Object,powerPreference:Object,preserveDrawingBuffer:Boolean,clearColor:String,windowSize:Boolean},setup(e,{slots:t,attrs:n}){const{logError:r}=z(),a=o.ref(),s=o.ref(),{renderer:p,dispose:c,aspectRatio:i}=X(a,s,e),g=o.shallowRef();return o.provide("camera",g),o.provide("renderer",p),o.provide("aspect-ratio",i),t.default&&!t.default().some(C=>C.type.name==="Scene")&&r("TresCanvas must contain a Scene component."),t.default&&!t.default().some(C=>C.type.name==="PerspectiveCamera"||C.type.name==="OrtographicCamera")&&r("Scene must contain a Camera component."),o.onBeforeUnmount(()=>c()),()=>{if(t.default)return o.h("div",{ref:s,style:{position:"relative",width:"100%",height:"100vh",...n.style}},[o.h("canvas",{ref:a,style:{width:"100%",height:"100%",position:"absolute",top:0,left:0}}),t.default()])}}}),de=o.defineComponent({name:"Scene",setup(e,{slots:t}){const{scene:n}=I(),r=o.inject("renderer"),{activeCamera:a}=A(),{onLoop:s}=B();return o.provide("local-scene",n),s(()=>{(r==null?void 0:r.value)&&(a==null?void 0:a.value)&&(n==null?void 0:n.value)&&r.value.render(n==null?void 0:n.value,a.value)}),()=>{if(t.default)return t.default()}}}),ge=Symbol("UseTresState"),he={install(e){e.component("TresCanvas",me),e.component("Scene",de);const{createComponentInstances:t}=N();t().forEach(([r,a])=>{e.component(r,a)})}};u.CameraType=V,u.UseTresStateSymbol=ge,u.default=he,u.trasverseObjects=Q,u.useCamera=A,u.useCatalog=$,u.useInstanceCreator=N,u.useLoader=le,u.useRenderLoop=B,u.useRenderer=X,u.useScene=I,u.useTexture=fe,u.useTres=pe,Object.defineProperties(u,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tresjs/core",
3
3
  "description": "Declarative ThreeJS using Vue Components",
4
- "version": "0.3.0",
4
+ "version": "0.5.0",
5
5
  "type": "module",
6
6
  "author": "Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)",
7
7
  "files": [
@@ -38,7 +38,7 @@
38
38
  "devDependencies": {
39
39
  "@alvarosabu/utils": "^2.2.0",
40
40
  "@histoire/plugin-vue": "0.11.7",
41
- "@tresjs/cientos": "^0.2.0",
41
+ "@tresjs/cientos": "^0.4.0",
42
42
  "@vitejs/plugin-vue": "^3.2.0",
43
43
  "@vitest/coverage-c8": "^0.25.1",
44
44
  "@vitest/ui": "^0.25.1",
@@ -1,124 +0,0 @@
1
- import { TextureEncoding, WebGLRenderer } from 'three';
2
- import { CameraType, PerspectiveCameraOptions, Camera } from '../core/useCamera/useCamera';
3
- import { VectorFlexibleParams } from '../utils/normalize';
4
- export interface CanvasCameraOptions extends PerspectiveCameraOptions {
5
- position: VectorFlexibleParams;
6
- }
7
- declare const _sfc_main: import("vue").DefineComponent<{
8
- camera: {
9
- type: ObjectConstructor;
10
- required: false;
11
- };
12
- ortographic: {
13
- type: BooleanConstructor;
14
- required: false;
15
- };
16
- gl: {
17
- type: null;
18
- required: false;
19
- };
20
- shadows: {
21
- type: BooleanConstructor;
22
- required: false;
23
- default: boolean;
24
- };
25
- physicallyCorrectLights: {
26
- type: BooleanConstructor;
27
- required: false;
28
- default: boolean;
29
- };
30
- outputEncoding: {
31
- type: null;
32
- required: false;
33
- default: TextureEncoding;
34
- };
35
- alpha: {
36
- type: BooleanConstructor;
37
- required: false;
38
- default: boolean;
39
- };
40
- background: {
41
- type: StringConstructor;
42
- required: false;
43
- };
44
- async: {
45
- type: BooleanConstructor;
46
- required: false;
47
- default: boolean;
48
- };
49
- }, {
50
- props: any;
51
- renderer: WebGLRenderer | null;
52
- disposeRenderer: () => void;
53
- canvasRef: import("vue").Ref<any>;
54
- renderComponent: import("vue").Ref<boolean>;
55
- scene: import("three").Scene | null;
56
- clearScene: () => void;
57
- slots: Readonly<{
58
- [name: string]: import("vue").Slot | undefined;
59
- }>;
60
- attrs: {
61
- [x: string]: unknown;
62
- };
63
- createCamera: (cameraType?: CameraType | undefined, options?: PerspectiveCameraOptions | import('../core/useCamera/useCamera').OrthographicCameraOptions | undefined) => Camera;
64
- camera: Camera;
65
- tres: {
66
- getState: (key: string) => any;
67
- setState: (key: string, value: any) => void;
68
- camera?: import("vue").Ref<Camera | undefined> | undefined;
69
- renderer?: import("vue").Ref<WebGLRenderer | undefined> | undefined;
70
- state: import("../core").TresState;
71
- };
72
- thereIsCameraAlready: boolean;
73
- setupRenderer: () => void;
74
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
75
- camera: {
76
- type: ObjectConstructor;
77
- required: false;
78
- };
79
- ortographic: {
80
- type: BooleanConstructor;
81
- required: false;
82
- };
83
- gl: {
84
- type: null;
85
- required: false;
86
- };
87
- shadows: {
88
- type: BooleanConstructor;
89
- required: false;
90
- default: boolean;
91
- };
92
- physicallyCorrectLights: {
93
- type: BooleanConstructor;
94
- required: false;
95
- default: boolean;
96
- };
97
- outputEncoding: {
98
- type: null;
99
- required: false;
100
- default: TextureEncoding;
101
- };
102
- alpha: {
103
- type: BooleanConstructor;
104
- required: false;
105
- default: boolean;
106
- };
107
- background: {
108
- type: StringConstructor;
109
- required: false;
110
- };
111
- async: {
112
- type: BooleanConstructor;
113
- required: false;
114
- default: boolean;
115
- };
116
- }>>, {
117
- ortographic: boolean;
118
- shadows: boolean;
119
- physicallyCorrectLights: boolean;
120
- outputEncoding: any;
121
- alpha: boolean;
122
- async: boolean;
123
- }>;
124
- export default _sfc_main;
@@ -1,18 +0,0 @@
1
- import { LoadingManager } from 'three';
2
- export declare function useLoadingManager(): {
3
- loadingManager: LoadingManager;
4
- loadingManagerRef: import("vue").Ref<{
5
- onStart?: ((url: string, loaded: number, total: number) => void) | undefined;
6
- onLoad: () => void;
7
- onProgress: (url: string, loaded: number, total: number) => void;
8
- onError: (url: string) => void;
9
- setURLModifier: (callback?: ((url: string) => string) | undefined) => LoadingManager;
10
- resolveURL: (url: string) => string;
11
- itemStart: (url: string) => void;
12
- itemEnd: (url: string) => void;
13
- itemError: (url: string) => void;
14
- addHandler: (regex: RegExp, loader: import("three").Loader) => LoadingManager;
15
- removeHandler: (regex: RegExp) => LoadingManager;
16
- getHandler: (file: string) => import("three").Loader | null;
17
- }>;
18
- };
@@ -1,4 +0,0 @@
1
- export declare type TresLoop = (delta: number, elapsedTime: number) => void;
2
- export declare function useLoop(cb: TresLoop, beforeCb?: TresLoop, afterCb?: TresLoop): {
3
- disposeLoop: () => void;
4
- };
@@ -1,18 +0,0 @@
1
- import { Ref } from 'vue';
2
- import { TextureEncoding, ToneMapping, WebGLRenderer, WebGLRendererParameters, Color } from 'three';
3
- export interface RendererOptions extends WebGLRendererParameters {
4
- shadows?: boolean;
5
- controls?: boolean;
6
- physicallyCorrectLights?: boolean;
7
- outputEncoding?: TextureEncoding;
8
- toneMapping?: ToneMapping;
9
- context?: WebGLRenderingContext | undefined;
10
- powerPreference?: string;
11
- preserveDrawingBuffer?: boolean;
12
- }
13
- export declare function useRenderer(canvas: Ref<HTMLCanvasElement>, options?: RendererOptions): {
14
- renderer: WebGLRenderer | null;
15
- setClearColor: (color: Color | string | number) => void;
16
- updateRenderer: () => void;
17
- disposeRenderer: () => void;
18
- };
@@ -1,6 +0,0 @@
1
- import { Scene } from 'three';
2
- export declare function useScene(): {
3
- isSceneReset: import("vue").Ref<boolean>;
4
- clearScene: () => void;
5
- scene: Scene | null;
6
- };