//******************************************************************* // Copyright (C) 2000 ImageLinks Inc. // // License: MIT // // See LICENSE.txt file in the top level directory for more details. // // Author: Garrett Potts // //************************************************************************* // $Id: ossimFeatherMosaic.h 23664 2015-12-14 14:17:27Z dburken $ #ifndef ossimFeatherMosaic_HEADER #define ossimFeatherMosaic_HEADER #include #include #include #include /** * Performs a spatial blend accross overlapping regions */ class OSSIMDLLEXPORT ossimFeatherMosaic : public ossimImageMosaic { public: ossimFeatherMosaic(); ossimFeatherMosaic(ossimConnectableObject::ConnectableObjectList& inputSources); virtual ossimRefPtr getTile(const ossimIrect& origin, ossim_uint32 resLevel=0); virtual void initialize(); protected: virtual ~ossimFeatherMosaic(); /** * This is only visible by this class and will remain here * unless we want to move it later. */ class ossimFeatherInputInformation { public: ossimFeatherInputInformation(const vector& validVertices=vector()); void setVertexList(const vector& validVertices); ossimDpt theCenter; ossimDpt theAxis1; ossimDpt theAxis2; double theAxis1Length; double theAxis2Length; std::vector theValidVertices; }; friend ostream& operator<<(ostream& out, const ossimFeatherInputInformation& data); /** * will hold an array of input information * */ ossimFeatherInputInformation* theInputFeatherInformation; ossimRefPtr theAlphaSum; ossimRefPtr theResult; /** * Will hold the count for the feather information list. */ long theFeatherInfoSize; /** * The dummy variable is used for the template type. See the getTile * method for the call. */ template ossimRefPtr combine(T dummyVariableNotUsed, const ossimIrect& tileRect, ossim_uint32 resLevel); virtual double computeWeight(long index, const ossimDpt& point)const; TYPE_DATA }; #endif /* #ifndef ossimFeatherMosaic_HEADER */