优化:响应材质参数更改

pull/1920/head
ChenX 2 years ago
parent a20f5b7235
commit 80ff00e643

@ -1609,6 +1609,12 @@ export class ExtrudeSolid extends Entity
let mesh = new Mesh(this.MeshGeometry, ColorMaterial.GetPrintConceptualMaterial());
return [line, mesh];
}
private get CaseShadow()
{
return !this.MeshMaterial.transparent || this.MeshMaterial.opacity === 1;
}
InitDrawObject(renderType: RenderType = RenderType.Wireframe)
{
if (renderType === RenderType.Wireframe)
@ -1626,8 +1632,12 @@ export class ExtrudeSolid extends Entity
{
let mesh = new Mesh(this.MeshGeometry, this.MeshMaterial);
mesh.castShadow = this.MeshMaterial.opacity === 1;
mesh.receiveShadow = mesh.castShadow;
Object.defineProperty(mesh, "castShadow", {
get: () => this.CaseShadow
});
Object.defineProperty(mesh, "receiveShadow", {
get: () => this.CaseShadow
});
return mesh;
}
@ -1643,8 +1653,12 @@ export class ExtrudeSolid extends Entity
{
let mesh = new Mesh(this.MeshGeometry, this.MeshMaterial);
mesh.castShadow = this.MeshMaterial.opacity === 1;
mesh.receiveShadow = mesh.castShadow;
Object.defineProperty(mesh, "castShadow", {
get: () => this.CaseShadow
});
Object.defineProperty(mesh, "receiveShadow", {
get: () => this.CaseShadow
});
return new Object3D().add(
mesh,
@ -2025,8 +2039,12 @@ export class ExtrudeSolid extends Entity
{
let mesh = new Mesh(this.MeshGeometry, this.MeshMaterial);
mesh.castShadow = this.MeshMaterial.opacity === 1;
mesh.receiveShadow = mesh.castShadow;
Object.defineProperty(mesh, "castShadow", {
get: () => this.CaseShadow
});
Object.defineProperty(mesh, "receiveShadow", {
get: () => this.CaseShadow
});
return obj.add(
mesh,
@ -2055,9 +2073,6 @@ export class ExtrudeSolid extends Entity
{
let mesh = obj as Mesh;
mesh.material = this.MeshMaterial;
mesh.castShadow = this.MeshMaterial.opacity === 1;
mesh.receiveShadow = mesh.castShadow;
}
}

Loading…
Cancel
Save