From 4c203151ec12771317484d1b8ac032cd6b5c4b63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=89?= <940119273@qq.com> Date: Thu, 13 Jun 2024 08:47:26 +0000 Subject: [PATCH] =?UTF-8?q?!2804=20=E5=8A=9F=E8=83=BD:=E5=90=8A=E9=A1=B6?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=80=E9=94=AE=E5=BA=94=E7=94=A8=E6=9D=90?= =?UTF-8?q?=E8=B4=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Room/Entity/Ceiling/BulkheadCeiling.ts | 15 +++++++++++++++ src/UI/Components/Asset.tsx | 4 ++++ src/UI/Components/SourceManage/MaterialList.tsx | 5 +++++ .../Brand_library/Components/Kind_List.tsx | 5 +++++ .../ResourceLibrary/Resource_ResourceList.tsx | 5 +++++ .../ToolBar/ResourceLibrary/UserCollect.tsx | 6 +++++- 6 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/DatabaseServices/Room/Entity/Ceiling/BulkheadCeiling.ts b/src/DatabaseServices/Room/Entity/Ceiling/BulkheadCeiling.ts index 231340ca2..08e2ff6bf 100644 --- a/src/DatabaseServices/Room/Entity/Ceiling/BulkheadCeiling.ts +++ b/src/DatabaseServices/Room/Entity/Ceiling/BulkheadCeiling.ts @@ -4,6 +4,7 @@ import { LineGeometry } from "three/examples/jsm/lines/LineGeometry"; import { HostApplicationServices } from "../../../../ApplicationServices/HostApplicationServices"; import { ColorMaterial } from "../../../../Common/ColorPalette"; import { DisposeThreeObj, Object3DRemoveAll } from "../../../../Common/Dispose"; +import { UpdateDraw } from "../../../../Common/Status"; import { BufferGeometryUtils } from "../../../../Geometry/BufferGeometryUtils"; import { ContourTreeNode } from "../../../../Geometry/ExtrudeMeshGeomBuilder/ExtrudeEdgeGeometry2"; import { AsVector3, equaln } from "../../../../Geometry/GeUtils"; @@ -417,6 +418,20 @@ export class BulkheadCeiling extends RoomBase }); } + SetDefaultMaterialAtAllSlot(): void + { + this.WriteAllObjectRecord(); + for (let data of this.ContourData) + { + //材质槽要默认添加 undefined + data.Materials = [undefined]; + data.ShapeMaterialSlotData = []; + if (data.OverWriteMaterial) + data.OverWriteMaterial = undefined; + } + this.Update(UpdateDraw.Geometry); + } + UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D, material?: Material) { if (renderType === RenderType.Physical) diff --git a/src/UI/Components/Asset.tsx b/src/UI/Components/Asset.tsx index 3b44deae7..1cc9575cf 100644 --- a/src/UI/Components/Asset.tsx +++ b/src/UI/Components/Asset.tsx @@ -14,6 +14,7 @@ import { Curve } from '../../DatabaseServices/Entity/Curve'; import { Entity } from '../../DatabaseServices/Entity/Entity'; import { HardwareCompositeEntity } from '../../DatabaseServices/Hardware/HardwareCompositeEntity'; import { PhysicalMaterialRecord } from '../../DatabaseServices/PhysicalMaterialRecord'; +import { BulkheadCeiling } from '../../DatabaseServices/Room/Entity/Ceiling/BulkheadCeiling'; import { RoomWallBase } from '../../DatabaseServices/Room/Entity/Wall/RoomWallBase'; import { Text } from '../../DatabaseServices/Text/Text'; import { TextureTableRecord } from '../../DatabaseServices/Texture'; @@ -191,6 +192,9 @@ export class Asset extends React.Component en.Material = material.Id; + if (en instanceof BulkheadCeiling) + en.SetDefaultMaterialAtAllSlot(); + if (en instanceof Board) { if (userConfig.isModifyMaterial) diff --git a/src/UI/Components/SourceManage/MaterialList.tsx b/src/UI/Components/SourceManage/MaterialList.tsx index 70629553f..794cc216d 100644 --- a/src/UI/Components/SourceManage/MaterialList.tsx +++ b/src/UI/Components/SourceManage/MaterialList.tsx @@ -15,6 +15,7 @@ import { inflateBase64 } from "../../../Common/inflate"; import { Hole } from '../../../DatabaseServices/3DSolid/Hole'; import { Board } from '../../../DatabaseServices/Entity/Board'; import { PhysicalMaterialRecord } from '../../../DatabaseServices/PhysicalMaterialRecord'; +import { BulkheadCeiling } from '../../../DatabaseServices/Room/Entity/Ceiling/BulkheadCeiling'; import { RoomWallBase } from '../../../DatabaseServices/Room/Entity/Wall/RoomWallBase'; import { CommandWrap } from '../../../Editor/CommandMachine'; import { GenerateRaycaster, PointPick, Raycast } from '../../../Editor/PointPick'; @@ -277,6 +278,10 @@ export class MaterialList extends React.Component { } en.Material = newMaterial.Id; + + if (en instanceof BulkheadCeiling) + en.SetDefaultMaterialAtAllSlot(); + if (en instanceof Board) { if (userConfig.isModifyMaterial) diff --git a/src/UI/Components/ToolBar/ResourceLibrary/Brand_library/Components/Kind_List.tsx b/src/UI/Components/ToolBar/ResourceLibrary/Brand_library/Components/Kind_List.tsx index 31cba953b..833dac2bb 100644 --- a/src/UI/Components/ToolBar/ResourceLibrary/Brand_library/Components/Kind_List.tsx +++ b/src/UI/Components/ToolBar/ResourceLibrary/Brand_library/Components/Kind_List.tsx @@ -9,6 +9,7 @@ import { UserCollection } from "../../../../../../Common/HostUrl"; import { PostJson } from "../../../../../../Common/Request"; import { Hole } from "../../../../../../DatabaseServices/3DSolid/Hole"; import { Board } from "../../../../../../DatabaseServices/Entity/Board"; +import { BulkheadCeiling } from "../../../../../../DatabaseServices/Room/Entity/Ceiling/BulkheadCeiling"; import { RoomWallBase } from "../../../../../../DatabaseServices/Room/Entity/Wall/RoomWallBase"; import { CommandWrap } from "../../../../../../Editor/CommandMachine"; import { VisualSpaceBox } from "../../../../../../Editor/VisualSpaceBox"; @@ -279,6 +280,10 @@ class ResourceItem extends React.Component<{ module: ModuleData; }> { } en.Material = material.Id; + + if (en instanceof BulkheadCeiling) + en.SetDefaultMaterialAtAllSlot(); + if (en instanceof Board) { // if (userConfig.isModifyMaterial) //因为这个材质没有板材 所以我们不改它. diff --git a/src/UI/Components/ToolBar/ResourceLibrary/Resource_ResourceList.tsx b/src/UI/Components/ToolBar/ResourceLibrary/Resource_ResourceList.tsx index a10ab23ea..09d2ada7c 100644 --- a/src/UI/Components/ToolBar/ResourceLibrary/Resource_ResourceList.tsx +++ b/src/UI/Components/ToolBar/ResourceLibrary/Resource_ResourceList.tsx @@ -11,6 +11,7 @@ import { PostJson } from '../../../../Common/Request'; import { Hole } from '../../../../DatabaseServices/3DSolid/Hole'; import { Board } from '../../../../DatabaseServices/Entity/Board'; import { PhysicalMaterialRecord } from '../../../../DatabaseServices/PhysicalMaterialRecord'; +import { BulkheadCeiling } from '../../../../DatabaseServices/Room/Entity/Ceiling/BulkheadCeiling'; import { RoomWallBase } from '../../../../DatabaseServices/Room/Entity/Wall/RoomWallBase'; import { CommandWrap } from '../../../../Editor/CommandMachine'; import { VisualSpaceBox } from '../../../../Editor/VisualSpaceBox'; @@ -480,6 +481,10 @@ export class ResourceItem extends Component<{ module: ModuleData; }, {}> } en.Material = material.Id; + + if (en instanceof BulkheadCeiling) + en.SetDefaultMaterialAtAllSlot(); + if (en instanceof Board) { // if (userConfig.isModifyMaterial) //因为这个材质没有板材 所以我们不改它. diff --git a/src/UI/Components/ToolBar/ResourceLibrary/UserCollect.tsx b/src/UI/Components/ToolBar/ResourceLibrary/UserCollect.tsx index 2956b7597..b8d74275c 100644 --- a/src/UI/Components/ToolBar/ResourceLibrary/UserCollect.tsx +++ b/src/UI/Components/ToolBar/ResourceLibrary/UserCollect.tsx @@ -10,6 +10,7 @@ import { PostJson } from '../../../../Common/Request'; import { Hole } from '../../../../DatabaseServices/3DSolid/Hole'; import { Board } from '../../../../DatabaseServices/Entity/Board'; import { PhysicalMaterialRecord } from '../../../../DatabaseServices/PhysicalMaterialRecord'; +import { BulkheadCeiling } from '../../../../DatabaseServices/Room/Entity/Ceiling/BulkheadCeiling'; import { RoomWallBase } from '../../../../DatabaseServices/Room/Entity/Wall/RoomWallBase'; import { CommandWrap } from '../../../../Editor/CommandMachine'; import { userConfig } from '../../../../Editor/UserConfig'; @@ -136,8 +137,11 @@ export default class UserCollect extends Component<{}, {}> for (let [num, mtl] of en.OverWriteMaterial) en.OverWriteMaterial.set(num, material.Id); } - en.Material = material.Id; + + if (en instanceof BulkheadCeiling) + en.SetDefaultMaterialAtAllSlot(); + if (en instanceof Board) { if (userConfig.isModifyMaterial)