gl-draw 0.9.0-beta.365 → 0.9.0-beta.366
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/BaseObject.js +1 -1
- package/dist/BaseObject.module.js +35 -23
- package/dist/core/BaseObject.d.ts +2 -1
- package/dist/core/Composer.d.ts +2 -1
- package/dist/core/pass/CrossFadePass.d.ts +2 -2
- package/dist/effect/index.js +0 -1
- package/dist/effect/index.module.js +0 -1
- package/dist/events.js +1 -1
- package/dist/events.module.js +16 -22
- package/dist/index.js +3 -3
- package/dist/index.module.js +309 -309
- package/dist/objects/extrudePolygon/ExtrudeGeometry.d.ts +4 -4
- package/dist/objects/index.js +1 -1
- package/dist/objects/index.module.js +20 -24
- package/dist/plugins/index.js +1 -1
- package/dist/plugins/index.module.js +255 -246
- package/dist/utils/BufferGeometryUtils.d.ts +3 -3
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.module.js +23 -24
- package/package.json +10 -10
package/dist/BaseObject.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const d=require("three"),l=require("esus-lite"),u=require("three/examples/jsm/renderers/CSS2DRenderer"),n=require("three/examples/jsm/renderers/CSS3DRenderer"),o=require("./disposeMesh.js");require("idb-keyval");require("d3-geo");function b(i){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const t in i)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(i,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>i[t]})}}return e.default=i,Object.freeze(e)}const s=b(d),h=(i,e,t)=>{e&&(o.disposeMesh(e,t),e.children.forEach(r=>{i.has(r)||h(i,r,t)}))};class j{constructor(){this.objectType="BaseObject",this.userData={},this.prefab=!1,this.pm=l.makePromiseCreator(),this.materialList={},this.useMaterialType="origin"}get parent(){const e=this.object3d.parent;return e?this.drawController.objMap.get(e)||this.pencil.scene:null}get children(){return this.object3d.children.map(e=>this.drawController.objMap.get(e)).filter(e=>!!e)}get position(){var e;return(e=this.object3d)==null?void 0:e.position}get rotation(){var e;return(e=this.object3d)==null?void 0:e.rotation}get scale(){var e;return(e=this.object3d)==null?void 0:e.scale}get add(){var e;return(e=this.object3d)==null?void 0:e.add.bind(this.object3d)}get remove(){var e;return(e=this.object3d)==null?void 0:e.remove.bind(this.object3d)}get visible(){return this.object3d?this.object3d.visible:!1}create(){}render(){}update(e,t){}resize(e,t){}show(){return this.object3d&&(this.object3d.visible=!0),this}hide(){return this.object3d&&(this.object3d.visible=!1),this}createMesh(...e){return this.object3d=new s.Mesh(...e),this}createGroup(){return this.object3d=new s.Group,this}createPoints(...e){return this.object3d=new s.Points(...e),this}createCSS2DObject(e){return this.object3d=new u.CSS2DObject(e),this}createCSS3DObject(e){return this.object3d=new n.CSS3DObject(e),this}createCSS3DSprite(e){return this.object3d=new n.CSS3DSprite(e),this}createSprite(e){return this.object3d=new s.Sprite(e),this}attach(...e){return[...e].forEach(t=>{this.object3d.attach(t.object3d),this.drawController!==t.drawController&&(t.drawController.objects.delete(t.key),this.drawController.objects.set(t.key,t))}),this}getSize(){const e=new s.Box3().setFromObject(this.object3d);return{min:e.min,max:e.max,size:e.getSize(new s.Vector3)}}traverse(e){e(this),this.children.forEach(t=>{t.traverse(e)})}clone(){return this.instantiate()}instantiate(e){return this.drawController.instantiate(this,{create:t=>{this.object3d&&(t.object3d=this.object3d.clone(!0)),typeof e=="number"&&(t.object3d=new s.InstancedMesh(t.object3d.geometry,t.object3d.material,e),t.object3d.instanceMatrix.setUsage(s.DynamicDrawUsage))}})}setInstancedMatrix(e){this.object3d instanceof s.InstancedMesh&&(Object.keys(e).forEach(t=>{this.object3d.setMatrixAt(Number(t),e[t])}),this.object3d.instanceMatrix.needsUpdate=!0,this.object3d.computeBoundingSphere())}erase(){this.drawController.erase(this)}cloneMaterial(){const e=this.object3d;if(!e||!e.material)return;const t=e.material;if(Array.isArray(t))return t.map(r=>{const a=r.userData;r.userData={};const c=r.clone();return r.userData=a,c});{const r=t.userData;t.userData={};const a=t.clone();return t.userData=r,a}}setMaterialList(e,t,r=!0){const a=this.object3d;if(!a||!a.material)return;if(this.materialList.origin||(this.materialList.origin=a.material),!r&&this.materialList[e])return this.materialList[e];const c=t==="clone"?this.cloneMaterial():t;return this.materialList[e]=c,c}useMaterial(e){const t=this.object3d;!t||!t.material||this.useMaterialType===e||!this.materialList[e]||(this.useMaterialType=e,t.material=this.materialList[e])}setTop(e){this.object3d&&(this.object3d.renderOrder=e)}dispose(e=!0){h(this.drawController.objMap,this.object3d,e),e&&Object.keys(this.materialList).forEach(t=>{t!=="origin"&&o.disposeMesh({material:this.materialList[t]})})}}exports.BaseObject=j;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as i from "three";
|
|
2
2
|
import { makePromiseCreator as h } from "esus-lite";
|
|
3
|
-
import { CSS2DObject as
|
|
4
|
-
import { CSS3DObject as
|
|
3
|
+
import { CSS2DObject as d } from "three/examples/jsm/renderers/CSS2DRenderer";
|
|
4
|
+
import { CSS3DObject as l, CSS3DSprite as b } from "three/examples/jsm/renderers/CSS3DRenderer";
|
|
5
5
|
import { d as c } from "./disposeMesh.module.js";
|
|
6
6
|
import "idb-keyval";
|
|
7
7
|
import "d3-geo";
|
|
@@ -10,7 +10,7 @@ const n = (o, t, e) => {
|
|
|
10
10
|
o.has(r) || n(o, r, e);
|
|
11
11
|
}));
|
|
12
12
|
};
|
|
13
|
-
class
|
|
13
|
+
class g {
|
|
14
14
|
constructor() {
|
|
15
15
|
this.objectType = "BaseObject", this.userData = {}, this.prefab = !1, this.pm = h(), this.materialList = {}, this.useMaterialType = "origin";
|
|
16
16
|
}
|
|
@@ -59,25 +59,25 @@ class S {
|
|
|
59
59
|
return this.object3d && (this.object3d.visible = !1), this;
|
|
60
60
|
}
|
|
61
61
|
createMesh(...t) {
|
|
62
|
-
return this.object3d = new
|
|
62
|
+
return this.object3d = new i.Mesh(...t), this;
|
|
63
63
|
}
|
|
64
64
|
createGroup() {
|
|
65
|
-
return this.object3d = new
|
|
65
|
+
return this.object3d = new i.Group(), this;
|
|
66
66
|
}
|
|
67
67
|
createPoints(...t) {
|
|
68
|
-
return this.object3d = new
|
|
68
|
+
return this.object3d = new i.Points(...t), this;
|
|
69
69
|
}
|
|
70
70
|
createCSS2DObject(t) {
|
|
71
|
-
return this.object3d = new
|
|
71
|
+
return this.object3d = new d(t), this;
|
|
72
72
|
}
|
|
73
73
|
createCSS3DObject(t) {
|
|
74
|
-
return this.object3d = new
|
|
74
|
+
return this.object3d = new l(t), this;
|
|
75
75
|
}
|
|
76
76
|
createCSS3DSprite(t) {
|
|
77
77
|
return this.object3d = new b(t), this;
|
|
78
78
|
}
|
|
79
79
|
createSprite(t) {
|
|
80
|
-
return this.object3d = new
|
|
80
|
+
return this.object3d = new i.Sprite(t), this;
|
|
81
81
|
}
|
|
82
82
|
attach(...t) {
|
|
83
83
|
return [...t].forEach((e) => {
|
|
@@ -85,11 +85,11 @@ class S {
|
|
|
85
85
|
}), this;
|
|
86
86
|
}
|
|
87
87
|
getSize() {
|
|
88
|
-
const t = new
|
|
88
|
+
const t = new i.Box3().setFromObject(this.object3d);
|
|
89
89
|
return {
|
|
90
90
|
min: t.min,
|
|
91
91
|
max: t.max,
|
|
92
|
-
size: t.getSize(new
|
|
92
|
+
size: t.getSize(new i.Vector3())
|
|
93
93
|
};
|
|
94
94
|
}
|
|
95
95
|
traverse(t) {
|
|
@@ -100,13 +100,25 @@ class S {
|
|
|
100
100
|
clone() {
|
|
101
101
|
return this.instantiate();
|
|
102
102
|
}
|
|
103
|
-
instantiate() {
|
|
103
|
+
instantiate(t) {
|
|
104
104
|
return this.drawController.instantiate(this, {
|
|
105
|
-
create: (
|
|
106
|
-
this.object3d && (
|
|
105
|
+
create: (e) => {
|
|
106
|
+
this.object3d && (e.object3d = this.object3d.clone(!0)), typeof t == "number" && (e.object3d = new i.InstancedMesh(
|
|
107
|
+
e.object3d.geometry,
|
|
108
|
+
e.object3d.material,
|
|
109
|
+
t
|
|
110
|
+
), e.object3d.instanceMatrix.setUsage(i.DynamicDrawUsage));
|
|
107
111
|
}
|
|
108
112
|
});
|
|
109
113
|
}
|
|
114
|
+
setInstancedMatrix(t) {
|
|
115
|
+
this.object3d instanceof i.InstancedMesh && (Object.keys(t).forEach((e) => {
|
|
116
|
+
this.object3d.setMatrixAt(
|
|
117
|
+
Number(e),
|
|
118
|
+
t[e]
|
|
119
|
+
);
|
|
120
|
+
}), this.object3d.instanceMatrix.needsUpdate = !0, this.object3d.computeBoundingSphere());
|
|
121
|
+
}
|
|
110
122
|
erase() {
|
|
111
123
|
this.drawController.erase(this);
|
|
112
124
|
}
|
|
@@ -117,23 +129,23 @@ class S {
|
|
|
117
129
|
const e = t.material;
|
|
118
130
|
if (Array.isArray(e))
|
|
119
131
|
return e.map((r) => {
|
|
120
|
-
const
|
|
132
|
+
const s = r.userData;
|
|
121
133
|
r.userData = {};
|
|
122
134
|
const a = r.clone();
|
|
123
|
-
return r.userData =
|
|
135
|
+
return r.userData = s, a;
|
|
124
136
|
});
|
|
125
137
|
{
|
|
126
138
|
const r = e.userData;
|
|
127
139
|
e.userData = {};
|
|
128
|
-
const
|
|
129
|
-
return e.userData = r,
|
|
140
|
+
const s = e.clone();
|
|
141
|
+
return e.userData = r, s;
|
|
130
142
|
}
|
|
131
143
|
}
|
|
132
144
|
setMaterialList(t, e, r = !0) {
|
|
133
|
-
const
|
|
134
|
-
if (!
|
|
145
|
+
const s = this.object3d;
|
|
146
|
+
if (!s || !s.material)
|
|
135
147
|
return;
|
|
136
|
-
if (this.materialList.origin || (this.materialList.origin =
|
|
148
|
+
if (this.materialList.origin || (this.materialList.origin = s.material), !r && this.materialList[t])
|
|
137
149
|
return this.materialList[t];
|
|
138
150
|
const a = e === "clone" ? this.cloneMaterial() : e;
|
|
139
151
|
return this.materialList[t] = a, a;
|
|
@@ -158,5 +170,5 @@ class S {
|
|
|
158
170
|
}
|
|
159
171
|
}
|
|
160
172
|
export {
|
|
161
|
-
|
|
173
|
+
g as B
|
|
162
174
|
};
|
|
@@ -46,7 +46,8 @@ export default class BaseObject {
|
|
|
46
46
|
};
|
|
47
47
|
traverse(fn: (o: IBaseObject) => void): void;
|
|
48
48
|
clone(): Promise<this>;
|
|
49
|
-
instantiate(): Promise<this>;
|
|
49
|
+
instantiate(count?: number): Promise<this>;
|
|
50
|
+
setInstancedMatrix(obj: Record<string, THREE.Matrix4>): void;
|
|
50
51
|
erase(): void;
|
|
51
52
|
cloneMaterial(): THREE.Material | THREE.Material[] | undefined;
|
|
52
53
|
materialList: Record<string, THREE.Material | THREE.Material[]>;
|
package/dist/core/Composer.d.ts
CHANGED
|
@@ -42,10 +42,11 @@ export declare const defaultToneMappingParams: {
|
|
|
42
42
|
averageLuminance: number;
|
|
43
43
|
adaptationRate: number;
|
|
44
44
|
};
|
|
45
|
+
type TextureEncoding = 3000 | 3001;
|
|
45
46
|
export interface ComposerParams {
|
|
46
47
|
multisampling: number;
|
|
47
48
|
frameBufferType: THREE.TextureDataType;
|
|
48
|
-
encoding:
|
|
49
|
+
encoding: TextureEncoding;
|
|
49
50
|
}
|
|
50
51
|
interface Options {
|
|
51
52
|
renderer: THREE.WebGLRenderer;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ShaderMaterial } from 'three';
|
|
1
|
+
import { ShaderMaterial, WebGLRenderer, WebGLRenderTarget } from 'three';
|
|
2
2
|
import { Pass } from 'postprocessing';
|
|
3
3
|
declare class CrossFadeMaterial extends ShaderMaterial {
|
|
4
4
|
constructor();
|
|
@@ -6,6 +6,6 @@ declare class CrossFadeMaterial extends ShaderMaterial {
|
|
|
6
6
|
export default class CrossFadePass extends Pass {
|
|
7
7
|
constructor();
|
|
8
8
|
fullscreenMaterial: CrossFadeMaterial;
|
|
9
|
-
render(renderer:
|
|
9
|
+
render(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, outputBuffer: WebGLRenderTarget): void;
|
|
10
10
|
}
|
|
11
11
|
export {};
|
package/dist/effect/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode("")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
1
|
"use strict";var O=Object.defineProperty;var P=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var W=Math.pow,z=(a,i,e)=>i in a?O(a,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[i]=e,c=(a,i)=>{for(var e in i||(i={}))_.call(i,e)&&z(a,e,i[e]);if(P)for(var e of P(i))T.call(i,e)&&z(a,e,i[e]);return a};var b=(a,i,e)=>new Promise((t,o)=>{var f=d=>{try{l(e.next(d))}catch(m){o(m)}},r=d=>{try{l(e.throw(d))}catch(m){o(m)}},l=d=>d.done?t(d.value):Promise.resolve(d.value).then(f,r);l((e=e.apply(a,i)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("three"),V=require("@tweenjs/tween.js"),D=require("esus-lite");function j(a){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const e in a)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(a,e);Object.defineProperty(i,e,t.get?t:{enumerable:!0,get:()=>a[e]})}}return i.default=a,Object.freeze(i)}const u=j(A),C=j(V);class E{constructor(i,e={}){this.object=i,this.options=c({color:16777215,opacity:1,lineNum:10,lineWidth:1,lineHieght:10,fade:!1,fadeType:2,radius:0,range:new u.Vector2(0,1),vertical:!1,step:0,pos:"bottom",duration:5e3,yoyo:!1,repeat:0},e)}initMaterial(){const{color:i,lineNum:e,lineWidth:t,lineHieght:o,fade:f,fadeType:r,radius:l,range:d,vertical:m,step:g,opacity:w,exclude:p}=this.options,v={field:{value:new u.Vector4(0,0,0,0)},color:{value:new u.Color(i)},opacity:{value:w},lineNum:{value:e},lineWidth:{value:t},lineHieght:{value:o},sizeNum:{value:new u.Vector3(l,l,l)},objPos:{value:new u.Vector3(0,0,0)},fade:{value:f},fadeType:{value:r},range:{value:d},angle:{value:0},stepNum:{value:g}};if(!l){const{size:h}=this.object.getSize();v.sizeNum.value.copy(h)}this.uniforms=v,this.object.object3d.traverse(h=>{const n=h;!n.material||p&&p.includes(n)||(n.userData.materialO?n.material=n.userData.materialO.clone():n.userData.materialO=Array.isArray(n.material)?n.material.map(s=>s.clone()):n.material.clone(),Array.isArray(n.material)?n.material.forEach(s=>{m?this.setVerticalMaterial(s):this.setMaterial(s)}):m?this.setVerticalMaterial(n.material):this.setMaterial(n.material))})}setMaterial(i){const{uniforms:e}=this;i.onBeforeCompile=t=>{t.uniforms.field=e.field,t.uniforms.fieldColor=e.color,t.uniforms.fieldOpacity=e.opacity,t.uniforms.lineNum=e.lineNum,t.uniforms.lineWidth=e.lineWidth,t.uniforms.sizeNum=e.sizeNum,t.uniforms.fade=e.fade,t.uniforms.fadeType=e.fadeType,t.uniforms.range=e.range,t.uniforms.stepNum=e.stepNum,t.vertexShader=`
|
|
3
2
|
varying vec4 vWorldPos;
|
|
4
3
|
${t.vertexShader}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode("")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
1
|
var S = Object.defineProperty;
|
|
3
2
|
var z = Object.getOwnPropertySymbols;
|
|
4
3
|
var O = Object.prototype.hasOwnProperty, _ = Object.prototype.propertyIsEnumerable;
|
package/dist/events.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var p={exports:{}},a=typeof Reflect=="object"?Reflect:null,d=a&&typeof a.apply=="function"?a.apply:function(e,n,r){return Function.prototype.apply.call(e,n,r)},v;a&&typeof a.ownKeys=="function"?v=a.ownKeys:Object.getOwnPropertySymbols?v=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:v=function(e){return Object.getOwnPropertyNames(e)};function C(t){console&&console.warn&&console.warn(t)}var m=Number.isNaN||function(e){return e!==e};function o(){o.init.call(this)}p.exports=o;p.exports.once=M;o.EventEmitter=o;o.prototype._events=void 0;o.prototype._eventsCount=0;o.prototype._maxListeners=void 0;var L=10;function l(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return L},set:function(t){if(typeof t!="number"||t<0||m(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");L=t}});o.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};o.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||m(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function y(t){return t._maxListeners===void 0?o.defaultMaxListeners:t._maxListeners}o.prototype.getMaxListeners=function(){return y(this)};o.prototype.emit=function(e){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=e==="error",f=this._events;if(f!==void 0)i=i&&f.error===void 0;else if(!i)return!1;if(i){var s;if(n.length>0&&(s=n[0]),s instanceof Error)throw s;var u=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw u.context=s,u}var c=f[e];if(c===void 0)return!1;if(typeof c=="function")d(c,this,n);else for(var h=c.length,x=E(c,h),r=0;r<h;++r)d(x[r],this,n);return!0};function g(t,e,n,r){var i,f,s;if(l(n),f=t._events,f===void 0?(f=t._events=Object.create(null),t._eventsCount=0):(f.newListener!==void 0&&(t.emit("newListener",e,n.listener?n.listener:n),f=t._events),s=f[e]),s===void 0)s=f[e]=n,++t._eventsCount;else if(typeof s=="function"?s=f[e]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),i=y(t),i>0&&s.length>i&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=s.length,C(u)}return t}o.prototype.addListener=function(e,n){return g(this,e,n,!1)};o.prototype.on=o.prototype.addListener;o.prototype.prependListener=function(e,n){return g(this,e,n,!0)};function j(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=j.bind(r);return i.listener=n,r.wrapFn=i,i}o.prototype.once=function(e,n){return l(n),this.on(e,_(this,e,n)),this};o.prototype.prependOnceListener=function(e,n){return l(n),this.prependListener(e,_(this,e,n)),this};o.prototype.removeListener=function(e,n){var r,i,f,s,u;if(l(n),i=this._events,i===void 0)return this;if(r=i[e],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,r.listener||n));else if(typeof r!="function"){for(f=-1,s=r.length-1;s>=0;s--)if(r[s]===n||r[s].listener===n){u=r[s].listener,f=s;break}if(f<0)return this;f===0?r.shift():R(r,f),r.length===1&&(i[e]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",e,u||n)}return this};o.prototype.off=o.prototype.removeListener;o.prototype.removeAllListeners=function(e){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[e]),this;if(arguments.length===0){var f=Object.keys(r),s;for(i=0;i<f.length;++i)s=f[i],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[e],typeof n=="function")this.removeListener(e,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(e,n[i]);return this};function w(t,e,n){var r=t._events;if(r===void 0)return[];var i=r[e];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?N(i):E(i,i.length)}o.prototype.listeners=function(e){return w(this,e,!0)};o.prototype.rawListeners=function(e){return w(this,e,!1)};o.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):b.call(t,e)};o.prototype.listenerCount=b;function b(t){var e=this._events;if(e!==void 0){var n=e[t];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}o.prototype.eventNames=function(){return this._eventsCount>0?v(this._events):[]};function E(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t[r];return n}function R(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function N(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}function M(t,e){return new Promise(function(n,r){function i(s){t.removeListener(e,f),r(s)}function f(){typeof t.removeListener=="function"&&t.removeListener("error",i),n([].slice.call(arguments))}O(t,e,f,{once:!0}),e!=="error"&&A(t,i,{once:!0})})}function A(t,e,n){typeof t.on=="function"&&O(t,"error",e,n)}function O(t,e,n,r){if(typeof t.on=="function")r.once?t.once(e,n):t.on(e,n);else if(typeof t.addEventListener=="function")t.addEventListener(e,function i(f){r.once&&t.removeEventListener(e,i),n(f)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}var P=p.exports;exports.eventsExports=P;
|
package/dist/events.module.js
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
var p = {},
|
|
2
|
-
get exports() {
|
|
3
|
-
return p;
|
|
4
|
-
},
|
|
5
|
-
set exports(t) {
|
|
6
|
-
p = t;
|
|
7
|
-
}
|
|
8
|
-
}, a = typeof Reflect == "object" ? Reflect : null, d = a && typeof a.apply == "function" ? a.apply : function(e, n, r) {
|
|
1
|
+
var p = { exports: {} }, a = typeof Reflect == "object" ? Reflect : null, d = a && typeof a.apply == "function" ? a.apply : function(e, n, r) {
|
|
9
2
|
return Function.prototype.apply.call(e, n, r);
|
|
10
3
|
}, l;
|
|
11
4
|
a && typeof a.ownKeys == "function" ? l = a.ownKeys : Object.getOwnPropertySymbols ? l = function(e) {
|
|
@@ -13,7 +6,7 @@ a && typeof a.ownKeys == "function" ? l = a.ownKeys : Object.getOwnPropertySymbo
|
|
|
13
6
|
} : l = function(e) {
|
|
14
7
|
return Object.getOwnPropertyNames(e);
|
|
15
8
|
};
|
|
16
|
-
function
|
|
9
|
+
function C(t) {
|
|
17
10
|
console && console.warn && console.warn(t);
|
|
18
11
|
}
|
|
19
12
|
var m = Number.isNaN || function(e) {
|
|
@@ -22,8 +15,8 @@ var m = Number.isNaN || function(e) {
|
|
|
22
15
|
function o() {
|
|
23
16
|
o.init.call(this);
|
|
24
17
|
}
|
|
25
|
-
|
|
26
|
-
p.once =
|
|
18
|
+
p.exports = o;
|
|
19
|
+
p.exports.once = M;
|
|
27
20
|
o.EventEmitter = o;
|
|
28
21
|
o.prototype._events = void 0;
|
|
29
22
|
o.prototype._eventsCount = 0;
|
|
@@ -94,7 +87,7 @@ function g(t, e, n, r) {
|
|
|
94
87
|
else if (typeof s == "function" ? s = f[e] = r ? [n, s] : [s, n] : r ? s.unshift(n) : s.push(n), i = y(t), i > 0 && s.length > i && !s.warned) {
|
|
95
88
|
s.warned = !0;
|
|
96
89
|
var u = new Error("Possible EventEmitter memory leak detected. " + s.length + " " + String(e) + " listeners added. Use emitter.setMaxListeners() to increase limit");
|
|
97
|
-
u.name = "MaxListenersExceededWarning", u.emitter = t, u.type = e, u.count = s.length,
|
|
90
|
+
u.name = "MaxListenersExceededWarning", u.emitter = t, u.type = e, u.count = s.length, C(u);
|
|
98
91
|
}
|
|
99
92
|
return t;
|
|
100
93
|
}
|
|
@@ -105,12 +98,12 @@ o.prototype.on = o.prototype.addListener;
|
|
|
105
98
|
o.prototype.prependListener = function(e, n) {
|
|
106
99
|
return g(this, e, n, !0);
|
|
107
100
|
};
|
|
108
|
-
function
|
|
101
|
+
function j() {
|
|
109
102
|
if (!this.fired)
|
|
110
103
|
return this.target.removeListener(this.type, this.wrapFn), this.fired = !0, arguments.length === 0 ? this.listener.call(this.target) : this.listener.apply(this.target, arguments);
|
|
111
104
|
}
|
|
112
105
|
function _(t, e, n) {
|
|
113
|
-
var r = { fired: !1, wrapFn: void 0, target: t, type: e, listener: n }, i =
|
|
106
|
+
var r = { fired: !1, wrapFn: void 0, target: t, type: e, listener: n }, i = j.bind(r);
|
|
114
107
|
return i.listener = n, r.wrapFn = i, i;
|
|
115
108
|
}
|
|
116
109
|
o.prototype.once = function(e, n) {
|
|
@@ -135,7 +128,7 @@ o.prototype.removeListener = function(e, n) {
|
|
|
135
128
|
}
|
|
136
129
|
if (f < 0)
|
|
137
130
|
return this;
|
|
138
|
-
f === 0 ? r.shift() :
|
|
131
|
+
f === 0 ? r.shift() : R(r, f), r.length === 1 && (i[e] = r[0]), i.removeListener !== void 0 && this.emit("removeListener", e, u || n);
|
|
139
132
|
}
|
|
140
133
|
return this;
|
|
141
134
|
};
|
|
@@ -164,7 +157,7 @@ function w(t, e, n) {
|
|
|
164
157
|
if (r === void 0)
|
|
165
158
|
return [];
|
|
166
159
|
var i = r[e];
|
|
167
|
-
return i === void 0 ? [] : typeof i == "function" ? n ? [i.listener || i] : [i] : n ?
|
|
160
|
+
return i === void 0 ? [] : typeof i == "function" ? n ? [i.listener || i] : [i] : n ? N(i) : E(i, i.length);
|
|
168
161
|
}
|
|
169
162
|
o.prototype.listeners = function(e) {
|
|
170
163
|
return w(this, e, !0);
|
|
@@ -195,17 +188,17 @@ function E(t, e) {
|
|
|
195
188
|
n[r] = t[r];
|
|
196
189
|
return n;
|
|
197
190
|
}
|
|
198
|
-
function
|
|
191
|
+
function R(t, e) {
|
|
199
192
|
for (; e + 1 < t.length; e++)
|
|
200
193
|
t[e] = t[e + 1];
|
|
201
194
|
t.pop();
|
|
202
195
|
}
|
|
203
|
-
function
|
|
196
|
+
function N(t) {
|
|
204
197
|
for (var e = new Array(t.length), n = 0; n < e.length; ++n)
|
|
205
198
|
e[n] = t[n].listener || t[n];
|
|
206
199
|
return e;
|
|
207
200
|
}
|
|
208
|
-
function
|
|
201
|
+
function M(t, e) {
|
|
209
202
|
return new Promise(function(n, r) {
|
|
210
203
|
function i(s) {
|
|
211
204
|
t.removeListener(e, f), r(s);
|
|
@@ -213,10 +206,10 @@ function A(t, e) {
|
|
|
213
206
|
function f() {
|
|
214
207
|
typeof t.removeListener == "function" && t.removeListener("error", i), n([].slice.call(arguments));
|
|
215
208
|
}
|
|
216
|
-
O(t, e, f, { once: !0 }), e !== "error" &&
|
|
209
|
+
O(t, e, f, { once: !0 }), e !== "error" && A(t, i, { once: !0 });
|
|
217
210
|
});
|
|
218
211
|
}
|
|
219
|
-
function
|
|
212
|
+
function A(t, e, n) {
|
|
220
213
|
typeof t.on == "function" && O(t, "error", e, n);
|
|
221
214
|
}
|
|
222
215
|
function O(t, e, n, r) {
|
|
@@ -229,6 +222,7 @@ function O(t, e, n, r) {
|
|
|
229
222
|
else
|
|
230
223
|
throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof t);
|
|
231
224
|
}
|
|
225
|
+
var P = p.exports;
|
|
232
226
|
export {
|
|
233
|
-
|
|
227
|
+
P as e
|
|
234
228
|
};
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var _=Object.defineProperty,W=Object.defineProperties;var X=Object.getOwnPropertyDescriptors;var M=Object.getOwnPropertySymbols;var B=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var L=(l,e,t)=>e in l?_(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t,C=(l,e)=>{for(var t in e||(e={}))B.call(e,t)&&L(l,t,e[t]);if(M)for(var t of M(e))T.call(e,t)&&L(l,t,e[t]);return l},y=(l,e)=>W(l,X(e));var z=(l,e)=>{var t={};for(var s in l)B.call(l,s)&&e.indexOf(s)<0&&(t[s]=l[s]);if(l!=null&&M)for(var s of M(l))e.indexOf(s)<0&&T.call(l,s)&&(t[s]=l[s]);return t};Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const A=require("camera-controls"),R=require("three"),$=require("@tweenjs/tween.js"),I=require("./events.js"),Y=require("deepmerge"),Z=require("three/examples/jsm/libs/stats.module"),J=require("lil-gui"),F=require("./colorCorrection.js"),K=require("./disposeMesh.js");require("idb-keyval");require("esus-lite");require("d3-geo");const q=require("./MeshLineMaterial.js"),Q=require("three/examples/jsm/helpers/RectAreaLightHelper"),ee=require("three/examples/jsm/controls/TransformControls"),te=require("three/examples/jsm/renderers/CSS3DRenderer"),se=require("three/examples/jsm/renderers/CSS2DRenderer"),u=require("postprocessing"),re=require("./isPlainObject.js"),oe=require("./BaseObject.js");function V(l){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const t in l)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(l,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>l[t]})}}return e.default=l,Object.freeze(e)}const m=V(R),G=V($),ne={antialias:!1,devicePixelRatio:window.devicePixelRatio,powerPreference:"high-performance",toneMappingExposure:1,alpha:!1,outputEncoding:F.TextureEncoding.Linear,outputColorSpace:F.ColorSpace.sRGB,logarithmicDepthBuffer:!1,preserveDrawingBuffer:!1,stencil:!1,depth:!1,physicallyCorrectLights:!1};class ie{constructor(e){this.options=e;const{width:t,height:s,rendererParams:r}=e,{canvas:o,context:n,alpha:i,devicePixelRatio:a,antialias:c,powerPreference:d,toneMappingExposure:h,outputEncoding:p,outputColorSpace:g,logarithmicDepthBuffer:P,preserveDrawingBuffer:f,stencil:w,depth:b,physicallyCorrectLights:E}=r,v=new m.WebGLRenderer({canvas:o,context:n,alpha:i,antialias:c,powerPreference:d,logarithmicDepthBuffer:P,preserveDrawingBuffer:f,stencil:w,depth:b});if(v.setSize(t,s),v.setPixelRatio(a),v.toneMappingExposure=h,+m.REVISION<152?v.outputEncoding=p:v.outputColorSpace=g,+m.REVISION<155){const U=+m.REVISION<150?"physicallyCorrectLights":"useLegacyLights";v[U]=E}this.renderer=v}setSize(e,t){this.renderer.setSize(e,t)}render(){const{scene:e,camera:t}=this.options;this.renderer.render(e,t)}dispose(){var e,t,s;(e=this.renderer)==null||e.clear(),(t=this.renderer)==null||t.dispose(),(s=this.renderer)==null||s.renderLists.dispose()}}class x{constructor(e){this.guiParams={},e&&(this.guiParams=e)}showGui(e){e&&Object.keys(this.guiParams).forEach(t=>{const s=e.addFolder(t),r=this.guiParams[t];Object.keys(r).forEach(o=>{const{min:n,max:i,step:a,name:c,paramMap:d,items:h,value:p,target:g}=r[o],P=o.toLowerCase().indexOf("color")>-1;let f;const w=typeof p=="undefined"&&g,b=w?g():r[o],E=w?o:"value";h?f=s.add(b,E,h):P?f=s.addColor(b,E):f=s.add(b,E),f=f.name(c||o),typeof n!="undefined"&&(f=f.min(n)),typeof i!="undefined"&&(f=f.max(i)),typeof a!="undefined"&&(f=f.step(a)),f=f.onChange(()=>{this.setTargetValue(t,o,b[E],d)}),w&&f.listen()})})}setTargetValue(e,t,s,r){const{onChange:o,target:n,value:i}=this.guiParams[e][t],a=t.toLowerCase().indexOf("color")>-1;if(n&&!(typeof i=="undefined"&&n)){let d=n();Array.isArray(d)||(d=[d]),d.forEach(h=>{if(h)if(a)try{h[r||t].set(s)}catch(p){t!=="color"&&!r&&console.warn(`${t} is not a color,set paramMap`)}else h[r||t]=s})}o&&o(s)}setTargetValueByParams(){Object.keys(this.guiParams).forEach(e=>{Object.keys(this.guiParams[e]).forEach(t=>{const s=this.guiParams[e][t];typeof s.value!="undefined"&&this.setTargetValue(e,t,s.value,s.paramMap)})})}}const ae={fov:45,near:1,far:1e3,up:new m.Vector3(0,1,0)};class ce{constructor(e){this.customCamera=!1,this.options=e;const{width:t,height:s,cameraParams:r}=e;if(r instanceof m.Camera)this.camera=r,this.customCamera=!0;else{const{fov:o,far:n,near:i,up:a}=r,c=new m.PerspectiveCamera(o,t/s,i,n);c.position.set(0,0,400),c.lookAt(0,0,0),c.up=a,this.camera=c}}setSize(e,t){this.camera instanceof m.PerspectiveCamera&&(this.camera.aspect=e/t),this.camera.updateProjectionMatrix()}setGui(e){const t=new x({camera:y(C({},this.options.cameraControls?{}:{x:{min:-1e4,max:1e4,step:1,target:()=>this.camera.position},y:{min:-1e4,max:1e4,step:1,target:()=>this.camera.position},z:{min:-1e4,max:1e4,step:1,target:()=>this.camera.position}}),{near:{min:0,max:1e3,step:1,target:()=>this.camera,onChange:s=>{this.camera.updateProjectionMatrix()}},far:{min:0,max:2e4,step:1,target:()=>this.camera,onChange:s=>{this.camera.updateProjectionMatrix()}}})});this.camera instanceof m.PerspectiveCamera&&(t.guiParams.camera.fov={min:0,max:90,step:1,target:()=>this.camera,onChange:s=>{this.camera.updateProjectionMatrix()}}),t.showGui(e)}}const le={background:null,om:!0};class de{constructor(e){this.overrideMaterial=!1,this.options=e;const{camera:t,sceneParams:s}=e,{background:r,om:o}=s,n=o?new m.Scene:new Proxy(new m.Scene,{set:(i,a,c)=>Reflect.set(i,a,c),get:(i,a)=>{if(a==="overrideMaterial"){const c=Reflect.get(i,a);return this.overrideMaterial=!!c,q.meshLineMaterialArr.forEach(d=>{this.overrideMaterial?d.useDepth=1:d.useDepth=0}),null}return Reflect.get(i,a)}});r&&(n.background=r),n.add(t),this.scene=n}dispose(){var e;(e=this.scene)==null||e.traverse(t=>{K.disposeMesh(t)}),q.meshLineMaterialArr.length=0}}class he{constructor(e){this.helpers={},this.options=e}add(e){const t=e.uuid,{scene:s}=this.options;let r=this.helpers[t];if(r===void 0){if(e.isScene)r=new m.AxesHelper(100);else if(e.isCamera)r=new m.CameraHelper(e);else if(e.isPointLight)r=new m.PointLightHelper(e,1);else if(e.isDirectionalLight)r=new m.DirectionalLightHelper(e,1);else if(e.isSpotLight)r=new m.SpotLightHelper(e);else if(e.isHemisphereLight)r=new m.HemisphereLightHelper(e,10);else if(e.isRectAreaLight)r=new Q.RectAreaLightHelper(e);else return;s.add(r),this.helpers[t]=r}}remove(e){const t=e.uuid,{scene:s}=this.options;if(this.helpers[t]!==void 0){const r=this.helpers[t];s.remove(r),delete this.helpers[e.id]}}removeAll(){const{scene:e}=this.options;Object.keys(this.helpers).forEach(t=>{e.remove(this.helpers[t])}),this.helpers={}}removeAllExcludeScene(){Object.keys(this.helpers).forEach(e=>{this.helpers[e]instanceof m.AxesHelper||this.remove(this.helpers[e])})}update(){Object.values(this.helpers).forEach(e=>{e.update&&e.update()})}dispose(){this.helpers={}}}class me{constructor(e){this.autoRotateSpeed=0,this.options=e;const{camera:t,controlsParams:s,customControl:r}=e,{domElement:o}=s;if(r){const n=new r(t,o);n.enableDamping=!0,n.dampingFactor=.063,n.autoRotate=!1,n.autoRotateSpeed=-60,n.enableZoom=!0,n.zoomSpeed=.2,this.controls=n}else A.install({THREE:m}),this.cameraControls=new A(t,o)}enable(){this.controls?this.controls.enabled=!0:this.cameraControls&&(this.cameraControls.enabled=!0)}disable(){this.controls?this.controls.enabled=!1:this.cameraControls&&(this.cameraControls.enabled=!1)}update(e){var t,s;(t=this.controls)==null||t.update(),(s=this.cameraControls)==null||s.update(e),this.autoRotateSpeed&&this.cameraControls&&(this.cameraControls.azimuthAngle+=this.autoRotateSpeed*e*m.MathUtils.DEG2RAD)}dispose(){var e,t;(e=this.controls)==null||e.dispose(),(t=this.cameraControls)==null||t.dispose()}}class fe{constructor(e){this.event=new I.eventsExports.EventEmitter;const{renderer:t,scene:s,camera:r}=e,o=new ee.TransformControls(r,t.domElement);s.add(o),this.controls=o,this.addEvent()}get detach(){return this.controls.detach.bind(this.controls)}get attach(){return this.controls.attach.bind(this.controls)}addEvent(){let e=null,t=null,s=null;const r=this.controls;r.addEventListener("change",()=>{const o=r.object;o!==void 0&&this.event.emit("change",o)}),r.addEventListener("mouseDown",()=>{const o=r.object;e=o.position.clone(),t=o.rotation.clone(),s=o.scale.clone(),this.event.emit("mouseDown",o)}),r.addEventListener("mouseUp",()=>{const o=r.object;if(o!==void 0)switch(r.getMode()){case"translate":e.equals(o.position)||this.event.emit("translate",o,o.position,e);break;case"rotate":t.equals(o.rotation)||this.event.emit("rotate",o,o.rotation,t);break;case"scale":s.equals(o.scale)||this.event.emit("scale",o,o.scale,s);break}this.event.emit("mouseUp")})}dispose(){var e;this.event.removeAllListeners(),(e=this.controls)==null||e.dispose()}}const j={zIndex:"auto"};class ue{constructor(e){this.container=e}addRenderer(e,t){const s=t.container||this.container,r=s.offsetWidth,o=s.offsetHeight,n=e==="css2d"?new se.CSS2DRenderer:new te.CSS3DRenderer;n.domElement.style.position="absolute",n.domElement.style.top="0",n.domElement.style.pointerEvents="none",n.domElement.style.zIndex=t.zIndex,n.setSize(r,o),s.appendChild(n.domElement),e==="css2d"?this.css2Drenderer=n:e==="css3d"&&(this.css3Drenderer=n)}setSize(e,t){var s,r;(s=this.css2Drenderer)==null||s.setSize(e,t),(r=this.css3Drenderer)==null||r.setSize(e,t)}render(e,t){var s,r;(s=this.css2Drenderer)==null||s.render(e,t),(r=this.css3Drenderer)==null||r.render(e,t)}dispose(){this.css2Drenderer=void 0,this.css3Drenderer=void 0}}const k=["encodings_fragment","colorspace_fragment"];class pe extends R.ShaderMaterial{constructor(){super({uniforms:{inputBuffer:new R.Uniform(null),ratio:new R.Uniform(1)},fragmentShader:`
|
|
2
2
|
uniform sampler2D inputBuffer;
|
|
3
3
|
uniform float ratio;
|
|
4
4
|
varying vec2 vUv;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
vec4 texel = texture2D(inputBuffer, vUv);
|
|
7
7
|
gl_FragColor = texel * ratio;
|
|
8
8
|
// Support automatic output encoding.
|
|
9
|
-
#include <${+R.REVISION<154?
|
|
9
|
+
#include <${+R.REVISION<154?k[0]:k[1]}>
|
|
10
10
|
|
|
11
11
|
}
|
|
12
12
|
`,vertexShader:`
|
|
@@ -15,4 +15,4 @@
|
|
|
15
15
|
vUv = position.xy * 0.5 + 0.5;
|
|
16
16
|
gl_Position = vec4(position.xy, 1.0, 1.0);
|
|
17
17
|
}
|
|
18
|
-
`,toneMapped:!1,depthWrite:!1,depthTest:!1})}}class ge extends u.Pass{constructor(){super("CrossFadePass"),this.fullscreenMaterial=new pe}render(e,t,s){const r=this.fullscreenMaterial;r.uniforms.inputBuffer.value=t.texture,e.setRenderTarget(this.renderToScreen?null:s),e.render(this.scene,this.camera)}}const I={luminancePass:!1,luminanceThreshold:.4,luminanceSmoothing:.3,mipmapBlur:!0,intensity:3,mipmapBlurPassRadius:.85,blendFunction:u.BlendFunction.ADD,ignoreBackground:!0,epsilon:.001},Ce={mode:u.ToneMappingMode.REINHARD2_ADAPTIVE,resolution:256,whitePoint:16,middleGrey:.6,minLuminance:.01,averageLuminance:.01,adaptationRate:1};class ve{constructor(e){this.active=!0,this.options=e;const{renderer:t,scene:s,camera:r,composerParams:o}=e,{multisampling:i,frameBufferType:c}=o,{maxSamples:a}=t.capabilities,l=new u.EffectComposer(t,{multisampling:Math.min(i,a),frameBufferType:c});l.addPass(new u.RenderPass(s,r)),this.finalComposer=l,this.renderer=t,this.scene=s,this.camera=r}addCopyPass(){const e=new u.CopyPass;this.finalComposer.addPass(e),this.copyPass=e}addCrossFadePass(){const e=new ge;this.finalComposer.addPass(e),this.crossFadePass=e}addFXAAPass(){const{camera:e}=this,t=new u.FXAAEffect({blendFunction:u.BlendFunction.NORMAL}),s=new u.EffectPass(e,t);this.finalComposer.addPass(s),this.fxaaPass=s}addToneMappingPass(e){const{camera:t}=this,s=new u.ToneMappingEffect(g({},e));this.toneMappingEffect=s;const r=new u.EffectPass(t,s);this.finalComposer.addPass(r),this.toneMappingPass=r}addToneMappingGui(e){if(!this.toneMappingEffect)return;new x({toneMapping:{blendFunction:{value:this.toneMappingEffect.mode,items:u.ToneMappingMode,onChange:s=>{this.toneMappingEffect.mode=Number(s)}},exposure:{min:0,max:2,value:this.renderer.toneMappingExposure,step:.001,onChange:s=>{this.renderer.toneMappingExposure=s}}},"Reinhard (Modified)":{whitePoint:{min:2,max:32,step:.001,target:()=>this.toneMappingEffect},middleGrey:{min:0,max:1,step:1e-4,target:()=>this.toneMappingEffect},averageLuminance:{min:1e-4,max:1,step:1e-4,target:()=>this.toneMappingEffect}}}).showGui(e)}addBloomPass(e){const{camera:t,scene:s}=this,d=g(g({},I),e),{epsilon:r,ignoreBackground:o,mipmapBlurPassRadius:i}=d,c=T(d,["epsilon","ignoreBackground","mipmapBlurPassRadius"]),a=new u.SelectiveBloomEffect(s,t,g({},c));o&&(a.ignoreBackground=o),i&&(a.mipmapBlurPass.radius=i),a.depthMaskMaterial.epsilon=r,a.luminancePass.enabled=!1,a.luminancePass.enabled=e.luminancePass;const l=new u.EffectPass(t,a);this.finalComposer.addPass(l),this.bloomPass=l,this.bloomEffect=a}addBloomGui(e){if(!this.bloomEffect)return;new x({bloom:{intensity:{min:0,max:10,step:.01,target:()=>this.bloomEffect},radius:{min:0,max:1,step:.001,target:()=>this.bloomEffect.mipmapBlurPass},blendFunction:{value:this.bloomEffect.blendMode.blendFunction,items:u.BlendFunction,onChange:s=>{this.bloomEffect.blendMode.blendFunction=Number(s)}},ignoreBackground:{value:this.bloomEffect.ignoreBackground,onChange:s=>{this.bloomEffect.ignoreBackground=s}}},bloomLuminanceFilter:{enabled:{value:this.bloomEffect.luminancePass.enabled,onChange:s=>{this.bloomEffect.luminancePass.enabled=s}},threshold:{min:0,max:1,step:.01,target:()=>this.bloomEffect.luminanceMaterial},smoothing:{min:0,max:1,step:.01,target:()=>this.bloomEffect.luminanceMaterial}}}).showGui(e)}toggleBloomSelection(e,t){if(!this.bloomEffect||!this.bloomPass){console.warn("err:pencil.options.bloom");return}e?t===!0?this.bloomEffect.selection.add(e):t===!1?this.bloomEffect.selection.delete(e):this.bloomEffect.selection.toggle(e):this.bloomEffect.selection.clear()}getSize(){const{renderer:e}=this.options;return e.getSize(new h.Vector2)}enable(){this.active||(this.active=!0)}disable(){this.active&&(this.active=!1)}setSize(e,t){this.finalComposer.setSize(e,t)}render(){this.active&&this.finalComposer.render()}dispose(){this.finalComposer.dispose()}}const Pe=()=>{try{const n=document.createElement("canvas");return!!(window.WebGL2RenderingContext&&n.getContext("webgl2"))}catch(n){return!1}},S=!1,V=Pe()!==!1,N=class{constructor(n,e){this.raycaster=new h.Raycaster,this.installPlugins=new Map,this.event=new k.eventsExports.EventEmitter,this.clock=new h.Clock,this.userData={},this.options=Y(N.options,n,{isMergeableObject:re.isPlainObject}),this.event.setMaxListeners(1/0);const{container:t,stats:s,gui:r,resizeObserver:o}=this.options;if(r){const i=new J;i.open(!1),this.gui=i}if(s){const i=new Z;i.showPanel(0),i.dom.style.position="absolute",t.appendChild(i.dom),this.stats=i}this.init(),this.initComposer(),this.initCSSRenderer(),this.initControls(),o&&this.initResizeObserver(),this.clock.getDelta(),this.clock.getElapsedTime(),e&&(Array.isArray(e)||(e=[e]),e.forEach(i=>{Array.isArray(i)||(i=[i]),this.use(i[0],i[1])}))}getPlugin(n){return this.installPlugins.get(n)}get renderer(){return this.rendererController.renderer}get cameraControls(){return this.controlsController.cameraControls}get cameraPositon(){return this.cameraControls.getPosition(new h.Vector3,!1)}get cameraTarget(){return this.cameraControls.getTarget(new h.Vector3,!1)}get camera(){return this.cameraController.camera}get scene(){return this.sceneController.scene}use(n,...e){this.installPlugins.has(n.pluginName)?console.log("plugin already installed"):typeof n.install=="function"&&(n.install(this,...e),this.installPlugins.set(n.pluginName,n))}init(){const{container:n,isdev:e,helper:t,renderer:s,scene:r,camera:o,control:i}=this.options,{width:c,height:a}=this.getSize(),l=new ce({isdev:e,width:c,height:a,cameraParams:o,cameraControls:i===!0});this.gui&&l.setGui(this.gui);const d=l.camera,m=new de({camera:d,sceneParams:r}),p=m.scene,C=new ie({width:c,height:a,scene:p,camera:d,isdev:e,rendererParams:y(g({},s),{antialias:!1})});if(t){const P=new he({scene:p});P.add(p),this.helperController=P}this.sceneController=m,this.rendererController=C,this.cameraController=l,n.appendChild(C.renderer.domElement)}initComposer(){const{bloom:n,bloomParams:e,toneMapping:t,toneMappingParams:s,crossOpacity:r,renderer:o,multisampling:i,frameBufferType:c,passes:a}=this.options;let{antialias:l}=o;l==="msaa"&&!V&&(l=!1,console.warn("MSAA is not supported on this browser"));const d=new ve({renderer:this.renderer,scene:this.scene,camera:this.camera,composerParams:{multisampling:l==="msaa"?i:0,frameBufferType:t?h.HalfFloatType:c,encoding:o.outputEncoding}});this.composerController=d,n&&(d.addBloomPass(e),this.gui&&d.addBloomGui(this.gui)),t&&(d.addToneMappingPass(s),this.gui&&d.addToneMappingGui(this.gui)),l==="fxaa"&&d.addFXAAPass(),r&&d.addCrossFadePass(),a&&a.forEach(m=>{d.finalComposer.addPass(m)}),d.finalComposer.passes.length===1&&d.addCopyPass()}get opacity(){const{crossFadePass:n}=this.composerController;return n?n.fullscreenMaterial.uniforms.ratio.value:1}set opacity(n){const{crossFadePass:e}=this.composerController;if(!e){console.warn("err:pencil.options.crossOpacity");return}e.fullscreenMaterial.uniforms.ratio.value=n}initCSSRenderer(){const{container:n,css2DRenderer:e,css3DRenderer:t,css2DRendererParams:s,css3DRendererParams:r}=this.options;if(e||t){const o=new ue(n);e&&o.addRenderer("css2d",s),t&&o.addRenderer("css3d",r),this.cssRendererController=o}}initControls(){const{control:n,controlParams:e,transformControls:t}=this.options;if(n){const s=new me({camera:this.camera,controlsParams:{domElement:(e==null?void 0:e.domElement)||this.renderer.domElement},customControl:typeof n=="boolean"?void 0:n});this.controlsController=s}if(t){const s=new fe({camera:this.camera,renderer:this.renderer,scene:this.scene});s.event.on("mouseDown",()=>{var r;(r=this.controlsController)==null||r.disable()}),s.event.on("mouseUp",()=>{var r;(r=this.controlsController)==null||r.enable()}),this.transformController=s}}getSize(){const{container:n}=this.options;return{width:n.offsetWidth,height:n.offsetHeight}}initResizeObserver(){const{container:n}=this.options;if(this.resizeObserver)return;const e=new ResizeObserver(t=>{for(const s of t){const r=s.contentRect;this.handeleResize(r.width,r.height),this.render()}});e.observe(n),this.resizeObserver=e}handeleResize(n,e,t=!0){const{rendererController:s,cameraController:r,composerController:o,cssRendererController:i}=this;r==null||r.setSize(n,e),s==null||s.setSize(n,e),o==null||o.setSize(n,e),i==null||i.setSize(n,e),this.installPlugins.forEach(c=>{var a;(a=c.setSize)==null||a.call(c,n,e)}),t&&this.event.emit("resize",{width:n,height:e})}pick(n,e,t=!1){const{raycaster:s,options:r}=this,{container:o}=r,i=new h.Vector2,c=o.getBoundingClientRect();if(i.x=(n.clientX-c.left)/(c.right-c.left)*2-1,i.y=-((n.clientY-c.top)/(c.bottom-c.top))*2+1,this.camera&&this.scene){s.setFromCamera(i,this.camera);const a=s.intersectObjects(e||this.scene.children,t);if(a.length)return{object:a[0].object,intersects:a}}}render(){var o,i,c,a,l,d;const{scene:n,camera:e,clock:t}=this,s=t.getDelta(),r=t.getElapsedTime();q.update(),(o=this.controlsController)==null||o.update(s),this.installPlugins.forEach(m=>{var p;(p=m.update)==null||p.call(m,s,r)}),(i=this.helperController)==null||i.update(),(c=this.composerController)!=null&&c.active?this.composerController.render():(a=this.rendererController)==null||a.render(),(l=this.cssRendererController)==null||l.render(n,e),(d=this.stats)==null||d.update(),this.event.emit("render",{delta:s,elapsed:r})}start(){this.renderer.setAnimationLoop(this.render.bind(this)),this.event.emit("start")}stop(){this.renderer.setAnimationLoop(null),this.event.emit("stop")}autoRotate(n){this.controlsController.autoRotateSpeed=n}dispose(){var n,e,t,s,r,o,i,c,a;this.stop(),q.removeAll(),this.event.removeAllListeners(),(n=this.resizeObserver)==null||n.unobserve(this.options.container),this.handeleResize(0,0),this.installPlugins.forEach(l=>{var d;(d=l.dispose)==null||d.call(l)}),(e=this.controlsController)==null||e.dispose(),(t=this.transformController)==null||t.dispose(),(s=this.cssRendererController)==null||s.dispose(),(r=this.sceneController)==null||r.dispose(),(o=this.helperController)==null||o.dispose(),(i=this.composerController)==null||i.dispose(),(c=this.rendererController)==null||c.dispose(),this.cssRendererController=void 0,(a=this.gui)==null||a.destroy(),this.installPlugins.clear()}};let O=N;O.options={isdev:S,stats:S,gui:S,helper:S,control:!0,transformControls:S,resizeObserver:!0,renderer:y(g({},oe),{antialias:V?"msaa":"fxaa"}),multisampling:4,frameBufferType:h.UnsignedByteType,scene:le,camera:ae,bloom:!1,bloomParams:I,toneMapping:!1,toneMappingParams:Ce,crossOpacity:!1,css2DRenderer:!1,css2DRendererParams:g({},G),css3DRenderer:!1,css3DRendererParams:g({},G)};const be=D.ACTION;exports.BaseObject=ne.BaseObject;exports.GUIObject=x;exports.Pencil=O;exports.cameraControlsAction=be;exports.default=O;
|
|
18
|
+
`,toneMapped:!1,depthWrite:!1,depthTest:!1})}}class ge extends u.Pass{constructor(){super("CrossFadePass"),this.fullscreenMaterial=new pe}render(e,t,s){const r=this.fullscreenMaterial;r.uniforms.inputBuffer.value=t.texture,e.setRenderTarget(this.renderToScreen?null:s),e.render(this.scene,this.camera)}}const N={luminancePass:!1,luminanceThreshold:.4,luminanceSmoothing:.3,mipmapBlur:!0,intensity:3,mipmapBlurPassRadius:.85,blendFunction:u.BlendFunction.ADD,ignoreBackground:!0,epsilon:.001},Ce={mode:u.ToneMappingMode.REINHARD2_ADAPTIVE,resolution:256,whitePoint:16,middleGrey:.6,minLuminance:.01,averageLuminance:.01,adaptationRate:1};class ve{constructor(e){this.active=!0,this.options=e;const{renderer:t,scene:s,camera:r,composerParams:o}=e,{multisampling:n,frameBufferType:i}=o,{maxSamples:a}=t.capabilities,c=new u.EffectComposer(t,{multisampling:Math.min(n,a),frameBufferType:i});c.addPass(new u.RenderPass(s,r)),this.finalComposer=c,this.renderer=t,this.scene=s,this.camera=r}addCopyPass(){const e=new u.CopyPass;this.finalComposer.addPass(e),this.copyPass=e}addCrossFadePass(){const e=new ge;this.finalComposer.addPass(e),this.crossFadePass=e}addFXAAPass(){const{camera:e}=this,t=new u.FXAAEffect({blendFunction:u.BlendFunction.NORMAL}),s=new u.EffectPass(e,t);this.finalComposer.addPass(s),this.fxaaPass=s}addToneMappingPass(e){const{camera:t}=this,s=new u.ToneMappingEffect(C({},e));this.toneMappingEffect=s;const r=new u.EffectPass(t,s);this.finalComposer.addPass(r),this.toneMappingPass=r}addToneMappingGui(e){if(!this.toneMappingEffect)return;new x({toneMapping:{blendFunction:{value:this.toneMappingEffect.mode,items:u.ToneMappingMode,onChange:s=>{this.toneMappingEffect.mode=Number(s)}},exposure:{min:0,max:2,value:this.renderer.toneMappingExposure,step:.001,onChange:s=>{this.renderer.toneMappingExposure=s}}},"Reinhard (Modified)":{whitePoint:{min:2,max:32,step:.001,target:()=>this.toneMappingEffect},middleGrey:{min:0,max:1,step:1e-4,target:()=>this.toneMappingEffect},averageLuminance:{min:1e-4,max:1,step:1e-4,target:()=>this.toneMappingEffect}}}).showGui(e)}addBloomPass(e){const{camera:t,scene:s}=this,d=C(C({},N),e),{epsilon:r,ignoreBackground:o,mipmapBlurPassRadius:n}=d,i=z(d,["epsilon","ignoreBackground","mipmapBlurPassRadius"]),a=new u.SelectiveBloomEffect(s,t,C({},i));o&&(a.ignoreBackground=o),n&&(a.mipmapBlurPass.radius=n),a.depthMaskMaterial.epsilon=r,a.luminancePass.enabled=!1,a.luminancePass.enabled=e.luminancePass;const c=new u.EffectPass(t,a);this.finalComposer.addPass(c),this.bloomPass=c,this.bloomEffect=a}addBloomGui(e){if(!this.bloomEffect)return;new x({bloom:{intensity:{min:0,max:10,step:.01,target:()=>this.bloomEffect},radius:{min:0,max:1,step:.001,target:()=>this.bloomEffect.mipmapBlurPass},blendFunction:{value:this.bloomEffect.blendMode.blendFunction,items:u.BlendFunction,onChange:s=>{this.bloomEffect.blendMode.blendFunction=Number(s)}},ignoreBackground:{value:this.bloomEffect.ignoreBackground,onChange:s=>{this.bloomEffect.ignoreBackground=s}}},bloomLuminanceFilter:{enabled:{value:this.bloomEffect.luminancePass.enabled,onChange:s=>{this.bloomEffect.luminancePass.enabled=s}},threshold:{min:0,max:1,step:.01,target:()=>this.bloomEffect.luminanceMaterial},smoothing:{min:0,max:1,step:.01,target:()=>this.bloomEffect.luminanceMaterial}}}).showGui(e)}toggleBloomSelection(e,t){if(!this.bloomEffect||!this.bloomPass){console.warn("err:pencil.options.bloom");return}e?t===!0?this.bloomEffect.selection.add(e):t===!1?this.bloomEffect.selection.delete(e):this.bloomEffect.selection.toggle(e):this.bloomEffect.selection.clear()}getSize(){const{renderer:e}=this.options;return e.getSize(new m.Vector2)}enable(){this.active||(this.active=!0)}disable(){this.active&&(this.active=!1)}setSize(e,t){this.finalComposer.setSize(e,t)}render(){this.active&&this.finalComposer.render()}dispose(){this.finalComposer.dispose()}}const Pe=()=>{try{const l=document.createElement("canvas");return!!(window.WebGL2RenderingContext&&l.getContext("webgl2"))}catch(l){return!1}},S=!1,H=Pe()!==!1,O=class O{constructor(e,t){this.raycaster=new m.Raycaster,this.installPlugins=new Map,this.event=new I.eventsExports.EventEmitter,this.clock=new m.Clock,this.userData={},this.options=Y(O.options,e,{isMergeableObject:re.isPlainObject}),this.event.setMaxListeners(1/0);const{container:s,stats:r,gui:o,resizeObserver:n}=this.options;if(o){const i=new J;i.open(!1),this.gui=i}if(r){const i=new Z;i.showPanel(0),i.dom.style.position="absolute",s.appendChild(i.dom),this.stats=i}this.init(),this.initComposer(),this.initCSSRenderer(),this.initControls(),n&&this.initResizeObserver(),this.clock.getDelta(),this.clock.getElapsedTime(),t&&(Array.isArray(t)||(t=[t]),t.forEach(i=>{Array.isArray(i)||(i=[i]),this.use(i[0],i[1])}))}getPlugin(e){return this.installPlugins.get(e)}get renderer(){return this.rendererController.renderer}get cameraControls(){return this.controlsController.cameraControls}get cameraPositon(){return this.cameraControls.getPosition(new m.Vector3,!1)}get cameraTarget(){return this.cameraControls.getTarget(new m.Vector3,!1)}get camera(){return this.cameraController.camera}get scene(){return this.sceneController.scene}use(e,...t){this.installPlugins.has(e.pluginName)?console.log("plugin already installed"):typeof e.install=="function"&&(e.install(this,...t),this.installPlugins.set(e.pluginName,e))}init(){const{container:e,isdev:t,helper:s,renderer:r,scene:o,camera:n,control:i}=this.options,{width:a,height:c}=this.getSize(),d=new ce({isdev:t,width:a,height:c,cameraParams:n,cameraControls:i===!0});this.gui&&d.setGui(this.gui);const h=d.camera,p=new de({camera:h,sceneParams:o}),g=p.scene,P=new ie({width:a,height:c,scene:g,camera:h,isdev:t,rendererParams:y(C({},r),{antialias:!1})});if(s){const f=new he({scene:g});f.add(g),this.helperController=f}this.sceneController=p,this.rendererController=P,this.cameraController=d,e.appendChild(P.renderer.domElement)}initComposer(){const{bloom:e,bloomParams:t,toneMapping:s,toneMappingParams:r,crossOpacity:o,renderer:n,multisampling:i,frameBufferType:a,passes:c}=this.options;let{antialias:d}=n;d==="msaa"&&!H&&(d=!1,console.warn("MSAA is not supported on this browser"));const h=new ve({renderer:this.renderer,scene:this.scene,camera:this.camera,composerParams:{multisampling:d==="msaa"?i:0,frameBufferType:s?m.HalfFloatType:a,encoding:n.outputEncoding}});this.composerController=h,e&&(h.addBloomPass(t),this.gui&&h.addBloomGui(this.gui)),s&&(h.addToneMappingPass(r),this.gui&&h.addToneMappingGui(this.gui)),d==="fxaa"&&h.addFXAAPass(),o&&h.addCrossFadePass(),c&&c.forEach(p=>{h.finalComposer.addPass(p)}),h.finalComposer.passes.length===1&&h.addCopyPass()}get opacity(){const{crossFadePass:e}=this.composerController;return e?e.fullscreenMaterial.uniforms.ratio.value:1}set opacity(e){const{crossFadePass:t}=this.composerController;if(!t){console.warn("err:pencil.options.crossOpacity");return}t.fullscreenMaterial.uniforms.ratio.value=e}initCSSRenderer(){const{container:e,css2DRenderer:t,css3DRenderer:s,css2DRendererParams:r,css3DRendererParams:o}=this.options;if(t||s){const n=new ue(e);t&&n.addRenderer("css2d",r),s&&n.addRenderer("css3d",o),this.cssRendererController=n}}initControls(){const{control:e,controlParams:t,transformControls:s}=this.options;if(e){const r=new me({camera:this.camera,controlsParams:{domElement:(t==null?void 0:t.domElement)||this.renderer.domElement},customControl:typeof e=="boolean"?void 0:e});this.controlsController=r}if(s){const r=new fe({camera:this.camera,renderer:this.renderer,scene:this.scene});r.event.on("mouseDown",()=>{var o;(o=this.controlsController)==null||o.disable()}),r.event.on("mouseUp",()=>{var o;(o=this.controlsController)==null||o.enable()}),this.transformController=r}}getSize(){const{container:e}=this.options;return{width:e.offsetWidth,height:e.offsetHeight}}initResizeObserver(){const{container:e}=this.options;if(this.resizeObserver)return;const t=new ResizeObserver(s=>{for(const r of s){const o=r.contentRect;this.handeleResize(o.width,o.height),this.render()}});t.observe(e),this.resizeObserver=t}handeleResize(e,t,s=!0){const{rendererController:r,cameraController:o,composerController:n,cssRendererController:i}=this;o==null||o.setSize(e,t),r==null||r.setSize(e,t),n==null||n.setSize(e,t),i==null||i.setSize(e,t),this.installPlugins.forEach(a=>{var c;(c=a.setSize)==null||c.call(a,e,t)}),s&&this.event.emit("resize",{width:e,height:t})}pick(e,t,s=!1){const{raycaster:r,options:o}=this,{container:n}=o,i=new m.Vector2,a=n.getBoundingClientRect();if(i.x=(e.clientX-a.left)/(a.right-a.left)*2-1,i.y=-((e.clientY-a.top)/(a.bottom-a.top))*2+1,this.camera&&this.scene){r.setFromCamera(i,this.camera);const c=r.intersectObjects(t||this.scene.children,s);if(c.length)return{object:c[0].object,intersects:c}}}render(){var n,i,a,c,d,h;const{scene:e,camera:t,clock:s}=this,r=s.getDelta(),o=s.getElapsedTime();G.update(),(n=this.controlsController)==null||n.update(r),this.installPlugins.forEach(p=>{var g;(g=p.update)==null||g.call(p,r,o)}),(i=this.helperController)==null||i.update(),(a=this.composerController)!=null&&a.active?this.composerController.render():(c=this.rendererController)==null||c.render(),(d=this.cssRendererController)==null||d.render(e,t),(h=this.stats)==null||h.update(),this.event.emit("render",{delta:r,elapsed:o})}start(){this.renderer.setAnimationLoop(this.render.bind(this)),this.event.emit("start")}stop(){this.renderer.setAnimationLoop(null),this.event.emit("stop")}autoRotate(e){this.controlsController.autoRotateSpeed=e}dispose(){var e,t,s,r,o,n,i,a,c;this.stop(),G.removeAll(),this.event.removeAllListeners(),(e=this.resizeObserver)==null||e.unobserve(this.options.container),this.handeleResize(0,0),this.installPlugins.forEach(d=>{var h;(h=d.dispose)==null||h.call(d)}),(t=this.controlsController)==null||t.dispose(),(s=this.transformController)==null||s.dispose(),(r=this.cssRendererController)==null||r.dispose(),(o=this.sceneController)==null||o.dispose(),(n=this.helperController)==null||n.dispose(),(i=this.composerController)==null||i.dispose(),(a=this.rendererController)==null||a.dispose(),this.cssRendererController=void 0,(c=this.gui)==null||c.destroy(),this.installPlugins.clear()}};O.options={isdev:S,stats:S,gui:S,helper:S,control:!0,transformControls:S,resizeObserver:!0,renderer:y(C({},ne),{antialias:H?"msaa":"fxaa"}),multisampling:4,frameBufferType:m.UnsignedByteType,scene:le,camera:ae,bloom:!1,bloomParams:N,toneMapping:!1,toneMappingParams:Ce,crossOpacity:!1,css2DRenderer:!1,css2DRendererParams:C({},j),css3DRenderer:!1,css3DRendererParams:C({},j)};let D=O;const be=A.ACTION;exports.BaseObject=oe.BaseObject;exports.GUIObject=x;exports.Pencil=D;exports.cameraControlsAction=be;exports.default=D;
|