QString FormatDegreesMinutesSecondsPolarTheta::formatOutput (CoordUnitsPolarTheta coordUnits, double value, bool isNsHemisphere) const { LOG4CPP_INFO_S ((*mainCat)) << "FormatDegreesMinutesSecondsPolarTheta::formatOutput"; // See if similar method with hemisphere argument should have been called ENGAUGE_ASSERT (coordUnits != COORD_UNITS_POLAR_THETA_DEGREES_MINUTES_SECONDS_NSEW); switch (coordUnits) { case COORD_UNITS_POLAR_THETA_DEGREES: return formatOutputDegrees (value); case COORD_UNITS_POLAR_THETA_DEGREES_MINUTES: return formatOutputDegreesMinutes (value); case COORD_UNITS_POLAR_THETA_DEGREES_MINUTES_SECONDS: return formatOutputDegreesMinutesSeconds (value); case COORD_UNITS_POLAR_THETA_DEGREES_MINUTES_SECONDS_NSEW: return formatOutputDegreesMinutesSecondsNsew (value, isNsHemisphere); default: break; } LOG4CPP_ERROR_S ((*mainCat)) << "FormatDegreesMinutesSecondsPolarTheta::formatOutput"; ENGAUGE_ASSERT (false); return ""; }
void GridHealerAbstractBase::fillTrapezoid (QImage &image, int xBL, int yBL, int xBR, int yBR, int xTR, int yTR, int xTL, int yTL) { // Sanity checks if (xBL == 0 || yBL == 0 || xBR == 0 || yBR == 0 || xTR == 0 || yTR == 0 || xTL == 0 || yTL == 0) { LOG4CPP_ERROR_S ((*mainCat)) << "GridHealerAbstractBase::fillTrapezoid received undefined corner coordinate " << "xBL=" << xBL << " yBL=" << yBL << " xBR=" << xBR << " yBR=" << yBR << "xTR=" << xTR << " yTR=" << yTR << " xTL=" << xTL << " yTL=" << yTL; } if (!Pixels::pixelIsBlack(image, xBL, yBL)) { LOG4CPP_ERROR_S ((*mainCat)) << "GridHealerAbstractBase::fillTrapezoid has bad bottom left point"; } if (!Pixels::pixelIsBlack(image, xBR, yBR)) { LOG4CPP_ERROR_S ((*mainCat)) << "GridHealerAbstractBase::fillTrapezoid has bad bottom right point"; } if (!Pixels::pixelIsBlack(image, xTR, yTR)) { LOG4CPP_ERROR_S ((*mainCat)) << "GridHealerAbstractBase::fillTrapezoid has bad top right point"; } if (!Pixels::pixelIsBlack(image, xTL, yTL)) { LOG4CPP_ERROR_S ((*mainCat)) << "GridHealerAbstractBase::fillTrapezoid has bad top left point"; } // Any quadrilateral (including this trapezoid) can be considered the union of two triangles GridTriangleFill triangleFill; triangleFill.fill (m_gridLog, image, QPoint (xBL, yBL), QPoint (xBR, yBR), QPoint (xTR, yTR)); triangleFill.fill (m_gridLog, image, QPoint (xBL, yBL), QPoint (xTL, yTL), QPoint (xTR, yTR)); }
int Jpeg2000::inputFormat(const char *filename) const { FILE *reader; const char *s, *magic_s; int ext_format, magic_format; unsigned char buf[12]; OPJ_SIZE_T l_nb_read; reader = fopen(filename, "rb"); if (reader == NULL) { return -2; } memset(buf, 0, 12); l_nb_read = fread(buf, 1, 12, reader); fclose(reader); if (l_nb_read != 12) { return -1; } ext_format = getFileFormat(filename); if (ext_format == JPT_CFMT) { return JPT_CFMT; } if (memcmp(buf, JP2_RFC3745_MAGIC, 12) == 0 || memcmp(buf, JP2_MAGIC, 4) == 0) { magic_format = JP2_CFMT; magic_s = ".jp2"; } else if (memcmp(buf, J2K_CODESTREAM_MAGIC, 4) == 0) { magic_format = J2K_CFMT; magic_s = ".j2k or .jpc or .j2c"; } else { return -1; } if (magic_format == ext_format) { return ext_format; } s = filename + strlen(filename) - 4; LOG4CPP_ERROR_S ((*mainCat)) << "Jpeg2000::inputFormat" << "The extension of this file is incorrect. Found " << s << ". Should be " << magic_s; return magic_format; }
Segment *DigitizeStateSegment::segmentFromSegmentStart (const QPointF &posSegmentStart) const { LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateSegment::segmentFromSegmentStart" << " segments=" << m_segments.count(); QList<Segment*>::const_iterator itr; for (itr = m_segments.begin(); itr != m_segments.end(); itr++) { Segment *segment = *itr; if (segment->firstPoint() == posSegmentStart) { return segment; } } LOG4CPP_ERROR_S ((*mainCat)) << "DigitizeStateSegment::segmentFromSegmentStart"; ENGAUGE_ASSERT (false); return 0; }
DlgValidatorAbstract *DlgValidatorFactory::createWithPolar (CoordScale coordScale, CoordUnitsPolarTheta coordUnits) const { LOG4CPP_INFO_S ((*mainCat)) << "DlgValidatorFactory::createWithPolar"; switch (coordUnits) { case COORD_UNITS_POLAR_THETA_DEGREES: case COORD_UNITS_POLAR_THETA_DEGREES_MINUTES: case COORD_UNITS_POLAR_THETA_DEGREES_MINUTES_SECONDS: case COORD_UNITS_POLAR_THETA_DEGREES_MINUTES_SECONDS_NSEW: return new DlgValidatorDegreesMinutesSeconds (coordScale); case COORD_UNITS_POLAR_THETA_GRADIANS: case COORD_UNITS_POLAR_THETA_RADIANS: case COORD_UNITS_POLAR_THETA_TURNS: return new DlgValidatorNumber (coordScale); default: LOG4CPP_ERROR_S ((*mainCat)) << "DlgValidatorFactory::createWithNonPolar"; exit (-1); } }
DlgValidatorAbstract *DlgValidatorFactory::createWithNonPolar (CoordScale coordScale, CoordUnitsNonPolarTheta coordUnits, CoordUnitsDate coordUnitsDate, CoordUnitsTime coordUnitsTime) const { LOG4CPP_INFO_S ((*mainCat)) << "DlgValidatorFactory::createWithNonPolar"; switch (coordUnits) { case COORD_UNITS_NON_POLAR_THETA_DATE_TIME: return new DlgValidatorDateTime (coordScale, coordUnitsDate, coordUnitsTime); case COORD_UNITS_NON_POLAR_THETA_DEGREES_MINUTES_SECONDS: return new DlgValidatorDegreesMinutesSeconds (coordScale); case COORD_UNITS_NON_POLAR_THETA_NUMBER: return new DlgValidatorNumber(coordScale); default: LOG4CPP_ERROR_S ((*mainCat)) << "DlgValidatorFactory::createWithNonPolar"; exit (-1); } }
bool Jpeg2000::load (const QString &filename, QImage &imageResult) const { LOG4CPP_INFO_S ((*mainCat)) << "Jpeg2000::load" << " filename=" << filename.toLatin1().data(); if (invalidFileExtension (filename)) { return false; } opj_dparameters_t parameters; initializeParameters (parameters); parameters.decod_format = inputFormat (filename.toLatin1().data()); opj_stream_t *inStream = opj_stream_create_default_file_stream (filename.toLatin1().data(), 1); if (!inStream) { LOG4CPP_ERROR_S ((*mainCat)) << "Jpeg2000::load encountered error opening stream"; return false; } // Create decoder opj_codec_t *inCodec = decode (parameters.decod_format); if (!inCodec) { LOG4CPP_ERROR_S ((*mainCat)) << "Jpeg2000::load encountered error creating decoding stream"; opj_stream_destroy (inStream); return false; } // Callbacks for local handling of errors opj_set_info_handler (inCodec, infoCallback, 0); opj_set_warning_handler (inCodec, warningCallback, 0); opj_set_error_handler (inCodec, errorCallback, 0); if (!opj_setup_decoder (inCodec, ¶meters)) { LOG4CPP_ERROR_S ((*mainCat)) << "Jpeg2000::load encountered error decoding stream"; opj_stream_destroy (inStream); opj_destroy_codec (inCodec); return false; } // Read header and, if necessary, the JP2 boxes opj_image_t *image; if (!opj_read_header (inStream, inCodec, &image)) { LOG4CPP_ERROR_S ((*mainCat)) << "Jpeg2000::load encountered error reading header"; opj_stream_destroy (inStream); opj_destroy_codec (inCodec); opj_image_destroy (image); return false; } // Get the decoded image if (!(opj_decode (inCodec, inStream, image) && opj_end_decompress (inCodec, inStream))) { LOG4CPP_ERROR_S ((*mainCat)) << "Jpeg2000::load failed to decode image"; opj_destroy_codec (inCodec); opj_stream_destroy (inStream); opj_image_destroy (image); return false; } // Close the byte stream opj_stream_destroy (inStream); applyImageTweaks (image); // Transform into ppm image in memory bool success = true; QBuffer buffer; buffer.open (QBuffer::WriteOnly); if (imagetopnm (image, buffer)) { LOG4CPP_ERROR_S ((*mainCat)) << "Jpeg2000::load failed to generate new image"; success = false; } else { // Intermediate file for debugging // QFile file ("jpeg2000.ppm"); // file.open (QIODevice::WriteOnly); // file.write (buffer.data()); // file.close (); // Create output imageResult.loadFromData(buffer.data()); } // Deallocate if (inCodec) { opj_destroy_codec (inCodec); } opj_image_destroy (image); return success; }