7#ifndef VECTORWORKS_LINE_2D__H
8#define VECTORWORKS_LINE_2D__H
22 VWLine2D(
double x1,
double y1,
double x2,
double y2);
38 void SetLine(
double x1,
double y1,
double x2,
double y2);
80 double Distance(
double x,
double y)
const;
108 bool AreOnSameSide(
double x1,
double y1,
double x2,
double y2);
118 static void IntersectLines(
double x1,
double y1,
double x2,
double y2,
double x3,
double y3,
double x4,
double y4,
double& outIntersX,
double& outIntersY,
bool& outParallel,
bool& outOnSegment1,
bool& outOnSegment2,
double dEpsilon);
119 static void IntersectLines(
double x1,
double y1,
double x2,
double y2,
double x3,
double y3,
double x4,
double y4,
double& outIntersX,
double& outIntersY,
bool& outParallel,
bool& outOnSeg1Pt1,
bool& outOnSeg1Pt2,
bool& outOnSegment1,
bool& outOnSegment2,
double epsilon);
120 static void IntersectLines(
double x1,
double y1,
double x2,
double y2,
double x3,
double y3,
double x4,
double y4,
double& outIntersX,
double& outIntersY,
bool& outParallel,
bool& outOnSeg1Pt1,
bool& outOnSeg1Pt2,
bool& outOnSegment1,
bool& outOnSegment2,
double epsCoord,
double epsCollinear);
125 static bool AreLineSegmentsIntersecting(
double x1,
double y1,
double x2,
double y2,
double x3,
double y3,
double x4,
double y4,
double dEpsilon);
127 static bool AreLineSegmentsIntersecting(
double x1,
double y1,
double x2,
double y2,
double x3,
double y3,
double x4,
double y4,
double& outIntersX,
double& outIntersY,
bool& outParallel,
double epsilon);
129 static double Distance(
double x0,
double y0,
double x1,
double y1,
double x2,
double y2 );
132 static bool DoLineSegmentsBoundsIntersect(
double x1,
double y1,
double x2,
double y2,
double x3,
double y3,
double x4,
double y4,
double epsilon);
136 static void PtPerpLine(
double pX,
double pY,
double l1X,
double l1Y,
double l2X,
double l2Y,
double& outProjX,
double& outProjY);
static bool DoLineSegmentsBoundsIntersect(const VWPoint2D &p1, const VWPoint2D &p2, const VWPoint2D &p3, const VWPoint2D &p4, double epsilon)
Definition VWLine2D.cpp:777
VWPoint2D GetDirection() const
Definition VWLine2D.cpp:293
VWLine2D operator-(const VWPoint2D &p) const
Definition VWLine2D.cpp:106
bool PtOnLinePoints(const VWPoint2D &pt, double dEpsilon) const
Definition VWLine2D.cpp:242
double DistanceSeg(const VWPoint2D &pt) const
Definition VWLine2D.cpp:354
bool PtOnLineStart(const VWPoint2D &pt, double dEpsilon) const
Definition VWLine2D.cpp:232
double Distance(double x, double y) const
Definition VWLine2D.cpp:339
double GetLength() const
Definition VWLine2D.cpp:216
VWLine2D operator+(const VWPoint2D &p) const
Definition VWLine2D.cpp:99
VWLine2D & operator-=(const VWPoint2D &p)
Definition VWLine2D.cpp:184
void GetLine(VWPoint2D &outPtStart, VWPoint2D &outPtEnd) const
Definition VWLine2D.cpp:62
bool PtOnLineEnd(const VWPoint2D &pt, double dEpsilon) const
Definition VWLine2D.cpp:237
VWLine2D operator*(double scalar) const
Definition VWLine2D.cpp:163
VWLine2D & operator+=(const VWPoint2D &p)
Definition VWLine2D.cpp:177
void RotateAtDeg(const VWPoint2D ¢erPt, double_gs dDegAngle)
Definition VWLine2D.cpp:459
static void IntersectLines(const VWPoint2D &pt1, const VWPoint2D &pt2, const VWPoint2D &pt3, const VWPoint2D &pt4, VWLine2D &outIntersLine, bool &outParallel, bool &outOnSeg1, bool &outOnSeg2, double epsCoord, double epsCollinear)
bool Subtract(const VWLine2D &tool, std::vector< VWLine2D > results) const
Definition VWLine2D.cpp:113
bool AreOnSameSide(double x1, double y1, double x2, double y2)
Definition VWLine2D.cpp:366
double GetAngle90(const VWLine2D &line) const
Definition VWLine2D.cpp:276
VWPoint2D CenterPt() const
Definition VWLine2D.cpp:210
static bool PtOnLeftOfRay(const VWPoint2D &pt, const VWPoint2D &rayPt, const VWPoint2D &rayVec)
Definition VWLine2D.cpp:886
VWLine2D & operator/=(double scalar)
Definition VWLine2D.cpp:198
const VWPoint2D & GetStart() const
Definition VWLine2D.cpp:42
VWPoint2D PtPerpLineSeg(const VWPoint2D &pt) const
Definition VWLine2D.cpp:315
VWLine2D & operator=(const VWLine2D &src)
Definition VWLine2D.cpp:35
bool PtOnLine(const VWPoint2D &pt, double dEpsilon) const
Definition VWLine2D.cpp:254
const VWPoint2D & GetEnd() const
Definition VWLine2D.cpp:52
void SetStart(const VWPoint2D &pt)
Definition VWLine2D.cpp:68
bool AreLineSegmentsIntersecting(const VWLine2D &line, double dEpsilon) const
Definition VWLine2D.cpp:433
bool PtOnLeft(const VWPoint2D &pt) const
Definition VWLine2D.cpp:248
void SetLine(double x1, double y1, double x2, double y2)
Definition VWLine2D.cpp:78
VWLine2D operator/(double scalar) const
Definition VWLine2D.cpp:170
VWPoint2D PtPerpLine(double x, double y) const
Definition VWLine2D.cpp:310
VWPoint2D m_ptStart
Definition VWLine2D.h:143
virtual ~VWLine2D()
Definition VWLine2D.cpp:31
VWPoint2D m_ptEnd
Definition VWLine2D.h:144
void RotateAtRad(const VWPoint2D ¢erPt, double_gs dRadAngle)
Definition VWLine2D.cpp:466
VWLine2D & operator*=(double scalar)
Definition VWLine2D.cpp:191
void ReverseSides()
Definition VWLine2D.cpp:92
static bool PtOnLeftOfLine(const VWPoint2D &pt, const VWPoint2D &lnPt0, const VWPoint2D &lnPt1)
Definition VWLine2D.cpp:880
VWPoint2D RelativeCoords(const VWPoint2D &pt) const
Definition VWLine2D.cpp:451
bool IntersectLineSegments(const VWLine2D &line, VWPoint2D &outIntersPt) const
Definition VWLine2D.cpp:418
bool IntersectLines(const VWLine2D &line, VWPoint2D &outIntersPt) const
Definition VWLine2D.cpp:382
VWLine2D()
Definition VWLine2D.cpp:11
void SetEnd(const VWPoint2D &pt)
Definition VWLine2D.cpp:73
void CalcLineEquation(double &outA, double &outB, double &outC) const
Definition VWLine2D.cpp:221
Definition VWPoint2D.h:17
std::vector< VWLine2D > TSTLLines2DArray
Definition VWLine2D.h:148
Real64 double_gs
Definition MCFloat.h:35