void KX_CollisionSensor::ReParent(SCA_IObject *parent) { KX_GameObject *gameobj = static_cast<KX_GameObject *>(parent); PHY_IPhysicsController *sphy = ((KX_GameObject *)parent)->GetPhysicsController(); if (sphy) { m_physCtrl = sphy; } KX_ClientObjectInfo *client_info = gameobj->getClientInfo(); client_info->m_sensors.push_back(this); SCA_ISensor::ReParent(parent); }
void KX_TouchSensor::ReParent(SCA_IObject* parent) { KX_GameObject *gameobj = static_cast<KX_GameObject *>(parent); PHY_IPhysicsController *sphy = ((KX_GameObject*)parent)->GetPhysicsController(); if (sphy) m_physCtrl = sphy; // m_solidHandle = m_sumoObj->getObjectHandle(); KX_ClientObjectInfo *client_info = gameobj->getClientInfo(); //client_info->m_gameobject = gameobj; //client_info->m_auxilary_info = NULL; client_info->m_sensors.push_back(this); SCA_ISensor::ReParent(parent); }
void KX_BulletPhysicsController::SetObject (SG_IObject* object) { SG_Controller::SetObject(object); // cheating here... //should not be necessary, is it for duplicates ? KX_GameObject* gameobj = (KX_GameObject*) object->GetSGClientObject(); gameobj->SetPhysicsController(this,gameobj->IsDynamic()); CcdPhysicsController::setNewClientInfo(gameobj->getClientInfo()); if (m_bSensor) { // use a different callback function for sensor object, // bullet will not synchronize, we must do it explicitly SG_Callbacks& callbacks = gameobj->GetSGNode()->GetCallBackFunctions(); callbacks.m_updatefunc = KX_GameObject::SynchronizeTransformFunc; } }