Go to the documentation of this file.
39 class LX_BASE_EXPORT Vector2d
44 inline Vector2d(
void);
45 inline Vector2d(
float x,
float y);
46 inline Vector2d(
double x,
double y);
47 inline Vector2d(
const Vector2d& v);
50 inline Vector2d& operator=(
const Vector2d& v);
51 inline bool operator==(
const Vector2d& v)
const;
53 inline Vector2d
operator+(
const Vector2d& v)
const;
54 inline Vector2d& operator+=(
const Vector2d& v);
56 inline Vector2d
operator-(
const Vector2d& v)
const;
57 inline Vector2d& operator-=(
const Vector2d& v);
58 inline Vector2d
operator*(
double c)
const;
65 inline bool IsNull(
double tolerance = 0.0)
const;
66 inline double Length(
void)
const;
67 inline double Angle(
void)
const;
68 inline double Sqr(
void)
const;
70 inline Vector2d& Set(
double x,
double y);
72 inline Vector2d& Scale(
double factor);
73 inline Vector2d& Rotate(
double angle);
76 inline Vector2d Perpendicular(
bool clockwise =
false)
const;
77 static inline Vector2d FromPolar(
double r,
double fi);
80 inline bool IsEqual(
const Vector2d& v,
double tolerance = 0.0)
const;
82 double GetAngle(
const Vector2d& v)
const;
94 double MinX, MinY, MaxX, MaxY;
98 inline BoundBox2d(
double fX1,
double fY1,
double fX2,
double fY2);
99 inline bool IsValid(
void);
100 inline bool IsEqual(
const BoundBox2d&,
double tolerance)
const;
104 inline bool operator==(
const BoundBox2d& rclBB)
const;
107 inline double Width(
void)
const;
108 inline double Height(
void)
const;
109 inline bool Contains(
const Vector2d& v)
const;
110 inline bool Contains(
const Vector2d& v,
double tolerance)
const;
113 inline void SetVoid(
void);
116 bool Intersect(
const Line2d& rclLine)
const;
117 bool Intersect(
const BoundBox2d& rclBB)
const;
118 bool Intersect(
const Polygon2d& rclPoly)
const;
126 class LX_BASE_EXPORT
Line2d
132 inline Line2d(
const Line2d& rclLine);
133 inline Line2d(
const Vector2d& rclV1,
const Vector2d& rclV2);
136 inline double Length(
void)
const;
141 inline bool operator==(
const Line2d& rclLine)
const;
144 inline bool Contains(
const Vector2d& rclV)
const;
146 bool Intersect(
const Vector2d& rclV,
double eps)
const;
147 bool IntersectAndContain(
const Line2d& rclLine,
Vector2d& rclV)
const;
148 Vector2d FromPos(
double fDistance)
const;
166 inline size_t GetCtVectors(
void)
const;
169 inline Vector2d& At(
size_t ulNdx)
const;
170 inline bool Delete(
size_t ulNdx);
171 inline void DeleteAll(
void);
175 bool Contains(
const Vector2d& rclV)
const;
176 void Intersect(
const Polygon2d& rclPolygon, std::list<Polygon2d>& rclResultPolygonList)
const;
177 bool Intersect(
const Polygon2d& rclPolygon)
const;
178 bool Intersect(
const Vector2d& rclV,
double eps)
const;
181 std::vector<Vector2d> _aclVct;
211 return (
x == v.
x) && (
y == v.
y);
262 return x * v.
x +
y * v.
y;
284 return x *
x +
y *
y <= tolerance * tolerance;
289 return sqrt(
x *
x +
y *
y);
299 return x *
x +
y *
y;
325 x =
x * cos(angle) -
y * sin(angle);
326 y =
x * sin(angle) +
y * cos(angle);
349 return Vector2d(r * cos(fi), r * sin(fi));
354 double dx = (
x - v.
x);
355 double dy = (
y - v.
y);
357 return sqrt(dx * dx + dy * dy);
374 _aclVct = rclP._aclVct;
385 return _aclVct.size();
390 _aclVct.push_back(rclVct);
396 if (ulNdx < _aclVct.size())
398 std::vector<Vector2d>::iterator it = _aclVct.begin() + ulNdx;
420 inline Line2d::Line2d(
const Vector2d& rclV1,
const Vector2d& rclV2) : clV1(rclV1), clV2(rclV2)
448 MinX =
MinY = std::numeric_limits<double>::max();
458 MinX = std::min<double>(fX1, fX2);
459 MaxX = std::max<double>(fX1, fX2);
460 MinY = std::min<double>(fY1, fY2);
461 MaxY = std::max<double>(fY1, fY2);
505 return v.
x >=
MinX - tolerance && v.
x <=
MaxX + tolerance && v.
y >=
MinY - tolerance && v.
y <=
MaxY + tolerance;
515 MinX =
MinY = std::numeric_limits<double>::max();
516 MaxX =
MaxY = -std::numeric_limits<double>::max();
double MinY
Definition: Tools2D.h:114
Vector2d operator*(double c) const
Definition: Tools2D.h:268
Line2d & operator=(const Line2d &rclLine)
Definition: Tools2D.h:449
double MaxX
Definition: Tools2D.h:114
Vector2d & Negate(void)
Definition: Tools2D.h:329
double Length(void) const
Definition: Tools2D.h:307
Definition: Tools2D.h:112
double Width(void) const
Definition: Tools2D.h:508
double Distance(const Vector2d &v) const
Definition: Tools2D.h:372
BoundBox2d CalcBoundBox(void) const
bool IsValid(void)
Definition: Tools2D.h:484
double Height(void) const
Definition: Tools2D.h:513
static Vector2d FromPolar(double r, double fi)
Definition: Tools2D.h:367
bool operator==(const BoundBox2d &rclBB) const
Definition: Tools2D.h:503
Vector2d & Scale(double factor)
Definition: Tools2D.h:336
Vector2d GetCenter(void) const
Definition: Tools2D.h:528
Line2d(void)
Definition: Tools2D.h:151
double MinX
Definition: Tools2D.h:114
bool IsEqual(const Vector2d &v, double tolerance=0.0) const
Definition: Tools2D.h:380
DualNumber operator/(DualNumber a, DualNumber b)
Definition: DualNumber.h:101
Vector2d & operator[](size_t ulNdx) const
Definition: Tools2D.h:426
Vector2d Perpendicular(bool clockwise=false) const
Definition: Tools2D.h:362
Vector3f & operator*=(Vector3f &rclVect, const Matrix4D &rclMtrx)
Definition: Matrix.h:367
BoundBox2d & operator=(const BoundBox2d &rclBB)
Definition: Tools2D.h:494
Vector2d operator-(void) const
Definition: Tools2D.h:251
Vector2d & operator*=(double c)
Definition: Tools2D.h:273
void SetVoid(void)
Definition: Tools2D.h:533
Vector2d & operator-=(const Vector2d &v)
Definition: Tools2D.h:261
Definition: Tools2D.h:147
Vector2d & Set(double x, double y)
Definition: Tools2D.h:322
double y
Definition: Tools2D.h:62
bool operator==(const Vector2d &v) const
Definition: Tools2D.h:229
double Angle(void) const
Definition: Tools2D.h:312
void Add(const Vector2d &v)
Definition: Tools2D.h:539
Definition: Tools2D.h:177
bool operator==(const Line2d &rclLine) const
Definition: Tools2D.h:456
DualNumber operator*(DualNumber a, DualNumber b)
Definition: DualNumber.h:91
double x
Definition: Tools2D.h:62
DualNumber operator-(DualNumber a, DualNumber b)
Definition: DualNumber.h:81
bool Delete(size_t ulNdx)
Definition: Tools2D.h:414
Vector2d & Normalize(void)
Definition: Tools2D.h:350
Vector2d & Rotate(double angle)
Definition: Tools2D.h:343
void DeleteAll(void)
Definition: Tools2D.h:398
Vector2d & operator/=(double c)
Definition: Tools2D.h:295
Vector2d(void)
Definition: Tools2D.h:206
bool Contains(const Vector2d &v) const
Definition: Tools2D.h:518
Vector2d & operator=(const Vector2d &v)
Definition: Tools2D.h:222
size_t GetCtVectors(void) const
Definition: Tools2D.h:403
Vector2d & operator+=(const Vector2d &v)
Definition: Tools2D.h:244
double Sqr(void) const
Definition: Tools2D.h:317
Polygon2d(void)
Definition: Tools2D.h:179
DualNumber operator+(DualNumber a, DualNumber b)
Definition: DualNumber.h:71
double Length(void) const
Definition: Tools2D.h:444
_Precision Distance(const Vector3< _Precision > &v1, const Vector3< _Precision > &v2)
Returns the distance between two points.
Definition: Vector3D.h:218
BoundBox2d(void)
Definition: Tools2D.h:466
Vector2d clV1
Definition: Tools2D.h:149
Polygon2d & operator=(const Polygon2d &rclP)
Definition: Tools2D.h:392
Vector2d clV2
Definition: Tools2D.h:149
bool IsEqual(const BoundBox2d &, double tolerance) const
Definition: Tools2D.h:489
Vector2d & At(size_t ulNdx) const
Definition: Tools2D.h:431
Definition: AbstractXMLReader.h:5
bool Add(const Vector2d &rclVct)
Definition: Tools2D.h:408
double MaxY
Definition: Tools2D.h:114
Vector2d operator+(void) const
Definition: Tools2D.h:234
bool IsNull(double tolerance=0.0) const
Definition: Tools2D.h:302
bool Contains(const Vector2d &rclV) const
Definition: Tools2D.h:461
Vector2d operator/(double c) const
Definition: Tools2D.h:290