Files
MsAddIns/CenterCurveAddins/MyMeshProcessor.cs

66 lines
1.9 KiB
C#
Raw Normal View History

2026-02-28 21:01:57 +08:00
using System.Collections.Generic;
using Bentley.DgnPlatformNET;
using Bentley.DgnPlatformNET.Elements;
using Bentley.GeometryNET;
using Bentley.MstnPlatformNET;
namespace CenterCurveAddins
{
//TODO
/// <summary>
/// 替换成算量源码中的MyMeshProcessor请使用MyMeshProcessor
/// </summary>
public class MyMeshProcessor : ElementGraphicsProcessor
{
DTransform3d myDTran;
public List<MeshHeaderElement> resultList = new List<MeshHeaderElement>();
public MyMeshProcessor()
{
myDTran = DTransform3d.Identity;
}
public override void AnnounceTransform(DTransform3d trans)
{
myDTran = trans;
}
public override FacetOptions GetFacetOptions()
{
FacetOptions factOpt = new FacetOptions();
factOpt.EdgeHiding = false;
factOpt.MaxPerFace = 3;
factOpt.CurvedSurfaceMaxPerFace = 3;
factOpt.NormalsRequired = true;
factOpt.ParamsRequired = true;
return factOpt;
}
public override bool ProcessAsBody(bool isCurved)
{
return false;
}
public override bool ProcessAsFacets(bool isPolyface)
{
return true;
}
public override BentleyStatus ProcessBody(SolidKernelEntity entity)
{
return BentleyStatus.Error;
}
public override BentleyStatus ProcessFacets(PolyfaceHeader meshData, bool filled)
{
MeshHeaderElement meshHeaderEle = new MeshHeaderElement(Session.Instance.GetActiveDgnModel(), null, meshData);
TransformInfo transInfo = new TransformInfo(myDTran);
meshHeaderEle.ApplyTransform(transInfo);
meshHeaderEle.AddToModel();
if (null != meshHeaderEle)
{
resultList.Add(meshHeaderEle);
}
return BentleyStatus.Success;
}
}
}