// advance camera to next point void Pointfile_Next (void) { if(!s_pointfile.shown()) return; if (s_check_point+2 == s_pointfile.end()) { globalOutputStream() << "End of pointfile\n"; return; } CPointfile::const_iterator i = ++s_check_point; CamWnd& camwnd = *g_pParentWnd->GetCamWnd(); Camera_setOrigin(camwnd, *i); g_pParentWnd->GetXYWnd()->SetOrigin(*i); { Vector3 dir(vector3_normalised(vector3_subtracted(*(++i), Camera_getOrigin(camwnd)))); Vector3 angles(Camera_getAngles(camwnd)); angles[CAMERA_YAW] = static_cast<float>(radians_to_degrees(atan2(dir[1], dir[0]))); angles[CAMERA_PITCH] = static_cast<float>(radians_to_degrees(asin(dir[2]))); Camera_setAngles(camwnd, angles); } }
bool Region_cameraValid() { Vector3 vOrig(vector3_snapped(Camera_getOrigin(*g_pParentWnd->GetCamWnd()))); for (int i=0 ; i<3 ; i++) { if (vOrig[i] > region_maxs[i] || vOrig[i] < region_mins[i]) { return false; } } return true; }
// camera API void QERApp_GetCamera( Vector3& origin, Vector3& angles ) { CamWnd& camwnd = *g_pParentWnd->GetCamWnd(); origin = Camera_getOrigin(camwnd); angles = Camera_getAngles(camwnd); }