25 #pragma warning(disable : 4251) 65 Vec(
const double Xv,
const double Yv,
const double Zv);
78 void setCoord(
const int Index,
const double Xi);
81 void setCoord(
const double Xv,
const double Yv,
const double Zv);
83 void setX(
const double X);
85 void setY(
const double Y);
87 void setZ(
const double Z);
95 double coord(
const int Index)
const;
97 void coord(
double& Xv,
double& Yv,
double& Zv)
const;
112 bool isEqual(
const Vec& Other,
const double LinearTolerance,
const double AngularTolerance)
const;
117 bool isNormal(
const Vec& Other,
const double AngularTolerance)
const;
122 bool isOpposite(
const Vec& Other,
const double AngularTolerance)
const;
130 bool isParallel(
const Vec& Other,
const double AngularTolerance)
const;
137 double angle(
const Vec& Other)
const;
152 double angleWithRef(
const Vec& Other,
const Vec& VRef)
const;
154 double magnitude()
const;
156 double squareMagnitude()
const;
158 void add(
const Vec& Other);
162 Vec added(
const Vec& Other)
const;
166 void subtract(
const Vec& Right);
170 Vec subtracted(
const Vec& Right)
const;
174 void multiply(
const double Scalar);
175 void operator*=(
const double Scalar) { multiply(Scalar); }
178 Vec multiplied(
const double Scalar)
const;
179 Vec operator*(
const double Scalar)
const {
return multiplied(Scalar); }
182 void divide(
const double Scalar);
186 Vec divided(
const double Scalar)
const;
190 void cross(
const Vec& Right);
194 Vec crossed(
const Vec& Right)
const;
201 double crossMagnitude(
const Vec& Right)
const;
207 double crossSquareMagnitude(
const Vec& Right)
const;
209 void crossCross(
const Vec& V1,
const Vec& V2);
212 Vec crossCrossed(
const Vec& V1,
const Vec& V2)
const;
214 double dot(
const Vec& Other)
const;
220 double dotCross(
const Vec& V1,
const Vec& V2)
const;
226 Vec normalized()
const;
230 Vec reversed()
const;
236 void setLinearForm(
const double A1,
const Vec& V1,
const double A2,
const Vec& V2,
const double A3,
const Vec& V3,
const Vec& V4);
240 void setLinearForm(
const double A1,
const Vec& V1,
const double A2,
const Vec& V2,
const double A3,
const Vec& V3);
244 void setLinearForm(
const double A1,
const Vec& V1,
const double A2,
const Vec& V2,
const Vec& V3);
248 void setLinearForm(
const double A1,
const Vec& V1,
const double A2,
const Vec& V2);
251 void setLinearForm(
const double A1,
const Vec& V1,
const Vec& V2);
254 void setLinearForm(
const Vec& V1,
const Vec& V2);
257 void mirror(
const Vec& V);
263 Vec mirrored(
const Vec& V)
const;
283 void rotate(
const Geom::Ax1& A1,
const double Ang);
287 Vec rotated(
const Geom::Ax1& A1,
const double Ang)
const;
289 void scale(
const double S);
291 Vec scaled(
const double S)
const;
304 double& operator[](
int i);
Vec operator-() const
Definition: Vec.h:231
X
Definition: Globals.h:32
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:42
void operator/=(const double Scalar)
Definition: Vec.h:183
Vec operator-(const Vec &Right) const
Definition: Vec.h:171
#define GEOM_EXPORT
Definition: geom_defines.h:8
Vec operator^(const Vec &Right) const
Definition: Vec.h:195
Vec operator/(const double Scalar) const
Definition: Vec.h:187
void operator-=(const Vec &Right)
Definition: Vec.h:167
void operator^=(const Vec &Right)
Definition: Vec.h:191
Y
Definition: Globals.h:32
Z
Definition: Globals.h:32
Defines a non-persistent vector in 3D space.
Definition: Vec.h:45
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:312
Vec operator+(const Vec &Other) const
Definition: Vec.h:163
void operator+=(const Vec &Other)
Definition: Vec.h:159