From 2d0e78387bdbb46c9bdd8c9bea3ae3073fc7f8de Mon Sep 17 00:00:00 2001 From: hyzboy Date: Tue, 28 May 2019 22:03:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9BSceneNode=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=B8=A6=E7=9F=A9=E9=98=B5=E7=9A=84=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/hgl/graph/SceneNode.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/inc/hgl/graph/SceneNode.h b/inc/hgl/graph/SceneNode.h index 0ab39a36..1699ad35 100644 --- a/inc/hgl/graph/SceneNode.h +++ b/inc/hgl/graph/SceneNode.h @@ -46,15 +46,44 @@ namespace hgl public: SceneNode()=default; + SceneNode(const Matrix4f &mat) + { + SetLocalMatrix(mat); + } virtual ~SceneNode() { ClearSubNode(); } + SceneNode *CreateSubNode() + { + SceneNode *sn=new SceneNode(); + + SubNode.Add(sn); + return sn; + } + + SceneNode *CreateSubNode(const Matrix4f &mat) + { + SceneNode *sn=new SceneNode(mat); + + SubNode.Add(sn); + return sn; + } + void Add(SceneNode *n){if(n)SubNode.Add(n);} ///<增加一个子节点 void ClearSubNode(){SubNode.ClearData();} ///<清除子节点 void Add(RenderableInstance *ri){if(ri)renderable_instances.Add(ri);} ///<增加渲染实例 + + void Add(RenderableInstance *ri,const Matrix4f &mat) + { + SceneNode *sn=new SceneNode(mat); + + sn->Add(ri); + SubNode.Add(sn); + } + void ClearRenderableInstance(){renderable_instances.ClearData();} ///<清除渲染实例 public: //坐标相关方法