Ai_Assistant/client/node_modules/@pixiv/three-vrm-node-constraint/lib/three-vrm-node-constraint.module.min.js

3 lines
6.9 KiB
JavaScript
Raw Normal View History

2026-05-24 13:31:30 +02:00
/*! (c) 2019-2025 pixiv Inc. - https://github.com/pixiv/three-vrm/blob/release/LICENSE */
var w=(n,t,e)=>new Promise((i,o)=>{var r=s=>{try{a(e.next(s))}catch(p){o(p)}},c=s=>{try{a(e.throw(s))}catch(p){o(p)}},a=s=>s.done?i(s.value):Promise.resolve(s.value).then(r,c);a((e=e.apply(n,t)).next())});import*as u from"three";var R=new u.Vector3,h=class extends u.Group{constructor(t){super(),this._attrPosition=new u.BufferAttribute(new Float32Array([0,0,0,0,0,0]),3),this._attrPosition.setUsage(u.DynamicDrawUsage);let e=new u.BufferGeometry;e.setAttribute("position",this._attrPosition);let i=new u.LineBasicMaterial({color:16711935,depthTest:!1,depthWrite:!1});this._line=new u.Line(e,i),this.add(this._line),this.constraint=t}updateMatrixWorld(t){R.setFromMatrixPosition(this.constraint.destination.matrixWorld),this._attrPosition.setXYZ(0,R.x,R.y,R.z),this.constraint.source&&R.setFromMatrixPosition(this.constraint.source.matrixWorld),this._attrPosition.setXYZ(1,R.x,R.y,R.z),this._attrPosition.needsUpdate=!0,super.updateMatrixWorld(t)}};import*as d from"three";function Q(n,t){return t.set(n.elements[12],n.elements[13],n.elements[14])}import*as N from"three";var j=new N.Vector3,A=new N.Vector3;function g(n,t){return n.decompose(j,t,A),t}function m(n){return n.invert?n.invert():n.inverse(),n}var l=class{constructor(t,e){this.destination=t,this.source=e,this.weight=1}};var O=new d.Vector3,P=new d.Vector3,q=new d.Vector3,L=new d.Quaternion,F=new d.Quaternion,I=new d.Quaternion,f=class extends l{get aimAxis(){return this._aimAxis}set aimAxis(t){this._aimAxis=t,this._v3AimAxis.set(t==="PositiveX"?1:t==="NegativeX"?-1:0,t==="PositiveY"?1:t==="NegativeY"?-1:0,t==="PositiveZ"?1:t==="NegativeZ"?-1:0)}get dependencies(){let t=new Set([this.source]);return this.destination.parent&&t.add(this.destination.parent),t}constructor(t,e){super(t,e),this._aimAxis="PositiveX",this._v3AimAxis=new d.Vector3(1,0,0),this._dstRestQuat=new d.Quaternion}setInitState(){this._dstRestQuat.copy(this.destination.quaternion)}update(){this.destination.updateWorldMatrix(!0,!1),this.source.updateWorldMatrix(!0,!1);let t=L.identity(),e=F.identity();this.destination.parent&&(g(this.destination.parent.matrixWorld,t),m(e.copy(t)));let i=O.copy(this._v3AimAxis).applyQuaternion(this._dstRestQuat).applyQuaternion(t),o=Q(this.source.matrixWorld,P).sub(Q(this.destination.matrixWorld,q)).normalize(),r=I.setFromUnitVectors(i,o).premultiply(e).multiply(t).multiply(this._dstRestQuat);this.destination.quaternion.copy(this._dstRestQuat).slerp(r,this.weight)}};function D(n,t){let e=[n],i=n.parent;for(;i!==null;)e.unshift(i),i=i.parent;e.forEach(o=>{t(o)})}var b=class{constructor(){this._constraints=new Set;this._objectConstraintsMap=new Map}get constraints(){return this._constraints}addConstraint(t){this._constraints.add(t);let e=this._objectConstraintsMap.get(t.destination);e==null&&(e=new Set,this._objectConstraintsMap.set(t.destination,e)),e.add(t)}deleteConstraint(t){this._constraints.delete(t),this._objectConstraintsMap.get(t.destination).delete(t)}setInitState(){let t=new Set,e=new Set;for(let i of this._constraints)this._processConstraint(i,t,e,o=>o.setInitState())}update(){let t=new Set,e=new Set;for(let i of this._constraints)this._processConstraint(i,t,e,o=>o.update())}_processConstraint(t,e,i,o){if(i.has(t))return;if(e.has(t))throw new Error("VRMNodeConstraintManager: Circular dependency detected while updating constraints");e.add(t);let r=t.dependencies;for(let c of r)D(c,a=>{let s=this._objectConstraintsMap.get(a);if(s)for(let p of s)this._processConstraint(p,e,i,o)});o(t),i.add(t)}};import*as H from"three";var X=new H.Quaternion,G=new H.Quaternion,C=class extends l{get dependencies(){return new Set([this.source])}constructor(t,e){super(t,e),this._dstRestQuat=new H.Quaternion,this._invSrcRestQuat=new H.Quaternion}setInitState(){this._dstRestQuat.copy(this.destination.quaternion),m(this._invSrcRestQuat.copy(this.source.quaternion))}update(){let t=X.copy(this._invSrcRestQuat).multiply(this.source.quaternion),e=G.copy(this._dstRestQuat).multiply(t);this.destination.quaternion.copy(this._dstRestQuat).slerp(e,this.weight)}};import*as E from"three";var Y=new E.Vector3