예제 #1
0
// ================================================
// OnPacketReceived
// vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
void PluginMotionTrackerRecvr::ComponentCtrlP::OnPacketReceived(CigiBasePacket *packet)
{
	CigiCompCtrlV3 *ccp = (CigiCompCtrlV3 *)packet;
	
	// check the 'class' for this component ctrl; we're only interested in 
	// 'view' component controls
	if( ccp->GetCompClassV3() == CigiBaseCompCtrl::ViewV3 )
	{
		int viewID = (int)ccp->GetInstanceID();
		int componentID = ccp->GetCompID();
		int trackerID = ccp->GetCompState();
		
		// we're using component 0 for motion tracker info
		if( componentID == 0 )
		{
			motionTrackerRecvrPlugin->updateMotionTracker(
				trackerID,
				viewID,
				osg::Quat(
					ccp->GetFloatCompData( 0 ),
					ccp->GetFloatCompData( 1 ),
					ccp->GetFloatCompData( 2 ),
					ccp->GetFloatCompData( 3 ) )
				);
		}
		
	}
}
예제 #2
0
void XCompCtrl::OnPacketReceived(CigiBasePacket *Packet)
{
   CigiCompCtrlV3 *InPckt = (CigiCompCtrlV3 *)Packet;

   bool ok = true;

   printf("===> CompCtrl <===\n");

   printf("CompID ==> %d\n",InPckt->GetCompID());
   printf("InstanceID ==> %d\n",InPckt->GetInstanceID());
   printf("CompClassV3 ==> %d\n",InPckt->GetCompClassV3());
   printf("CompState ==> %d\n",InPckt->GetCompState());
   printf("CompData ==> %d\n",InPckt->GetLongCompData(0));
   printf("CompData ==> %d\n",InPckt->GetLongCompData(1));
   printf("CompData ==> %d\n",InPckt->GetLongCompData(2));
   printf("CompData ==> %d\n",InPckt->GetLongCompData(3));
   printf("CompData ==> %d\n",InPckt->GetLongCompData(4));
   printf("CompData ==> %d\n",InPckt->GetLongCompData(5));


}