UNPKG

x_ite

Version:

X_ITE X3D Browser — View and Manipulate X3D, VRML, glTF and Other 3D Sources in HTML

2 lines 40.2 kB
/* X_ITE v15.0.3 */ const e=window[Symbol.for("X_ITE.X3D")];(()=>{var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const n=e.Components;var i=t.n(n);const s=e.Fields;var o=t.n(s);const r=e.X3DFieldDefinition;var a=t.n(r);const d=e.FieldDefinitionArray;var h=t.n(d);const c=e.X3DNode;var _=t.n(c);const l=e.X3DGeometricPropertyNode;var u=t.n(l);const p=e.X3DConstants;var m=t.n(p);const f=e.Namespace;var g=t.n(f);function x(e){u().call(this,e),this.addType(m().HAnimDisplacer),this._displacements.setUnit("length")}Object.setPrototypeOf(x.prototype,u().prototype),Object.defineProperties(x,{..._().getStaticProperties("HAnimDisplacer","HAnim",1,"displacers","3.0"),fieldDefinitions:{value:new(h())([new(a())(m().inputOutput,"metadata",new(o().SFNode)),new(a())(m().inputOutput,"description",new(o().SFString)),new(a())(m().inputOutput,"name",new(o().SFString)),new(a())(m().inputOutput,"weight",new(o().SFFloat)),new(a())(m().inputOutput,"coordIndex",new(o().MFInt32)),new(a())(m().inputOutput,"displacements",new(o().MFVec3f))]),enumerable:!0}});const T=x,w=g().add("HAnimDisplacer",T),S=e.X3DChildNode;var F=t.n(S);const I=e.Group;var N=t.n(I);const v=e.Transform;var O=t.n(v);const E=e.X3DBoundedObject;var M=t.n(E);const D=e.TraverseType;var y=t.n(D);const A=e.X3DCast;var b=t.n(A);const j=e.Matrix4;var k=t.n(j);const R=e.Algorithm;var C=t.n(R);const X=e.ShaderRegistry;var J=t.n(X);const U=g().add("Skin2.glsl",()=>"\n#if defined(X3D_SKINNING)\nin uint x3d_CoordIndex;\n#if X3D_NUM_JOINT_SETS>0\nuniform sampler2D x3d_JointsTexture;\n#endif\n#if X3D_NUM_DISPLACEMENTS>0\nuniform sampler2D x3d_DisplacementsTexture;uniform sampler2D x3d_DisplacementWeightsTexture;\n#endif\n#if X3D_NUM_JOINT_SETS>0||X3D_NUM_DISPLACEMENTS>0\nuniform sampler2D x3d_JointMatricesTexture;\n#endif\n#if X3D_NUM_JOINT_SETS>0\nmat4 getJointMatrix(const in int joint){vec4 a=texelFetch(x3d_JointMatricesTexture,joint*8,0);vec4 b=texelFetch(x3d_JointMatricesTexture,joint*8+1,0);vec4 c=texelFetch(x3d_JointMatricesTexture,joint*8+2,0);vec4 d=texelFetch(x3d_JointMatricesTexture,joint*8+3,0);return mat4(a,b,c,d);}\n#if defined(X3D_NORMALS)\nmat3 getJointNormalMatrix(const in int joint){vec4 a=texelFetch(x3d_JointMatricesTexture,joint*8+4,0);vec4 b=texelFetch(x3d_JointMatricesTexture,joint*8+5,0);vec4 c=texelFetch(x3d_JointMatricesTexture,joint*8+6,0);return mat3(a.xyz,vec3(a.w,b.xy),vec3(b.zw,c.x));}\n#endif\n#endif\n#if X3D_NUM_DISPLACEMENTS>0\nmat3 getDisplacementJointMatrix(const in int joint){vec4 a=texelFetch(x3d_JointMatricesTexture,joint*8,0);vec4 b=texelFetch(x3d_JointMatricesTexture,joint*8+1,0);vec4 c=texelFetch(x3d_JointMatricesTexture,joint*8+2,0);return mat3(a.xyz,b.xyz,c.xyz);}\n#endif\n#if defined(X3D_NORMALS)\nvec3 skinNormal=vec3(0);\n#if defined(X3D_TANGENTS)\nvec3 skinTangent=vec3(0);\n#endif\n#define getSkinNormal(normal)(skinNormal)\n#if defined(X3D_TANGENTS)\n#define getSkinTangent(tangent)(skinTangent)\n#endif\n#else\n#define getSkinNormal(normal)(normal)\n#define getSkinTangent(tangent)(tangent)\n#endif\nvec4 getSkinVertex(const in vec4 vertex,const in vec3 normal,const in vec3 tangent){int coordIndex=int(x3d_CoordIndex);vec4 skin=vertex;\n#if defined(X3D_NORMALS)\nskinNormal=normal;\n#if defined(X3D_TANGENTS)\nskinTangent=tangent;\n#endif\n#endif\n#if X3D_NUM_DISPLACEMENTS>0\n{int coordIndexD=coordIndex*(X3D_NUM_DISPLACEMENTS*2);for(int i=0;i<X3D_NUM_DISPLACEMENTS;++i){int index=coordIndexD+i*2;vec4 displacement=texelFetch(x3d_DisplacementsTexture,index,0);int weightIndex=int(texelFetch(x3d_DisplacementsTexture,index+1,0).x);float weight=texelFetch(x3d_DisplacementWeightsTexture,weightIndex,0).x;skin.xyz+=getDisplacementJointMatrix(int(displacement.w))*(displacement.xyz*weight);}}\n#endif\n#if X3D_NUM_JOINT_SETS>0\n{int coordIndexJ=coordIndex*(X3D_NUM_JOINT_SETS*2);for(int i=0;i<X3D_NUM_JOINT_SETS;++i){int index=coordIndexJ+i;ivec4 joints=ivec4(texelFetch(x3d_JointsTexture,index,0));vec4 weights=texelFetch(x3d_JointsTexture,index+X3D_NUM_JOINT_SETS,0);for(int i=0;i<4;++i){int joint=joints[i];float weight=weights[i];skin+=(getJointMatrix(joint)*vertex-vertex)*weight;\n#if defined(X3D_NORMALS)\nmat3 jointNormalMatrix=getJointNormalMatrix(joint);skinNormal+=(jointNormalMatrix*normal-normal)*weight;\n#if defined(X3D_TANGENTS)\nskinTangent+=(jointNormalMatrix*tangent-tangent)*weight;\n#endif\n#endif\n}}}\n#endif\nreturn skin;}\n#endif\n");function V(e){F().call(this,e),M().call(this,e),this.addType(m().X3DTransformMatrix3DNode),this.addType(m().HAnimHumanoid),this.addChildObjects(m().outputOnly,"jointName",new(o().SFTime),m().outputOnly,"jointTextures",new(o().SFTime),m().outputOnly,"displacementsTexture",new(o().SFTime),m().outputOnly,"displacementWeightsTexture",new(o().SFTime)),this._translation.setUnit("length"),this._center.setUnit("length"),this._bboxSize.setUnit("length"),this._bboxCenter.setUnit("length"),e.getSpecificationVersion()<=3.3&&(this._version=""),this.skeletonNode=new(N())(e),this.viewpointsNode=new(N())(e),this.skinNode=new P(e,this),this.transformNode=new(O())(e),this.poseNodes=[],this.motionNodes=[],this.jointNodes=[],this.jointBindingMatrices=[],this.displacementWeights=[],this.numJoints=0,this.numDisplacements=0,this.update=new W,this.skinning=Function.prototype}J().addInclude("Skin",U),Object.assign(Object.setPrototypeOf(V.prototype,F().prototype),M().prototype,{initialize(){F().prototype.initialize.call(this),M().prototype.initialize.call(this),this.skeletonNode.addAllowedTypes(m().HAnimJoint,m().HAnimSite),this.viewpointsNode.addAllowedTypes(m().HAnimSite),this._skeleton.addFieldInterest(this.skeletonNode._children),this._viewpoints.addFieldInterest(this.viewpointsNode._children),this._skin.addFieldInterest(this.skinNode._children),this.skeletonNode._children=this._skeleton,this.viewpointsNode._children=this._viewpoints,this.skinNode._children=this._skin,this.skeletonNode.setPrivate(!0),this.viewpointsNode.setPrivate(!0),this.skinNode.setPrivate(!0),this._translation.addFieldInterest(this.transformNode._translation),this._rotation.addFieldInterest(this.transformNode._rotation),this._scale.addFieldInterest(this.transformNode._scale),this._scaleOrientation.addFieldInterest(this.transformNode._scaleOrientation),this._center.addFieldInterest(this.transformNode._center),this._bboxSize.addFieldInterest(this.transformNode._bboxSize),this._bboxCenter.addFieldInterest(this.transformNode._bboxCenter),this.transformNode._translation=this._translation,this.transformNode._rotation=this._rotation,this.transformNode._scale=this._scale,this.transformNode._scaleOrientation=this._scaleOrientation,this.transformNode._center=this._center,this.transformNode._bboxSize=this._bboxSize,this.transformNode._bboxCenter=this._bboxCenter,this.transformNode._children=[this.skeletonNode,this.viewpointsNode,this.skinNode],this.skeletonNode.setup(),this.viewpointsNode.setup(),this.skinNode.setup(),this.transformNode.setup(),this.connectChildNode(this.transformNode);const e=this.getBrowser().getContext();this.jointsTexture=e.createTexture(),this.displacementsTexture=e.createTexture(),this.displacementWeightsTexture=e.createTexture(),this.jointMatricesTexture=e.createTexture();for(const t of[this.jointsTexture,this.displacementsTexture,this.displacementWeightsTexture,this.jointMatricesTexture])e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST);this._children.addInterest("set_children__",this),this._motionsEnabled.addInterest("set_motions__",this),this._motions.addInterest("set_motions__",this),this._jointBindingPositions.addInterest("set_joints__",this),this._jointBindingRotations.addInterest("set_joints__",this),this._jointBindingScales.addInterest("set_joints__",this),this._joints.addInterest("set_joints__",this),this._jointName.addInterest("set_connectAllJoints__",this),this._jointTextures.addInterest("set_jointTextures__",this),this._displacementsTexture.addInterest("set_displacementsTexture__",this),this._displacementWeightsTexture.addInterest("set_displacementWeightsTexture__",this),this._skinCoord.addInterest("set_skinCoord__",this),this.set_children__(),this.set_motions__(),this.set_joints__(),this.set_skinCoord__(),this._segments.addInterest("set_depreciated__",this),this._sites.addInterest("set_depreciated__",this),this.set_depreciated__(this._segments,"4.1"),this.set_depreciated__(this._sites,"4.1")},set_depreciated__(e,t){e.length&&(this.getExecutionContext().getSpecificationVersion()<t||console.warn(`Use of field ${this.getTypeName()}.${e.getName()} is deprecated. This field may be removed in future versions of X3D.`))},getBBox(e,t){return this.transformNode.getBBox(e,t)},getSubBBox(e,t){return this.transformNode.getSubBBox(e,t)},getShapes(e,t){return this.transformNode.getShapes(e,t)},getMatrix(){return this.transformNode.getMatrix()},getHAnimKey(){return this.humanoidKey},set_humanoidKey__(){this.humanoidKey=`[${this.numJoints}.${this.numDisplacements}]`},set_children__(){const e=this.poseNodes;for(const e of this.poseNodes)e._set_fraction.removeInterest("set_pose_fraction__",this),e._isActive.removeInterest("set_pose_active__",this),e.removeJoints(this.jointNodes);e.length=0;for(const t of this._children){const n=b()(m().HAnimPose,t);n&&e.push(n)}for(const e of this.poseNodes)e._set_fraction.addInterest("set_pose_fraction__",this,e),e._isActive.addInterest("set_pose_active__",this),e.addJoints(this.jointNodes)},set_pose_fraction__(e){for(const t of this.poseNodes)t!==e&&t.setNeedsUpdateInterpolators()},set_pose_active__(e){if(!e.getValue())for(const e of this.poseNodes)e.setNeedsUpdateInterpolators()},set_motions__(){const e=this._motionsEnabled,t=this.motionNodes;for(const e of t)e._joints.removeInterest("set_connectJoints__",this),e._channelsEnabled.removeInterest("set_connectJoints__",this),e._channels.removeInterest("set_connectJoints__",this),e._values.removeInterest("set_connectJoints__",this),e.disconnectJoints();t.length=0;for(const[n,i]of this._motions.entries()){if(n<e.length&&!e[n])continue;const s=b()(m().HAnimMotion,i);s&&t.push(s)}for(const e of t)e._joints.addInterest("set_connectJoints__",this,e),e._channelsEnabled.addInterest("set_connectJoints__",this,e),e._channels.addInterest("set_connectJoints__",this,e),e._values.addInterest("set_connectJoints__",this,e),e.connectJoints(this.jointNodes)},set_connectAllJoints__(){for(const e of this.motionNodes)this.set_connectJoints__(e)},set_connectJoints__(e){e.disconnectJoints(),e.connectJoints(this.jointNodes)},set_joints__(){const e=this.jointNodes,t=this.jointBindingMatrices,n=this._jointBindingPositions,i=this._jointBindingRotations,s=this._jointBindingScales;for(const t of this.poseNodes)t.removeJoints(e);for(const e of this.motionNodes)e.disconnectJoints();for(const t of e)t.removeInterest("unlock",this.update),t._name.removeInterest("addEvent",this._jointName),t._skinCoordIndex.removeInterest("addEvent",this._jointTextures),t._skinCoordWeight.removeInterest("addEvent",this._jointTextures),t._displacements.removeInterest("addEvent",this._displacementsTexture),t._displacementWeights.removeInterest("addEvent",this._displacementWeightsTexture);e.length=0,t.length=0;for(const[o,r]of this._joints.entries()){const a=b()(m().HAnimJoint,r);if(!a)continue;const d=n[o]?.getValue(),h=i[o]?.getValue(),c=s[o]?.getValue();e.push(a),t.push(k().fromTransform(d,h,c))}for(const t of e)t.addInterest("unlock",this.update),t._name.addInterest("addEvent",this._jointName),t._skinCoordIndex.addInterest("addEvent",this._jointTextures),t._skinCoordWeight.addInterest("addEvent",this._jointTextures),t._displacements.addInterest("addEvent",this._displacementsTexture),t._displacementWeights.addInterest("addEvent",this._displacementWeightsTexture);for(const t of this.poseNodes)t.addJoints(e);for(const t of this.motionNodes)t.connectJoints(e);const o=Math.ceil(Math.sqrt(8*e.length));this.jointMatricesArray=new Float32Array(o*o*4),this._jointTextures.addEvent(),this._displacementsTexture.addEvent(),this._displacementWeightsTexture.addEvent()},set_jointTextures__(){const e=this.skinCoordNode?._point.length||1,t=Array.from({length:e},()=>[]),n=Array.from({length:e},()=>[]);for(const[e,i]of this.jointNodes.entries()){const s=i._skinCoordWeight.getValue();for(const[o,r]of i._skinCoordIndex.entries()){const i=s[o];0!==i&&(t[r]?.push(e),n[r]?.push(i))}}const i=C().roundToMultiple(t.reduce((e,t)=>Math.max(e,t.length),0),4),s=2*i,o=Math.ceil(Math.sqrt(e*s))||1,r=new Float32Array(o*o*4);for(let o=0;o<e;++o)r.set(t[o],o*s),r.set(n[o],o*s+i);this.numJoints=i;const a=this.getBrowser().getContext();a.bindTexture(a.TEXTURE_2D,this.jointsTexture),a.texImage2D(a.TEXTURE_2D,0,a.RGBA32F,o,o,0,a.RGBA,a.FLOAT,r),this.update.unlock(),this.set_humanoidKey__()},set_displacementsTexture__(){const e=this.skinCoordNode?._point.length||1,t=Array.from({length:e},()=>[]);let n=0;this.displacementWeights.length=0;for(const[e,i]of this.jointNodes.entries())for(const{_weight:s,_coordIndex:o,_displacements:r}of i.getDisplacers())if(o.length){this.displacementWeights.push(s,0,0,0);for(const[i,s]of o.entries())t[s]?.push(...r[i],e,n,0,0,0);++n}const i=t.reduce((e,t)=>Math.max(e,t.length),0)/8,s=8*i,o=Math.ceil(Math.sqrt(e*i*2))||1,r=new Float32Array(o*o*4);for(let n=0;n<e;++n)r.set(t[n],n*s);this.numDisplacements=i;const a=this.getBrowser().getContext();a.bindTexture(a.TEXTURE_2D,this.displacementsTexture),a.texImage2D(a.TEXTURE_2D,0,a.RGBA32F,o,o,0,a.RGBA,a.FLOAT,r),this.displacementWeightsSize=Math.ceil(Math.sqrt(n)),this.displacementWeightsArray=new Float32Array(this.displacementWeightsSize*this.displacementWeightsSize*4),this.update.unlock(),this.set_humanoidKey__()},set_displacementWeightsTexture__(){const e=this.getBrowser().getContext(),t=this.displacementWeightsSize,n=this.displacementWeightsArray;n.set(this.displacementWeights),e.bindTexture(e.TEXTURE_2D,this.displacementWeightsTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,t,t,0,e.RGBA,e.FLOAT,n)},set_skinCoord__(){this.skinCoordNode&&(this.skinCoordNode.removeInterest("addEvent",this._jointTextures),this.skinCoordNode.removeInterest("addEvent",this._displacementsTexture),this.skinCoordNode.removeInterest("addEvent",this._displacementWeightsTexture)),this.skinCoordNode=b()(m().Coordinate,this._skinCoord)??b()(m().CoordinateDouble,this._skinCoord),this.skinCoordNode?(delete this.skinning,this.skinCoordNode.addInterest("addEvent",this._jointTextures),this.skinCoordNode.addInterest("addEvent",this._displacementsTexture),this.skinCoordNode.addInterest("addEvent",this._displacementWeightsTexture)):this.skinning=Function.prototype,this._jointTextures.addEvent(),this._displacementsTexture.addEvent(),this._displacementWeightsTexture.addEvent()},traverse(e,t){const n=t.getInvHumanoidMatrix();n.push(this.transformNode.getMatrix()),n.multRight(t.getModelViewMatrix().get()),n.inverse(),this.transformNode.traverse(e,t),this.skinning(e,t),n.pop()},skinning(e,t){if(e!==y().DISPLAY||this.update.lock())return;const n=t.getInvHumanoidMatrix().get(),i=this.jointNodes,s=i.length,o=this.jointBindingMatrices,r=this.jointMatricesArray,a=Math.ceil(Math.sqrt(8*s));for(let e=0;e<s;++e){const t=i[e],s=o[e],a=t.getModelViewMatrix().multRight(n).multLeft(s),d=a.submatrix.transpose().inverse();r.set(a,32*e+0),r.set(d,32*e+16)}const d=this.getBrowser().getContext();d.bindTexture(d.TEXTURE_2D,this.jointMatricesTexture),d.texImage2D(d.TEXTURE_2D,0,d.RGBA32F,a,a,0,d.RGBA,d.FLOAT,r)},getShaderOptions(e){e.push("X3D_SKINNING"),e.push("X3D_NUM_JOINT_SETS "+this.numJoints/4),e.push(`X3D_NUM_DISPLACEMENTS ${this.numDisplacements}`)},setShaderUniforms(e,t){const n=this.getBrowser(),i=n.popTextureUnit(),s=n.popTextureUnit();if(e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,this.jointsTexture),e.uniform1i(t.x3d_JointsTexture,i),e.activeTexture(e.TEXTURE0+s),e.bindTexture(e.TEXTURE_2D,this.jointMatricesTexture),e.uniform1i(t.x3d_JointMatricesTexture,s),!this.numDisplacements)return;const o=n.popTextureUnit(),r=n.popTextureUnit();e.activeTexture(e.TEXTURE0+o),e.bindTexture(e.TEXTURE_2D,this.displacementsTexture),e.uniform1i(t.x3d_DisplacementsTexture,o),e.activeTexture(e.TEXTURE0+r),e.bindTexture(e.TEXTURE_2D,this.displacementWeightsTexture),e.uniform1i(t.x3d_DisplacementWeightsTexture,r)},dispose(){M().prototype.dispose.call(this),F().prototype.dispose.call(this)}}),Object.defineProperties(V,{..._().getStaticProperties("HAnimHumanoid","HAnim",1,"children","3.0"),fieldDefinitions:{value:new(h())([new(a())(m().inputOutput,"metadata",new(o().SFNode)),new(a())(m().inputOutput,"description",new(o().SFString)),new(a())(m().inputOutput,"name",new(o().SFString)),new(a())(m().inputOutput,"info",new(o().MFString)),new(a())(m().inputOutput,"version",new(o().SFString)("2.1")),new(a())(m().inputOutput,"skeletalConfiguration",new(o().SFString)("BASIC")),new(a())(m().inputOutput,"loa",new(o().SFInt32)(-1)),new(a())(m().inputOutput,"translation",new(o().SFVec3f)),new(a())(m().inputOutput,"rotation",new(o().SFRotation)),new(a())(m().inputOutput,"scale",new(o().SFVec3f)(1,1,1)),new(a())(m().inputOutput,"scaleOrientation",new(o().SFRotation)),new(a())(m().inputOutput,"center",new(o().SFVec3f)),new(a())(m().inputOutput,"visible",new(o().SFBool)(!0)),new(a())(m().inputOutput,"bboxDisplay",new(o().SFBool)),new(a())(m().initializeOnly,"bboxSize",new(o().SFVec3f)(-1,-1,-1)),new(a())(m().initializeOnly,"bboxCenter",new(o().SFVec3f)),new(a())(m().inputOutput,"skeleton",new(o().MFNode)),new(a())(m().inputOutput,"jointBindingPositions",new(o().MFVec3f)),new(a())(m().inputOutput,"jointBindingRotations",new(o().MFRotation)),new(a())(m().inputOutput,"jointBindingScales",new(o().MFVec3f)),new(a())(m().inputOutput,"joints",new(o().MFNode)),new(a())(m().inputOutput,"segments",new(o().MFNode)),new(a())(m().inputOutput,"sites",new(o().MFNode)),new(a())(m().inputOutput,"viewpoints",new(o().MFNode)),new(a())(m().inputOutput,"children",new(o().MFNode)),new(a())(m().inputOutput,"motionsEnabled",new(o().MFBool)),new(a())(m().inputOutput,"motions",new(o().MFNode)),new(a())(m().inputOutput,"skinBindingNormals",new(o().SFNode)),new(a())(m().inputOutput,"skinBindingCoords",new(o().SFNode)),new(a())(m().inputOutput,"skinNormal",new(o().SFNode)),new(a())(m().inputOutput,"skinCoord",new(o().SFNode)),new(a())(m().inputOutput,"skin",new(o().MFNode))]),enumerable:!0}});class P extends(N()){#e;constructor(e,t){super(e),this.#e=t}traverse(e,t){t.getHAnimNode().push(this.#e),super.traverse(e,t),t.getHAnimNode().pop()}}class W{#t=!0;unlock(){this.#t=!1}lock(){const e=this.#t;return this.#t=!0,e}}const B=V,H=g().add("HAnimHumanoid",B),z=e.X3DTransformNode;var L=t.n(z);function G(e){L().call(this,e),this.addType(m().HAnimJoint),this.addChildObjects(m().outputOnly,"displacements",new(o().SFTime),m().outputOnly,"displacementWeights",new(o().SFTime)),this.setVisibleObject(!0),this.addAllowedTypes(m().HAnimJoint,m().HAnimSegment),this._minAngle.setUnit("angle"),this._maxAngle.setUnit("angle"),e.getSpecificationVersion()<=3.3&&this.addAllowedTypes(m().HAnimSite),this.displacerNodes=[],this.modelViewMatrix=new(k())}Object.assign(Object.setPrototypeOf(G.prototype,L().prototype),{initialize(){L().prototype.initialize.call(this),this._displacers.addInterest("set_displacers__",this),this.set_displacers__()},getModelViewMatrix(){return this.modelViewMatrix},getDisplacers(){return this.displacerNodes},set_visibleObjects__(){},set_displacers__(){const e=this.displacerNodes;for(const t of e)t._coordIndex.removeInterest("addEvent",this._displacements),t._displacements.removeInterest("addEvent",this._displacements),t._coordIndex.removeInterest("addEvent",this._displacementWeights),t._weight.removeInterest("addEvent",this._displacementWeights);e.length=0;for(const t of this._displacers){const n=b()(m().HAnimDisplacer,t);n&&e.push(n)}for(const t of e)t._coordIndex.addInterest("addEvent",this._displacements),t._displacements.addInterest("addEvent",this._displacements),t._coordIndex.addInterest("addEvent",this._displacementWeights),t._weight.addInterest("addEvent",this._displacementWeights);this._displacements.addEvent(),this._displacementWeights.addEvent()},traverse(e,t){const n=t.getModelViewMatrix();n.push(),n.multLeft(this.getMatrix()),e===y().DISPLAY&&this.modelViewMatrix.assign(n.get()),L().prototype.groupTraverse.call(this,e,t),n.pop()},groupTraverse(e,t){e===y().DISPLAY&&this.modelViewMatrix.assign(t.getModelViewMatrix().get()),L().prototype.groupTraverse.call(this,e,t)}}),Object.defineProperties(G,{..._().getStaticProperties("HAnimJoint","HAnim",1,"children","3.0"),fieldDefinitions:{value:new(h())([new(a())(m().inputOutput,"metadata",new(o().SFNode)),new(a())(m().inputOutput,"description",new(o().SFString)),new(a())(m().inputOutput,"name",new(o().SFString)),new(a())(m().inputOutput,"translation",new(o().SFVec3f)),new(a())(m().inputOutput,"rotation",new(o().SFRotation)),new(a())(m().inputOutput,"scale",new(o().SFVec3f)(1,1,1)),new(a())(m().inputOutput,"scaleOrientation",new(o().SFRotation)),new(a())(m().inputOutput,"center",new(o().SFVec3f)),new(a())(m().inputOutput,"limitOrientation",new(o().SFRotation)),new(a())(m().inputOutput,"llimit",new(o().MFFloat)(0,0,0)),new(a())(m().inputOutput,"ulimit",new(o().MFFloat)(0,0,0)),new(a())(m().inputOutput,"minAngle",new(o().SFFloat)),new(a())(m().inputOutput,"maxAngle",new(o().SFFloat)),new(a())(m().inputOutput,"stiffness",new(o().MFFloat)(0,0,0)),new(a())(m().inputOutput,"skinCoordIndex",new(o().MFInt32)),new(a())(m().inputOutput,"skinCoordWeight",new(o().MFFloat)),new(a())(m().inputOutput,"displacers",new(o().MFNode)),new(a())(m().inputOutput,"visible",new(o().SFBool)(!0)),new(a())(m().inputOutput,"bboxDisplay",new(o().SFBool)),new(a())(m().initializeOnly,"bboxSize",new(o().SFVec3f)(-1,-1,-1)),new(a())(m().initializeOnly,"bboxCenter",new(o().SFVec3f)),new(a())(m().inputOnly,"addChildren",new(o().MFNode)),new(a())(m().inputOnly,"removeChildren",new(o().MFNode)),new(a())(m().inputOutput,"children",new(o().MFNode))]),enumerable:!0}});const K=G,q=g().add("HAnimJoint",K),$=e.TimeSensor;var Y=t.n($);const Z=e.PositionInterpolator;var Q=t.n(Z);const ee=e.OrientationInterpolator;var te=t.n(ee);const ne=e.Vector3;var ie=t.n(ne);const se=e.Rotation4;var oe=t.n(se);function re(e){F().call(this,e),this.addType(m().HAnimMotion),this.timeSensor=new(Y())(this.getExecutionContext()),this.interpolators=[]}Object.assign(Object.setPrototypeOf(re.prototype,F().prototype),{initialize(){F().prototype.initialize.call(this),this._loop.addFieldInterest(this.timeSensor._loop),this.timeSensor._cycleTime.addFieldInterest(this._cycleTime),this.timeSensor._elapsedTime.addFieldInterest(this._elapsedTime),this.timeSensor._enabled=!1,this.timeSensor._loop=this._loop,this.timeSensor._stopTime=1,this.timeSensor.setup(),this._enabled.addInterest("set_enabled__",this),this._joints.addInterest("set_joints__",this),this._channels.addInterest("set_interpolators__",this),this._values.addInterest("set_interpolators__",this),this._next.addInterest("set_next_or_previous__",this,1),this._previous.addInterest("set_next_or_previous__",this,-1),this._frameIndex.addInterest("set_frameIndex__",this),this._frameDuration.addInterest("set_frameDuration__",this),this._frameIncrement.addInterest("set_frameIncrement__",this),this._startFrame.addInterest("set_start_or_endFrame__",this),this._endFrame.addInterest("set_start_or_endFrame__",this),this.set_enabled__(),this.set_joints__(),this.set_frameIncrement__(),this.set_interpolators__()},connectJoints(e){const t=this._channelsEnabled,n=this.joints,i=this.getJointsIndex(e);for(const[e,s]of this.interpolators.entries()){if(e<t.length&&!t[e])continue;const o=i.get(n[e]);if(o)for(const[e,t]of Object.entries(s))t._value_changed.addFieldInterest(o.getField(e))}},disconnectJoints(){for(const e of this.interpolators)for(const t of Object.values(e))Array.from(t._value_changed.getFieldInterests()).forEach(e=>t._value_changed.removeFieldInterest(e))},getJointsIndex(e){const t=new Map(e.map(e=>[e._name.getValue().trim(),e]));return t.delete("IGNORED"),t.set("HumanoidRoot",t.get("humanoid_root")),t},set_enabled__(){this._enabled.getValue()?this.timeSensor._startTime=Date.now()/1e3:this.timeSensor._stopTime=Date.now()/1e3},set_joints__(){this.joints=this._joints.getValue().replace(/^[\s,]+|[\s,]+$/gs,"").split(/[\s,]+/s),this.disconnectJoints()},set_interpolators__:(()=>{const e=["X","Y","Z"];return function(){const t=this.timeSensor;Array.from(t._fraction_changed.getFieldInterests()).forEach(e=>t._fraction_changed.removeFieldInterest(e));const n=this._channels.getValue().replace(/^[\s,\d]+|[\s,\d]+$/gs,"").split(/[\s,]+\d+[\s,]+/s).map(e=>e.split(/[\s,]+/s)),i=this._values,s=n.reduce((e,t)=>e+t.length,0),o=Math.floor(s?i.length/s:0),r=Array.from({length:n.length},()=>({})),a=new(ie()),d=new(oe()),h=new(ie());this.interpolators=r;for(let s=0,c=0;s<o;++s){const _=s/(o-1);for(const[s,o]of n.entries()){let n,l,u=0,p=0,m=0,f=0,g=0,x=0,T="",w=1,S=1,F=1;for(const e of o)switch(e){case"Xposition":n=!0,u=i[c++];break;case"Yposition":n=!0,p=i[c++];break;case"Zposition":n=!0,m=i[c++];break;case"Xrotation":T+="X",f=C().radians(i[c++]);break;case"Yrotation":T+="Y",g=C().radians(i[c++]);break;case"Zrotation":T+="Z",x=C().radians(i[c++]);break;case"Xscale":l=!0,w=i[c++];break;case"Yscale":l=!0,S=i[c++];break;case"Zscale":l=!0,F=i[c++];break;default:c++}if(n){const e=r[s].translation??=(()=>{const e=new(Q())(this.getExecutionContext());return t._fraction_changed.addFieldInterest(e._set_fraction),e})();e._key.push(_),e._keyValue.push(a.set(u,p,m))}if(T.length){const n=r[s].rotation??=(()=>{const e=new(te())(this.getExecutionContext());return t._fraction_changed.addFieldInterest(e._set_fraction),e})();if(3!==T.length)if(T.length<3)for(const t of e)T.includes(t)||(T+=t);else T=T.slice(0,3);n._key.push(_),n._keyValue.push(d.setEuler(f,g,x,T))}if(l){const e=r[s].scale??=(()=>{const e=new(Q())(this.getExecutionContext());return t._fraction_changed.addFieldInterest(e._set_fraction),e})();e._key.push(_),e._keyValue.push(h.set(w,S,F))}}}for(const e of r)for(const t of Object.values(e))t.setup();this._frameIndex=0,this._startFrame=0,this._endFrame=Math.max(o-1,0),this._frameCount=o,this.set_frameDuration__()}})(),set_next_or_previous__(e,t){if(!t.getValue())return;const n=this.getFraction(),i=this._frameCount.getValue(),s=this._frameIncrement.getValue(),o=(i>1?Math.floor(n*(i-1)):0)+s*e;if(o>this.endFrame){if(!this._loop.getValue())return;this._frameIndex=this.startFrame}else if(o<this.startFrame){if(!this._loop.getValue())return;this._frameIndex=this.endFrame}else this._frameIndex=o},set_frameIndex__(){const e=this._frameCount.getValue(),t=C().clamp(this._frameIndex.getValue(),0,e),n=e>1?t/(e-1):0;if(this.timeSensor._range[0]=n,!this.timeSensor._isActive.getValue())for(const e of this.timeSensor._fraction_changed.getFieldInterests())e.setValue(n)},set_frameDuration__(){const e=this._frameCount.getValue(),t=Math.max(this._frameDuration.getValue(),0);this.timeSensor._cycleInterval=e>1?(e-1)*t:0},set_frameIncrement__(){this.timeSensor._enabled=this._frameIncrement.getValue()},set_start_or_endFrame__(){const e=this._frameCount.getValue(),t=C().clamp(this._startFrame.getValue(),0,e),n=C().clamp(this._endFrame.getValue(),0,e);this.startFrame=Math.min(t,n),this.endFrame=Math.max(t,n),this.timeSensor._range[1]=e>1?this.startFrame/(e-1):0,this.timeSensor._range[2]=e>1?this.endFrame/(e-1):0},getFraction(){for(const e of this.timeSensor._fraction_changed.getFieldInterests())return e.getValue();return 0}}),Object.defineProperties(re,{..._().getStaticProperties("HAnimMotion","HAnim",2,"motions","4.0"),fieldDefinitions:{value:new(h())([new(a())(m().inputOutput,"metadata",new(o().SFNode)),new(a())(m().inputOutput,"description",new(o().SFString)),new(a())(m().inputOutput,"name",new(o().SFString)),new(a())(m().inputOutput,"loa",new(o().SFInt32)(-1)),new(a())(m().inputOutput,"enabled",new(o().SFBool)(!0)),new(a())(m().inputOutput,"joints",new(o().SFString)),new(a())(m().inputOutput,"channelsEnabled",new(o().MFBool)),new(a())(m().inputOutput,"channels",new(o().SFString)),new(a())(m().inputOutput,"values",new(o().MFFloat)),new(a())(m().inputOutput,"loop",new(o().SFBool)),new(a())(m().inputOnly,"next",new(o().SFBool)),new(a())(m().inputOnly,"previous",new(o().SFBool)),new(a())(m().inputOutput,"frameIndex",new(o().SFInt32)),new(a())(m().inputOutput,"frameDuration",new(o().SFTime)(.1)),new(a())(m().inputOutput,"frameIncrement",new(o().SFInt32)(1)),new(a())(m().inputOutput,"startFrame",new(o().SFInt32)),new(a())(m().inputOutput,"endFrame",new(o().SFInt32)),new(a())(m().outputOnly,"cycleTime",new(o().SFTime)),new(a())(m().outputOnly,"elapsedTime",new(o().SFTime)),new(a())(m().outputOnly,"frameCount",new(o().SFInt32))]),enumerable:!0}});const ae=re,de=g().add("HAnimMotion",ae);function he(e){F().call(this,e),this.addType(m().HAnimPose),this.timeSensor=new(Y())(this.getExecutionContext()),this.interpolators=[],this.poseJointNodes=new Map,this.joints=new Set}Object.assign(Object.setPrototypeOf(he.prototype,F().prototype),{initialize(){F().prototype.initialize.call(this),this._enabled.addFieldInterest(this.timeSensor._enabled),this._transitionDuration.addFieldInterest(this.timeSensor._cycleInterval),this.timeSensor._isActive.addFieldInterest(this._isActive),this.timeSensor._enabled=this._enabled,this.timeSensor._cycleInterval=this._transitionDuration,this.timeSensor.setup(),this._resetAllJoints.addInterest("set_resetAllJoints__",this),this._commencePose.addInterest("set_commencePose__",this),this._set_startTime.addInterest("set_startTime__",this),this._set_fraction.addInterest("set_fraction__",this),this._children.addInterest("set_children__",this),this.set_children__()},addJoints(e){this.joints.add(e),this.needsUpdateInterpolators=!0},removeJoints(e){this.joints.delete(e)},setNeedsUpdateInterpolators(){this.needsUpdateInterpolators=!0},updateInterpolators(e){this.needsUpdateInterpolators=!1;for(const e of this.interpolators)this.timeSensor._fraction_changed.removeFieldInterest(e._set_fraction);this.interpolators.length=0;for(const t of this.joints)for(const n of t)this.processJoint(n,e);for(const e of this.interpolators)this.timeSensor._fraction_changed.addFieldInterest(e._set_fraction)},processJoint:(()=>{const e=[["translation","PositionInterpolator"],["rotation","OrientationInterpolator"],["scale","PositionInterpolator"]];return function(t,n){let i;if(!n&&(i=this.poseJointNodes.get(t._name.getValue()),!i&&this.poseJointNodes.size))return;const s=this.getExecutionContext();for(const[n,o]of e){const e=t.getField(n),r=i?i.getField(n):t.getFieldDefinition(n).value;if(e.equals(r))continue;const a=s.createNode(o,!1);a._value_changed.addFieldInterest(e),a._key=[0,1],a._keyValue=[...e,...r],a.setup(),this.interpolators.push(a)}}})(),set_resetAllJoints__(){this._resetAllJoints.getValue()&&(this.updateInterpolators(!0),this.timeSensor._startTime=Date.now()/1e3)},set_commencePose__(){this._commencePose.getValue()&&this.set_startTime__()},set_startTime__(){this.updateInterpolators(!1),this.timeSensor._startTime=Date.now()/1e3},set_fraction__(){this.needsUpdateInterpolators&&this.updateInterpolators();const e=this._set_fraction.getValue();for(const t of this.interpolators)t._set_fraction=e},set_children__(){this.poseJointNodes.clear();for(const e of this._children){const t=b()(m().HAnimJoint,e);t&&this.poseJointNodes.set(t._name.getValue(),t)}}}),Object.defineProperties(he,{..._().getStaticProperties("HAnimPose","HAnim",3,"children","4.1"),fieldDefinitions:{value:new(h())([new(a())(m().inputOutput,"metadata",new(o().SFNode)),new(a())(m().inputOutput,"description",new(o().SFString)),new(a())(m().inputOutput,"name",new(o().SFString)),new(a())(m().inputOutput,"loa",new(o().SFInt32)(-1)),new(a())(m().inputOutput,"enabled",new(o().SFBool)(!0)),new(a())(m().inputOutput,"transitionDuration",new(o().SFFloat)),new(a())(m().inputOnly,"resetAllJoints",new(o().SFBool)),new(a())(m().inputOnly,"commencePose",new(o().SFBool)),new(a())(m().inputOnly,"set_startTime",new(o().SFTime)),new(a())(m().inputOnly,"set_fraction",new(o().SFFloat)),new(a())(m().outputOnly,"isActive",new(o().SFBool)),new(a())(m().inputOutput,"children",new(o().MFNode))]),enumerable:!0}});const ce=he,_e=g().add("HAnimPose",ce),le=e.X3DGroupingNode;var ue=t.n(le);function pe(e){ue().call(this,e),this.addType(m().HAnimSegment),this.addChildObjects(m().outputOnly,"displacementsTexture",new(o().SFTime),m().outputOnly,"displacementWeightsTexture",new(o().SFTime)),this._mass.setUnit("mass");const t=Math.ceil(Math.sqrt(8));this.numJoints=0,this.numDisplacements=0,this.displacerNodes=[],this.displacementWeights=[],this.jointMatricesArray=new Float32Array(t*t*4)}Object.assign(Object.setPrototypeOf(pe.prototype,ue().prototype),{initialize(){ue().prototype.initialize.call(this);const e=this.getBrowser().getContext();this.displacementsTexture=e.createTexture(),this.displacementWeightsTexture=e.createTexture(),this.jointMatricesTexture=e.createTexture();for(const t of[this.displacementsTexture,this.displacementWeightsTexture,this.jointMatricesTexture])e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST);this._displacers.addInterest("set_displacers__",this),this._coord.addInterest("set_coord__",this),this._displacementsTexture.addInterest("set_displacementsTexture__",this),this._displacementWeightsTexture.addInterest("set_displacementWeightsTexture__",this),this.set_displacers__(),this.set_coord__()},getHAnimKey(){return this.humanoidKey},set_humanoidKey__(){this.humanoidKey=`[${this.numJoints}.${this.numDisplacements}]`},set_displacers__(){const e=this.displacerNodes;for(const t of e)t._coordIndex.removeInterest("addEvent",this._displacementsTexture),t._displacements.removeInterest("addEvent",this._displacementsTexture),t._coordIndex.removeInterest("addEvent",this._displacementWeightsTexture),t._weight.removeInterest("addEvent",this._displacementWeightsTexture);e.length=0;for(const t of this._displacers){const n=b()(m().HAnimDisplacer,t);n&&e.push(n)}for(const t of e)t._coordIndex.addInterest("addEvent",this._displacementsTexture),t._displacements.addInterest("addEvent",this._displacementsTexture),t._coordIndex.addInterest("addEvent",this._displacementWeightsTexture),t._weight.addInterest("addEvent",this._displacementWeightsTexture);this._displacementsTexture.addEvent(),this._displacementWeightsTexture.addEvent()},set_displacementsTexture__(){const e=this.coordNode?._point.length||1,t=Array.from({length:e},()=>[]);let n=0;this.displacementWeights.length=0;for(const{_weight:e,_coordIndex:i,_displacements:s}of this.displacerNodes)if(i.length){this.displacementWeights.push(e,0,0,0);for(const[e,o]of i.entries())t[o]?.push(...s[e],0,n,0,0,0);++n}const i=t.reduce((e,t)=>Math.max(e,t.length),0)/8,s=8*i,o=Math.ceil(Math.sqrt(e*i*2))||1,r=new Float32Array(o*o*4);for(let n=0;n<e;++n)r.set(t[n],n*s);this.numDisplacements=i;const a=this.getBrowser().getContext();a.bindTexture(a.TEXTURE_2D,this.displacementsTexture),a.texImage2D(a.TEXTURE_2D,0,a.RGBA32F,o,o,0,a.RGBA,a.FLOAT,r),this.displacementWeightsSize=Math.ceil(Math.sqrt(n)),this.displacementWeightsArray=new Float32Array(this.displacementWeightsSize*this.displacementWeightsSize*4),this.set_humanoidKey__()},set_displacementWeightsTexture__(){const e=this.getBrowser().getContext(),t=this.displacementWeightsSize,n=this.displacementWeightsArray;n.set(this.displacementWeights),e.bindTexture(e.TEXTURE_2D,this.displacementWeightsTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,t,t,0,e.RGBA,e.FLOAT,n)},set_coord__(){this.coordNode&&(this.coordNode.removeInterest("addEvent",this._displacementsTexture),this.coordNode.removeInterest("addEvent",this._displacementWeightsTexture)),this.coordNode=b()(m().Coordinate,this._coord)??b()(m().CoordinateDouble,this._coord),this.coordNode?(delete this.skinning,this.coordNode.addInterest("addEvent",this._displacementsTexture),this.coordNode.addInterest("addEvent",this._displacementWeightsTexture)):this.skinning=Function.prototype,this._displacementsTexture.addEvent(),this._displacementWeightsTexture.addEvent()},traverse(e,t){this.coordNode&&this.numDisplacements?(t.getHAnimNode().push(this),ue().prototype.traverse.call(this,e,t),this.skinning(e,t),t.getHAnimNode().pop()):ue().prototype.traverse.call(this,e,t)},skinning:(()=>{const e=new(k());return function(t,n){if(t!==y().DISPLAY)return;const i=n.getInvHumanoidMatrix().get(),s=this.jointMatricesArray,o=Math.ceil(Math.sqrt(8)),r=e.assign(n.getModelViewMatrix().get()).multRight(i);s.set(r,0);const a=this.getBrowser().getContext();a.bindTexture(a.TEXTURE_2D,this.jointMatricesTexture),a.texImage2D(a.TEXTURE_2D,0,a.RGBA32F,o,o,0,a.RGBA,a.FLOAT,s)}})(),getShaderOptions(e){e.push("X3D_SKINNING"),e.push("X3D_NUM_JOINT_SETS "+this.numJoints/4),e.push(`X3D_NUM_DISPLACEMENTS ${this.numDisplacements}`)},setShaderUniforms(e,t){const n=this.getBrowser(),i=n.popTextureUnit(),s=n.popTextureUnit(),o=n.popTextureUnit();e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,this.jointMatricesTexture),e.uniform1i(t.x3d_JointMatricesTexture,i),e.activeTexture(e.TEXTURE0+s),e.bindTexture(e.TEXTURE_2D,this.displacementsTexture),e.uniform1i(t.x3d_DisplacementsTexture,s),e.activeTexture(e.TEXTURE0+o),e.bindTexture(e.TEXTURE_2D,this.displacementWeightsTexture),e.uniform1i(t.x3d_DisplacementWeightsTexture,o)}}),Object.defineProperties(pe,{..._().getStaticProperties("HAnimSegment","HAnim",1,"children","3.0"),fieldDefinitions:{value:new(h())([new(a())(m().inputOutput,"metadata",new(o().SFNode)),new(a())(m().inputOutput,"description",new(o().SFString)),new(a())(m().inputOutput,"name",new(o().SFString)),new(a())(m().inputOutput,"mass",new(o().SFFloat)),new(a())(m().inputOutput,"centerOfMass",new(o().SFVec3f)),new(a())(m().inputOutput,"momentsOfInertia",new(o().MFFloat)(0,0,0,0,0,0,0,0,0)),new(a())(m().inputOutput,"displacers",new(o().MFNode)),new(a())(m().inputOutput,"coord",new(o().SFNode)),new(a())(m().inputOutput,"visible",new(o().SFBool)(!0)),new(a())(m().inputOutput,"bboxDisplay",new(o().SFBool)),new(a())(m().initializeOnly,"bboxSize",new(o().SFVec3f)(-1,-1,-1)),new(a())(m().initializeOnly,"bboxCenter",new(o().SFVec3f)),new(a())(m().inputOnly,"addChildren",new(o().MFNode)),new(a())(m().inputOnly,"removeChildren",new(o().MFNode)),new(a())(m().inputOutput,"children",new(o().MFNode))]),enumerable:!0}});const me=pe,fe=g().add("HAnimSegment",me);function ge(e){L().call(this,e),this.addType(m().HAnimSite)}Object.setPrototypeOf(ge.prototype,L().prototype),Object.defineProperties(ge,{..._().getStaticProperties("HAnimSite","HAnim",1,"children","3.0"),fieldDefinitions:{value:new(h())([new(a())(m().inputOutput,"metadata",new(o().SFNode)),new(a())(m().inputOutput,"description",new(o().SFString)),new(a())(m().inputOutput,"name",new(o().SFString)),new(a())(m().inputOutput,"translation",new(o().SFVec3f)),new(a())(m().inputOutput,"rotation",new(o().SFRotation)),new(a())(m().inputOutput,"scale",new(o().SFVec3f)(1,1,1)),new(a())(m().inputOutput,"scaleOrientation",new(o().SFRotation)),new(a())(m().inputOutput,"center",new(o().SFVec3f)),new(a())(m().inputOutput,"visible",new(o().SFBool)(!0)),new(a())(m().inputOutput,"bboxDisplay",new(o().SFBool)),new(a())(m().initializeOnly,"bboxSize",new(o().SFVec3f)(-1,-1,-1)),new(a())(m().initializeOnly,"bboxCenter",new(o().SFVec3f)),new(a())(m().inputOnly,"addChildren",new(o().MFNode)),new(a())(m().inputOnly,"removeChildren",new(o().MFNode)),new(a())(m().inputOutput,"children",new(o().MFNode))]),enumerable:!0}});const xe=ge,Te=g().add("HAnimSite",xe);i().add({name:"HAnim",concreteNodes:[w,H,q,de,_e,fe,Te],abstractNodes:[]});g().add("HAnimComponent",void 0)})();