void InteractionBeginHomerManipulationActionEvent::execute() { int i; unsigned short type, id; User* user; bool localPipe = false; HomerManipulationActionModel* manipulationModel = NULL; user = UserDatabase::getUserById(userId); assert(user); if (userId == UserDatabase::getLocalUserId()) localPipe = true; if (localPipe) { Interaction* interactionModule = (Interaction*)SystemCore::getModuleByName("Interaction"); assert(interactionModule); manipulationModel = dynamic_cast<HomerManipulationActionModel*> (interactionModule->getManipulationActionModel()); } // if for (i = 0; i < (int)manipulatingEntityIds.size(); i++) { split(manipulatingEntityIds[i], type, id); // printd("Opening Pipe with type %i and id %i\n", type, id); TransformationPipe* manipulationPipe = TransformationManager::openPipe( INTERACTION_MODULE_ID, WORLD_DATABASE_ID, 1, 0, type, id, 0, !localPipe, user); if (manipulationModel) manipulationModel->setManipulationPipe(manipulatingEntityIds[i], manipulationPipe); } // for }
void PhysicsEndSpringManipulationActionEvent::execute() { int i; unsigned short type, id; User* user; bool localPipe = false; TransformationPipe* manipulationPipe; PhysicsSpringManipulationActionModel* manipulationModel = NULL; user = UserDatabase::getUserById(userId); assert(user); if (userId == UserDatabase::getLocalUserId()) localPipe = true; if (localPipe) { Interaction* interactionModule = (Interaction*)SystemCore::getModuleByName("Interaction"); assert(interactionModule); manipulationModel = dynamic_cast<PhysicsSpringManipulationActionModel*>(interactionModule->getManipulationActionModel()); } // if /* DEPRECATED: PIPE FOR PHYSICSENTITY IS MANAGED BY PHYSICS MODULE for (i=0; i < (int)physicsEntityIds.size(); i++) { split(physicsEntityIds[i], type, id); manipulationPipe = TransformationManager::getPipe(INTERACTION_MODULE_ID, WORLD_DATABASE_ID, 2, 0, type, id, 0, !localPipe, user); if (!manipulationPipe) printd(WARNING, "PhysicsEndSpringManipulationActionEvent::execute(): could not find manipulation Pipe for user with ID %u\n", userId); else TransformationManager::closePipe(manipulationPipe); if (manipulationModel) manipulationModel->clearPhysicsEntityPipe(physicsEntityIds[i]); } // for */ for (i=0; i < (int)nonPhysicsEntityIds.size(); i++) { split(nonPhysicsEntityIds[i], type, id); manipulationPipe = TransformationManager::getPipe(INTERACTION_MODULE_ID, WORLD_DATABASE_ID, 1, 0, type, id, 0, !localPipe, user); if (!manipulationPipe) printd(WARNING, "PhysicsEndSpringManipulationActionEvent::execute(): could not find manipulation Pipe for user with ID %u\n", userId); else TransformationManager::closePipe(manipulationPipe); if (manipulationModel) manipulationModel->clearNonPhysicsEntityPipe(nonPhysicsEntityIds[i]); } // for } // execute
void PhysicsBeginSpringManipulationActionEvent::execute() { int i; unsigned short type, id; User* user; bool localPipe = false; PhysicsSpringManipulationActionModel* manipulationModel = NULL; TransformationPipe* manipulationPipe; user = UserDatabase::getUserById(userId); assert(user); if (userId == UserDatabase::getLocalUserId()) localPipe = true; if (localPipe) { Interaction* interactionModule = (Interaction*)SystemCore::getModuleByName("Interaction"); assert(interactionModule); manipulationModel = dynamic_cast<PhysicsSpringManipulationActionModel*>(interactionModule->getManipulationActionModel()); } // if /* DEPRECATED: PIPE FOR PHYSICSENTITY IS MANAGED BY PHYSICS MODULE for (i=0; i < (int)physicsEntityIds.size(); i++) { split(physicsEntityIds[i], type, id); // printd("Opening Pipe with type %i and id %i\n", type, id); // manipulationPipe = TransformationManager::openPipe(INTERACTION_MODULE_ID, WORLD_DATABASE_ID, 2, 0, type, id, 0, !localPipe, user); // if (manipulationModel) // manipulationModel->setPhysicsEntityPipe(physicsEntityIds[i], manipulationPipe); } // for */ for (i=0; i < (int)nonPhysicsEntityIds.size(); i++) { split(nonPhysicsEntityIds[i], type, id); // printd("Opening Pipe with type %i and id %i\n", type, id); manipulationPipe = TransformationManager::openPipe(INTERACTION_MODULE_ID, WORLD_DATABASE_ID, 1, 0, type, id, 0, !localPipe, user); if (manipulationModel) manipulationModel->setNonPhysicsEntityPipe(nonPhysicsEntityIds[i], manipulationPipe); } // for } // execute
void InteractionEndVirtualHandManipulationActionEvent::execute() { int i; unsigned short type, id; User* user; bool localPipe = false; VirtualHandManipulationActionModel* manipulationModel = NULL; user = UserDatabase::getUserById(userId); assert(user); if (userId == UserDatabase::getLocalUserId()) localPipe = true; if (localPipe) { Interaction* interactionModule = (Interaction*)SystemCore::getModuleByName("Interaction"); assert(interactionModule); manipulationModel = dynamic_cast<VirtualHandManipulationActionModel*> (interactionModule->getManipulationActionModel()); } // if for (i = 0; i < (int)manipulatingEntityIds.size(); i++) { split(manipulatingEntityIds[i], type, id); // printd("Opening Pipe with type %i and id %i\n", type, id); TransformationPipe* manipulationPipe = TransformationManager::getPipe( INTERACTION_MODULE_ID, WORLD_DATABASE_ID, 1, 0, type, id, 0, !localPipe, user); if (!manipulationPipe) printd( WARNING, "InteractionEndVirtualHandManipulationActionType::execute(): could not find manipulation Pipe for user with ID %u\n", userId); else TransformationManager::closePipe(manipulationPipe); if (manipulationModel) manipulationModel->clearManipulationPipe(manipulatingEntityIds[i]); } // for }