Since | 18.0 |
matrix combinelocaltransform(matrix local, matrix parent_world, matrix parent_local, int scale_inherit_mode)
ローカルトランスフォームと親ワールドトランスフォームを指定すると、新しいワールドトランスフォームが返されます。
matrix combinelocaltransform(matrix local, matrix parent_world, matrix parent_local, int scale_inherit_mode, matrix &effective_local_transform)
ローカルトランスフォームと親ワールドトランスフォームを指定すると、新しいワールドトランスフォームが返されます。
継承されたスケールを含んだローカルトランスフォームはeffective_local_transform
matrixに格納されます。
この値は、scale_inherit_mode
がSCALE_INHERIT_OFFSET_AND_SCALEまたはSCALE_INHERIT_SCALE_ONLYに設定されている時はローカルマトリックスと異なります。
このメソッドでは、親のローカルスケールを子自身のローカルトランスフォームの一部として子に渡します。
scale_inherit_mode
親トランスフォームのスケール継承を結果に適用する方法を指定します。これは、以下のmath.h
で定義されたモードのどれかです:
-
SCALE_INHERIT_DEFAULT
(0) - 単純な継承:world = local * parent_world
-
SCALE_INHERIT_OFFSET_ONLY
(1) - 子は、親のローカルスケールでスケールされませんが、ローカル移動はスケールされます:world = local_scale_rotates * invert(parent_local_scales) * local_translates * parent_world
-
SCALE_INHERIT_OFFSET_AND_SCALE
(2) - ローカル移動をスケールした後に、さらに親のローカルスケールもローカル空間の子によって再適用されます:world = parent_local_scales * local_scale_rotates * invert(parent_local_scales) * T * parent_world
-
SCALE_INHERIT_SCALE_ONLY
(3) - ローカル移動はスケールされませんが、親のローカルスケールがローカル空間の子によって再適用されます:world = parent_local_scales * local * invert(parent_local_scales) * parent_world
-
SCALE_INHERIT_IGNORE
(4) - 子は、親のローカルスケールを完全に無視します:world = local * invert(parent_local_scales) * parent_world
See also | |
matrix |
|