LCOV - code coverage report
Current view: top level - frmts/postgisraster - postgisrastertiledataset.cpp (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 0 43 0.0 %
Date: 2024-11-21 22:18:42 Functions: 0 5 0.0 %

          Line data    Source code
       1             : /***********************************************************************
       2             :  * File :    postgisrastertiledataset.cpp
       3             :  * Project:  PostGIS Raster driver
       4             :  * Purpose:  GDAL Dataset implementation for PostGIS Raster tile
       5             :  * Author:   Jorge Arevalo, jorge.arevalo@deimos-space.com
       6             :  *                          jorgearevalo@libregis.org
       7             :  *
       8             :  * Last changes: $Id$
       9             :  *
      10             :  ***********************************************************************
      11             :  * Copyright (c) 2013, Jorge Arevalo
      12             :  * Copyright (c) 2013, Even Rouault
      13             :  *
      14             :  * SPDX-License-Identifier: MIT
      15             :  ************************************************************************/
      16             : #include "postgisraster.h"
      17             : 
      18             : /************************
      19             :  * \brief Constructor
      20             :  ************************/
      21           0 : PostGISRasterTileDataset::PostGISRasterTileDataset(
      22           0 :     PostGISRasterDataset *poRDSIn, int nXSize, int nYSize)
      23           0 :     : poRDS(poRDSIn), pszPKID(nullptr)
      24             : {
      25           0 :     nRasterXSize = nXSize;
      26           0 :     nRasterYSize = nYSize;
      27             : 
      28           0 :     adfGeoTransform[GEOTRSFRM_TOPLEFT_X] = 0;
      29           0 :     adfGeoTransform[GEOTRSFRM_WE_RES] = 1;
      30           0 :     adfGeoTransform[GEOTRSFRM_ROTATION_PARAM1] = 0;
      31           0 :     adfGeoTransform[GEOTRSFRM_TOPLEFT_Y] = 0;
      32           0 :     adfGeoTransform[GEOTRSFRM_ROTATION_PARAM2] = 0;
      33           0 :     adfGeoTransform[GEOTRSFRM_NS_RES] = 1;
      34           0 : }
      35             : 
      36             : /************************
      37             :  * \brief Destructor
      38             :  ************************/
      39           0 : PostGISRasterTileDataset::~PostGISRasterTileDataset()
      40             : {
      41           0 :     if (pszPKID)
      42             :     {
      43           0 :         CPLFree(pszPKID);
      44           0 :         pszPKID = nullptr;
      45             :     }
      46           0 : }
      47             : 
      48             : /********************************************************
      49             :  * \brief Get the affine transformation coefficients
      50             :  ********************************************************/
      51           0 : CPLErr PostGISRasterTileDataset::GetGeoTransform(double *padfTransform)
      52             : {
      53             :     // copy necessary values in supplied buffer
      54           0 :     padfTransform[0] = adfGeoTransform[0];
      55           0 :     padfTransform[1] = adfGeoTransform[1];
      56           0 :     padfTransform[2] = adfGeoTransform[2];
      57           0 :     padfTransform[3] = adfGeoTransform[3];
      58           0 :     padfTransform[4] = adfGeoTransform[4];
      59           0 :     padfTransform[5] = adfGeoTransform[5];
      60             : 
      61           0 :     return CE_None;
      62             : }
      63             : 
      64             : /********************************************************
      65             :  * \brief Return spatial extent of tile
      66             :  ********************************************************/
      67           0 : void PostGISRasterTileDataset::GetExtent(double *pdfMinX, double *pdfMinY,
      68             :                                          double *pdfMaxX, double *pdfMaxY) const
      69             : {
      70             :     // FIXME; incorrect in case of non 0 rotation terms
      71             : 
      72           0 :     double dfMinX = adfGeoTransform[GEOTRSFRM_TOPLEFT_X];
      73           0 :     double dfMaxY = adfGeoTransform[GEOTRSFRM_TOPLEFT_Y];
      74             : 
      75           0 :     double dfMaxX = adfGeoTransform[GEOTRSFRM_TOPLEFT_X] +
      76           0 :                     nRasterXSize * adfGeoTransform[GEOTRSFRM_WE_RES] +
      77           0 :                     nRasterYSize * adfGeoTransform[GEOTRSFRM_ROTATION_PARAM1];
      78             : 
      79           0 :     double dfMinY = adfGeoTransform[GEOTRSFRM_TOPLEFT_Y] +
      80           0 :                     nRasterXSize * adfGeoTransform[GEOTRSFRM_ROTATION_PARAM2] +
      81           0 :                     nRasterYSize * adfGeoTransform[GEOTRSFRM_NS_RES];
      82             : 
      83             :     // In case yres > 0
      84           0 :     if (dfMinY > dfMaxY)
      85             :     {
      86           0 :         double dfTemp = dfMinY;
      87           0 :         dfMinY = dfMaxY;
      88           0 :         dfMaxY = dfTemp;
      89             :     }
      90             : 
      91           0 :     *pdfMinX = dfMinX;
      92           0 :     *pdfMinY = dfMinY;
      93           0 :     *pdfMaxX = dfMaxX;
      94           0 :     *pdfMaxY = dfMaxY;
      95           0 : }

Generated by: LCOV version 1.14