Esempio n. 1
0
void Material::SetTextureImage( size_t index, Image image )
{
  Internal::Image* imagePtr(0);
  if( image )
  {
    imagePtr = &GetImplementation( image );
  }

  GetImplementation(*this).SetTextureImage( index, imagePtr );
}
std::shared_ptr<sf::Image> ImageManager::load(const std::string& name)
{
    std::shared_ptr<sf::Image> imagePtr(new sf::Image);

    if(!imagePtr->LoadFromFile(myPath + name))
        throw std::invalid_argument(name + ": couldn't load image");

    put(name, imagePtr);

    return imagePtr;
}
Esempio n. 3
0
imagePtr imageCompareBase::getImageFromIndex(int index) const {

  const QAction* actionMatch =
    ::actionFromImageName(leftImageMenu_->actions(),
                          findActionName<imagePtr>(imageNameFromIndex(index)));
  if (actionMatch) {
    return actionMatch->data().value<imagePtr>();
  }
  else {
    return imagePtr(NULL);
  }
}
Esempio n. 4
0
CL_PixelBuffer* ManagerSprite::frame( const std::string& path ) {

    ASSERT( !path.empty()
        && "Путь к фрейму не указан." );

    // проверяем кеш
    auto ftr = mKnownFrame.find( path );
    if (ftr != mKnownFrame.end()) {
        return ftr->second.get();
    }

    // в кеше этого изображения нет, загружаем
#ifdef _DEBUG
    std::cout << "  Фрейм '" << path << "' .. ";
#endif
    const int posExtension = path.find_last_of( '.' );
    const std::string extension =
        (posExtension == std::string::npos)
            ? "" : path.substr( posExtension );
    const bool support =
        (extension == ".png")
     || (extension == ".jpg")
    ;
    if ( !support ) {
        ASSERT( false
            && "Этот тип изображения не поддерживается." );
        return nullptr;
    }

    const auto image =
        (extension == ".png") ? CL_PNGProvider::load( path ) :
        (extension == ".jpg") ? CL_JPEGProvider::load( path ) :
        // #! Метод загрузки ниже не работает для ClanLib-2.3.6 / Windows 7.
        CL_ImageProviderFactory::load( path );
#ifdef _DEBUG
    std::cout << " OK" << std::endl;
#endif

    // кешируем
    std::unique_ptr< CL_PixelBuffer >
        imagePtr( new CL_PixelBuffer( image.copy() ) );
    ftr = mKnownFrame.insert(
        std::make_pair( path,  std::move( imagePtr ) )
    ).first;

    return ftr->second.get();
}
Esempio n. 5
0
int Material::AddTexture( Image image, const std::string& uniformName, Sampler sampler)
{
  int index( -1 );
  if( image )
  {
    Internal::ImagePtr imagePtr(&GetImplementation( image ));
    Internal::SamplerPtr samplerPtr(0);
    if( sampler )
    {
      samplerPtr = &GetImplementation( sampler );
    }

    index = GetImplementation(*this).AddTexture( imagePtr, uniformName, samplerPtr );
  }
  else
  {
    DALI_LOG_ERROR("Error adding invalid texture %s to material", uniformName.c_str() );
  }
  return index;
}
Esempio n. 6
0
void StatisticsCASARegion::_getStatsFromCalculator( casa::ImageInterface<casa::Float>* image,
       const casa::Record& region, const std::vector<int>& slice,
       QList<Carta::Lib::StatInfo>& stats, const QString& regionType ){
    //If the region record is empty, there are not stats - just return.
    int fieldCount = region.nfields();
    if ( fieldCount == 0 ){
        return;
    }
    std::shared_ptr<const casa::ImageInterface<casa::Float> > imagePtr( image->cloneII() );

    casa::CoordinateSystem cs = image->coordinates();
    casa::Vector<casa::Int> displayAxes = cs.directionAxesNumbers();
    casa::Quantum<casa::Double> pix0( 0, "pix");
    casa::IPosition shape = image->shape();
    int nAxes = shape.nelements();
    casa::Vector<casa::Quantum<casa::Double> > blcq( nAxes, pix0);
    casa::Vector<casa::Quantum<casa::Double> > trcq( nAxes, pix0);
    for ( int i = 0; i < nAxes; i++ ){
        if ( i == displayAxes[0] || i == displayAxes[1]){
            trcq[i].setValue( shape[i] );
        }
        else {
            blcq[i].setValue( slice[i] );
            trcq[i].setValue( slice[i] );
        }
    }

    casa::WCBox box( blcq, trcq, cs, casa::Vector<casa::Int>());
    casa::ImageRegion* imgBox = new casa::ImageRegion( box );
    std::shared_ptr<casa::SubImage<casa::Float> > boxImage( new casa::SubImage<Float>(*image, *imgBox ) );

    ImageStatsCalculator calc( boxImage, &region, "", true);
    calc.setList(False);
    Record result = calc.calculate();
    const casa::String blcKey( "blc");
    const casa::String trcKey( "trc");
    _insertScalar( result, "npts", Carta::Lib::StatInfo::StatType::FrameCount, stats );
    _insertScalar( result, "sum", Carta::Lib::StatInfo::StatType::Sum, stats );
    _insertScalar( result, "sumsq", Carta::Lib::StatInfo::StatType::SumSq, stats );
    _insertScalar( result, "min", Carta::Lib::StatInfo::StatType::Min, stats );
    _insertScalar( result, "max", Carta::Lib::StatInfo::StatType::Max, stats );
    _insertScalar( result, "mean", Carta::Lib::StatInfo::StatType::Mean, stats );
    _insertScalar( result, "sigma", Carta::Lib::StatInfo::StatType::Sigma, stats );
    _insertScalar( result, "rms", Carta::Lib::StatInfo::StatType::RMS, stats );
    _insertScalar( result, "flux", Carta::Lib::StatInfo::StatType::FluxDensity, stats );
    _insertList( result, blcKey, Carta::Lib::StatInfo::StatType::Blc, stats );
    _insertList( result, trcKey, Carta::Lib::StatInfo::StatType::Trc, stats );
    _insertList( result, "minpos", Carta::Lib::StatInfo::StatType::MinPos, stats );
    _insertList( result, "maxpos", Carta::Lib::StatInfo::StatType::MaxPos, stats );
    _insertString( result, "blcf", Carta::Lib::StatInfo::StatType::Blcf, stats );
    _insertString( result, "trcf", Carta::Lib::StatInfo::StatType::Trcf, stats );
    _insertString( result, "minposf", Carta::Lib::StatInfo::StatType::MinPosf, stats );
    _insertString( result, "maxposf", Carta::Lib::StatInfo::StatType::MaxPosf, stats );

    //Put in an identifier.
    if ( result.isDefined( blcKey ) && result.isDefined( trcKey ) ){
        casa::Vector<int> blcArray = result.asArrayInt( blcKey );
        QString blcVal = _vectorToString( blcArray );
        casa::Vector<int> trcArray = result.asArrayInt( trcKey );
        QString trcVal = _vectorToString( trcArray );
        QString idVal = regionType + ":" + blcVal;
        if ( blcVal != trcVal ){
            idVal = idVal + " x " + trcVal;
        }
        Carta::Lib::StatInfo info( Carta::Lib::StatInfo::StatType::Name );
        info.setValue( idVal );
        info.setImageStat( false );
        stats.append( info );
    }
}