Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
new files from raster transparency branch
git-svn-id: http://svn.osgeo.org/qgis/trunk@7927 c8812cc2-4d05-0410-92ff-de0c093fc19c
- Loading branch information
gsherman
committed
Jan 11, 2008
1 parent
c73ffbe
commit 89b8386
Showing
27 changed files
with
4,031 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,243 @@ | ||
|
||
class QgsContrastEnhancement | ||
{ | ||
%TypeHeaderCode | ||
#include <qgscontrastenhancement.h> | ||
%End | ||
|
||
public: | ||
|
||
/** \brief This enumerator describes the types of contrast enhancement algorithms that can be used. */ | ||
enum CONTRAST_ENHANCEMENT_ALGORITHM | ||
{ | ||
NO_STRETCH, //this should be the default color scaling algorithm | ||
STRETCH_TO_MINMAX, //linear histogram stretch | ||
STRETCH_AND_CLIP_TO_MINMAX, | ||
CLIP_TO_MINMAX, | ||
USER_DEFINED | ||
}; | ||
|
||
/*! These are exactly the same as GDAL pixel data types */ | ||
enum QgsRasterDataType { | ||
QGS_Unknown = 0, | ||
/*! Eight bit unsigned integer */ QGS_Byte = 1, | ||
/*! Sixteen bit unsigned integer */ QGS_UInt16 = 2, | ||
/*! Sixteen bit signed integer */ QGS_Int16 = 3, | ||
/*! Thirty two bit unsigned integer */ QGS_UInt32 = 4, | ||
/*! Thirty two bit signed integer */ QGS_Int32 = 5, | ||
/*! Thirty two bit floating point */ QGS_Float32 = 6, | ||
/*! Sixty four bit floating point */ QGS_Float64 = 7, | ||
/*! Complex Int16 */ QGS_CInt16 = 8, | ||
/*! Complex Int32 */ QGS_CInt32 = 9, | ||
/*! Complex Float32 */ QGS_CFloat32 = 10, | ||
/*! Complex Float64 */ QGS_CFloat64 = 11, | ||
QGS_TypeCount = 12 /* maximum type # + 1 */ | ||
}; | ||
|
||
QgsContrastEnhancement(QgsContrastEnhancement::QgsRasterDataType theDatatype=QGS_Byte); | ||
~QgsContrastEnhancement(); | ||
|
||
/* | ||
* | ||
* Static methods | ||
* | ||
*/ | ||
/** \brief Helper function that returns the maximum possible value for a GDAL data type */ | ||
static double getMaximumPossibleValue(QgsRasterDataType); | ||
/** \brief Helper function that returns the minimum possible value for a GDAL data type */ | ||
static double getMinimumPossibleValue(QgsRasterDataType); | ||
|
||
/* | ||
* | ||
* Non-Static Inline methods | ||
* | ||
*/ | ||
/** \brief Return the maximum value for the contrast enhancement range. */ | ||
double getMaximumValue(); | ||
|
||
/** \brief Return the minimum value for the contrast enhancement range. */ | ||
double getMinimumValue(); | ||
|
||
CONTRAST_ENHANCEMENT_ALGORITHM getContrastEnhancementAlgorithm(); | ||
|
||
/* | ||
* | ||
* Non-Static methods | ||
* | ||
*/ | ||
/** \brief Return true if pixel is in stretable range, false if pixel is outside of range (i.e., clipped) */ | ||
bool isValueInDisplayableRange(double); | ||
/** \brief Set the contrast enhancement algorithm */ | ||
void setContrastEnhancementAlgorithm(CONTRAST_ENHANCEMENT_ALGORITHM, bool generateTable=true); | ||
/** \brief A public method that allows the user to set their own custom contrast enhancment function */ | ||
void setContrastEnhancementFunction(QgsContrastEnhancementFunction*); | ||
/** \brief Set the maximum value for the contrast enhancement range. */ | ||
void setMaximumValue(double, bool generateTable=true); | ||
/** \brief Return the minimum value for the contrast enhancement range. */ | ||
void setMinimumValue(double, bool generateTable=true); | ||
/** \brief Apply the contrast enhancement to a value. Return values are 0 - 254, -1 means the pixel was clipped and should not be displayed */ | ||
int stretch(double); | ||
|
||
}; | ||
|
||
class QgsContrastEnhancement | ||
{ | ||
%TypeHeaderCode | ||
#include <qgscontrastenhancement.h> | ||
%End | ||
|
||
public: | ||
|
||
/** \brief This enumerator describes the types of contrast enhancement algorithms that can be used. */ | ||
enum CONTRAST_ENHANCEMENT_ALGORITHM | ||
{ | ||
NO_STRETCH, //this should be the default color scaling algorithm | ||
STRETCH_TO_MINMAX, //linear histogram stretch | ||
STRETCH_AND_CLIP_TO_MINMAX, | ||
CLIP_TO_MINMAX, | ||
USER_DEFINED | ||
}; | ||
|
||
/*! These are exactly the same as GDAL pixel data types */ | ||
enum QgsRasterDataType { | ||
QGS_Unknown = 0, | ||
/*! Eight bit unsigned integer */ QGS_Byte = 1, | ||
/*! Sixteen bit unsigned integer */ QGS_UInt16 = 2, | ||
/*! Sixteen bit signed integer */ QGS_Int16 = 3, | ||
/*! Thirty two bit unsigned integer */ QGS_UInt32 = 4, | ||
/*! Thirty two bit signed integer */ QGS_Int32 = 5, | ||
/*! Thirty two bit floating point */ QGS_Float32 = 6, | ||
/*! Sixty four bit floating point */ QGS_Float64 = 7, | ||
/*! Complex Int16 */ QGS_CInt16 = 8, | ||
/*! Complex Int32 */ QGS_CInt32 = 9, | ||
/*! Complex Float32 */ QGS_CFloat32 = 10, | ||
/*! Complex Float64 */ QGS_CFloat64 = 11, | ||
QGS_TypeCount = 12 /* maximum type # + 1 */ | ||
}; | ||
|
||
QgsContrastEnhancement(QgsContrastEnhancement::QgsRasterDataType theDatatype=QGS_Byte); | ||
~QgsContrastEnhancement(); | ||
|
||
/* | ||
* | ||
* Static methods | ||
* | ||
*/ | ||
/** \brief Helper function that returns the maximum possible value for a GDAL data type */ | ||
static double getMaximumPossibleValue(QgsRasterDataType); | ||
/** \brief Helper function that returns the minimum possible value for a GDAL data type */ | ||
static double getMinimumPossibleValue(QgsRasterDataType); | ||
|
||
/* | ||
* | ||
* Non-Static Inline methods | ||
* | ||
*/ | ||
/** \brief Return the maximum value for the contrast enhancement range. */ | ||
double getMaximumValue(); | ||
|
||
/** \brief Return the minimum value for the contrast enhancement range. */ | ||
double getMinimumValue(); | ||
|
||
CONTRAST_ENHANCEMENT_ALGORITHM getContrastEnhancementAlgorithm(); | ||
|
||
/* | ||
* | ||
* Non-Static methods | ||
* | ||
*/ | ||
/** \brief Return true if pixel is in stretable range, false if pixel is outside of range (i.e., clipped) */ | ||
bool isValueInDisplayableRange(double); | ||
/** \brief Set the contrast enhancement algorithm */ | ||
void setContrastEnhancementAlgorithm(CONTRAST_ENHANCEMENT_ALGORITHM, bool generateTable=true); | ||
/** \brief A public method that allows the user to set their own custom contrast enhancment function */ | ||
void setContrastEnhancementFunction(QgsContrastEnhancementFunction*); | ||
/** \brief Set the maximum value for the contrast enhancement range. */ | ||
void setMaximumValue(double, bool generateTable=true); | ||
/** \brief Return the minimum value for the contrast enhancement range. */ | ||
void setMinimumValue(double, bool generateTable=true); | ||
/** \brief Apply the contrast enhancement to a value. Return values are 0 - 254, -1 means the pixel was clipped and should not be displayed */ | ||
int stretch(double); | ||
|
||
}; | ||
|
||
class QgsContrastEnhancement | ||
{ | ||
%TypeHeaderCode | ||
#include <qgscontrastenhancement.h> | ||
%End | ||
|
||
public: | ||
|
||
/** \brief This enumerator describes the types of contrast enhancement algorithms that can be used. */ | ||
enum CONTRAST_ENHANCEMENT_ALGORITHM | ||
{ | ||
NO_STRETCH, //this should be the default color scaling algorithm | ||
STRETCH_TO_MINMAX, //linear histogram stretch | ||
STRETCH_AND_CLIP_TO_MINMAX, | ||
CLIP_TO_MINMAX, | ||
USER_DEFINED | ||
}; | ||
|
||
/*! These are exactly the same as GDAL pixel data types */ | ||
enum QgsRasterDataType { | ||
QGS_Unknown = 0, | ||
/*! Eight bit unsigned integer */ QGS_Byte = 1, | ||
/*! Sixteen bit unsigned integer */ QGS_UInt16 = 2, | ||
/*! Sixteen bit signed integer */ QGS_Int16 = 3, | ||
/*! Thirty two bit unsigned integer */ QGS_UInt32 = 4, | ||
/*! Thirty two bit signed integer */ QGS_Int32 = 5, | ||
/*! Thirty two bit floating point */ QGS_Float32 = 6, | ||
/*! Sixty four bit floating point */ QGS_Float64 = 7, | ||
/*! Complex Int16 */ QGS_CInt16 = 8, | ||
/*! Complex Int32 */ QGS_CInt32 = 9, | ||
/*! Complex Float32 */ QGS_CFloat32 = 10, | ||
/*! Complex Float64 */ QGS_CFloat64 = 11, | ||
QGS_TypeCount = 12 /* maximum type # + 1 */ | ||
}; | ||
|
||
QgsContrastEnhancement(QgsContrastEnhancement::QgsRasterDataType theDatatype=QGS_Byte); | ||
~QgsContrastEnhancement(); | ||
|
||
/* | ||
* | ||
* Static methods | ||
* | ||
*/ | ||
/** \brief Helper function that returns the maximum possible value for a GDAL data type */ | ||
static double getMaximumPossibleValue(QgsRasterDataType); | ||
/** \brief Helper function that returns the minimum possible value for a GDAL data type */ | ||
static double getMinimumPossibleValue(QgsRasterDataType); | ||
|
||
/* | ||
* | ||
* Non-Static Inline methods | ||
* | ||
*/ | ||
/** \brief Return the maximum value for the contrast enhancement range. */ | ||
double getMaximumValue(); | ||
|
||
/** \brief Return the minimum value for the contrast enhancement range. */ | ||
double getMinimumValue(); | ||
|
||
CONTRAST_ENHANCEMENT_ALGORITHM getContrastEnhancementAlgorithm(); | ||
|
||
/* | ||
* | ||
* Non-Static methods | ||
* | ||
*/ | ||
/** \brief Return true if pixel is in stretable range, false if pixel is outside of range (i.e., clipped) */ | ||
bool isValueInDisplayableRange(double); | ||
/** \brief Set the contrast enhancement algorithm */ | ||
void setContrastEnhancementAlgorithm(CONTRAST_ENHANCEMENT_ALGORITHM, bool generateTable=true); | ||
/** \brief A public method that allows the user to set their own custom contrast enhancment function */ | ||
void setContrastEnhancementFunction(QgsContrastEnhancementFunction*); | ||
/** \brief Set the maximum value for the contrast enhancement range. */ | ||
void setMaximumValue(double, bool generateTable=true); | ||
/** \brief Return the minimum value for the contrast enhancement range. */ | ||
void setMinimumValue(double, bool generateTable=true); | ||
/** \brief Apply the contrast enhancement to a value. Return values are 0 - 254, -1 means the pixel was clipped and should not be displayed */ | ||
int stretch(double); | ||
|
||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
|
||
class QgsContrastEnhancementFunction | ||
{ | ||
%TypeHeaderCode | ||
#include <qgscontrastenhancement.h> | ||
#include <qgscontrastenhancementfunction.h> | ||
%End | ||
|
||
public: | ||
QgsContrastEnhancementFunction(QgsContrastEnhancement::QgsRasterDataType, double, double); | ||
virtual ~QgsContrastEnhancementFunction(); | ||
|
||
/** \brief Mustator for the maximum value */ | ||
void setMaximumValue(double); | ||
/** \brief Mutator for the minimum value */ | ||
void setMinimumValue(double); | ||
|
||
/** \brief A customizable method that takes in a double and returns a int between 0 and 255 */ | ||
virtual int enhanceValue(double); | ||
/** \brief A customicable method to indicate if the pixels is displayable */ | ||
virtual bool isValueInDisplayableRange(double); | ||
|
||
}; | ||
|
||
class QgsContrastEnhancementFunction | ||
{ | ||
%TypeHeaderCode | ||
#include <qgscontrastenhancement.h> | ||
#include <qgscontrastenhancementfunction.h> | ||
%End | ||
|
||
public: | ||
QgsContrastEnhancementFunction(QgsContrastEnhancement::QgsRasterDataType, double, double); | ||
virtual ~QgsContrastEnhancementFunction(); | ||
|
||
/** \brief Mustator for the maximum value */ | ||
void setMaximumValue(double); | ||
/** \brief Mutator for the minimum value */ | ||
void setMinimumValue(double); | ||
|
||
/** \brief A customizable method that takes in a double and returns a int between 0 and 255 */ | ||
virtual int enhanceValue(double); | ||
/** \brief A customicable method to indicate if the pixels is displayable */ | ||
virtual bool isValueInDisplayableRange(double); | ||
|
||
}; | ||
|
||
class QgsContrastEnhancementFunction | ||
{ | ||
%TypeHeaderCode | ||
#include <qgscontrastenhancement.h> | ||
#include <qgscontrastenhancementfunction.h> | ||
%End | ||
|
||
public: | ||
QgsContrastEnhancementFunction(QgsContrastEnhancement::QgsRasterDataType, double, double); | ||
virtual ~QgsContrastEnhancementFunction(); | ||
|
||
/** \brief Mustator for the maximum value */ | ||
void setMaximumValue(double); | ||
/** \brief Mutator for the minimum value */ | ||
void setMinimumValue(double); | ||
|
||
/** \brief A customizable method that takes in a double and returns a int between 0 and 255 */ | ||
virtual int enhanceValue(double); | ||
/** \brief A customicable method to indicate if the pixels is displayable */ | ||
virtual bool isValueInDisplayableRange(double); | ||
|
||
}; |
Oops, something went wrong.