66 lines
1.9 KiB
C#
66 lines
1.9 KiB
C#
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;
|
||
}
|
||
}
|
||
}
|