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;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|