internal static IList <WW.Math.Point3D> smethod_2( IList <WW.Math.Point3D> vertices, ILeader leader, out Vector3D startDerivative, out Vector3D endDerivative) { if (vertices != null && vertices.Count >= 2) { List <WW.Math.Point3D> point3DList = new List <WW.Math.Point3D>((IEnumerable <WW.Math.Point3D>)vertices); double effectiveArrowSize = leader.GetEffectiveArrowSize(); Vector3D vector3D = point3DList[1] - point3DList[0]; double length = vector3D.GetLength(); startDerivative = vector3D / length; endDerivative = leader.Direction; if (leader.HookLineDirection == HookLineDirection.Same) { endDerivative = -endDerivative; } endDerivative.Normalize(); if (DxfLeader.smethod_7(leader, vertices) && leader.LeaderArrowBlock == null && length >= effectiveArrowSize) { point3DList[0] += vector3D * (effectiveArrowSize / length); } return((IList <WW.Math.Point3D>)point3DList); } startDerivative = endDerivative = Vector3D.Zero; return((IList <WW.Math.Point3D>)null); }
public override void DrawInternal( DrawContext.Wireframe context, IWireframeGraphicsFactory graphicsFactory) { IList <Polyline3D> polylines1; IList <FlatShape4D> shapes; this.method_14((DrawContext)context, context.GetTransformer().LineTypeScaler, out polylines1, out shapes); IList <Polyline4D> polylines2 = DxfUtil.smethod_36(polylines1, false, context.GetTransformer()); if (polylines2.Count > 0) { graphicsFactory.CreatePath((DxfEntity)this, context, context.GetPlotColor((DxfEntity)this, this.dxfDimensionStyleOverrides_0.DimensionLineColor), false, polylines2, false, true); } if (shapes != null) { Class940.smethod_23((IPathDrawer) new ns0.Class0((DxfEntity)this, context, graphicsFactory), (IEnumerable <IShape4D>)shapes, this.dxfDimensionStyleOverrides_0.DimensionLineColor, context.GetLineWeight((DxfEntity)this)); } if (!DxfLeader.smethod_7((ILeader)this, (IList <WW.Math.Point3D>) this.list_0)) { return; } if (this.dxfDimensionStyleOverrides_0.LeaderArrowBlock == null) { Polyline3D polyline = this.method_15(); if (polyline == null) { return; } IClippingTransformer clippingTransformer = (IClippingTransformer)context.GetTransformer().Clone(); clippingTransformer.SetPreTransform(this.method_16()); List <Polyline4D> polyline4DList = new List <Polyline4D>((IEnumerable <Polyline4D>)clippingTransformer.Transform(polyline, polyline.Closed)); if (polyline4DList.Count <= 0) { return; } graphicsFactory.CreatePath((DxfEntity)this, context, context.GetPlotColor((DxfEntity)this, this.dxfDimensionStyleOverrides_0.DimensionLineColor), false, (IList <Polyline4D>)polyline4DList, true, true); } else { DxfInsert.Interface46 nterface46 = (DxfInsert.Interface46) new DxfInsert.Class1019((DxfEntity)this, context, graphicsFactory); nterface46.imethod_0(0, 0, this.method_16()); nterface46.Draw(this.dxfDimensionStyleOverrides_0.LeaderArrowBlock, true); } }