00001 #include "SG_IObject.h" 00002 #include "SG_Controller.h" 00003 00004 SG_Callbacks SG_IObject::m_nocallbacks = SG_Callbacks(); 00005 void SG_IObject::AddSGController(SG_Controller* cont) 00006 { 00007 m_SGcontrollers.push_back(cont); 00008 } 00009 00010 SG_IObject* SG_IObject::GetSGReplica() 00011 { 00012 return NULL; 00013 } 00014 void SG_IObject::ProcessSGReplica(SG_IObject* replica) 00015 { 00016 if (this->m_callbacks.m_replicafunc) 00017 { 00018 // call client provided replication func 00019 (this->m_callbacks.m_replicafunc)(replica,m_SGclientObject,m_SGclientInfo); 00020 } 00021 } 00022 00023 void SG_IObject::Destruct() 00024 { 00025 if (this->m_callbacks.m_destructionfunc) 00026 { 00027 // call client provided replication func 00028 (this->m_callbacks.m_destructionfunc)(NULL,m_SGclientObject,m_SGclientInfo); 00029 } 00030 } 00031 00032 void SG_IObject::SetSimulatedTime(double time) 00033 { 00034 SGControllerList::iterator contit; 00035 00036 for (contit = m_SGcontrollers.begin();!(contit==m_SGcontrollers.end());++contit) 00037 { 00038 (*contit)->SetSimulatedTime(time); 00039 } 00040 00041 }