Magic_Game/Easy2D/enodes.h

229 lines
3.1 KiB
C
Raw Normal View History

#pragma once
#include "ebase.h"
namespace e2d
{
class ENode :
public EObject
{
public:
ENode();
ENode(
2017-10-14 11:40:47 +08:00
EString name
);
virtual ~ENode();
// <20>ڵ<EFBFBD><DAB5>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ
virtual bool isVisiable() const;
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ͼ˳<CDBC><CBB3>
2017-10-14 18:43:32 +08:00
virtual int getOrder() const;
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual int getX() const;
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual int getY() const;
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
virtual EPoint getPos() const;
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
virtual UINT32 getWidth() const;
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5>߶<EFBFBD>
virtual UINT32 getHeight() const;
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>С
2017-10-14 11:40:47 +08:00
virtual ESize getSize() const;
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ڵľ<DAB5><C4BE><EFBFBD>
2017-10-14 11:40:47 +08:00
virtual ERect getRect() const;
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ڵ<EFBFBD>
2017-10-14 18:43:32 +08:00
virtual ENode * getParent() const;
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD>
2017-10-14 18:43:32 +08:00
virtual EScene * getParentScene() const;
2017-10-14 11:40:47 +08:00
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ӽڵ<D3BD>
virtual std::vector<ENode*> &getChildren();
// <20><>ȡ<EFBFBD>ӽڵ<D3BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
2017-10-14 18:43:32 +08:00
virtual size_t getChildrenCount() const;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>ȡ<EFBFBD>ӽڵ<D3BD>
virtual ENode * getChild(
EString name
) const;
2017-10-14 11:40:47 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>ȡ<EFBFBD>ӽڵ<D3BD>
2017-10-14 18:43:32 +08:00
static ENode * getChild(
EString name,
const std::vector<ENode*> &children
);
// <20><><EFBFBD>ýڵ<C3BD><DAB5>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ
virtual void setVisiable(
bool value
);
2017-10-14 11:40:47 +08:00
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
2017-10-14 18:43:32 +08:00
virtual void setName(
EString name
);
2017-10-14 11:40:47 +08:00
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void setX(
int x
);
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void setY(
int y
);
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
virtual void setPos(
int x,
int y
);
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
virtual void setPos(
EPoint p
);
// <20>ƶ<EFBFBD><C6B6>ڵ<EFBFBD>
virtual void move(
int x,
int y
);
// <20>ƶ<EFBFBD><C6B6>ڵ<EFBFBD>
virtual void move(
EVector v
);
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
virtual void setWidth(
UINT32 width
);
// <20><><EFBFBD>ýڵ<C3BD><DAB5>߶<EFBFBD>
virtual void setHeight(
UINT32 height
);
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD>С
virtual void setSize(
UINT32 width,
UINT32 height
);
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD>С
virtual void setSize(
2017-10-14 11:40:47 +08:00
ESize size
);
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD>ڵľ<DAB5><C4BE><EFBFBD>
virtual void setRect(
int x1,
int y1,
int x2,
int y2
);
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD>ڵľ<DAB5><C4BE><EFBFBD>
virtual void setRect(
EPoint leftTop,
EPoint rightBottom
);
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD>ڵľ<DAB5><C4BE><EFBFBD>
virtual void setRect(
2017-10-14 11:40:47 +08:00
ERect rect
);
2017-10-14 18:43:32 +08:00
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD>ͼ˳<CDBC><CBB3>
virtual void setOrder(
int order
);
2017-10-14 11:40:47 +08:00
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD>
virtual void setParentScene(
EScene * scene
);
// <20><><EFBFBD>ø<EFBFBD><C3B8>ڵ<EFBFBD>
virtual void setParent(
2017-10-13 17:14:00 +08:00
ENode* parent
);
2017-10-14 11:40:47 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD>ӽڵ<D3BD>
2017-10-14 18:43:32 +08:00
virtual void addChild(
ENode * child,
int order = 0
);
2017-10-14 11:40:47 +08:00
// <20>Ӹ<EFBFBD><D3B8>ڵ<EFBFBD><DAB5>Ƴ<EFBFBD>
2017-10-14 18:43:32 +08:00
virtual void removeFromParent(
bool release = false
);
2017-10-14 11:40:47 +08:00
// <20>Ƴ<EFBFBD><C6B3>ӽڵ<D3BD>
2017-10-14 18:43:32 +08:00
virtual void removeChild(
ENode * child,
bool release = false
);
2017-10-14 11:40:47 +08:00
// <20>Ƴ<EFBFBD><C6B3>ӽڵ<D3BD>
2017-10-14 18:43:32 +08:00
virtual void removeChild(
EString childName,
bool release = false
);
// <20><><EFBFBD>ʽڵ<CABD>
virtual void callOn();
2017-10-14 11:40:47 +08:00
protected:
// <20><>Ⱦ<EFBFBD>ڵ<EFBFBD>
virtual void _onRender();
2017-10-14 18:43:32 +08:00
// <20>ڵ<EFBFBD>״̬ת<CCAC><D7AA>
virtual void _onTransfrom();
// <20>ӽڵ<D3BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
void _sortChildren();
// <20>ڵ<EFBFBD>״̬ת<CCAC><D7AA>
void _transfrom();
protected:
2017-10-14 11:40:47 +08:00
EString m_sName;
size_t m_nHashName;
2017-10-14 18:43:32 +08:00
int m_nOrder;
bool m_bVisiable;
2017-10-14 18:43:32 +08:00
bool m_bSortNeeded;
bool m_bTransformNeeded;
2017-10-13 17:14:00 +08:00
ERect m_Rect;
2017-10-14 18:43:32 +08:00
EPoint m_Pos;
EScene * m_pParentScene;
ENode * m_pParent;
2017-10-14 11:40:47 +08:00
std::vector<ENode*> m_vChildren;
};
2017-10-14 18:43:32 +08:00
class ERectangle :
public ENode
{
protected:
virtual void _onRender() override;
virtual void _onTransfrom() override;
};
}