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)