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