#ifndef __CFoldProTool_H__ #define __CFoldProTool_H__ #if _MSC_VER > 1000 #pragma once #endif class CFoldProTool { public: CFoldProTool(void); ~CFoldProTool(void); //保护线是否相交 BOOL IsCrossBy(const AcGeLine3d& line,PFoldProLine line1); BOOL IsCrossBy(PFoldProLine ProLine1,PFoldProLine ProLine2); //保护线是否和保护圆相交 BOOL IsCrossBy(PFoldProLine proLine,XFoldThunder thunder,double dHx); //计算交点 BOOL GetCrossPoint(PFoldProLine ProLine1,PFoldProLine ProLine2,AcGePoint3dArray& arCross); BOOL GetCrossPoint(PFoldProLine proLine,XFoldThunder thunder,double dHx,AcGePoint3dArray& arCross); //过滤基准保护线,返回false 为没有基准保护线 BOOL SortBaseLine(const AcGeIntArray& arNoBase,PFoldProLine& ProLine1,PFoldProLine& ProLine2,PFoldProLine& ProLine3); BOOL SortBaseLine(const AcGeIntArray& arNoBase,PFoldProLine& ProLine1,PFoldProLine& ProLine2); //判断保护线1是否比2离基准线更近 BOOL IsCloserByLine(const AcGeLine3d& line,PFoldProLine ProBase,PFoldProLine ProLine); //判断2针是否有关联 BOOL HasUnionPro(const XFoldThunder& thunder1,const XFoldThunder& thunder2,double dHx); }; #endif