//******************************************************************* // Copyright (C) 2000 ImageLinks Inc. // // License: MIT // // See LICENSE.txt file in the top level directory for more details. // // Author: Garrett Potts // // Description: // //************************************************************************* // $Id: ossimImageDataFactory.h 23664 2015-12-14 14:17:27Z dburken $ #ifndef ossimImageDataFactory_HEADER #define ossimImageDataFactory_HEADER #include #include #include class ossimSource; class ossimImageSource; /*! * This factory should be called by all image source producers to allocate * an image tile. */ class OSSIM_DLL ossimImageDataFactory { public: virtual ~ossimImageDataFactory(); static ossimImageDataFactory* instance(); virtual ossimRefPtr create(ossimSource* owner, ossimScalarType scalar, ossim_uint32 bands = 1)const; virtual ossimRefPtr create(ossimSource* owner, ossimScalarType scalar, ossim_uint32 bands, ossim_uint32 width, ossim_uint32 height)const; virtual ossimRefPtr create( ossimSource* owner, ossim_uint32 bands, ossimImageSource* inputSource)const; virtual ossimRefPtr create( ossimSource* owner, ossimImageSource* inputSource)const; protected: ossimImageDataFactory(); // hide ossimImageDataFactory(const ossimImageDataFactory&){}//hide void operator = (ossimImageDataFactory&){}// hide static ossimImageDataFactory* theInstance; static OpenThreads::Mutex theInstanceMutex; }; #endif