Skip to content

Commit 9d74e62

Browse files
move
1 parent 0fe6ae2 commit 9d74e62

1 file changed

Lines changed: 23 additions & 15 deletions

File tree

src/model/index.js

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -578,24 +578,32 @@ let renderModel = function (modelRender, model, textures, textureNames, type, na
578578
})
579579
};
580580

581+
function setVisibilityOfInstance(meshKey, visibleScale, instanceIndex, visible) {
582+
let instance = instanceCache[meshKey];
583+
if (instance && instance.instance) {
584+
let mesh = instance.instance;
585+
let newScale;
586+
if (visible) {
587+
if (visibleScale) {
588+
newScale = visibleScale;
589+
} else {
590+
newScale = [1, 1, 1];
591+
}
592+
} else {
593+
newScale = [0, 0, 0];
594+
}
595+
let _v3s = new THREE.Vector3();
596+
mesh.setScaleAt(instanceIndex, _v3s.set(newScale[0], newScale[1], newScale[2]));
597+
return mesh;
598+
}
599+
}
600+
581601
function setVisibilityAt(x, y, z, visible) {
582602
let info = this.instancePositionMap[x + "_" + y + "_" + z];
583603
if (info) {
584-
let instance = instanceCache[info.key];
585-
if (instance && instance.instance) {
586-
let mesh = instance.instance;
587-
let newScale;
588-
if (visible) {
589-
if (info.scale) {
590-
newScale = info.scale;
591-
} else {
592-
newScale = [1, 1, 1];
593-
}
594-
} else {
595-
newScale = [0, 0, 0];
596-
}
597-
let _v3s = new THREE.Vector3();
598-
mesh.setScaleAt(info.index, _v3s.set(newScale[0], newScale[1], newScale[2]));
604+
let mesh = setVisibilityOfInstance(info.key, info.scale, info.index, visible);
605+
if (mesh) {
606+
mesh.needsUpdate();
599607
}
600608
}
601609
}

0 commit comments

Comments
 (0)