LCOV - code coverage report
Current view: top level - frmts/postgisraster - postgisrastertiledataset.cpp (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 0 32 0.0 %
Date: 2025-07-11 10:11:13 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           0 : }
      27             : 
      28             : /************************
      29             :  * \brief Destructor
      30             :  ************************/
      31           0 : PostGISRasterTileDataset::~PostGISRasterTileDataset()
      32             : {
      33           0 :     if (pszPKID)
      34             :     {
      35           0 :         CPLFree(pszPKID);
      36           0 :         pszPKID = nullptr;
      37             :     }
      38           0 : }
      39             : 
      40             : /********************************************************
      41             :  * \brief Get the affine transformation coefficients
      42             :  ********************************************************/
      43           0 : CPLErr PostGISRasterTileDataset::GetGeoTransform(GDALGeoTransform &gt) const
      44             : {
      45           0 :     gt = m_gt;
      46           0 :     return CE_None;
      47             : }
      48             : 
      49             : /********************************************************
      50             :  * \brief Return spatial extent of tile
      51             :  ********************************************************/
      52           0 : void PostGISRasterTileDataset::GetNativeExtent(double *pdfMinX, double *pdfMinY,
      53             :                                                double *pdfMaxX,
      54             :                                                double *pdfMaxY) const
      55             : {
      56             :     // FIXME; incorrect in case of non 0 rotation terms
      57             : 
      58           0 :     double dfMinX = m_gt[GEOTRSFRM_TOPLEFT_X];
      59           0 :     double dfMaxY = m_gt[GEOTRSFRM_TOPLEFT_Y];
      60             : 
      61           0 :     double dfMaxX = m_gt[GEOTRSFRM_TOPLEFT_X] +
      62           0 :                     nRasterXSize * m_gt[GEOTRSFRM_WE_RES] +
      63           0 :                     nRasterYSize * m_gt[GEOTRSFRM_ROTATION_PARAM1];
      64             : 
      65           0 :     double dfMinY = m_gt[GEOTRSFRM_TOPLEFT_Y] +
      66           0 :                     nRasterXSize * m_gt[GEOTRSFRM_ROTATION_PARAM2] +
      67           0 :                     nRasterYSize * m_gt[GEOTRSFRM_NS_RES];
      68             : 
      69             :     // In case yres > 0
      70           0 :     if (dfMinY > dfMaxY)
      71             :     {
      72           0 :         double dfTemp = dfMinY;
      73           0 :         dfMinY = dfMaxY;
      74           0 :         dfMaxY = dfTemp;
      75             :     }
      76             : 
      77           0 :     *pdfMinX = dfMinX;
      78           0 :     *pdfMinY = dfMinY;
      79           0 :     *pdfMaxX = dfMaxX;
      80           0 :     *pdfMaxY = dfMaxY;
      81           0 : }

Generated by: LCOV version 1.14