lloca.framesnet.frames.ChangeOfFrames
- class lloca.framesnet.frames.ChangeOfFrames(frames_start, frames_end)[source]
Bases:
FramesChange of frames between two Frames objects.
Formally, for L_start and L_end we have $L_change = L_end * L_start^{-1}$.
WARNING: This function does not mix the frames of different point clouds. It is used in TFMessagePassing where this mixing is performed using the edge_index.
There are 2 ways to initialize an Frames object, with different arguments: - From matrices: Set matrices and optionally is_global, det, inv - As identity: Set is_identity=True, shape, device, dtype
- Parameters:
matrices (torch.tensor) – Transformation matrices of shape (…, 4, 4)
is_global (bool) – Whether frames are the same for all particles in the point cloud
inv (torch.Tensor) – Optional cached inverse of shape (…, 4, 4). If not given, takes a bit of extra time to compute.
det (torch.Tensor) – Optional cached determinant of shape (…). If not given, takes a bit of extra time to compute.
is_identity (bool) – Sets matrices to diagonal.
shape (List[int]) – Specifies matrices.shape[:-2] if is_identity. Otherwise inferred from matrices.
device (str) – Specifies device if is_identity. Otherwise inferred from matrices.
dtype (torch.dtype) – Specifies dtype if is_identity. Otherwise inferred from matrices.