Files
MsAddIns/CenterCurveAddins/MyMeshProcessor.cs
2026-02-28 21:01:57 +08:00

66 lines
1.9 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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;
}
}
}