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

Generated by: LCOV version 1.14