実装にクリティカルに響いてこない箇所はオープンな場所にメモする事にしてみる.いきなりこれだけ書いても意味不明ですが,ある程度メモが溜まったら目次でも作ります.
Microsoft PowerPoint では「複数の図形のグループ化」と言う機能がありますが,この機能を使用すると OpenXML ファイルに
Standard ECMA-376 の該当箇所を読んでみましたが,「グループの各要素に影響を与える」程度の記述しかなく具体的にどう計算すれば良いのかがはっきりと分らなかったので,実際にサンプルファイルを作ってテストしてみることにしました.
Standard ECMA-37620.5.2.17 grpSp (Group Shape)
This element specifies a group shape that represents many shapes grouped together. This shape is to be treated just as if it were a regular shape but instead of being described by a single geometry it is made up of all the shape geometries encompassed within it. Within a group shape each of the shapes that make up the group are specified just as they normally would. The idea behind grouping elements however is that a single transform can apply to many shapes at the same time.
・・・(中略)・・・
In the above example we see three shapes specified within a single group. These three shapes have their position and sizes specified just as they normally would within the shape tree. The generating application should apply the transformation after the bounding box for the group shape has been calculated.
サンプルファイル: group_test.pptx.
問題の箇所だけ以下に抜き出してみます.これを見ると,
下の例から,座標に関しては「
大体,当初予想していた通りだったのですが,
<p:grpSp> + <p:nvGrpSpPr> <p:grpSpPr> <a:xfrm> <a:off x="500034" y="500042" /> <a:ext cx="2357454" cy="1357322" /> <a:chOff x="500034" y="500042" /> <a:chExt cx="2357454" cy="1357322" /> </a:xfrm> </p:grpSpPr> <p:sp> ... <p:spPr> <a:xfrm> <a:off x="500034" y="500042" /> <a:ext cx="2357454" cy="1357322" /> </a:xfrm> ... </p:sp> ... </p:grpSp> <p:grpSp> + <p:nvGrpSpPr> <p:grpSpPr> <a:xfrm> <a:off x="500034" y="3643314" /> <a:ext cx="3786214" cy="2786082" /> <a:chOff x="500034" y="500042" /> <a:chExt cx="2357454" cy="1357322" /> </a:xfrm> </p:grpSpPr> <p:sp> ... <p:spPr> <a:xfrm> <a:off x="500034" y="500042" /> <a:ext cx="2357454" cy="1357322" /> </a:xfrm> ... </p:sp> ... </p:grpSp> <p:grpSp> + <p:nvGrpSpPr> <p:grpSpPr> <a:xfrm rot="2804799"> <a:off x="6124017" y="4573944" /> <a:ext cx="2357454" cy="1357322" /> <a:chOff x="500034" y="500042" /> <a:chExt cx="2357454" cy="1357322" /> </a:xfrm> </p:grpSpPr> <p:sp> ... <p:spPr> <a:xfrm> <a:off x="500034" y="500042" /> <a:ext cx="2357454" cy="1357322" /> </a:xfrm> ... </p:sp> ... </p:grpSp>