Now all escaping required for the C++ code generation is done when the .cpp/.h files are generated. Previously, only newlines were escaped automatically. This was a) inconsistent and b) leaked c++ details into the xml data. In addition, the escaping is now done in one central place, harmonizing the three previous implementations. Pre-existing c++ escape sequences in the XML files have been replaced by their literal equivalent so that the resulting python doc sting remains unchanged.
244 lines
7.9 KiB
XML
244 lines
7.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
|
|
<PythonExport
|
|
Father="PyObjectBase"
|
|
Name="RotationPy"
|
|
Twin="Rotation"
|
|
TwinPointer="Rotation"
|
|
Include="Base/Rotation.h"
|
|
FatherInclude="Base/PyObjectBase.h"
|
|
Namespace="Base"
|
|
Constructor="true"
|
|
Delete="true"
|
|
NumberProtocol="true"
|
|
RichCompare="true"
|
|
FatherNamespace="Base">
|
|
<Documentation>
|
|
<Author Licence="LGPL" Name="Juergen Riegel" EMail="FreeCAD@juergen-riegel.net" />
|
|
<DeveloperDocu>This is the Rotation export class</DeveloperDocu>
|
|
<UserDocu>Base.Rotation class.
|
|
|
|
A Rotation using a quaternion.
|
|
|
|
The following constructors are supported:
|
|
|
|
Rotation()
|
|
Empty constructor.
|
|
|
|
Rotation(rotation)
|
|
Copy constructor.
|
|
|
|
Rotation(Axis, Radian)
|
|
Rotation(Axis, Degree)
|
|
Define from an axis and an angle (in radians or degrees according to the keyword).
|
|
Axis : Base.Vector
|
|
Radian : float
|
|
Degree : float
|
|
|
|
Rotation(vector_start, vector_end)
|
|
Define from two vectors (rotation from/to vector).
|
|
vector_start : Base.Vector
|
|
vector_end : Base.Vector
|
|
|
|
Rotation(angle1, angle2, angle3)
|
|
Define from three floats (Euler angles) as yaw-pitch-roll in XY'Z'' convention.
|
|
angle1 : float
|
|
angle2 : float
|
|
angle3 : float
|
|
|
|
Rotation(seq, angle1, angle2, angle3)
|
|
Define from one string and three floats (Euler angles) as Euler rotation
|
|
of a given type. Call toEulerAngles() for supported sequence types.
|
|
seq : str
|
|
angle1 : float
|
|
angle2 : float
|
|
angle3 : float
|
|
|
|
Rotation(x, y, z, w)
|
|
Define from four floats (quaternion) where the quaternion is specified as:
|
|
q = xi+yj+zk+w, i.e. the last parameter is the real part.
|
|
x : float
|
|
y : float
|
|
z : float
|
|
w : float
|
|
|
|
Rotation(dir1, dir2, dir3, seq)
|
|
Define from three vectors that define rotated axes directions plus an optional
|
|
3-characher string of capital letters 'X', 'Y', 'Z' that sets the order of
|
|
importance of the axes (e.g., 'ZXY' means z direction is followed strictly,
|
|
x is used but corrected if necessary, y is ignored).
|
|
dir1 : Base.Vector
|
|
dir2 : Base.Vector
|
|
dir3 : Base.Vector
|
|
seq : str
|
|
|
|
Rotation(matrix)
|
|
Define from a matrix rotation in the 4D representation.
|
|
matrix : Base.Matrix
|
|
|
|
Rotation(*coef)
|
|
Define from 16 or 9 elements which represent the rotation in the 4D matrix
|
|
representation or in the 3D matrix representation, respectively.
|
|
coef : sequence of float</UserDocu>
|
|
</Documentation>
|
|
<Methode Name="invert">
|
|
<Documentation>
|
|
<UserDocu>invert() -> None
|
|
|
|
Sets the rotation to its inverse.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="inverted">
|
|
<Documentation>
|
|
<UserDocu>inverted() -> Base.Rotation
|
|
|
|
Returns the inverse of the rotation.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isSame">
|
|
<Documentation>
|
|
<UserDocu>isSame(rotation, tol=0) -> bool
|
|
|
|
Checks if `rotation` perform the same transformation as this rotation.
|
|
|
|
rotation : Base.Rotation
|
|
tol : float
|
|
Tolerance used to compare both rotations.
|
|
If tol is negative or zero, no tolerance is used.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="multiply" Const="true">
|
|
<Documentation>
|
|
<UserDocu>multiply(rotation) -> Base.Rotation
|
|
|
|
Right multiply this rotation with another rotation.
|
|
|
|
rotation : Base.Rotation
|
|
Rotation by which to multiply this rotation.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="multVec" Const="true">
|
|
<Documentation>
|
|
<UserDocu>multVec(vector) -> Base.Vector
|
|
|
|
Compute the transformed vector using the rotation.
|
|
|
|
vector : Base.Vector
|
|
Vector to be transformed.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="slerp" Const="true">
|
|
<Documentation>
|
|
<UserDocu>slerp(rotation2, t) -> Base.Rotation
|
|
|
|
Spherical Linear Interpolation (SLERP) of this rotation and `rotation2`.
|
|
|
|
t : float
|
|
Parameter of the path. t=0 returns this rotation, t=1 returns `rotation2`.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="setYawPitchRoll">
|
|
<Documentation>
|
|
<UserDocu>setYawPitchRoll(angle1, angle2, angle3) -> None
|
|
|
|
Set the Euler angles of this rotation as yaw-pitch-roll in XY'Z'' convention.
|
|
|
|
angle1 : float
|
|
Angle around yaw axis in degrees.
|
|
angle2 : float
|
|
Angle around pitch axis in degrees.
|
|
angle3 : float
|
|
Angle around roll axis in degrees.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getYawPitchRoll" Const="true">
|
|
<Documentation>
|
|
<UserDocu>getYawPitchRoll() -> tuple
|
|
|
|
Get the Euler angles of this rotation as yaw-pitch-roll in XY'Z'' convention.
|
|
The angles are given in degrees.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="setEulerAngles">
|
|
<Documentation>
|
|
<UserDocu>setEulerAngles(seq, angle1, angle2, angle3) -> None
|
|
|
|
Set the Euler angles in a given sequence for this rotation.
|
|
The angles must be given in degrees.
|
|
|
|
seq : str
|
|
Euler sequence name. All possible values given by toEulerAngles().
|
|
angle1 : float
|
|
angle2 : float
|
|
angle3 : float </UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="toEulerAngles" Const="true">
|
|
<Documentation>
|
|
<UserDocu>toEulerAngles(seq) -> list
|
|
|
|
Get the Euler angles in a given sequence for this rotation.
|
|
|
|
seq : str
|
|
Euler sequence name. If not given, the function returns
|
|
all possible values of `seq`. Optional.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="toMatrix" Const="true">
|
|
<Documentation>
|
|
<UserDocu>toMatrix() -> Base.Matrix
|
|
|
|
Convert the rotation to a 4D matrix representation.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isNull" Const="true">
|
|
<Documentation>
|
|
<UserDocu>isNull() -> bool
|
|
|
|
Returns True if all values in the quaternion representation are zero.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isIdentity" Const="true">
|
|
<Documentation>
|
|
<UserDocu>isIdentity(tol=0) -> bool
|
|
|
|
Returns True if the rotation equals the 4D identity matrix.
|
|
tol : float
|
|
Tolerance used to check for identity.
|
|
If tol is negative or zero, no tolerance is used.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Attribute Name="Q" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>The rotation elements (as quaternion).</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Q" Type="Tuple" />
|
|
</Attribute>
|
|
<Attribute Name="Axis" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>The rotation axis of the quaternion.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Axis" Type="Object" />
|
|
</Attribute>
|
|
<Attribute Name="RawAxis" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>The rotation axis without normalization.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="RawAxis" Type="Object" />
|
|
</Attribute>
|
|
<Attribute Name="Angle" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>The rotation angle of the quaternion.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Angle" Type="Float" />
|
|
</Attribute>
|
|
<ClassDeclarations>
|
|
public:
|
|
RotationPy(const Rotation & mat, PyTypeObject *T = &Type)
|
|
:PyObjectBase(new Rotation(mat),T){}
|
|
Rotation value() const
|
|
{ return *(getRotationPtr()); }
|
|
</ClassDeclarations>
|
|
</PythonExport>
|
|
</GenerateModel>
|