public IXbimFace CreateFace(IIfcPolyLoop loop, ILogger logger) { using (new Tracer(LogHelper.CurrentFunctionName(), this._logger, loop)) { return(_engine.CreateFace(loop, logger)); } }
private static void Report(IIfcPolyLoop bound, TextHighliter sb) { sb.Append($"-LAYER M {bound.Polygon.Count} ", Brushes.Black); sb.Append("3DPOLY", Brushes.Black); var first = bound.Polygon.FirstOrDefault(); IIfcCartesianPoint last = null; foreach (var ifcCartesianPoint in bound.Polygon) { WritePointCoord(sb, ifcCartesianPoint); last = ifcCartesianPoint; } if (false && last != null) { if (!last.Equals(first)) { sb.Append($";open polyloop", Brushes.Black); } } sb.Append($"", Brushes.Black); sb.Append($"-HYPERLINK I O l #{bound.EntityLabel}", Brushes.Black); sb.Append($"", Brushes.Black); sb.Append($"", Brushes.Black); }
private int FixFace(IIfcPolyLoop bound) { int icnt = 0; if (bound.EntityLabel == 119019) { } var iEval = 0; while (iEval < bound.Polygon.Count) { var iPrec = iEval - 1; if (iPrec < 0) { iPrec = bound.Polygon.Count - 1; } var iNext = iEval + 1; if (iNext >= bound.Polygon.Count) { iNext = 0; } var needsRemoving = FixExtensions.AreAligned( bound.Polygon[iEval], bound.Polygon[iPrec], bound.Polygon[iNext] ); if (needsRemoving) { using (var txn = bound.Model.BeginTransaction("removing")) { bound.Polygon.RemoveAt(iEval); txn.Commit(); } icnt++; } else { iEval++; } } return(icnt); }
public IXbimFace CreateFace(IIfcPolyLoop loop) { return(_engine.CreateFace(loop)); }