Beispiel #1
0
        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);
        }
Beispiel #2
0
        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]);
        }