#pragma once #include #include #include #include "../log/PartPosBean.h" class Part { public: Part(int id, PartPosBean* bbp); ~Part(); vl::ref GetActor() { return m_Actor; } void AddPoint(double x, double y, double z); void AddLine(std::vector& line); void Update(void); //void UpdateSurface(void); bool IsSelected(void) { return m_Selected; } void SetSelected(bool select); //double* GetOffsetX(void) { return &m_OffsetX; } // void SetOffsetX(double offset) { m_OffsetX = offset; } // double* GetOffsetY(void) { return &m_OffsetY; } //void SetOffsetY(double offset) { m_OffsetY = offset; } //void SetOffset(double x, double y) { m_OffsetX += x; m_OffsetY += y; } //void GetOffset(double *x, double *y) { *x = m_OffsetX; *y = m_OffsetY; } //void GetOffset(double *x, double *y, double *r) { *x = m_OffsetX; *y = m_OffsetY; *r = m_Rotated; } //double* GetRotate(void) { return &m_Rotated; } //void SetRotate(double angle) { m_Rotated = angle; } void GetLastPos(double *x, double *y) { *x = m_LastX; *y = m_LastY; } void SetLastPos(double x, double y) { m_LastX = x; m_LastY = y; } void RemoveData(void); //void UpdateOffset(double x, double y, double r); // void UpdateOffset(double x, double y); void UpdateOffset(void) { Transform(); } void UpdateGlobalOffset(double x, double y); void Transform(void); bool IsPrintable(void) { return m_IsPrintable; } void SetPrintable(bool printable) { m_IsPrintable = printable; if (m_IsPrintable) m_Effect->shader()->gocColor()->setValue(vl::skyblue); else m_Effect->shader()->gocColor()->setValue(vl::darkgray); } bool IsOffsetUpdated(void) { if (m_IsUpdated) { m_IsUpdated = false; return true; } else { return false; } } // void SetPartCenter(double x, double y) { m_PartCenterX = x; m_PartCenterY = y; } int GetId() { return m_ID; } private: bool m_Selected; bool m_IsPrintable; bool m_IsUpdated; int m_ID; PartPosBean* m_PartPosBean; //double m_OffsetX; //double m_OffsetY; //double m_Rotated; double m_LastX; double m_LastY; double m_SelectedColor[3] = { 173.0 / 255, 1.0, 47.0 / 255 }; double m_DefaultColor[3] = { 65.0 / 255, 105.0 / 255, 1.0 }; double m_DisableColor[3] = { 65.0 / 255, 65.0 / 255, 65.0 / 255 }; double m_GlobalOffsetX; double m_GlobalOffsetY; //double m_PartCenterX; //double m_PartCenterY; float m_DisplayPerscent; vl::ref m_Geo; vl::ref m_Vtx; vl::ref m_Ele; std::vector m_Points; std::vector m_Indexs; vl::ref m_Actor; vl::ref m_Transform; vl::ref m_Effect; vl::vec3 m_Center; vl::mat4 m_LocalMatrix; };