@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) • 16.6 kB
JavaScript
import{b3 as e,aD as t,M as r,b1 as n,C as a}from"./index-BPURObVq.esm.min.js";import{S as o}from"./spotLight.pure-5s2DDDIt.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 b(t,r){return{offset:{componentsCount:2,type:"Vector2",get:(n,a,o)=>{const s=g(n,0,t,r);return new e(s?.uOffset,s?.vOffset)},getTarget:l,set:(e,n,a,o)=>{const s=g(n,0,t,r);s.uOffset=e.x,s.vOffset=e.y},getPropertyName:[()=>`${t}${r?"."+r:""}.uOffset`,()=>`${t}${r?"."+r:""}.vOffset`]},rotation:{type:"number",get:(e,n,a)=>g(e,0,t,r)?.wAng,getTarget:l,set:(e,n,a,o)=>g(n,0,t,r).wAng=e,getPropertyName:[()=>`${t}${r?"."+r:""}.wAng`]},scale:{componentsCount:2,type:"Vector2",get:(n,a,o)=>{const s=g(n,0,t,r);return new e(s?.uScale,s?.vScale)},getTarget:l,set:(e,n,a,o)=>{const s=g(n,0,t,r);s.uScale=e.x,s.vScale=e.y},getPropertyName:[()=>`${t}${r?"."+r:""}.uScale`,()=>`${t}${r?"."+r:""}.vScale`]}}}const m={cameras:{__array__:{__target__:!0,orthographic:{xmag:{componentsCount:2,type:"Vector2",get:t=>new e(t._babylonCamera?.orthoLeft??0,t._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:t=>new e(t._babylonCamera?.orthoBottom??0,t._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=>r.Compose(e._babylonTransformNode?.scaling,e._babylonTransformNode?.rotationQuaternion,e._babylonTransformNode?.position),getTarget:e=>e._babylonTransformNode,isReadOnly:!0},globalMatrix:{type:"Matrix",get:e=>{const t=r.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 r=n._babylonTransformNode?.computeWorldMatrix(!0).invert();r&&e._babylonTransformNode?.computeWorldMatrix(a)?.multiplyToRef(r,t)}else e._babylonTransformNode&&t.copyFrom(e._babylonTransformNode.computeWorldMatrix(a));return t},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)}}}},KHR_node_visibility:{visible:{type:"boolean",get:e=>!!e._primitiveBabylonMeshes&&e._primitiveBabylonMeshes[0].isVisible,getTarget:()=>{},set:(e,t)=>{t._primitiveBabylonMeshes&&t._primitiveBabylonMeshes.forEach(t=>t.isVisible=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:b("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:b("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:b("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:b("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:b("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:b("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:b("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:b("clearCoat","bumpTexture")}},clearcoatRoughnessTexture:{extensions:{KHR_texture_transform:b("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:b("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:b("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:b("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:b("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:b("metallicReflectanceTexture")}},specularColorTexture:{extensions:{KHR_texture_transform:b("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:b("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:b("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:b("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:b("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_area:{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"]},size:{type:"number",get:e=>e._babylonLight?.height,set:(e,t)=>t._babylonLight?t._babylonLight.height=e:void 0,getTarget:e=>e._babylonLight,getPropertyName:[e=>"size"]},rect:{aspect:{type:"number",get:e=>e._babylonLight?.width/e._babylonLight?.height,set:(e,t)=>t._babylonLight?t._babylonLight.width=e*t._babylonLight.height:void 0,getTarget:e=>e._babylonLight,getPropertyName:[e=>"aspect"]}}}}},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:e=>e._babylonTexture&&t.FromRotationMatrix(e._babylonTexture?.getReflectionTextureMatrix()),set:(e,n)=>{n._babylonTexture&&(n._babylonTexture.getScene()?.useRightHandedSystem||(e=t.Inverse(e)),r.FromQuaternionToRef(e,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 y(e){return new i(e,m)}function _(e){const t=e.split("/").map(e=>e.replace(/{}/g,"__array__"));let r=m;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=m;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=m;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,y as G,c as S,_ as a};
//# sourceMappingURL=objectModelMapping-ClgDmo5Q.esm.min.js.map