@babylonjs/viewer
Version:
The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.
3 lines (2 loc) • 15.4 kB
JavaScript
import{Q as e,M as t,a7 as r,j as n,C as a,bS as o}from"./index-Bw2N6w1y.esm.min.js";const s=[{regex:new RegExp("^/nodes/\\d+/extensions/")}];class i{constructor(e,t){this._gltf=e,this._infoTree=t}convert(e){let t,r=this._gltf,n=this._infoTree;if(!e.startsWith("/"))throw new Error("Path must start with a /");const a=e.split("/");if(a.shift(),a[a.length-1].includes(".length")){const e=a[a.length-1].split(".");a.pop(),a.push(...e)}let o=!1;for(const i of a){const a="length"===i;if(a&&!n.__array__)throw new Error(`Path ${e} is invalid`);if(n.__ignoreObjectTree__&&(o=!0),n.__array__&&!a)n=n.__array__;else if(n=n[i],!n)throw new Error(`Path ${e} is invalid`);if(!o)if(void 0===r){if(!s.find((t=>t.regex.test(e))))throw new Error(`Path ${e} is invalid`)}else a||(r=r?.[i]);(n.__target__||a)&&(t=r)}return{object:t,info:n}}}function g(e,t,r,n){const a=l(e);return n?a[r][n]:a[r]}function l(e,t,r){return e._data?.[r?.fillMode??a.MATERIAL_TriangleFillMode]?.babylonMaterial}function m(e,t){return{offset:{componentsCount:2,type:"Vector2",get:(n,a,o)=>{const s=g(n,0,e,t);return new r(s?.uOffset,s?.vOffset)},getTarget:l,set:(r,n,a,o)=>{const s=g(n,0,e,t);s.uOffset=r.x,s.vOffset=r.y},getPropertyName:[()=>`${e}${t?"."+t:""}.uOffset`,()=>`${e}${t?"."+t:""}.vOffset`]},rotation:{type:"number",get:(r,n,a)=>g(r,0,e,t)?.wAng,getTarget:l,set:(r,n,a,o)=>g(n,0,e,t).wAng=r,getPropertyName:[()=>`${e}${t?"."+t:""}.wAng`]},scale:{componentsCount:2,type:"Vector2",get:(n,a,o)=>{const s=g(n,0,e,t);return new r(s?.uScale,s?.vScale)},getTarget:l,set:(r,n,a,o)=>{const s=g(n,0,e,t);s.uScale=r.x,s.vScale=r.y},getPropertyName:[()=>`${e}${t?"."+t:""}.uScale`,()=>`${e}${t?"."+t:""}.vScale`]}}}const y={cameras:{__array__:{__target__:!0,orthographic:{xmag:{componentsCount:2,type:"Vector2",get:e=>new r(e._babylonCamera?.orthoLeft??0,e._babylonCamera?.orthoRight??0),set:(e,t)=>{t._babylonCamera&&(t._babylonCamera.orthoLeft=e.x,t._babylonCamera.orthoRight=e.y)},getTarget:e=>e,getPropertyName:[()=>"orthoLeft",()=>"orthoRight"]},ymag:{componentsCount:2,type:"Vector2",get:e=>new r(e._babylonCamera?.orthoBottom??0,e._babylonCamera?.orthoTop??0),set:(e,t)=>{t._babylonCamera&&(t._babylonCamera.orthoBottom=e.x,t._babylonCamera.orthoTop=e.y)},getTarget:e=>e,getPropertyName:[()=>"orthoBottom",()=>"orthoTop"]},zfar:{type:"number",get:e=>e._babylonCamera?.maxZ,set:(e,t)=>{t._babylonCamera&&(t._babylonCamera.maxZ=e)},getTarget:e=>e,getPropertyName:[()=>"maxZ"]},znear:{type:"number",get:e=>e._babylonCamera?.minZ,set:(e,t)=>{t._babylonCamera&&(t._babylonCamera.minZ=e)},getTarget:e=>e,getPropertyName:[()=>"minZ"]}},perspective:{aspectRatio:{type:"number",get:e=>e._babylonCamera?.getEngine().getAspectRatio(e._babylonCamera),getTarget:e=>e,getPropertyName:[()=>"aspectRatio"],isReadOnly:!0},yfov:{type:"number",get:e=>e._babylonCamera?.fov,set:(e,t)=>{t._babylonCamera&&(t._babylonCamera.fov=e)},getTarget:e=>e,getPropertyName:[()=>"fov"]},zfar:{type:"number",get:e=>e._babylonCamera?.maxZ,set:(e,t)=>{t._babylonCamera&&(t._babylonCamera.maxZ=e)},getTarget:e=>e,getPropertyName:[()=>"maxZ"]},znear:{type:"number",get:e=>e._babylonCamera?.minZ,set:(e,t)=>{t._babylonCamera&&(t._babylonCamera.minZ=e)},getTarget:e=>e,getPropertyName:[()=>"minZ"]}}}},nodes:{length:{type:"number",get:e=>e.length,getTarget:e=>e.map((e=>e._babylonTransformNode)),getPropertyName:[()=>"length"]},__array__:{__target__:!0,translation:{type:"Vector3",get:e=>e._babylonTransformNode?.position,set:(e,t)=>t._babylonTransformNode?.position.copyFrom(e),getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"position"]},rotation:{type:"Quaternion",get:e=>e._babylonTransformNode?.rotationQuaternion,set:(e,t)=>t._babylonTransformNode?.rotationQuaternion?.copyFrom(e),getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"rotationQuaternion"]},scale:{type:"Vector3",get:e=>e._babylonTransformNode?.scaling,set:(e,t)=>t._babylonTransformNode?.scaling.copyFrom(e),getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"scaling"]},weights:{length:{type:"number",get:e=>e._numMorphTargets,getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"influence"]},__array__:{__target__:!0,type:"number",get:(e,t)=>void 0!==t?e._primitiveBabylonMeshes?.[0].morphTargetManager?.getTarget(t).influence:void 0,getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"influence"]},type:"number[]",get:(e,t)=>[0],getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"influence"]},matrix:{type:"Matrix",get:e=>t.Compose(e._babylonTransformNode?.scaling,e._babylonTransformNode?.rotationQuaternion,e._babylonTransformNode?.position),getTarget:e=>e._babylonTransformNode,isReadOnly:!0},globalMatrix:{type:"Matrix",get:e=>{const r=t.Identity();let n=e.parent;for(;n&&n.parent;)n=n.parent;const a=e._babylonTransformNode?.position._isDirty||e._babylonTransformNode?.rotationQuaternion?._isDirty||e._babylonTransformNode?.scaling._isDirty;if(n){const t=n._babylonTransformNode?.computeWorldMatrix(!0).invert();t&&e._babylonTransformNode?.computeWorldMatrix(a)?.multiplyToRef(t,r)}else e._babylonTransformNode&&r.copyFrom(e._babylonTransformNode.computeWorldMatrix(a));return r},getTarget:e=>e._babylonTransformNode,isReadOnly:!0},extensions:{EXT_lights_ies:{multiplier:{type:"number",get:e=>e._babylonTransformNode?.getChildren((e=>e instanceof o),!0)[0]?.intensity,getTarget:e=>e._babylonTransformNode?.getChildren((e=>e instanceof o),!0)[0],set:(e,t)=>{if(t._babylonTransformNode){const r=t._babylonTransformNode.getChildren((e=>e instanceof o),!0)[0];r&&(r.intensity=e)}}},color:{type:"Color3",get:e=>e._babylonTransformNode?.getChildren((e=>e instanceof o),!0)[0]?.diffuse,getTarget:e=>e._babylonTransformNode?.getChildren((e=>e instanceof o),!0)[0],set:(e,t)=>{if(t._babylonTransformNode){const r=t._babylonTransformNode.getChildren((e=>e instanceof o),!0)[0];r&&(r.diffuse=e)}}}}}}},materials:{__array__:{__target__:!0,emissiveFactor:{type:"Color3",get:(e,t,r)=>l(e,t,r).emissiveColor,set:(e,t,r,n)=>l(t,r,n).emissiveColor.copyFrom(e),getTarget:(e,t,r)=>l(e,t,r),getPropertyName:[()=>"emissiveColor"]},emissiveTexture:{extensions:{KHR_texture_transform:m("emissiveTexture")}},normalTexture:{scale:{type:"number",get:(e,t,r)=>g(e,r,"bumpTexture")?.level,set:(e,t,r,n)=>{const a=g(t,n,"bumpTexture");a&&(a.level=e)},getTarget:(e,t,r)=>l(e,t,r),getPropertyName:[()=>"level"]},extensions:{KHR_texture_transform:m("bumpTexture")}},occlusionTexture:{strength:{type:"number",get:(e,t,r)=>l(e,t,r).ambientTextureStrength,set:(e,t,r,n)=>{const a=l(t,r,n);a&&(a.ambientTextureStrength=e)},getTarget:(e,t,r)=>l(e,t,r),getPropertyName:[()=>"ambientTextureStrength"]},extensions:{KHR_texture_transform:m("ambientTexture")}},pbrMetallicRoughness:{baseColorFactor:{type:"Color4",get:(e,t,r)=>{const a=l(e,t,r);return n.FromColor3(a.albedoColor,a.alpha)},set:(e,t,r,n)=>{const a=l(t,r,n);a.albedoColor.set(e.r,e.g,e.b),a.alpha=e.a},getTarget:(e,t,r)=>l(e,t,r),getPropertyName:[()=>"albedoColor",()=>"alpha"]},baseColorTexture:{extensions:{KHR_texture_transform:m("albedoTexture")}},metallicFactor:{type:"number",get:(e,t,r)=>l(e,t,r).metallic,set:(e,t,r,n)=>{const a=l(t,r,n);a&&(a.metallic=e)},getTarget:(e,t,r)=>l(e,t,r),getPropertyName:[()=>"metallic"]},roughnessFactor:{type:"number",get:(e,t,r)=>l(e,t,r).roughness,set:(e,t,r,n)=>{const a=l(t,r,n);a&&(a.roughness=e)},getTarget:(e,t,r)=>l(e,t,r),getPropertyName:[()=>"roughness"]},metallicRoughnessTexture:{extensions:{KHR_texture_transform:m("metallicTexture")}}},extensions:{KHR_materials_anisotropy:{anisotropyStrength:{type:"number",get:(e,t,r)=>l(e,t,r).anisotropy.intensity,set:(e,t,r,n)=>{l(t,r,n).anisotropy.intensity=e},getTarget:(e,t,r)=>l(e,t,r),getPropertyName:[()=>"anisotropy.intensity"]},anisotropyRotation:{type:"number",get:(e,t,r)=>l(e,t,r).anisotropy.angle,set:(e,t,r,n)=>{l(t,r,n).anisotropy.angle=e},getTarget:(e,t,r)=>l(e,t,r),getPropertyName:[()=>"anisotropy.angle"]},anisotropyTexture:{extensions:{KHR_texture_transform:m("anisotropy","texture")}}},KHR_materials_clearcoat:{clearcoatFactor:{type:"number",get:(e,t,r)=>l(e,t,r).clearCoat.intensity,set:(e,t,r,n)=>{l(t,r,n).clearCoat.intensity=e},getTarget:(e,t,r)=>l(e,t,r),getPropertyName:[()=>"clearCoat.intensity"]},clearcoatRoughnessFactor:{type:"number",get:(e,t,r)=>l(e,t,r).clearCoat.roughness,set:(e,t,r,n)=>{l(t,r,n).clearCoat.roughness=e},getTarget:(e,t,r)=>l(e,t,r),getPropertyName:[()=>"clearCoat.roughness"]},clearcoatTexture:{extensions:{KHR_texture_transform:m("clearCoat","texture")}},clearcoatNormalTexture:{scale:{type:"number",get:(e,t,r)=>l(e,t,r).clearCoat.bumpTexture?.level,getTarget:l,set:(e,t,r,n)=>l(t,r,n).clearCoat.bumpTexture.level=e},extensions:{KHR_texture_transform:m("clearCoat","bumpTexture")}},clearcoatRoughnessTexture:{extensions:{KHR_texture_transform:m("clearCoat","textureRoughness")}}},KHR_materials_dispersion:{dispersion:{type:"number",get:(e,t,r)=>l(e,t,r).subSurface.dispersion,getTarget:l,set:(e,t,r,n)=>l(t,r,n).subSurface.dispersion=e}},KHR_materials_emissive_strength:{emissiveStrength:{type:"number",get:(e,t,r)=>l(e,t,r).emissiveIntensity,getTarget:l,set:(e,t,r,n)=>l(t,r,n).emissiveIntensity=e}},KHR_materials_ior:{ior:{type:"number",get:(e,t,r)=>l(e,t,r).indexOfRefraction,getTarget:l,set:(e,t,r,n)=>l(t,r,n).indexOfRefraction=e}},KHR_materials_iridescence:{iridescenceFactor:{type:"number",get:(e,t,r)=>l(e,t,r).iridescence.intensity,getTarget:l,set:(e,t,r,n)=>l(t,r,n).iridescence.intensity=e},iridescenceIor:{type:"number",get:(e,t,r)=>l(e,t,r).iridescence.indexOfRefraction,getTarget:l,set:(e,t,r,n)=>l(t,r,n).iridescence.indexOfRefraction=e},iridescenceTexture:{extensions:{KHR_texture_transform:m("iridescence","texture")}},iridescenceThicknessMaximum:{type:"number",get:(e,t,r)=>l(e,t,r).iridescence.maximumThickness,getTarget:l,set:(e,t,r,n)=>l(t,r,n).iridescence.maximumThickness=e},iridescenceThicknessMinimum:{type:"number",get:(e,t,r)=>l(e,t,r).iridescence.minimumThickness,getTarget:l,set:(e,t,r,n)=>l(t,r,n).iridescence.minimumThickness=e},iridescenceThicknessTexture:{extensions:{KHR_texture_transform:m("iridescence","thicknessTexture")}}},KHR_materials_sheen:{sheenColorFactor:{type:"Color3",get:(e,t,r)=>l(e,t,r).sheen.color,getTarget:l,set:(e,t,r,n)=>l(t,r,n).sheen.color.copyFrom(e)},sheenColorTexture:{extensions:{KHR_texture_transform:m("sheen","texture")}},sheenRoughnessFactor:{type:"number",get:(e,t,r)=>l(e,t,r).sheen.intensity,getTarget:l,set:(e,t,r,n)=>l(t,r,n).sheen.intensity=e},sheenRoughnessTexture:{extensions:{KHR_texture_transform:m("sheen","thicknessTexture")}}},KHR_materials_specular:{specularFactor:{type:"number",get:(e,t,r)=>l(e,t,r).metallicF0Factor,getTarget:l,set:(e,t,r,n)=>l(t,r,n).metallicF0Factor=e,getPropertyName:[()=>"metallicF0Factor"]},specularColorFactor:{type:"Color3",get:(e,t,r)=>l(e,t,r).metallicReflectanceColor,getTarget:l,set:(e,t,r,n)=>l(t,r,n).metallicReflectanceColor.copyFrom(e),getPropertyName:[()=>"metallicReflectanceColor"]},specularTexture:{extensions:{KHR_texture_transform:m("metallicReflectanceTexture")}},specularColorTexture:{extensions:{KHR_texture_transform:m("reflectanceTexture")}}},KHR_materials_transmission:{transmissionFactor:{type:"number",get:(e,t,r)=>l(e,t,r).subSurface.refractionIntensity,getTarget:l,set:(e,t,r,n)=>l(t,r,n).subSurface.refractionIntensity=e,getPropertyName:[()=>"subSurface.refractionIntensity"]},transmissionTexture:{extensions:{KHR_texture_transform:m("subSurface","refractionIntensityTexture")}}},KHR_materials_diffuse_transmission:{diffuseTransmissionFactor:{type:"number",get:(e,t,r)=>l(e,t,r).subSurface.translucencyIntensity,getTarget:l,set:(e,t,r,n)=>l(t,r,n).subSurface.translucencyIntensity=e},diffuseTransmissionTexture:{extensions:{KHR_texture_transform:m("subSurface","translucencyIntensityTexture")}},diffuseTransmissionColorFactor:{type:"Color3",get:(e,t,r)=>l(e,t,r).subSurface.translucencyColor,getTarget:l,set:(e,t,r,n)=>e&&l(t,r,n).subSurface.translucencyColor?.copyFrom(e)},diffuseTransmissionColorTexture:{extensions:{KHR_texture_transform:m("subSurface","translucencyColorTexture")}}},KHR_materials_volume:{attenuationColor:{type:"Color3",get:(e,t,r)=>l(e,t,r).subSurface.tintColor,getTarget:l,set:(e,t,r,n)=>l(t,r,n).subSurface.tintColor.copyFrom(e)},attenuationDistance:{type:"number",get:(e,t,r)=>l(e,t,r).subSurface.tintColorAtDistance,getTarget:l,set:(e,t,r,n)=>l(t,r,n).subSurface.tintColorAtDistance=e},thicknessFactor:{type:"number",get:(e,t,r)=>l(e,t,r).subSurface.maximumThickness,getTarget:l,set:(e,t,r,n)=>l(t,r,n).subSurface.maximumThickness=e},thicknessTexture:{extensions:{KHR_texture_transform:m("subSurface","thicknessTexture")}}}}}},extensions:{KHR_lights_punctual:{lights:{length:{type:"number",get:e=>e.length,getTarget:e=>e.map((e=>e._babylonLight)),getPropertyName:[e=>"length"]},__array__:{__target__:!0,color:{type:"Color3",get:e=>e._babylonLight?.diffuse,set:(e,t)=>t._babylonLight?.diffuse.copyFrom(e),getTarget:e=>e._babylonLight,getPropertyName:[e=>"diffuse"]},intensity:{type:"number",get:e=>e._babylonLight?.intensity,set:(e,t)=>t._babylonLight?t._babylonLight.intensity=e:void 0,getTarget:e=>e._babylonLight,getPropertyName:[e=>"intensity"]},range:{type:"number",get:e=>e._babylonLight?.range,set:(e,t)=>t._babylonLight?t._babylonLight.range=e:void 0,getTarget:e=>e._babylonLight,getPropertyName:[e=>"range"]},spot:{innerConeAngle:{type:"number",get:e=>e._babylonLight?.innerAngle,set:(e,t)=>t._babylonLight?t._babylonLight.innerAngle=e:void 0,getTarget:e=>e._babylonLight,getPropertyName:[e=>"innerConeAngle"]},outerConeAngle:{type:"number",get:e=>e._babylonLight?.angle,set:(e,t)=>t._babylonLight?t._babylonLight.angle=e:void 0,getTarget:e=>e._babylonLight,getPropertyName:[e=>"outerConeAngle"]}}}}},EXT_lights_ies:{lights:{length:{type:"number",get:e=>e.length,getTarget:e=>e.map((e=>e._babylonLight)),getPropertyName:[e=>"length"]}}},EXT_lights_image_based:{lights:{length:{type:"number",get:e=>e.length,getTarget:e=>e.map((e=>e._babylonTexture)),getPropertyName:[e=>"length"]},__array__:{__target__:!0,intensity:{type:"number",get:e=>e._babylonTexture?.level,set:(e,t)=>{t._babylonTexture&&(t._babylonTexture.level=e)},getTarget:e=>e._babylonTexture},rotation:{type:"Quaternion",get:t=>t._babylonTexture&&e.FromRotationMatrix(t._babylonTexture?.getReflectionTextureMatrix()),set:(r,n)=>{n._babylonTexture&&(n._babylonTexture.getScene()?.useRightHandedSystem||(r=e.Inverse(r)),t.FromQuaternionToRef(r,n._babylonTexture.getReflectionTextureMatrix()))},getTarget:e=>e._babylonTexture}}}}},animations:{length:{type:"number",get:e=>e.length,getTarget:e=>e.map((e=>e._babylonAnimationGroup)),getPropertyName:[()=>"length"]},__array__:{}},meshes:{length:{type:"number",get:e=>e.length,getTarget:e=>e.map((e=>e.primitives[0]._instanceData?.babylonSourceMesh)),getPropertyName:[()=>"length"]},__array__:{}}};function b(e){return new i(e,y)}function _(e){const t=e.split("/").map((e=>e.replace(/{}/g,"__array__")));let r=y;for(const e of t)e&&(r=r[e]);if(r&&r.type&&r.get)return r}function c(e,t){const r=e.split("/").map((e=>e.replace(/{}/g,"__array__")));let n=y;for(const e of r)e&&(n=n[e]);n&&n.type&&n.get&&(n.interpolation=t)}function u(e,t){const r=e.split("/").map((e=>e.replace(/{}/g,"__array__")));let n=y;for(const e of r)if(e){if(!n[e]){if("?"===e){n.__ignoreObjectTree__=!0;continue}n[e]={},"__array__"===e&&(n[e].__target__=!0)}n=n[e]}Object.assign(n,t)}export{u as A,_ as G,c as S,b as a};
//# sourceMappingURL=objectModelMapping-DX92iJ8M.esm.min.js.map