예제 #1
0
void XViewDef::OnPacketReceived(CigiBasePacket *Packet)
{
   CigiViewDefV3 *InPckt = (CigiViewDefV3 *)Packet;

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

   printf("ViewID ==> %d\n",InPckt->GetViewID());
   printf("GroupID ==> %d\n",InPckt->GetGroupID());
   printf("FOVNearEn ==> %d\n",InPckt->GetFOVNearEn());
   printf("FOVFarEn ==> %d\n",InPckt->GetFOVFarEn());
   printf("FOVLeftEn ==> %d\n",InPckt->GetFOVLeftEn());
   printf("FOVRightEn ==> %d\n",InPckt->GetFOVRightEn());
   printf("FOVTopEn ==> %d\n",InPckt->GetFOVTopEn());
   printf("FOVBottomEn ==> %d\n",InPckt->GetFOVBottomEn());
   printf("MirrorMode ==> %d\n",InPckt->GetMirrorMode());
   printf("PixelReplicateMode ==> %d\n",InPckt->GetPixelReplicateMode());
   printf("ProjectionType ==> %d\n",InPckt->GetProjectionType());
   printf("Reorder ==> %d\n",InPckt->GetReorder());
   printf("ViewType ==> %d\n",InPckt->GetViewType());
   printf("FOVNear ==> %f\n",InPckt->GetFOVNear());
   printf("FOVFar ==> %f\n",InPckt->GetFOVFar());
   printf("FOVLeft ==> %f\n",InPckt->GetFOVLeft());
   printf("FOVRight ==> %f\n",InPckt->GetFOVRight());
   printf("FOVTop ==> %f\n",InPckt->GetFOVTop());
   printf("FOVBottom ==> %f\n",InPckt->GetFOVBottom());


}
예제 #2
0
파일: ViewDefP.cpp 프로젝트: aughey/mpv
// ================================================
// OnPacketReceived(CigiBasePacket *Packet)
// vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
void ViewDefP::OnPacketReceived(CigiBasePacket *Packet)
{
	CigiViewDefV3 *vd = (CigiViewDefV3 *)(Packet);
	
	if( !viewMap || !viewGroupParamsMap ) return;

	std::map< int, RefPtr<View> >::iterator vpIter = 
		viewMap->find( vd->GetViewID() );

	// determine if this packet's viewID is one that we're listening for
	if( vpIter == viewMap->end() ) return;
	
	View *view = vpIter->second.get();

	int groupID = vd->GetGroupID();
	view->setGroupID( groupID );
	if( groupID != 0 ) {
		
		ViewGroupParams * vgp = (*viewGroupParamsMap)[groupID];
		if( vgp == NULL ) {
			(*viewGroupParamsMap)[groupID] = vgp = new ViewGroupParams;
			memset( vgp, 0, sizeof( ViewGroupParams ) );
		}
		
	}
	
	if( vd->GetFOVNearEn() || vd->GetFOVFarEn() )
	{
		float near = view->getNearPlane();
		float far = view->getFarPlane();
		if( vd->GetFOVNearEn() )
			near = vd->GetFOVNear();
		if( vd->GetFOVFarEn() )
			far = vd->GetFOVFar();
		view->setNearFarPlanes( near, far );
	}
	
	if( vd->GetFOVLeftEn() || vd->GetFOVRightEn() || 
	    vd->GetFOVTopEn() || vd->GetFOVBottomEn() )
	{
		float fovLeft = view->getFovLeft();
		float fovRight = view->getFovRight();
		float fovTop = view->getFovTop();
		float fovBottom = view->getFovBottom();
		if( vd->GetFOVLeftEn() )
			fovLeft = vd->GetFOVLeft();
		if( vd->GetFOVRightEn() )
			fovRight = vd->GetFOVRight();
		if( vd->GetFOVTopEn() )
			fovTop = vd->GetFOVTop();
		if( vd->GetFOVBottomEn() )
			fovBottom = vd->GetFOVBottom();
		view->setFov( fovLeft, fovRight, fovTop, fovBottom );
	}

	view->setParallelProjection( CigiBaseViewDef::Orthographic == vd->GetProjectionType() );

	view->setMirrorMode( vd->GetMirrorMode() );
}