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