2017-10-12 23:34:13 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "ebase.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace e2d
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
class ENode :
|
|
|
|
|
|
public EObject
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ENode();
|
|
|
|
|
|
|
|
|
|
|
|
ENode(
|
2017-10-14 11:40:47 +08:00
|
|
|
|
EString name
|
2017-10-12 23:34:13 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
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;
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
|
|
|
|
|
// <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;
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ڵľ<DAB5><C4BE><EFBFBD>
|
2017-10-14 11:40:47 +08:00
|
|
|
|
virtual ERect getRect() const;
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ڵ<EFBFBD>
|
2017-10-14 18:43:32 +08:00
|
|
|
|
virtual ENode * getParent() const;
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
|
|
|
|
|
// <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
|
|
|
|
|
|
);
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
|
|
|
|
|
// <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
|
|
|
|
|
2017-10-12 23:34:13 +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
|
2017-10-12 23:34:13 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <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-12 23:34:13 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
2017-10-14 18:43:32 +08:00
|
|
|
|
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD>ͼ˳<CDBC><CBB3>
|
|
|
|
|
|
virtual void setOrder(
|
|
|
|
|
|
int order
|
2017-10-12 23:34:13 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
2017-10-14 11:40:47 +08:00
|
|
|
|
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD>
|
|
|
|
|
|
virtual void setParentScene(
|
|
|
|
|
|
EScene * scene
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2017-10-12 23:34:13 +08:00
|
|
|
|
// <20><><EFBFBD>ø<EFBFBD><C3B8>ڵ<EFBFBD>
|
|
|
|
|
|
virtual void setParent(
|
2017-10-13 17:14:00 +08:00
|
|
|
|
ENode* parent
|
2017-10-12 23:34:13 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
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-12 23:34:13 +08:00
|
|
|
|
|
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();
|
|
|
|
|
|
|
2017-10-12 23:34:13 +08:00
|
|
|
|
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;
|
2017-10-12 23:34:13 +08:00
|
|
|
|
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;
|
2017-10-12 23:34:13 +08:00
|
|
|
|
EScene * m_pParentScene;
|
|
|
|
|
|
ENode * m_pParent;
|
2017-10-14 11:40:47 +08:00
|
|
|
|
std::vector<ENode*> m_vChildren;
|
2017-10-12 23:34:13 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
2017-10-14 18:43:32 +08:00
|
|
|
|
|
|
|
|
|
|
class ERectangle :
|
|
|
|
|
|
public ENode
|
|
|
|
|
|
{
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _onRender() override;
|
|
|
|
|
|
|
|
|
|
|
|
virtual void _onTransfrom() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2017-10-12 23:34:13 +08:00
|
|
|
|
}
|