gldemo
HierarchyObject Class Reference

表示场景树中的节点 More...

#include <HierarchyObject.h>

Inheritance diagram for HierarchyObject:

Public Member Functions

int childrenCount ()
 子节点数量
 
HierarchyObjectgetChildren (int i)
 获取第i个子节点
 
HierarchyObjectgetChildren (const QString &name)
 寻找指定名称子节点
 
int findChild (HierarchyObject *child)
 找到子节点序号
 
int componentsCount ()
 本节点挂载的组件数量
 
HierarchyObjectgetParent ()
 获取父节点
 
glm::mat4 localToWorld ()
 从局部坐标转世界坐标的矩阵 More...
 
glm::mat4 worldToLocal ()
 从世界坐标转局部坐标的矩阵 More...
 
HierarchyObjectpopChild (int index)
 取出子节点 More...
 
void insertChild (int index, HierarchyObject *child)
 放入子节点 More...
 
void moveChild (int oldIndex, int newIndex)
 调整子节点顺序 More...
 
template<class T >
T * getComponent (int i)
 获取第i个组件,cast成指定类型 More...
 
template<class T >
T * getComponent ()
 获取第一个指定类型的组件 More...
 
ComponentaddComponent (Component *component)
 挂载组件 More...
 
void updateRecursively ()
 递归更新子树
 
void callRecursively (const std::function< void(HierarchyObject *)> &func, bool requireEnabled=false)
 递归遍历子树
 

Public Attributes

glm::mat4 transform
 该节点局部到该节点父节点局部坐标的变换阵
 
QString name
 节点名称
 
bool enabled
 如果为false,则其上及子节点上组件的onUpdate不会被调用
 

Private Attributes

std::vector< HierarchyObject * > children
 子节点列表
 
std::vector< Component * > components
 该节点挂载的组件列表
 
HierarchyObjectparentObj = NULL
 该节点的父节点
 

Detailed Description

表示场景树中的节点

Note
继承了QAbstractItemModel,用于在treeview中显示组件的可编辑属性

Member Function Documentation

Component * HierarchyObject::addComponent ( Component component)

挂载组件

Returns
组件自身指针
template<class T >
T* HierarchyObject::getComponent ( int  i)
inline

获取第i个组件,cast成指定类型

Note
如果该组件不是指定类型,返回空指针
template<class T >
T* HierarchyObject::getComponent ( )
inline

获取第一个指定类型的组件

Note
如果不存在该类型的组件,返回空指针
void HierarchyObject::insertChild ( int  index,
HierarchyObject child 
)

放入子节点

Note
仅调整,未通知treeview,不应被单独调用
glm::mat4 HierarchyObject::localToWorld ( )

从局部坐标转世界坐标的矩阵

Note
耗时,应缓存
void HierarchyObject::moveChild ( int  oldIndex,
int  newIndex 
)

调整子节点顺序

Note
仅调整,未通知treeview,不应被单独调用
HierarchyObject * HierarchyObject::popChild ( int  index)

取出子节点

Note
仅调整,未通知treeview,不应被单独调用
glm::mat4 HierarchyObject::worldToLocal ( )
inline

从世界坐标转局部坐标的矩阵

Note
耗时,应缓存

The documentation for this class was generated from the following files: