This is the Vector export class 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. __reduce__() -> tuple Serialization of Vector objects. add(vector2) -> Base.Vector Returns the sum of this vector and `vector2`. vector2 : Base.Vector sub(vector2) -> Base.Vector Returns the difference of this vector and `vector2`. vector2 : Base.Vector negative() -> Base.Vector Returns the negative (opposite) of this vector. 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. multiply(factor) -> Base.Vector Multiplies in-place each component of this vector by a single factor. Equivalent to scale(factor, factor, factor). factor : float dot(vector2) -> float Returns the scalar product (dot product) between this vector and `vector2`. vector2 : Base.Vector cross(vector2) -> Base.Vector Returns the vector product (cross product) between this vector and `vector2`. vector2 : Base.Vector isOnLineSegment(vector1, vector2) -> bool Checks if this vector is on the line segment generated by `vector1` and `vector2`. vector1 : Base.Vector vector2 : Base.Vector getAngle(vector2) -> float Returns the angle in radians between this vector and `vector2`. vector2 : Base.Vector normalize() -> Base.Vector Normalizes in-place this vector to the length of 1.0. 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 isParallel(vector2, tol=0) -> bool Checks if this vector and `vector2` are parallel less or equal to the given tolerance. vector2 : Base.Vector tol : float isNormal(vector2, tol=0) -> bool Checks if this vector and `vector2` are normal less or equal to the given tolerance. vector2 : Base.Vector tol : float 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 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 distanceToPoint(point2) -> float Returns the distance to another point represented by `point2`. . point : Base.Vector 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 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 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 Gets or sets the length of this vector. Gets or sets the X component of this vector. Gets or sets the Y component of this vector. Gets or sets the Z component of this vector. 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;