protected function writeShapeLine(XMLWriter $objWriter, Line $shape, $shapeId)
{
// p:sp
$objWriter->startElement('p:cxnSp');
// p:nvSpPr
$objWriter->startElement('p:nvCxnSpPr');
// p:cNvPr
$objWriter->startElement('p:cNvPr');
$objWriter->writeAttribute('id', $shapeId);
$objWriter->writeAttribute('name', '');
$objWriter->endElement();
// p:cNvCxnSpPr
$objWriter->writeElement('p:cNvCxnSpPr', null);
// p:nvPr
$objWriter->startElement('p:nvPr');
if ($shape->isPlaceholder()) {
$objWriter->startElement('p:ph');
$objWriter->writeAttribute('type', $shape->getPlaceholder()->getType());
$objWriter->endElement();
}
$objWriter->endElement();
$objWriter->endElement();
// p:spPr
$objWriter->startElement('p:spPr');
// a:xfrm
$objWriter->startElement('a:xfrm');
if ($shape->getWidth() >= 0 && $shape->getHeight() >= 0) {
// a:off
$objWriter->startElement('a:off');
$objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($shape->getOffsetX()));
$objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($shape->getOffsetY()));
$objWriter->endElement();
// a:ext
$objWriter->startElement('a:ext');
$objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu($shape->getWidth()));
$objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu($shape->getHeight()));
$objWriter->endElement();
} elseif ($shape->getWidth() < 0 && $shape->getHeight() < 0) {
// a:off
$objWriter->startElement('a:off');
$objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($shape->getOffsetX() + $shape->getWidth()));
$objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($shape->getOffsetY() + $shape->getHeight()));
$objWriter->endElement();
// a:ext
$objWriter->startElement('a:ext');
$objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu(-$shape->getWidth()));
$objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu(-$shape->getHeight()));
$objWriter->endElement();
} elseif ($shape->getHeight() < 0) {
$objWriter->writeAttribute('flipV', 1);
// a:off
$objWriter->startElement('a:off');
$objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($shape->getOffsetX()));
$objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($shape->getOffsetY() + $shape->getHeight()));
$objWriter->endElement();
// a:ext
$objWriter->startElement('a:ext');
$objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu($shape->getWidth()));
$objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu(-$shape->getHeight()));
$objWriter->endElement();
} elseif ($shape->getWidth() < 0) {
$objWriter->writeAttribute('flipV', 1);
// a:off
$objWriter->startElement('a:off');
$objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($shape->getOffsetX() + $shape->getWidth()));
$objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($shape->getOffsetY()));
$objWriter->endElement();
// a:ext
$objWriter->startElement('a:ext');
$objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu(-$shape->getWidth()));
$objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu($shape->getHeight()));
$objWriter->endElement();
}
$objWriter->endElement();
// a:prstGeom
$objWriter->startElement('a:prstGeom');
$objWriter->writeAttribute('prst', 'line');
$objWriter->endElement();
if ($shape->getBorder()->getLineStyle() != Border::LINE_NONE) {
$this->writeBorder($objWriter, $shape->getBorder(), '');
}
$objWriter->endElement();
$objWriter->endElement();
}