11 inline QLine(
int x1,
int y1,
int x2,
int y2);
13 inline bool isNull()
const;
18 inline int x1()
const;
19 inline int y1()
const;
21 inline int x2()
const;
22 inline int y2()
const;
24 inline int dx()
const;
25 inline int dy()
const;
27 inline void translate(
const QPoint &p);
28 inline void translate(
int dx,
int dy);
31 inline QLine translated(
int dx,
int dy)
const;
33 inline void setP1(
const QPoint &p1);
34 inline void setP2(
const QPoint &p2);
35 inline void setPoints(
const QPoint &p1,
const QPoint &p2);
36 inline void setLine(
int x1,
int y1,
int x2,
int y2);
38 inline bool operator==(
const QLine &d)
const;
39 inline bool operator!=(
const QLine &d)
const {
return !(*
this == d); }
49 inline QLine::QLine() { }
51 inline QLine::QLine(
const QPoint &pt1_,
const QPoint &pt2_) : pt1(pt1_), pt2(pt2_) { }
53 inline QLine::QLine(
int x1pos,
int y1pos,
int x2pos,
int y2pos) : pt1(
QPoint(x1pos, y1pos)), pt2(
QPoint(x2pos, y2pos)) { }
55 inline bool QLine::isNull()
const 60 inline int QLine::x1()
const 65 inline int QLine::y1()
const 70 inline int QLine::x2()
const 75 inline int QLine::y2()
const 80 inline QPoint QLine::p1()
const 85 inline QPoint QLine::p2()
const 90 inline int QLine::dx()
const 92 return pt2.x() - pt1.x();
95 inline int QLine::dy()
const 97 return pt2.y() - pt1.y();
100 inline void QLine::translate(
const QPoint &point)
106 inline void QLine::translate(
int adx,
int ady)
108 this->translate(
QPoint(adx, ady));
111 inline QLine QLine::translated(
const QPoint &p)
const 113 return QLine(pt1 + p, pt2 + p);
116 inline QLine QLine::translated(
int adx,
int ady)
const 118 return translated(
QPoint(adx, ady));
121 inline void QLine::setP1(
const QPoint &aP1)
126 inline void QLine::setP2(
const QPoint &aP2)
131 inline void QLine::setPoints(
const QPoint &aP1,
const QPoint &aP2)
137 inline void QLine::setLine(
int aX1,
int aY1,
int aX2,
int aY2)
143 inline bool QLine::operator==(
const QLine &d)
const 145 return pt1 == d.pt1 && pt2 == d.pt2;
154 enum IntersectType { NoIntersection, BoundedIntersection, UnboundedIntersection };
158 inline QLineF(
float x1,
float y1,
float x2,
float y2);
159 inline QLineF(
const QLine &line) : pt1(line.p1()), pt2(line.p2()) { }
161 static QLineF fromPolar(
float length,
float angle);
168 inline float x1()
const;
169 inline float y1()
const;
171 inline float x2()
const;
172 inline float y2()
const;
174 inline float dx()
const;
175 inline float dy()
const;
177 float length()
const;
178 void setLength(
float len);
181 void setAngle(
float angle);
183 float angleTo(
const QLineF &l)
const;
185 QLineF unitVector()
const;
186 inline QLineF normalVector()
const;
189 IntersectType intersect(
const QLineF &l,
QPointF *intersectionPoint)
const;
191 float angle(
const QLineF &l)
const;
193 inline QPointF pointAt(
float t)
const;
194 inline void translate(
const QPointF &p);
195 inline void translate(
float dx,
float dy);
198 inline QLineF translated(
float dx,
float dy)
const;
200 inline void setP1(
const QPointF &p1);
201 inline void setP2(
const QPointF &p2);
203 inline void setLine(
float x1,
float y1,
float x2,
float y2);
205 inline bool operator==(
const QLineF &d)
const;
206 inline bool operator!=(
const QLineF &d)
const {
return !(*
this == d); }
208 QLine toLine()
const;
218 inline QLineF::QLineF()
223 : pt1(apt1), pt2(apt2)
227 inline QLineF::QLineF(
float x1pos,
float y1pos,
float x2pos,
float y2pos)
228 : pt1(x1pos, y1pos), pt2(x2pos, y2pos)
232 inline float QLineF::x1()
const 237 inline float QLineF::y1()
const 242 inline float QLineF::x2()
const 247 inline float QLineF::y2()
const 252 inline bool QLineF::isNull()
const 254 return Math::FuzzyCompare(pt1.x(), pt2.x()) && Math::FuzzyCompare(pt1.y(), pt2.y());
257 inline QPointF QLineF::p1()
const 262 inline QPointF QLineF::p2()
const 267 inline float QLineF::dx()
const 269 return pt2.x() - pt1.x();
272 inline float QLineF::dy()
const 274 return pt2.y() - pt1.y();
277 inline QLineF QLineF::normalVector()
const 282 inline void QLineF::translate(
const QPointF &point)
288 inline void QLineF::translate(
float adx,
float ady)
290 this->translate(
QPointF(adx, ady));
295 return QLineF(pt1 + p, pt2 + p);
298 inline QLineF QLineF::translated(
float adx,
float ady)
const 300 return translated(
QPointF(adx, ady));
303 inline void QLineF::setLength(
float len)
308 pt2 =
QPointF(pt1.x() + v.dx() * len, pt1.y() + v.dy() * len);
311 inline QPointF QLineF::pointAt(
float t)
const 313 return QPointF(pt1.x() + (pt2.x() - pt1.x()) * t, pt1.y() + (pt2.y() - pt1.y()) * t);
316 inline QLine QLineF::toLine()
const 318 return QLine(pt1.toPoint(), pt2.toPoint());
322 inline void QLineF::setP1(
const QPointF &aP1)
327 inline void QLineF::setP2(
const QPointF &aP2)
332 inline void QLineF::setPoints(
const QPointF &aP1,
const QPointF &aP2)
338 inline void QLineF::setLine(
float aX1,
float aY1,
float aX2,
float aY2)
345 inline bool QLineF::operator==(
const QLineF &d)
const 347 return pt1 == d.pt1 && pt2 == d.pt2;
Definition: ParaPoint.h:203
different physics engine has different winding order.
Definition: EventBinding.h:32
Definition: ParaLine.h:151
Definition: ParaPoint.h:5