예제 #1
0
        public HatchStyleDefinition(CgmFile container, int index, HatchStyle style, double firstX, double firstY, double secondX, double secondY, double cycleLength, int[] gapWidths, int[] lineTypes)
            : this(container)
        {
            Index       = index;
            Style       = style;
            FirstDirX   = firstX;
            FirstDirY   = firstY;
            SecondDirX  = secondX;
            SecondDirY  = secondY;
            CycleLength = cycleLength;
            GapWidths.AddRange(gapWidths);
            LineTypes.AddRange(lineTypes);

            if (GapWidths.Count != LineTypes.Count)
            {
                throw new InvalidOperationException("Amount of GapWidths does not match with LineTypes!");
            }
        }
예제 #2
0
        public override void ReadFromBinary(IBinaryReader reader)
        {
            Index       = reader.ReadIndex();
            Style       = (HatchStyle)reader.ReadEnum();
            FirstDirX   = reader.ReadSizeSpecification(_container.InteriorStyleSpecificationMode);
            FirstDirY   = reader.ReadSizeSpecification(_container.InteriorStyleSpecificationMode);
            SecondDirX  = reader.ReadSizeSpecification(_container.InteriorStyleSpecificationMode);
            SecondDirY  = reader.ReadSizeSpecification(_container.InteriorStyleSpecificationMode);
            CycleLength = reader.ReadSizeSpecification(_container.InteriorStyleSpecificationMode);

            var numberOfLines = reader.ReadInt();

            for (var i = 0; i < numberOfLines; i++)
            {
                GapWidths.Add(reader.ReadInt());
            }

            for (var i = 0; i < numberOfLines; i++)
            {
                LineTypes.Add(reader.ReadInt());
            }
        }