Example #1
0
void PickEntity(int x, int y)
{
	float xf, yf, dxf, dyf;
	DeviceToNormalized(x, y, &xf, &yf);
	InverseViewingTransformation(&xf, &yf);
	DeviceToNormalized(x + PICK_DELTA, y + PICK_DELTA, &dxf, &dyf);
	InverseViewingTransformation(&dxf, &dyf);
	dxf = abs(dxf - xf);
	dyf = abs(dyf - yf);

	if (selected_entity != entities.end())
	{
		(*selected_entity)->SetUnactive();
	}

	std::list<Entity*>::iterator it;
	for (it = entities.begin(); it != entities.end(); it++)
	{
		if ((*it)->Pick(xf, yf, sqrt(dxf*dyf)))
		{
			(*it)->SetActive();
			break;
		}
	}
	selected_entity = it;

	ReDrawAll();
}
Example #2
0
void DeleteEntity()
{
	if (selected_entity != entities.end())
	{
		delete *selected_entity;
		entities.erase(selected_entity);
		selected_entity = entities.end();
		ReDrawAll();
	}
}
Example #3
0
void MouseUpZoom() {
	DrawZoomRectangle();
	float xf0, yf0, xf1, yf1;
	GetWorldCoordinates(p0_x, p0_y, &xf0, &yf0);
	GetWorldCoordinates(p1_x, p1_y, &xf1, &yf1);
	float aux_x = xf0 + xf1;
	float aux_y = yf0 + yf1;
	xf0 = min(xf0, xf1);
	yf0 = min(yf0, yf1);
	xf1 = aux_x - xf0;
	yf1 = aux_y - yf0;
	SetWindow(xf0, xf1, yf0, yf1);
	ReDrawAll();
	mouse_action = NO_ACTION;
}
Example #4
0
void RMouseDownZoom() {
	SetWindow(0.0f, (float)x_end, 0.0f, (float)y_end);
	ReDrawAll();
	mouse_action = NO_ACTION;
}
Example #5
0
DJ_Void EvtHandler(DJ_U32 esrParam)
{
	Acs_Evt_t *			    pAcsEvt = NULL;
	Acs_Dev_List_Head_t * pAcsDevList = NULL;


	pAcsEvt = (Acs_Evt_t *) esrParam;
	DispEventInfo ( pAcsEvt );

	switch ( pAcsEvt->m_s32EventType )
	{
		case XMS_EVT_QUERY_DEVICE:
			if ( IsSysMod(pAcsEvt->m_DeviceID.m_s8ModuleID) )
			{
				pAcsDevList = ( Acs_Dev_List_Head_t *) FetchEventData(pAcsEvt);

				//收到设备变化的事件,增加/调整 该设备资源
				AddDeviceRes ( pAcsDevList );
			}
			break; 
		case XMS_EVT_QUERY_ONE_DSP_END:
			if ( IsSysMod(pAcsEvt->m_DeviceID.m_s8ModuleID) )
			{
				AllDeviceRes[pAcsEvt->m_DeviceID.m_s8ModuleID].lFlag = 1;		// 该DSP可以用了

				OpenAllDevice_Dsp ( pAcsEvt->m_DeviceID.m_s8ModuleID );

				RefreshMapTable ( );

				ReDrawAll ();
			}
			break;

		case XMS_EVT_QUERY_DEVICE_END:	// 获取设备列表结束
			break;

		case XMS_EVT_OPEN_DEVICE:
			OpenDeviceOK ( &pAcsEvt->m_DeviceID );
			break;

		case XMS_EVT_DEVICESTATE:
			HandleDevState ( pAcsEvt );
			break;

		case XMS_EVT_UNIFAILURE:
			// must handle this event in your real System
			break;

		default:
			if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH  )
			{
				TrunkWork ( &M_OneTrunk(pAcsEvt->m_DeviceID), pAcsEvt );			
			}
			else if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_VOICE )
			{
				DeviceID_t	*pDevID;

				pDevID = &M_OneVoice(pAcsEvt->m_DeviceID).UsedDevID;

				if ( pDevID->m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH )
				{
					TrunkWork ( &M_OneTrunk(*pDevID), pAcsEvt );
				}
			}
			break;
	}
}