diff --git a/src/PhpPresentation/Shape/Group.php b/src/PhpPresentation/Shape/Group.php index 8b13dd79b..ba3207a29 100644 --- a/src/PhpPresentation/Shape/Group.php +++ b/src/PhpPresentation/Shape/Group.php @@ -145,8 +145,8 @@ public function getExtentX() { if ($this->extentX === null) { $extents = GeometryCalculator::calculateExtents($this); - $this->extentX = $extents[GeometryCalculator::X]; - $this->extentY = $extents[GeometryCalculator::Y]; + $this->extentX = $extents[GeometryCalculator::X] - $this->getOffsetX(); + $this->extentY = $extents[GeometryCalculator::Y] - $this->getOffsetY(); } return $this->extentX; @@ -161,8 +161,8 @@ public function getExtentY() { if ($this->extentY === null) { $extents = GeometryCalculator::calculateExtents($this); - $this->extentX = $extents[GeometryCalculator::X]; - $this->extentY = $extents[GeometryCalculator::Y]; + $this->extentX = $extents[GeometryCalculator::X] - $this->getOffsetX(); + $this->extentY = $extents[GeometryCalculator::Y] - $this->getOffsetY(); } return $this->extentY; diff --git a/tests/PhpPresentation/Tests/Shape/GroupTest.php b/tests/PhpPresentation/Tests/Shape/GroupTest.php index dbfa82dcd..9be88952e 100644 --- a/tests/PhpPresentation/Tests/Shape/GroupTest.php +++ b/tests/PhpPresentation/Tests/Shape/GroupTest.php @@ -56,25 +56,25 @@ public function testAdd() public function testExtentX() { $object = new Group(); - $line1 = new Line(10, 20, 30, 40); + $line1 = new Line(10, 20, 30, 50); $object->addShape($line1); - $this->assertEquals(30, $object->getExtentX()); + $this->assertEquals(20, $object->getExtentX()); } public function testExtentY() { $object = new Group(); - $line1 = new Line(10, 20, 30, 40); + $line1 = new Line(10, 20, 30, 50); $object->addShape($line1); - $this->assertEquals(40, $object->getExtentY()); + $this->assertEquals(30, $object->getExtentY()); } public function testOffsetX() { $object = new Group(); - $line1 = new Line(10, 20, 30, 40); + $line1 = new Line(10, 20, 30, 50); $object->addShape($line1); $this->assertEquals(10, $object->getOffsetX()); @@ -86,7 +86,7 @@ public function testOffsetX() public function testOffsetY() { $object = new Group(); - $line1 = new Line(10, 20, 30, 40); + $line1 = new Line(10, 20, 30, 50); $object->addShape($line1); $this->assertEquals(20, $object->getOffsetY()); @@ -102,11 +102,13 @@ public function testExtentsAndOffsetsForOneShape() // from the extents to produce a raw width and height. $offsetX = 100; $offsetY = 100; - $extentX = 1000; - $extentY = 450; + $endX = 1000; + $endY = 450; + $extentX = $endX - $offsetX; + $extentY = $endY - $offsetY; $object = new Group(); - $line1 = new Line($offsetX, $offsetY, $extentX, $extentY); + $line1 = new Line($offsetX, $offsetY, $endX, $endY); $object->addShape($line1); $this->assertEquals($offsetX, $object->getOffsetX()); @@ -123,16 +125,18 @@ public function testExtentsAndOffsetsForTwoShapes() // combined with the above. $offsetX = 100; $offsetY = 100; - $extentX = 1000; - $extentY = 450; + $endX = 1000; + $endY = 450; $increase = 50; + $extentX = ($endX - $offsetX) + $increase; + $extentY = ($endY - $offsetY) + $increase; - $line1 = new Line($offsetX, $offsetY, $extentX, $extentY); + $line1 = new Line($offsetX, $offsetY, $endX, $endY); $line2 = new Line( $offsetX+$increase, $offsetY+$increase, - $extentX+$increase, - $extentY+$increase + $endX+$increase, + $endY+$increase ); $object = new Group(); @@ -142,7 +146,7 @@ public function testExtentsAndOffsetsForTwoShapes() $this->assertEquals($offsetX, $object->getOffsetX()); $this->assertEquals($offsetY, $object->getOffsetY()); - $this->assertEquals($extentX+$increase, $object->getExtentX()); - $this->assertEquals($extentY+$increase, $object->getExtentY()); + $this->assertEquals($extentX, $object->getExtentX()); + $this->assertEquals($extentY, $object->getExtentY()); } }