diff options
Diffstat (limited to 'Project/ConnectionLine.h')
-rw-r--r-- | Project/ConnectionLine.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Project/ConnectionLine.h b/Project/ConnectionLine.h new file mode 100644 index 0000000..e9d238a --- /dev/null +++ b/Project/ConnectionLine.h @@ -0,0 +1,43 @@ +#ifndef CONNECTIONLINE_H +#define CONNECTIONLINE_H + +#include "ControlElement.h" + +class ConnectionLine : public ControlElement +{ + public: + enum ConnectionLineType { ELEMENT_ELEMENT = 0, ELEMENT_LINE }; + ConnectionLine(); + ConnectionLine(Node* firstNode, int id); + ~ConnectionLine(); + + virtual void Draw(wxPoint2DDouble translation, double scale) const; + virtual bool Contains(wxPoint2DDouble position) const; + virtual bool Intersects(wxRect2DDouble rect) const; + virtual void RemoveParent(Element* parent); + virtual void StartMove(wxPoint2DDouble position); + virtual void Move(wxPoint2DDouble position); + virtual bool AppendNode(Node* node, ControlElement* parent); + virtual void UpdatePoints(); + virtual void SetTemporarySecondPoint(wxPoint2DDouble point) { m_tmpSndPt = point; } + virtual wxPoint2DDouble GetMidPoint() const; + virtual double GetOffset() const { return m_lineOffset; } + virtual void SetOffset(double offset) { m_lineOffset = offset; } + virtual ConnectionLineType GetType() const { return m_type; } + virtual void SetType(ConnectionLineType newType) { m_type = newType; } + virtual ConnectionLine* GetParentLine() const { return m_parentLine; } + virtual bool SetParentLine(ConnectionLine* parent); + + virtual std::vector<ConnectionLine*> GetLineChildList() const; + + protected: + double m_lineOffset = 0.0; + double m_moveStartPtY = 0.0; + double m_moveStartOffset = 0.0; + wxPoint2DDouble m_tmpSndPt; + + ConnectionLineType m_type = ELEMENT_ELEMENT; + ConnectionLine* m_parentLine = NULL; +}; + +#endif // CONNECTIONLINE_H |