123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- class XStaticMeshFromOneGltf {
- constructor(e, t) {
- E(this, "_scene");
- E(this, "_url");
- E(this, "_group");
- E(this, "_pickable");
- E(this, "_meshes");
- E(this, "_id");
- E(this, "_lod");
- E(this, "_groupUuid");
- E(this, "_isInScene");
- E(this, "_skinInfo");
- E(this, "loadMesh", (e,t)=>{
- const r = this._meshes.length
- , n = t ? 1 : 0
- , o = this._url;
- return SceneLoader.LoadAssetContainerAsync("", o, this._scene, ()=>{
- this._scene.blockMaterialDirtyMechanism = !0
- }
- , ".glb").then(a=>{
- for (let s = a.materials.length - 1; s >= 0; --s)
- a.materials[s].dispose();
- this._scene.blockMaterialDirtyMechanism = !0;
- for (let s = 0; s < a.meshes.length; ++s) {
- const l = a.meshes[s];
- if ("instances"in l) {
- "visibility"in l && (l.visibility = 0),
- "isPickable"in l && (l.isPickable = this._pickable),
- e != null && (l.material = e),
- "hasVertexAlpha"in l && (l.hasVertexAlpha = !1);
- const u = new XStaticMesh({
- id: this._groupUuid + "-" + Math.random().toString(36).substr(2, 5),
- mesh: l,
- lod: this._lod,
- group: this._group,
- url: this._url,
- xtype: EMeshType.XStaticMesh,
- skinInfo: this._skinInfo
- });
- this._meshes.push(u)
- }
- this._scene.addMesh(l)
- }
- return !0
- }
- ).then(()=>{
- this._isInScene = !0;
- for (let a = r; a < this._meshes.length; ++a)
- this._meshes[a].mesh.visibility = n;
- return Promise.resolve(!0)
- }
- ).catch(a=>{
- log$u.error("[Engine] input gltf mesh uri error! " + a),
- Promise.reject(new XLowpolyModelError("[Engine] input gltf mesh uri error! " + a))
- }
- )
- }
- );
- this._meshes = [],
- this._scene = e,
- this._url = t.url,
- t.group != null ? this._group = t.group : this._group = "default",
- t.pick != null ? this._pickable = t.pick : this._pickable = !1,
- t.id != null ? this._id = t.id : this._id = "default",
- t.lod != null ? this._lod = t.lod : this._lod = -1,
- t.skinInfo != null ? this._skinInfo = t.skinInfo : this._skinInfo = "default",
- this._groupUuid = uuid$2(),
- this._isInScene = !1
- }
- get isinscene() {
- return this._isInScene
- }
- get groupUuid() {
- return this._groupUuid
- }
- get skinInfo() {
- return this._skinInfo
- }
- get group() {
- return this._group
- }
- get meshes() {
- return this._meshes
- }
- get url() {
- return this._url
- }
- get id() {
- return this._id
- }
- get lod() {
- return this._lod
- }
- removeFromScene() {
- if (this._isInScene) {
- this._isInScene = !1;
- for (let e = 0, t = this._meshes.length; e < t; ++e)
- this._meshes[e].mesh != null && this._scene.removeMesh(this._meshes[e].mesh)
- }
- }
- addToScene() {
- if (this._isInScene == !1) {
- this._isInScene = !0;
- for (let e = 0, t = this._meshes.length; e < t; ++e)
- this._meshes[e].mesh != null && this._scene.addMesh(this._meshes[e].mesh)
- }
- }
- toggleVisibility(e) {
- const t = e ? 1 : 0;
- for (let r = 0, n = this._meshes.length; r < n; ++r)
- "visibility"in this._meshes[r].mesh && (this._meshes[r].mesh.visibility = t)
- }
- togglePickable(e) {
- for (let t = 0, r = this._meshes.length; t < r; ++t)
- "isPickable"in this._meshes[t].mesh && (this._meshes[t].mesh.isPickable = e)
- }
- setMaterial(e) {
- for (let t = 0, r = this._meshes.length; t < r; ++t)
- "material"in this._meshes[t].mesh && (this._meshes[t].mesh.material = e)
- }
- dispose() {
- for (let e = 0, t = this._meshes.length; e < t; ++e)
- this._meshes[e].mesh.dispose(!1, !1)
- }
- }
|