Delta3D 原始碼 之 dtCore Base

2021-06-10 11:08:00 字數 1827 閱讀 8922

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

;

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

orgversion 7.9.2 with

emacs

version 24

validate xhtml 1.0

Delta3d中的AI技術分析。

首先。先介紹下delta3d的ai大體狀態機制。其主要分為三種基類iconditional,operator,istatevariable。iconditional作為條件,通過從維護全域性狀態的worldstate中獲得狀態資訊來判斷條件是否成立,operator則是具體行為,同樣他需要通過wor...

delta3d與ode物理引擎的結合。

使用delta3d有些日子了,對物理引擎這塊沒有細看過,最近研究了一下。主要分為兩大部分,第一在dtcore中對ode的封裝,第二通過dtphysics,使用pal phys abstract layer 對三種物理引擎 bullet ode phys的封裝。這裡先介紹下dtcore中對delta3...

d3 bubble原始碼分析

d3 d3.pack d3.hierarchy 關於怎麼使用,中有關鍵注釋。這是一種典型的樹形結構,每個節點包含樹的深度和高度,還有 父親指標 兒子指標 1 var index 2 function else 19return root 20 2122 pack.radius function x ...