#pragma once #include "MLPlNode.h" #include "MLPline.h" #include "MLRect.h" class MLFuncom { public: MLFuncom(); ~MLFuncom(); }; void swap(double& a, double& b); //判断两个浮点数据是否相等 bool Equ(double dVal1, double dVal2); // == bool Equ(double dVal1, double dVal2, int dot); // == //得到距离 double GetDistance(const MLPlNode& dpt1, const MLPlNode& dpt2); double GetDistance(double dx1, double dy1, double dx2, double dy2); //查找(nKey 代表线数据的列序号 x=0 y=1 z=2 l=3 s=4) int bs(double dbKey, MLPline& pline, int nKey = 3); // 通过X 得到Y值 double CZ(double x0, double x1, double x2, double y1, double y2); double cz(double dbKey, int nIndex, MLPline& pline, int nKey1, int nKey2); double GetDistance(const MLPoint& dpt, const MLPoint& dpt1, const MLPoint& dpt2, MLPoint& dptDest); double GetDistance(const MLPlNode& dpt, const MLPlNode& dpt1, const MLPlNode& dpt2, MLPlNode& dptDest); //计算直线段与直线段相交关系(是否充许线1的延长) int LineLine(double L1x1, double L1y1, double L1x2, double L1y2, double* L2x1, double* L2y1, double* L2x2, double* L2y2, bool bExtend1 = false); //判断点是否在矩形内 bool ptInRect(const MLRect& Rect, double dbx, double dby); // 判断两矩形之间关系 bool CrossRtRt(const MLRect& rect1, const MLRect& rect2); // 双精度转字符串 __declspec(dllexport) QString ToString(int nVal); __declspec(dllexport) QString ToString(double dVal); __declspec(dllexport) QString ToString(double dVal, int nDotNum);