Skip to content

Commit

Permalink
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
Show file tree
Hide file tree
Showing 27 changed files with 4,031 additions and 0 deletions.
243 changes: 243 additions & 0 deletions python/core/qgscontrastenhancement.sip
@@ -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);

};
69 changes: 69 additions & 0 deletions python/core/qgscontrastenhancementfunction.sip
@@ -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);

};

0 comments on commit 89b8386

Please sign in to comment.