public TOuter FirstOrDefault() { var inner = _innerSet.FirstOrDefault(); if (inner != null) { return(_transformOut(inner)); } return(_extendedSet.FirstOrDefault()); }
private static void Report(IIfcCircle circle, IItemSet <IIfcTrimmingSelect> trim1, IItemSet <IIfcTrimmingSelect> trim2, TextHighliter sb) { // this one makes an arc, knowing the circle var v1 = trim1.FirstOrDefault(); // as Xbim.Ifc4.MeasureResource.IfcParameterValue; var v2 = trim2.FirstOrDefault(); // as Xbim.Ifc4.MeasureResource.IfcParameterValue; if (v1 is null || v2 == null || v1 is IIfcCartesianPoint || v2 is IIfcCartesianPoint) { Report(circle, sb); return; } var startang = ((Xbim.Ifc4.MeasureResource.IfcParameterValue)v1) * circle.Model.ModelFactors.AngleToRadiansConversionFactor; var endang = ((Xbim.Ifc4.MeasureResource.IfcParameterValue)v2) * circle.Model.ModelFactors.AngleToRadiansConversionFactor; // in acad we need the start point var startPx = circle.Radius * Math.Cos(startang); var startPy = circle.Radius * Math.Sin(startang); SetUcs(sb, circle.Position); sb.Append("ARC C", Brushes.Black); WritePointCoord(sb, 0, 0, 0); WritePointCoord(sb, startPx, startPy, double.NaN); sb.Append("A", Brushes.Black); var presentedEndAngle = (endang - startang) * 180 / Math.PI; sb.Append(presentedEndAngle.ToString(), Brushes.Black); SetUcs(sb); }
public TOuter FirstOrDefault() { return(_inner.FirstOrDefault()); }
public static IfcShapeModel Lookup(this IItemSet <IfcShapeModel> models, string identifier) { return(models.FirstOrDefault(item => item.RepresentationIdentifier != null && string.Compare(item.RepresentationIdentifier, identifier, true) == 0)); }
public IItemSet <TOuter> FirstOrDefault() { return(GetOut(_inner.FirstOrDefault())); }