dtCore::Base解析
Table of Contents
1 dtCore::Base类
1.1 概述
dtCore::Base主要作用:
1.设置消息结构MessageData
2.作为收发消息的基类,一个类要想在OnMessage中接收别类发来的消息,就要继承Base
///Base class to support naming and message passing 继承类 public sigslot::hasslots<;>, public osg::Referenced 这个类是Delta3D大多数类中的基类,功能包括实体的命名,RTTI(这个有必要了解下了) 和消息传递.继承这个类,都有收发消息的功能。要想能够接收另一个类的消息,首先必须订阅 AddSender(base *sender).任何时候只要sender类调用了SendMessage()函数,就会触发你 的OnMessage()函数
1.2 Base类的结构
1.2.1 消息函数结构体
struct DT_CORE_EXPORT MessageData
{
std::string message; ///<Textual message
Base* sender; ///<Pointer to the sender
void* userData; ///<Void pointer to user data
};
1.2.2 一些重要的函数
void SetUniqueId(const UniqueId& id)//设置ID标识--一般用途不需要这个
virtual void OnMessage(MessageData*)
void AddSender(Base* sender);
void RemoveSender(Base* sender);
void SendMessage(const std::string& message = "", void* data = 0);
1.2.3 三个属性
//< The actual signal that gets triggered from SendMessage()
sigslot::signal1<MessageData*> mSendMessage;
UniqueId mId;
Date: 2012-10-21日
Author: Sunday
Org version 7.9.2 with Emacs version 24