#pragma once #include "MLVector.h" #include "MLPoint.h" class MLPlNode; class MLMICROSTRUCTURE_EXPORT MLPlNode : public MLVector { public: MLPlNode(void); MLPlNode(double x, double y); MLPlNode(double x, double y, double z); MLPlNode(const MLPlNode& point); MLPlNode(const MLPoint& point); explicit MLPlNode(const QPointF& point); ~MLPlNode(void); // 元素数 __declspec(property(get=getL, put = setL)) double l; __declspec(property(get = getA, put = setA)) double a; public: // 当前节点长度 double getL() const; double& getL(); void setL(double l); // 当前节点角度 double getA() const; double& getA(); void setA(double a); // 转点坐标 MLPoint toPoint() const; QPoint toQPoint() const; QPointF toQPointF() const; MLPlNode &operator =(const MLPlNode &); friend MLMICROSTRUCTURE_EXPORT bool operator==(const MLPlNode &p1, const MLPlNode &p2); friend MLMICROSTRUCTURE_EXPORT bool operator>(const MLPlNode &p1, const MLPlNode &p2); friend MLMICROSTRUCTURE_EXPORT double operator^(const MLPlNode &p1, const MLPlNode &p2); private: double m_l; // 长度 double m_a; // 角度 };