algebra.pl -- Performing algebraic operations.

author
- Daniel Beßler
license
- BSD
 transform_multiply(+Transform1:term, +Transform2:term, ?Product:term) is semidet
True if Product is Transform1 x Transform2. This is only defined if the target frame of Transform1 is equal to the reference frame of Transform2.
Arguments:
Transform1- A Prolog term [Ref,A,Pos1,Rot1]
Transform2- A Prolog term [A,Src,Pos2,Rot2]
Product- A Prolog term [Ref,Src,Pos3,Rot3]
 transform_between(+Transform1:term, +Transform2:term, ?Relative:term) is semidet
True if Relative is the relative transform between the target frame of Transform1 and Transform2. Only defined if Transform1 and Transform2 share the same reference frame.
Arguments:
Transform1- A Prolog term [F,Src,Pos1,Rot1]
Transform2- A Prolog term [F,Ref,Pos2,Rot2]
Transform1- A Prolog term [Ref,Src,Pos3,Rot3]
 transform_invert(+Transform:term, ?Inverted:term) is det
True if Inverted is the inverted transform of Transform (i.e., with inverted reference and source frame).
Arguments:
Transform- A transform term [A,B,Pos,Rot]
Inverted- A transform term [B,A,Pos',Rot']
 transform_close_to(+Transform1:term, +Transform2:term, +Delta:number) is semidet
True if the squared distance between Transform1 and Transform2 is less then or equal to Delta.
Arguments:
Transform1- Transform term
Transform2- Transform term
Delta- Squared distance delta
 matrix(?Matrix:list, ?Translation:list, ?Quaternion:list) is semidet
True if Matrix is the transformation matrix build from Translation and Quaternion.
Arguments:
Matrix- A 4x4 matrix
Translation- A translation [number x,y,z]
Quaternion- A quaternion [number qx,qy,qz,qw]
 matrix_translate(+In:list, +Offset:list, ?Out:list) is semidet
True if Out unifies with In translated by Offset.
Arguments:
In- A 4x4 matrix
Offset- The offset [number x,y,z]
Out- A 4x4 matrix
 quaternion_multiply(+Quaternion1:list, +Quaternion2:list, ?Multiplied:list) is semidet
True if Multiplied is the result of multiplying Quaternion1 with Quaternion2.
Arguments:
Quaternion1- A quaternion [number qx,qy,qt,qw]
Quaternion2- A quaternion [number qx,qy,qt,qw]
Multiplied- A quaternion [number qx,qy,qt,qw]

Undocumented predicates

The following predicates are exported, but not or incorrectly documented.

 quaternion_transform(Arg1, Arg2, Arg3)
 quaternion_inverse(Arg1, Arg2)
 transform_interpolate(Arg1, Arg2, Arg3, Arg4)