using System.Collections.Generic;
using Bentley.DgnPlatformNET;
using Bentley.DgnPlatformNET.Elements;
using Bentley.GeometryNET;
using Bentley.MstnPlatformNET;
namespace CenterCurveAddins
{
//TODO
///
/// 替换成算量源码中的MyMeshProcessor(请使用MyMeshProcessor)
///
public class MyMeshProcessor : ElementGraphicsProcessor
{
DTransform3d myDTran;
public List resultList = new List();
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;
}
}
}