#pragma once #ifdef MY_LIB_SHARED_BUILD #ifdef _WIN32 #ifdef MY_LIB_EXPORTS #define POINT_LIB_API __declspec(dllexport) #else #define POINT_LIB_API __declspec(dllimport) #endif // MY_LIB_EXPORTS #else #define POINT_LIB_API #endif // _WIN32 #else #define POINT_LIB_API #endif // MY_LIB_SHARED_BUILD #include #include #include #include using namespace std; extern "C" POINT_LIB_API const double eps = 1e-6; extern "C" POINT_LIB_API bool Equal(double a, double b); extern "C" struct POINT_LIB_API P { double x, y, z; // 坐标 double dx, dy, dz; // 方向 bool isend; // 是否为端点 int type; // 0卡箍 1未确定分支点 2已确定分支点 3连接器 int ref; // 指向其代表的相应数据类型标号 bool operator<(P B) const; bool operator==(P B) const; bool operator!=(P B) const; void set(int i, double v); const double get(int i); void reverse(); P(double x1, double y1, double z1); P(); P operator-(P B) const; P operator+(P B) const; P operator*(double p) const; P operator/(double p) const; void print(string s); // 设置方向 void setDir(const P &dir); };