예제 #1
0
        public void InsertBoundingBox()
        {
            var line   = new DxfLine(new DxfPoint(1.0, 1.0, 0.0), new DxfPoint(2.0, 3.0, 0.0));
            var offset = new DxfVector(2.0, 2.0, 0.0);

            var block = new DxfBlock();

            block.Name = "some-block";
            block.Entities.Add(line);

            var insert = new DxfInsert();

            insert.Name         = "some-block";
            insert.Location     = offset;
            insert.XScaleFactor = 2.0;

            var file = new DxfFile();

            file.Blocks.Add(block);
            file.Entities.Add(insert);

            var boundingBox = file.GetBoundingBox();

            Assert.Equal(new DxfPoint(4.0, 3.0, 0.0), boundingBox.MinimumPoint);
            Assert.Equal(new DxfPoint(6.0, 5.0, 0.0), boundingBox.MaximumPoint);
        }
예제 #2
0
파일: Mather.cs 프로젝트: 15831944/SevenCut
        public (float centerX, float centerY) GetCenter(DxfFile dxfFile)
        {
            var   dxfBoundingBox = dxfFile.GetBoundingBox();
            float centerX        = (float)(dxfBoundingBox.MinimumPoint.X +
                                           (dxfBoundingBox.MaximumPoint.X - dxfBoundingBox.MinimumPoint.X) / 2);
            float centerY = (float)(dxfBoundingBox.MinimumPoint.Y +
                                    (dxfBoundingBox.MaximumPoint.Y - dxfBoundingBox.MinimumPoint.Y) / 2);

            return(centerX, centerY);
        }
예제 #3
0
파일: FileTests.cs 프로젝트: zakb120/dxf
        public void FileBoundingBoxTest()
        {
            var file = new DxfFile();
            var line = new DxfLine(new DxfPoint(0.0, 1.0, 0.0), new DxfPoint(1.0, 0.0, 0.0));

            file.Entities.Add(line);
            Assert.Equal(new DxfBoundingBox(DxfPoint.Origin, new DxfVector(1.0, 1.0, 0.0)), file.GetBoundingBox());
        }