// ================================================ // OnPacketReceived(CigiBasePacket *Packet) // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv void PositionRequestP::OnPacketReceived(CigiBasePacket *Packet) { CigiPositionReqV3 *pr = (CigiPositionReqV3 *)(Packet); if( !trackerParamsMap ) return; if( pr->GetObjectClass() != CigiBasePositionReq::MotionTracker ) return; int trackerID = pr->GetObjectID(); std::map< int, TrackerParams * >::iterator tpIter = trackerParamsMap->find( trackerID ); if( tpIter == trackerParamsMap->end() ) { std::cout << "Warning: Host requested position for unknown motion tracker #" << trackerID << std::endl; return; } TrackerParams *trackerParams = (*tpIter).second; switch( pr->GetUpdateMode() ) { case CigiBasePositionReq::Continuous: trackerParams->positionRequestStatus = TrackerParams::PositionReqContinuous; break; case CigiBasePositionReq::OneShot: default: trackerParams->positionRequestStatus = TrackerParams::PositionReqOneShot; break; } }
void XPositionReqV3::OnPacketReceived(CigiBasePacket *Packet) { CigiPositionReqV3 *InPckt = (CigiPositionReqV3 *)Packet; bool ok = true; printf("Position Request\n"); printf("\tObject ID = %d\n",InPckt->GetObjectID()); printf("\tArticulated Part ID = %d\n",InPckt->GetArtPartID()); printf("\tUpdate Mode = %d : ",InPckt->GetUpdateMode()); switch(InPckt->GetUpdateMode()) { case 0: printf("OneShot\n"); break; case 1: printf("Continuous\n"); break; default: printf("\n"); break; } printf("\tObject Class = %d : ",InPckt->GetObjectClass()); switch(InPckt->GetObjectClass()) { case 0: printf("Entity\n"); break; case 1: printf("ArtPart\n"); break; case 2: printf("View\n"); break; case 3: printf("ViewGrp\n"); break; case 4: printf("MotionTracker\n"); break; default: printf("\n"); break; } printf("\tCoordinate System = %d : ",InPckt->GetCoordSys()); switch(InPckt->GetCoordSys()) { case 0: printf("Geodetic\n"); break; case 1: printf("ParentEntity\n"); break; case 2: printf("Submodel\n"); break; default: printf("\n"); break; } }