Ejemplo n.º 1
0
// ================================================
// OnPacketReceived
// vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
void ProcEnvRegionCtrl::OnPacketReceived(CigiBasePacket *Packet)
{
   CigiEnvRgnCtrlV3 *ercp = (CigiEnvRgnCtrlV3 *)Packet;

   int RgnID = (int)ercp->GetRegionID();
   std::list<EnvRegion>::iterator CrntRgn = 
      *(EnvRegionTable + RgnID);

   if(CrntRgn != EnvRegionLst->end())
   {
      CrntRgn->ProcEnvRegionCtrlPckt(ercp);
   }
   else
   {
      EnvRegion *TempRgn = new EnvRegion;

      EnvRegionLst->push_back(*TempRgn);
      
      delete TempRgn;

      // Get an iterator to the new environmental region
      CrntRgn = EnvRegionLst->end();
      CrntRgn--;

      // place a pointer to the environmental region in the lookup table
      *(EnvRegionTable + RgnID) = CrntRgn;
      
      // set up the new region according to the contents of the packet
      CrntRgn->SetEnvRegionID(RgnID);
      
      CrntRgn->SetPosConv(CoordCigi2DBase,
                       CoordDBase2Cigi);
	  
      CrntRgn->ProcEnvRegionCtrlPckt(ercp);

      // Create the 10 CIGI defined weather layers
      int ndx;
      WeatherCtrl InitWeatherCtrl;
      for(ndx=0;ndx<10;ndx++)
      {
         InitWeatherCtrl.SetLayerID(ndx);
         CrntRgn->AddWeatherCtrl(InitWeatherCtrl);
      }

   }

}
Ejemplo n.º 2
0
void XEnvRgnCtrlV3::OnPacketReceived(CigiBasePacket *Packet)
{
   CigiEnvRgnCtrlV3 *InPckt = (CigiEnvRgnCtrlV3 *)Packet;

   printf("Environmental Region Control\n");

   printf("\tRegion ID = %d\n",InPckt->GetRegionID());

   printf("\tRegion State = %d : ",InPckt->GetRgnState());
   switch(InPckt->GetRgnState())
   {
   case 0:
      printf("Inactive\n");
      break;
   case 1:
      printf("Active\n");
      break;
   case 2:
      printf("Destroyed\n");
      break;
   default:
      printf("\n");
      break;
   }

   printf("\tWeather Property = %d : ",InPckt->GetWeatherProp());
   switch(InPckt->GetWeatherProp())
   {
   case 0:
      printf("UseLast\n");
      break;
   case 1:
      printf("Merge\n");
      break;
   default:
      printf("\n");
      break;
   }

   printf("\tAerosol = %d : ",InPckt->GetAerosol());
   switch(InPckt->GetAerosol())
   {
   case 0:
      printf("UseLast\n");
      break;
   case 1:
      printf("Merge\n");
      break;
   default:
      printf("\n");
      break;
   }

   printf("\tMaritime Surface = %d : ",InPckt->GetMaritimeSurface());
   switch(InPckt->GetMaritimeSurface())
   {
   case 0:
      printf("UseLast\n");
      break;
   case 1:
      printf("Merge\n");
      break;
   default:
      printf("\n");
      break;
   }

   printf("\tTerrestrial Surface = %d : ",InPckt->GetTerrestrialSurface());
   switch(InPckt->GetTerrestrialSurface())
   {
   case 0:
      printf("UseLast\n");
      break;
   case 1:
      printf("Merge\n");
      break;
   default:
      printf("\n");
      break;
   }

   printf("\tLat = %f\n",InPckt->GetLat());
   printf("\tLon = %f\n",InPckt->GetLon());
   printf("\tX Size = %f\n",InPckt->GetXSize());
   printf("\tY Size = %f\n",InPckt->GetYSize());
   printf("\tCorner Radius = %f\n",InPckt->GetCornerRadius());
   printf("\tRotation = %f\n",InPckt->GetRotation());
   printf("\tTransition = %f\n",InPckt->GetTransition());


}