#pragma once
#include <vector>
#include "point.h"
using namespace std;

class TopologicalAnalysis
{
public:
	TopologicalAnalysis(void);
	~TopologicalAnalysis(void);

	bool isPointInLine(double* point, double* startPoint, double* endPoint);

	// 判断点是否在线上
	int isPointInPolyLine(double* point, vector<double>& lineX,vector<double>& lineY);
	bool isPointInLine(CPoint1 point, CPoint1 startPoint, CPoint1 endPoint);

	//根据两点求出垂线过第三点的直线的交点
	bool GetPointToLineVerticalCross(double* linePt1,double* linePt2,double* pt,double* crossPt);

	//判断点是否在多边形内,交点法
	bool isPointInPolygon(CPoint1 point, vector<CPoint1> polygon);
	
	//判断两条直线段是否相交
	bool isLineIntersect(CPoint1 line1Start, CPoint1 line1End, CPoint1 line2Start, CPoint1 line2End);

	// 计算两点的欧式距离, 未实现
	double getDistance(CPoint1 point1, CPoint1 point2);

	//计算一组CPoint1的最大X
	double getMaxX(vector<CPoint1> points);
};