Ejemplo n.º 1
0
        //--------------------------------------------------------------------------------------------------

        public override bool Read(DxfReader reader)
        {
            Pnt2d controlPoint      = default;
            int   controlPointCount = 0;
            var   controlPointList  = new List <Pnt2d>();
            var   controlReadBits   = new BitVector32(0);

            int knotCount  = 0;
            var knotList   = new List <double>();
            var weightList = new List <double>();

            Pnt2d fitPoint      = default;
            int   fitPointCount = 0;
            var   fitPointList  = new List <Pnt2d>();
            var   fitReadBits   = new BitVector32(0);

            var tanReadBits = new BitVector32(0);

            Flags = SplineFlags.None;

            while (reader.GroupCode > 0)
            {
                switch (reader.GroupCode)
                {
                case 70:
                    Flags = (SplineFlags)reader.ReadInteger();
                    break;

                case 71:
                    Degree = reader.ReadInteger();
                    break;

                case 72:
                    knotCount = reader.ReadInteger();
                    break;

                case 73:
                    controlPointCount = reader.ReadInteger();
                    break;

                case 74:
                    fitPointCount = reader.ReadInteger();
                    break;

                case 10:
                    controlPoint.X        = reader.ReadCoord();
                    controlReadBits[0b01] = true;
        //--------------------------------------------------------------------------------------------------

        public override bool Read(DxfReader reader)
        {
            var   pointList      = new List <Pnt2d>();
            Pnt2d point          = default;
            bool  skipNextVertex = false;
            var   readBits       = new BitVector32(0);

            // read POLYLINE
            while (reader.GroupCode > 0)
            {
                switch (reader.GroupCode)
                {
                case 70:
                    int flags = reader.ReadInteger();
                    if (flags > 1)
                    {
                        Messages.Warning($"DxfReader: Entity POLYGON has flags set in line {reader.Line} which are not supported for import. The polygon will be imported using straight lines between vertices.");
                    }
                    break;

                default:
                    reader.Skip();
                    break;
                }
            }

            // read VERTEX
            var type = reader.ReadString().ToUpper();

            while (type.Equals("VERTEX"))
            {
                while (reader.GroupCode > 0)
                {
                    switch (reader.GroupCode)
                    {
                    case 70:
                        int flags = reader.ReadInteger();
                        if (flags != 0)
                        {
                            skipNextVertex = true;
                        }
                        break;

                    case 10:
                        point.X        = reader.ReadCoord();
                        readBits[0b01] = true;
Ejemplo n.º 3
0
        //--------------------------------------------------------------------------------------------------

        public override bool Read(DxfReader reader)
        {
            var   pointList  = new List <Pnt2d>();
            Pnt2d point      = default;
            var   pointCount = 0;
            var   readBits   = new BitVector32(0);

            while (reader.GroupCode > 0)
            {
                switch (reader.GroupCode)
                {
                case 90:
                    pointCount = reader.ReadInteger();
                    break;

                case 10:
                    point.X        = reader.ReadCoord();
                    readBits[0b01] = true;