25 #pragma warning(disable : 4251) 44 class LX_GEOM_EXPORT
Vec 64 Vec(
const double Xv,
const double Yv,
const double Zv);
77 void setCoord(
const int Index,
const double Xi);
80 void setCoord(
const double Xv,
const double Yv,
const double Zv);
82 void setX(
const double X);
84 void setY(
const double Y);
86 void setZ(
const double Z);
94 double coord(
const int Index)
const;
96 void coord(
double& Xv,
double& Yv,
double& Zv)
const;
115 bool isEqual(
const Vec& Other,
const double LinearTolerance,
const double AngularTolerance)
const;
120 bool isNormal(
const Vec& Other,
const double AngularTolerance)
const;
125 bool isOpposite(
const Vec& Other,
const double AngularTolerance)
const;
133 bool isParallel(
const Vec& Other,
const double AngularTolerance)
const;
140 double angle(
const Vec& Other)
const;
155 double angleWithRef(
const Vec& Other,
const Vec& VRef)
const;
157 double magnitude()
const;
159 double squareMagnitude()
const;
161 void add(
const Vec& Other);
165 Vec added(
const Vec& Other)
const;
169 void subtract(
const Vec& Right);
173 Vec subtracted(
const Vec& Right)
const;
177 void multiply(
const double Scalar);
181 Vec multiplied(
const double Scalar)
const;
182 Vec operator*(
const double Scalar)
const {
return multiplied(Scalar); }
185 void divide(
const double Scalar);
189 Vec divided(
const double Scalar)
const;
193 void cross(
const Vec& Right);
197 Vec crossed(
const Vec& Right)
const;
204 double crossMagnitude(
const Vec& Right)
const;
210 double crossSquareMagnitude(
const Vec& Right)
const;
212 void crossCross(
const Vec& V1,
const Vec& V2);
215 Vec crossCrossed(
const Vec& V1,
const Vec& V2)
const;
217 double dot(
const Vec& Other)
const;
223 double dotCross(
const Vec& V1,
const Vec& V2)
const;
229 Vec normalized()
const;
233 Vec reversed()
const;
235 Vec operator & (
const Vec& rcVct)
const;
240 void setLinearForm(
const double A1,
const Vec& V1,
const double A2,
const Vec& V2,
const double A3,
const Vec& V3,
const Vec& V4);
244 void setLinearForm(
const double A1,
const Vec& V1,
const double A2,
const Vec& V2,
const double A3,
const Vec& V3);
248 void setLinearForm(
const double A1,
const Vec& V1,
const double A2,
const Vec& V2,
const Vec& V3);
252 void setLinearForm(
const double A1,
const Vec& V1,
const double A2,
const Vec& V2);
255 void setLinearForm(
const double A1,
const Vec& V1,
const Vec& V2);
258 void setLinearForm(
const Vec& V1,
const Vec& V2);
261 void mirror(
const Vec& V);
267 Vec mirrored(
const Vec& V)
const;
287 void rotate(
const Geom::Ax1& A1,
const double Ang);
291 Vec rotated(
const Geom::Ax1& A1,
const double Ang)
const;
293 void scale(
const double S);
295 Vec scaled(
const double S)
const;
336 double& operator[](
int i);
347 double x = v1.
x() - v2.
x(), y = v1.
y() - v2.
y(), z = v1.
z() - v2.
z();
348 return static_cast<double>(sqrt((x * x) + (y * y) + (z * z)));
354 double x = v1.
x() - v2.
x(), y = v1.
y() - v2.
y(), z = v1.
z() - v2.
z();
355 return x * x + y * y + z * z;
358 LX_GEOM_EXPORT QString
to_string(
const Vec& vec);
Vec operator-() const
Definition: Vec.h:234
X
Definition: Globals.h:29
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:43
Vector3f & operator *=(Vector3f &rclVect, const Matrix4D &rclMtrx)
Definition: Matrix.h:351
void operator/=(const double Scalar)
Definition: Vec.h:186
double x() const
For this vector, returns its X coordinate.
Vec operator-(const Vec &Right) const
Definition: Vec.h:174
Vec operator^(const Vec &Right) const
Definition: Vec.h:198
Vec operator/(const double Scalar) const
Definition: Vec.h:190
void transform(Container container, OutputIt out, BinaryFunction function)
Definition: Algorithms.h:29
void operator-=(const Vec &Right)
Definition: Vec.h:170
double z() const
For this vector, returns its Z coordinate.
void operator^=(const Vec &Right)
Definition: Vec.h:194
Y
Definition: Globals.h:29
LX_GEOM_EXPORT QString to_string(const Dir &dir)
Z
Definition: Globals.h:29
Defines a non-persistent vector in 3D space.
Definition: Vec.h:44
double distance(const Geom::Vec &v1, const Geom::Vec &v2)
Returns the distance between two points.
Definition: Vec.h:345
double distanceP2(const Geom::Vec &v1, const Geom::Vec &v2)
Returns the squared distance between two points.
Definition: Vec.h:352
Vec multiplied(const double Scalar) const
Multiplies a vector by a scalar //! Divides a vector by a scalar
Geom::Vec operator *(const double Scalar, const Geom::Vec &V)
Definition: Vec.h:361
double y() const
For this vector, returns its Y coordinate.
Vec operator+(const Vec &Other) const
Definition: Vec.h:166
void operator+=(const Vec &Other)
Definition: Vec.h:162