mindsponge.common.invert_rigids

mindsponge.common.invert_rigids(rigids)[source]

Computes group inverse of rigid transformations. Change rigid from local coordinate system to global coordinate system.

Use invert_rots to calculate the invert rotations of rigid. Then use rots_mul_vecs to rotate the translations of rigid. The opposite of the result is the translations of invert rigid.

\[\begin{split}\begin{split} &inv\_rots = r_r^T = (r_0, r_3, r_6, r_1, r_4, r_7, r_2, r_5, r_8) \\ &inv\_trans = -r_r^T \cdot r_t^T = (- (r_0 \times t_0 + r_3 \times t_0 + r_6 \times t_0), - (r_1 \times t_1 + r_4 \times t_1 + r_7 \times t_1), - (r_2 \times t_2 + r_5 \times t_2 + r_8 \times t_2)) \\ \end{split}\end{split}\]
Parameters

rigids (tuple) – rigids, including the rots and trans changing rigids from global coordinate system to local coordinate system.

Returns

tuple(rots, trans), group inverse of rigid transformations, length is 2. Include rots

\((xx, xy, xz, yx, yy, yz, zx, zy, zz)\) and trans \((x, y, z)\) . Data type is constant or Tensor with same shape.

Supported Platforms:

Ascend GPU

Examples

>>> import mindsponge
>>> a = ((1, 2, 3, 4, 5, 6, 7, 8, 9), (3, 4, 5))
>>> inv_a = mindsponge.common.invert_rigids(a)
>>> print(inv_a)
((1, 4, 7, 2, 5, 8, 3, 6, 9), (-54.0, -66.0, -78.0))