initLocalSizeAttribute($node, "transform");
$transform = $this->getContext("transform");
$index = strpos($transform, "(");
$func = substr($transform, 0, $index);
$paramStr = substr($transform, $index+1, strlen($transform)-$index-2);
$params = explode(",", $paramStr);
$pdf = $this->getPdf();
$xOrig = $this->getContext("xOrig");
$yOrig = $this->getContext("yOrig");
if ($func) {
switch ($func) {
case "translate":
$xdiff = $this->calcInternalValue($params[0]);
$ydiff = $this->calcInternalValue($params[1]);
$this->setContext("xOrig", $xOrig+$xdiff);
$this->setContext("yOrig", $yOrig+$ydiff );
//echo "translate:".$xdiff.":".$ydiff."
";
break;
case "rotate":
$angle = $params[0] * -1;
if (sizeof($params) > 1) {
$pdf->Rotate($angle, $params[1], $params[2]);
}
else {
$x = $this->getContext("x")+$xOrig;
$y = $this->getContext("y")+$yOrig;
$pdf->Rotate($angle, $x, $y);
}
break;
// case "skewX":
// case "skewY":
default:
echo "Function not supported:$func
";
}
}
$this->processChildNodes($node, FO_SVG::$CHILDNODES);
//restore group options
switch ($func) {
case "translate":
$this->setContext("xOrig", $xOrig);
$this->setContext("yOrig", $yOrig);
break;
case "rotate":
$pdf->Rotate(0);
break;
// case "skewX":
// case "skewY":
}
}
}
?>