Clean up of scene nodes to support 2d and non int positioning.
This commit is contained in:
parent
1eeaebd0a9
commit
672b31b603
45 changed files with 341 additions and 200 deletions
58
src/visual_elements/nodes/AbstractVisualNode.h
Normal file
58
src/visual_elements/nodes/AbstractVisualNode.h
Normal file
|
@ -0,0 +1,58 @@
|
|||
#pragma once
|
||||
|
||||
#include "SceneModel.h"
|
||||
#include "AbstractMesh.h"
|
||||
|
||||
#include "Image.h"
|
||||
#include "Point.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
struct SceneInfo;
|
||||
|
||||
class AbstractVisualNode
|
||||
{
|
||||
public:
|
||||
AbstractVisualNode(const Point& location, const std::string& name = {});
|
||||
|
||||
virtual ~AbstractVisualNode() = default;
|
||||
|
||||
void addChild(AbstractVisualNode* child);
|
||||
|
||||
virtual SceneItem* getSceneItem(std::size_t idx) const;
|
||||
|
||||
virtual std::size_t getNumSceneItems() const;
|
||||
|
||||
std::size_t getNumChildren() const;
|
||||
|
||||
const std::vector<AbstractVisualNode*>& getChildren() const;
|
||||
|
||||
const std::string& getName() const;
|
||||
|
||||
Image<unsigned char>* getImage() const;
|
||||
|
||||
bool getIsVisible() const;
|
||||
|
||||
void syncChildren(const std::vector<AbstractVisualNode*>& children);
|
||||
|
||||
void setIsVisible(bool isVisible);
|
||||
|
||||
void setName(const std::string& name);
|
||||
|
||||
void setLocation(const Point& loc);
|
||||
|
||||
virtual void update(SceneInfo* sceneInfo);
|
||||
|
||||
protected:
|
||||
Point mLocation;
|
||||
std::vector<std::unique_ptr<SceneItem> > mSceneItems;
|
||||
std::unique_ptr<Image<unsigned char> > mImage;
|
||||
|
||||
std::vector<AbstractVisualNode*> mChildren;
|
||||
|
||||
bool mIsVisible{true};
|
||||
bool mTransformIsDirty{true};
|
||||
std::string mName;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue