CB_Vector3D CB_Camera::getActualPosition() { CB_Vector3D camFL = CB_Vector3D(0, 0, getFocalLength()); CB_Quaternion quat = getRotation(); CB_Vector3D camPos = getPosition(); CB_Vector3D camVec = camPos + quat * camFL * camFL.length(); return camVec; }
QStringList *ExifReaderWriter::readExifInfo(QString pictureName, FormatHandler *formatH) { QStringList *exifList = new QStringList; Exiv2::Image::AutoPtr image = openExif(pictureName); if(image.get() == 0) return exifList; Exiv2::ExifData &exifData = image->exifData(); if (exifData.empty()) { //nejsou exif data return exifList; } //cteniGPS souradnic double lat = readLatLon("Exif.GPSInfo.GPSLatitude", exifData); double lon = readLatLon("Exif.GPSInfo.GPSLongitude", exifData); double alt = readAltitude("Exif.GPSInfo.GPSAltitude", exifData); //////////////////////////// //cteni data QDateTime *dateTime = NULL; if((dateTime = readExifDate(exifData,"Exif.Photo.DateTimeOriginal")) == NULL) if((dateTime = readExifDate(exifData,"Exif.Image.DateTimeOriginal")) == NULL) if((dateTime = readExifDate(exifData,"Exif.Photo.DateTimeDigitized")) == NULL) dateTime = readExifDate(exifData,"Exif.Image.DateTime"); //////////////////// QString cameraMake = readExifItem(exifData, "Exif.Image.Make"); QString cameraModel = readExifItem(exifData, "Exif.Image.Model"); QString imageSize = readExifItem(exifData, "Exif.Photo.PixelXDimension") +" x " + readExifItem(exifData, "Exif.Photo.PixelYDimension"); QString exposureTime = getExposureTime(exifData); QString flash = getFlash(exifData); //'5' flash fired but strobe return light not detected, '7' flash fired and strobe return light detected. QString meteringMode = getMeteringMode(exifData); QString fNumber = getFNumber(exifData); QString isoSpeed = readExifItem(exifData, "Exif.Photo.ISOSpeedRatings"); QString focalLength = getFocalLength(exifData); QString comment = readExifItem(exifData, "Exif.Photo.UserComment"); QString exposureBias = getExposureBias(exifData); QString exposureProgram = getExposureProgram(exifData); ////////////////// (*exifList) << ((dateTime != NULL) ? dateTime->toString(formatH->formatDateTime) : "") << (lat < 1000 ?(formatH->gpsInFormat(lat) + (lat>=0 ? tr("N") : tr("S"))) : "") << (lon < 1000 ?(formatH->gpsInFormat(lon) + (lon>=0 ? tr("E") : tr("W"))) : "") << (alt > -999 ?(QString::number(alt) + tr(" m")) : "") << cameraMake << cameraModel << exposureTime << exposureBias << exposureProgram << imageSize << flash << fNumber << meteringMode << isoSpeed << focalLength << comment ; return exifList; }
double QOpticalDevice::getNormalizedCoord(double u, double c) { return (u - c)/getFocalLength(); }