Start cleaning geometry module.
This commit is contained in:
parent
26ecae46b3
commit
cd688f608f
52 changed files with 493 additions and 277 deletions
|
@ -2,6 +2,9 @@
|
|||
|
||||
#include "MaterialNode.h"
|
||||
|
||||
struct SceneInfo;
|
||||
class SceneModel;
|
||||
|
||||
class GeometryNode : public MaterialNode
|
||||
{
|
||||
public:
|
||||
|
@ -11,23 +14,33 @@ public:
|
|||
Rectangle,
|
||||
Circle,
|
||||
Arc,
|
||||
Line,
|
||||
Polyline
|
||||
Line
|
||||
};
|
||||
|
||||
public:
|
||||
GeometryNode(const Point& location);
|
||||
virtual ~GeometryNode() = default;
|
||||
virtual ~GeometryNode();
|
||||
|
||||
virtual Type getType() = 0;
|
||||
|
||||
unsigned getStrokeThickness() const;
|
||||
void setStrokeThickness(unsigned thickness);
|
||||
SceneItem* getSceneItem(std::size_t idx) const override;
|
||||
std::size_t getNumSceneItems() const override;
|
||||
|
||||
double getStrokeThickness() const;
|
||||
void setStrokeThickness(double thickness);
|
||||
|
||||
void update(SceneInfo* sceneInfo) override;
|
||||
|
||||
protected:
|
||||
unsigned mStrokeThickness{0};
|
||||
virtual void createOrUpdateGeometry(SceneInfo* sceneInfo) = 0;
|
||||
virtual void updateMaterial();
|
||||
virtual void updateTransform() = 0;
|
||||
|
||||
double mStrokeThickness{0};
|
||||
Type mType;
|
||||
bool mGeometryIsDirty{true};
|
||||
|
||||
std::unique_ptr<SceneModel> mBackgroundItem;
|
||||
};
|
||||
|
||||
using GeometryNodePtr = std::unique_ptr<GeometryNode>;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue