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.
268 lines
8.7 KiB
XML
268 lines
8.7 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="VectorPy"
|
|
Twin="Vector"
|
|
TwinPointer="Vector3d"
|
|
Include="Base/Vector3D.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 Vector export class</DeveloperDocu>
|
|
<UserDocu>Base.Vector class.
|
|
|
|
This class represents a 3D float vector.
|
|
Useful to represent points in the 3D space.
|
|
|
|
The following constructors are supported:
|
|
|
|
Vector(x=0, y=0, z=0)
|
|
x : float
|
|
y : float
|
|
z : float
|
|
|
|
Vector(vector)
|
|
Copy constructor.
|
|
vector : Base.Vector
|
|
|
|
Vector(seq)
|
|
Define from a sequence of float.
|
|
seq : sequence of float.</UserDocu>
|
|
</Documentation>
|
|
<Methode Name="__reduce__" Const="true">
|
|
<Documentation>
|
|
<UserDocu>__reduce__() -> tuple
|
|
|
|
Serialization of Vector objects.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="add" Const="true">
|
|
<Documentation>
|
|
<UserDocu>add(vector2) -> Base.Vector
|
|
|
|
Returns the sum of this vector and `vector2`.
|
|
|
|
vector2 : Base.Vector</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="sub" Const="true">
|
|
<Documentation>
|
|
<UserDocu>sub(vector2) -> Base.Vector
|
|
|
|
Returns the difference of this vector and `vector2`.
|
|
|
|
vector2 : Base.Vector</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="negative" Const="true">
|
|
<Documentation>
|
|
<UserDocu>negative() -> Base.Vector
|
|
|
|
Returns the negative (opposite) of this vector.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="scale">
|
|
<Documentation>
|
|
<UserDocu>scale(x, y, z) -> Base.Vector
|
|
|
|
Scales in-place this vector by the given factor in each component.
|
|
|
|
x : float
|
|
x-component factor scale.
|
|
y : float
|
|
y-component factor scale.
|
|
z : float
|
|
z-component factor scale.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="multiply">
|
|
<Documentation>
|
|
<UserDocu>multiply(factor) -> Base.Vector
|
|
|
|
Multiplies in-place each component of this vector by a single factor.
|
|
Equivalent to scale(factor, factor, factor).
|
|
|
|
factor : float</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="dot" Const="true">
|
|
<Documentation>
|
|
<UserDocu>dot(vector2) -> float
|
|
|
|
Returns the scalar product (dot product) between this vector and `vector2`.
|
|
|
|
vector2 : Base.Vector</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="cross" Const="true">
|
|
<Documentation>
|
|
<UserDocu>cross(vector2) -> Base.Vector
|
|
|
|
Returns the vector product (cross product) between this vector and `vector2`.
|
|
|
|
vector2 : Base.Vector</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isOnLineSegment" Const="true">
|
|
<Documentation>
|
|
<UserDocu>isOnLineSegment(vector1, vector2) -> bool
|
|
|
|
Checks if this vector is on the line segment generated by `vector1` and `vector2`.
|
|
|
|
vector1 : Base.Vector
|
|
vector2 : Base.Vector</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getAngle" Const="true">
|
|
<Documentation>
|
|
<UserDocu>getAngle(vector2) -> float
|
|
|
|
Returns the angle in radians between this vector and `vector2`.
|
|
|
|
vector2 : Base.Vector</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="normalize">
|
|
<Documentation>
|
|
<UserDocu>normalize() -> Base.Vector
|
|
|
|
Normalizes in-place this vector to the length of 1.0.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isEqual" Const="true">
|
|
<Documentation>
|
|
<UserDocu>isEqual(vector2, tol=0) -> bool
|
|
|
|
Checks if the distance between the points represented by this vector
|
|
and `vector2` is less or equal to the given tolerance.
|
|
|
|
vector2 : Base.Vector
|
|
tol : float</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="projectToLine">
|
|
<Documentation>
|
|
<UserDocu>projectToLine(point, dir) -> Base.Vector
|
|
|
|
Projects `point` on a line that goes through the origin with the direction `dir`.
|
|
The result is the vector from `point` to the projected point.
|
|
The operation is equivalent to dir_n.cross(dir_n.cross(point)), where `dir_n` is
|
|
the vector `dir` normalized.
|
|
The method modifies this vector instance according to result and does not
|
|
depend on the vector itself.
|
|
|
|
point : Base.Vector
|
|
dir : Base.Vector</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="projectToPlane">
|
|
<Documentation>
|
|
<UserDocu>projectToPlane(base, normal) -> Base.Vector
|
|
|
|
Projects in-place this vector on a plane defined by a base point
|
|
represented by `base` and a normal defined by `normal`.
|
|
|
|
base : Base.Vector
|
|
normal : Base.Vector</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="distanceToPoint" Const="true">
|
|
<Documentation>
|
|
<UserDocu>distanceToPoint(point2) -> float
|
|
|
|
Returns the distance to another point represented by `point2`.
|
|
.
|
|
point : Base.Vector</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="distanceToLine" Const="true">
|
|
<Documentation>
|
|
<UserDocu>distanceToLine(base, dir) -> float
|
|
|
|
Returns the distance between the point represented by this vector
|
|
and a line defined by a base point represented by `base` and a
|
|
direction `dir`.
|
|
|
|
base : Base.Vector
|
|
dir : Base.Vector</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="distanceToLineSegment" Const="true">
|
|
<Documentation>
|
|
<UserDocu>distanceToLineSegment(point1, point2) -> Base.Vector
|
|
|
|
Returns the vector between the point represented by this vector and the point
|
|
on the line segment with the shortest distance. The line segment is defined by
|
|
`point1` and `point2`.
|
|
|
|
point1 : Base.Vector
|
|
point2 : Base.Vector</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="distanceToPlane" Const="true">
|
|
<Documentation>
|
|
<UserDocu>distanceToPlane(base, normal) -> float
|
|
|
|
Returns the distance between this vector and a plane defined by a
|
|
base point represented by `base` and a normal defined by `normal`.
|
|
|
|
base : Base.Vector
|
|
normal : Base.Vector</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Attribute Name="Length" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>Gets or sets the length of this vector.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Type" Type="Float" />
|
|
</Attribute>
|
|
<Attribute Name="x" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>Gets or sets the X component of this vector.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="x" Type="Float"/>
|
|
</Attribute>
|
|
<Attribute Name="y" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>Gets or sets the Y component of this vector.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="y" Type="Float"/>
|
|
</Attribute>
|
|
<Attribute Name="z" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>Gets or sets the Z component of this vector.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="z" Type="Float"/>
|
|
</Attribute>
|
|
<Sequence
|
|
sq_length="true"
|
|
sq_concat="false"
|
|
sq_repeat="false"
|
|
sq_item="true"
|
|
mp_subscript="true"
|
|
sq_ass_item="true"
|
|
mp_ass_subscript="false"
|
|
sq_contains="false"
|
|
sq_inplace_concat="false"
|
|
sq_inplace_repeat="false">
|
|
</Sequence>
|
|
<ClassDeclarations>public:
|
|
VectorPy(const Vector3d & vec, PyTypeObject *T = &Type)
|
|
:PyObjectBase(new Vector3d(vec),T){}
|
|
VectorPy(const Vector3f & vec, PyTypeObject *T = &Type)
|
|
:PyObjectBase(new Vector3d(vec.x,vec.y,vec.z),T){}
|
|
Vector3d value() const
|
|
{ return *(getVectorPtr()); }
|
|
private:
|
|
Py::List sequence;
|
|
</ClassDeclarations>
|
|
</PythonExport>
|
|
</GenerateModel>
|