コード例 #1
0
        private static List <AbsoluteBlock> ConvertToAbsoluteCoordinates(this RawShapeBlocksGroup elem)
        {
            var offsetX = 0;

            var absoluteBlockCollection = new Collection <AbsoluteBlock>();

            RawShapeBlock previousRawShapeBlock = null;

            foreach (var block in elem.Collection)
            {
                if (previousRawShapeBlock != null)
                {
                    offsetX += previousRawShapeBlock.Length;
                }

                offsetX += block.Offsetx;

                previousRawShapeBlock = block;

                var absoluteBlock = new AbsoluteBlock(offsetX, block.Length, elem.RowIndex);

                absoluteBlockCollection.Add(absoluteBlock);
            }

            return(absoluteBlockCollection.ToList());
        }
コード例 #2
0
        public void MergeBlockHelperShouldWorkCorrectly()
        {
            var elem = new RawShapeBlocksGroup(new List <RawShapeBlock>
            {
                new RawShapeBlock(12, 100),
                new RawShapeBlock(0, 1),
                new RawShapeBlock(12, 50),
                new RawShapeBlock(0, 2),
                new RawShapeBlock(0, 3),
                new RawShapeBlock(1, 3)
            }, 0);

            var merged = elem.MergeBlocks();

            merged.Collection.ShouldBeEquivalentTo(new Collection <RawShapeBlock>
            {
                new RawShapeBlock(12, 101),
                new RawShapeBlock(12, 55),
                new RawShapeBlock(1, 3)
            });
        }