92 lines
2.7 KiB
C++
92 lines
2.7 KiB
C++
#pragma once
|
|
#include <vlGraphics/Geometry.hpp>
|
|
#include <vlGraphics/Actor.hpp>
|
|
#include <vlCore/Colors.hpp>
|
|
#include "../log/PartPosBean.h"
|
|
|
|
class Part
|
|
{
|
|
public:
|
|
Part(int id, PartPosBean* bbp);
|
|
~Part();
|
|
|
|
vl::ref<vl::Actor> GetActor() { return m_Actor; }
|
|
void AddPoint(double x, double y, double z);
|
|
void AddLine(std::vector<vl::fvec3>& 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<vl::Geometry> m_Geo;
|
|
vl::ref<vl::ArrayFloat3> m_Vtx;
|
|
vl::ref<vl::DrawElementsUInt> m_Ele;
|
|
std::vector<vl::fvec3> m_Points;
|
|
std::vector<unsigned int> m_Indexs;
|
|
vl::ref<vl::Actor> m_Actor;
|
|
vl::ref<vl::Transform> m_Transform;
|
|
vl::ref<vl::Effect> m_Effect;
|
|
vl::vec3 m_Center;
|
|
vl::mat4 m_LocalMatrix;
|
|
};
|
|
|