|
|
|
@ -11,7 +11,6 @@ import { BSPGroupParse } from "../Geometry/BSPGroupParse";
|
|
|
|
|
import { EdgesGeometry2 } from "../Geometry/EdgeGeometry";
|
|
|
|
|
import { cZeroVec, equaln, equalv2, equalv3, isIntersect, isParallelTo, MoveMatrix } from "../Geometry/GeUtils";
|
|
|
|
|
import { CSG } from "../Geometry/ThreeCSG";
|
|
|
|
|
import { GraphicsConfig } from "../GraphicsSystem/Config";
|
|
|
|
|
import { RenderType } from "../GraphicsSystem/RenderType";
|
|
|
|
|
import { BlockTableRecord } from "./BlockTableRecord";
|
|
|
|
|
import { Factory } from "./CADFactory";
|
|
|
|
@ -966,25 +965,45 @@ export class ExtureSolid extends Entity
|
|
|
|
|
private GetObject3DByRenderType(renderType: RenderType)
|
|
|
|
|
{
|
|
|
|
|
if (renderType === RenderType.Wireframe)
|
|
|
|
|
return new LineSegments(new EdgesGeometry2(this.GeneralGeometry(), 2), ColorMaterial.GetLineMaterial(this.ColorIndex))
|
|
|
|
|
return new LineSegments(this.EdgeGeometry, ColorMaterial.GetLineMaterial(this.ColorIndex))
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
let mesh = new Mesh(this.GeneralGeometry(), this.MeshMaterial);
|
|
|
|
|
let mesh = new Mesh(this.MeshGeometry, this.MeshMaterial);
|
|
|
|
|
mesh.castShadow = true;
|
|
|
|
|
mesh.receiveShadow = GraphicsConfig.useShadow;
|
|
|
|
|
mesh.receiveShadow = HostApplicationServices.UseShadow;
|
|
|
|
|
return mesh;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
InitDrawObject(renderType: RenderType = RenderType.Wireframe)
|
|
|
|
|
{
|
|
|
|
|
return new Object3D().add(this.GetObject3DByRenderType(renderType));
|
|
|
|
|
return new Object3D().add(this.GetObject3DByRenderType(renderType)).add(this.GetObject3DByRenderType(RenderType.Wireframe));
|
|
|
|
|
}
|
|
|
|
|
get UCGenerator()
|
|
|
|
|
{
|
|
|
|
|
return boardUVGenerator;
|
|
|
|
|
}
|
|
|
|
|
GeneralGeometry()
|
|
|
|
|
|
|
|
|
|
private _MeshGeometry: Geometry;
|
|
|
|
|
private get MeshGeometry()
|
|
|
|
|
{
|
|
|
|
|
if (this._MeshGeometry)
|
|
|
|
|
return this._MeshGeometry;
|
|
|
|
|
|
|
|
|
|
this._MeshGeometry = this.GeneralGeometry();
|
|
|
|
|
return this._MeshGeometry;
|
|
|
|
|
}
|
|
|
|
|
private _EdgeGeometry: EdgesGeometry2;
|
|
|
|
|
private get EdgeGeometry()
|
|
|
|
|
{
|
|
|
|
|
if (this._EdgeGeometry)
|
|
|
|
|
return this._EdgeGeometry;
|
|
|
|
|
|
|
|
|
|
this._EdgeGeometry = new EdgesGeometry2(this.MeshGeometry, 2);
|
|
|
|
|
return this._EdgeGeometry;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private GeneralGeometry()
|
|
|
|
|
{
|
|
|
|
|
let extrudeSettings: ExtrudeGeometryOptions = {
|
|
|
|
|
steps: 1,
|
|
|
|
@ -1028,6 +1047,8 @@ export class ExtureSolid extends Entity
|
|
|
|
|
UpdateDrawObject(type: RenderType, obj: Object3D)
|
|
|
|
|
{
|
|
|
|
|
DisposeThreeObj(obj);
|
|
|
|
|
this._EdgeGeometry = undefined;
|
|
|
|
|
this._MeshGeometry = undefined;
|
|
|
|
|
obj.add(this.GetObject3DByRenderType(type));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|