Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

gdal_alg.h

Go to the documentation of this file.
00001 /******************************************************************************
00002  * $Id: gdal_alg_h-source.html,v 1.2 2002/12/21 19:13:12 warmerda Exp $
00003  *
00004  * Project:  GDAL Image Processing Algorithms
00005  * Purpose:  Prototypes, and definitions for various GDAL based algorithms.
00006  * Author:   Frank Warmerdam, warmerdam@pobox.com
00007  *
00008  ******************************************************************************
00009  * Copyright (c) 2001, Frank Warmerdam
00010  *
00011  * Permission is hereby granted, free of charge, to any person obtaining a
00012  * copy of this software and associated documentation files (the "Software"),
00013  * to deal in the Software without restriction, including without limitation
00014  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00015  * and/or sell copies of the Software, and to permit persons to whom the
00016  * Software is furnished to do so, subject to the following conditions:
00017  *
00018  * The above copyright notice and this permission notice shall be included
00019  * in all copies or substantial portions of the Software.
00020  *
00021  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00022  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00023  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
00024  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00025  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00026  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00027  * DEALINGS IN THE SOFTWARE.
00028  ******************************************************************************
00029  *
00030  * $Log: gdal_alg_h-source.html,v $
00030  * Revision 1.2  2002/12/21 19:13:12  warmerda
00030  * updated
00030  *
00031  * Revision 1.9  2002/12/09 18:56:10  warmerda
00032  * added missing CPL_DLL
00033  *
00034  * Revision 1.8  2002/12/09 16:08:32  warmerda
00035  * added approximating transformer
00036  *
00037  * Revision 1.7  2002/12/07 22:58:42  warmerda
00038  * added initialization support for simple warper
00039  *
00040  * Revision 1.6  2002/12/07 17:09:38  warmerda
00041  * added order flag to GenImgProjTransformer
00042  *
00043  * Revision 1.5  2002/12/06 21:43:12  warmerda
00044  * tweak prototypes
00045  *
00046  * Revision 1.4  2002/12/05 21:44:35  warmerda
00047  * fixed prototype
00048  *
00049  * Revision 1.3  2002/12/05 05:43:28  warmerda
00050  * added warp/transformer definition
00051  *
00052  * Revision 1.2  2001/02/02 21:19:25  warmerda
00053  * added CPL_DLL for functions
00054  *
00055  * Revision 1.1  2001/01/22 22:30:59  warmerda
00056  * New
00057  */
00058 
00059 #ifndef GDAL_ALG_H_INCLUDED
00060 #define GDAL_ALG_H_INCLUDED
00061 
00068 #include "gdal.h"
00069 
00070 CPL_C_START
00071 
00072 int CPL_DLL GDALComputeMedianCutPCT( GDALRasterBandH hRed, 
00073                              GDALRasterBandH hGreen, 
00074                              GDALRasterBandH hBlue, 
00075                              int (*pfnIncludePixel)(int,int,void*),
00076                              int nColors, 
00077                              GDALColorTableH hColorTable,
00078                              GDALProgressFunc pfnProgress, 
00079                              void * pProgressArg );
00080 
00081 int CPL_DLL GDALDitherRGB2PCT( GDALRasterBandH hRed, 
00082                        GDALRasterBandH hGreen, 
00083                        GDALRasterBandH hBlue, 
00084                        GDALRasterBandH hTarget, 
00085                        GDALColorTableH hColorTable, 
00086                        GDALProgressFunc pfnProgress, 
00087                        void * pProgressArg );
00088 
00089 /*
00090  * Warp Related.
00091  */
00092 
00093 typedef int 
00094 (*GDALTransformerFunc)( void *pTransformerArg, 
00095                         int bDstToSrc, int nPointCount, 
00096                         double *x, double *y, double *z, int *panSuccess );
00097 
00098 /* High level transformer for going from image coordinates on one file
00099    to image coordiantes on another, potentially doing reprojection, 
00100    utilizing GCPs or using the geotransform. */
00101 
00102 void CPL_DLL *
00103 GDALCreateGenImgProjTransformer( GDALDatasetH hSrcDS, const char *pszSrcWKT,
00104                                  GDALDatasetH hDstDS, const char *pszDstWKT,
00105                                  int bGCPUseOK, double dfGCPErrorThreshold,
00106                                  int nOrder );
00107 void CPL_DLL GDALDestroyGenImgProjTransformer( void * );
00108 int CPL_DLL GDALGenImgProjTransform( 
00109     void *pTransformArg, int bDstToSrc, int nPointCount,
00110     double *x, double *y, double *z, int *panSuccess );
00111 
00112 /* Geo to geo reprojection transformer. */
00113 void CPL_DLL *
00114 GDALCreateReprojectionTransformer( const char *pszSrcWKT, 
00115                                    const char *pszDstWKT );
00116 void CPL_DLL GDALDestroyReprojectionTransformer( void * );
00117 int CPL_DLL GDALReprojectionTransform( 
00118     void *pTransformArg, int bDstToSrc, int nPointCount,
00119     double *x, double *y, double *z, int *panSuccess );
00120 
00121 /* GCP based transformer ... forward is to georef coordinates */
00122 void CPL_DLL *
00123 GDALCreateGCPTransformer( int nGCPCount, const GDAL_GCP *pasGCPList, 
00124                           int nReqOrder, int bReversed );
00125 void CPL_DLL GDALDestroyGCPTransformer( void *pTransformArg );
00126 int CPL_DLL GDALGCPTransform( 
00127     void *pTransformArg, int bDstToSrc, int nPointCount,
00128     double *x, double *y, double *z, int *panSuccess );
00129 
00130 /* Approximate transformer */
00131 void CPL_DLL *
00132 GDALCreateApproxTransformer( GDALTransformerFunc pfnRawTransformer, 
00133                              void *pRawTransformerArg, double dfMaxError );
00134 void CPL_DLL GDALDestroyApproxTransformer( void *pApproxArg );
00135 int  CPL_DLL GDALApproxTransform(
00136     void *pTransformArg, int bDstToSrc, int nPointCount,
00137     double *x, double *y, double *z, int *panSuccess );
00138 
00139                       
00140 
00141 
00142 int CPL_DLL GDALSimpleImageWarp( GDALDatasetH hSrcDS, 
00143                                  GDALDatasetH hDstDS, 
00144                                  int nBandCount, int *panBandList,
00145                                  GDALTransformerFunc pfnTransform,
00146                                  void *pTransformArg,
00147                                  GDALProgressFunc pfnProgress, 
00148                                  void *pProgressArg, 
00149                                  char **papszWarpOptions );
00150 
00151 CPLErr CPL_DLL
00152 GDALSuggestedWarpOutput( GDALDatasetH hSrcDS, 
00153                          GDALTransformerFunc pfnTransformer,
00154                          void *pTransformArg,
00155                          double *padfGeoTransformOut, 
00156                          int *pnPixels, int *pnLines );
00157 
00158 
00159 CPL_C_END
00160 
00161 #endif /* ndef GDAL_ALG_H_INCLUDED */

Generated at Sat Dec 21 14:01:58 2002 for GDAL by doxygen1.2.3-20001105 written by Dimitri van Heesch, © 1997-2000