Win32 API 日本語リファレンス
ホームGraphics.DirectComposition › IDCompositionRotateTransform3D

IDCompositionRotateTransform3D

COM
IIDd8f5b23f-d429-4a91-b55a-d2f45fd75b18継承元IDCompositionTransform3D自前メソッド開始 vtbl3

公式ドキュメント

3D 空間内の任意の軸に沿ったビジュアルの回転に影響する 3D 変換を表します。座標系は、指定した中心点を基準に回転します。

解説(Remarks)

3D 回転変換は、次の 4x4 行列を表します。

Four-by-four 3D rotate transformation matrix

ここで、行列の offsetXoffsetYoffsetZ の値は次のとおりです。

Values of the four-by-four 3D rotate transformation matrix

この変換の効果は、指定した軸を中心に座標系を時計回りまたは反時計回りに回転させ、中心点が移動しないように対応する平行移動を適用することです。

新しい 3D 回転変換オブジェクトでは、Angle、CenterX、CenterY、AxisX、AxisY の各プロパティの既定の静的値は 0 であり、AxisZ プロパティの既定の静的値は 1.0 です。

軸を既定以外の値に設定する場合は、常に 3 つの軸プロパティ (AxisX、AxisY、AxisZ) をすべて設定してください。

メソッド 14

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT SetAngle(IDCompositionAnimation* animation)
animationIDCompositionAnimation*in回転角度を時間変化させるアニメーションオブジェクト。NULL不可。
vtbl 4 HRESULT SetAngle(FLOAT angle)
angleFLOATin回転軸まわりの回転角度。度数法(degree)で指定する浮動小数点値である。
vtbl 5 HRESULT SetAxisX(IDCompositionAnimation* animation)
animationIDCompositionAnimation*in回転軸ベクトルのX成分を時間変化させるアニメーションオブジェクト。NULL不可。
vtbl 6 HRESULT SetAxisX(FLOAT axisX)
axisXFLOATin回転軸を表すベクトルのX成分。回転軸の方向を定める浮動小数点値である。
vtbl 7 HRESULT SetAxisY(IDCompositionAnimation* animation)
animationIDCompositionAnimation*in回転軸ベクトルのY成分を時間変化させるアニメーションオブジェクト。NULL不可。
vtbl 8 HRESULT SetAxisY(FLOAT axisY)
axisYFLOATin回転軸を表すベクトルのY成分。回転軸の方向を定める浮動小数点値である。
vtbl 9 HRESULT SetAxisZ(IDCompositionAnimation* animation)
animationIDCompositionAnimation*in回転軸ベクトルのZ成分を時間変化させるアニメーションオブジェクト。NULL不可。
vtbl 10 HRESULT SetAxisZ(FLOAT axisZ)
axisZFLOATin回転軸を表すベクトルのZ成分。回転軸の方向を定める浮動小数点値である。
vtbl 11 HRESULT SetCenterX(IDCompositionAnimation* animation)
animationIDCompositionAnimation*in回転中心点のX座標を時間変化させるアニメーションオブジェクト。NULL不可。
vtbl 12 HRESULT SetCenterX(FLOAT centerX)
centerXFLOATin回転の中心点のX座標。原点からのDIP単位のオフセットを指定する。
vtbl 13 HRESULT SetCenterY(IDCompositionAnimation* animation)
animationIDCompositionAnimation*in回転中心点のY座標を時間変化させるアニメーションオブジェクト。NULL不可。
vtbl 14 HRESULT SetCenterY(FLOAT centerY)
centerYFLOATin回転の中心点のY座標。原点からのDIP単位のオフセットを指定する。
vtbl 15 HRESULT SetCenterZ(IDCompositionAnimation* animation)
animationIDCompositionAnimation*in回転中心点のZ座標を時間変化させるアニメーションオブジェクト。NULL不可。
vtbl 16 HRESULT SetCenterZ(FLOAT centerZ)
centerZFLOATin回転の中心点のZ座標。原点からのDIP単位のオフセットを指定する。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

#define global IID_IDCompositionRotateTransform3D "{D8F5B23F-D429-4A91-B55A-D2F45FD75B18}"
#usecom global IDCompositionRotateTransform3D IID_IDCompositionRotateTransform3D "{}"
#comfunc global IDCompositionRotateTransform3D_SetAngle    3 sptr
#comfunc global IDCompositionRotateTransform3D_SetAngle    4 float
#comfunc global IDCompositionRotateTransform3D_SetAxisX    5 sptr
#comfunc global IDCompositionRotateTransform3D_SetAxisX    6 float
#comfunc global IDCompositionRotateTransform3D_SetAxisY    7 sptr
#comfunc global IDCompositionRotateTransform3D_SetAxisY    8 float
#comfunc global IDCompositionRotateTransform3D_SetAxisZ    9 sptr
#comfunc global IDCompositionRotateTransform3D_SetAxisZ    10 float
#comfunc global IDCompositionRotateTransform3D_SetCenterX  11 sptr
#comfunc global IDCompositionRotateTransform3D_SetCenterX  12 float
#comfunc global IDCompositionRotateTransform3D_SetCenterY  13 sptr
#comfunc global IDCompositionRotateTransform3D_SetCenterY  14 float
#comfunc global IDCompositionRotateTransform3D_SetCenterZ  15 sptr
#comfunc global IDCompositionRotateTransform3D_SetCenterZ  16 float
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。