public static double GetLength(Polyline3DT polyline, ILineTypeScaler lineTypeScaler) { double num = 0.0; if (polyline.Count > 1) { Point3D point3D = polyline[0].Position; for (int index = 1; index < polyline.Count; ++index) { Point3D position = polyline[index].Position; num += lineTypeScaler.GetScaledLength(position - point3D); point3D = position; } if (polyline.Closed) { num += lineTypeScaler.GetScaledLength(polyline[0].Position - point3D); } } return(num); }
private IList <Polyline4D> method_16( DrawContext.Wireframe context, out Polyline3DT imageBoundaryPolyline, out IClippingTransformer transformer) { Polygon2D clipBoundary = this.GetClipBoundary((DrawContext)context); if (clipBoundary != null && clipBoundary.Count != 0) { Matrix4D preTransform = this.method_15(); transformer = context.GetTransformer(); transformer = (IClippingTransformer)transformer.Clone(); transformer.SetPreTransform(preTransform); imageBoundaryPolyline = new Polyline3DT(true); foreach (WW.Math.Point2D point2D in (List <WW.Math.Point2D>)clipBoundary) { imageBoundaryPolyline.Add(new Point3DT((WW.Math.Point3D)point2D, 0U)); } return((IList <Polyline4D>) new List <Polyline4D>((IEnumerable <Polyline4D>)transformer.Transform(imageBoundaryPolyline.ToPolyline3D(), true))); } imageBoundaryPolyline = (Polyline3DT)null; transformer = (IClippingTransformer)null; return((IList <Polyline4D>) new Polyline4D[0]); }