LCOV - code coverage report
Current view: top level - frmts/pcidsk/sdk/segment - cpcidsklut.cpp (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 0 24 0.0 %
Date: 2024-11-21 22:18:42 Functions: 0 7 0.0 %

          Line data    Source code
       1             : /******************************************************************************
       2             :  *
       3             :  * Purpose:  Implementation of the CPCIDSK_LUT class.
       4             :  *
       5             :  ******************************************************************************
       6             :  * Copyright (c) 2015
       7             :  * PCI Geomatics, 90 Allstate Parkway, Markham, Ontario, Canada.
       8             :  *
       9             :  * SPDX-License-Identifier: MIT
      10             :  ****************************************************************************/
      11             : 
      12             : #include "pcidsk_exception.h"
      13             : #include "segment/cpcidsklut.h"
      14             : #include <cassert>
      15             : #include <cstring>
      16             : 
      17             : using namespace PCIDSK;
      18             : 
      19             : /************************************************************************/
      20             : /*                            CPCIDSK_LUT()                             */
      21             : /************************************************************************/
      22             : 
      23           0 : CPCIDSK_LUT::CPCIDSK_LUT( PCIDSKFile *fileIn, int segmentIn,
      24           0 :                           const char *segment_pointer )
      25           0 :         : CPCIDSKSegment( fileIn, segmentIn, segment_pointer )
      26             : 
      27             : {
      28           0 : }
      29             : 
      30             : /************************************************************************/
      31             : /*                           ~CPCIDSKGeoref()                           */
      32             : /************************************************************************/
      33             : 
      34           0 : CPCIDSK_LUT::~CPCIDSK_LUT()
      35             : 
      36             : {
      37           0 : }
      38             : 
      39             : /************************************************************************/
      40             : /*                              ReadLUT()                               */
      41             : /************************************************************************/
      42             : 
      43           0 : void CPCIDSK_LUT::ReadLUT(std::vector<unsigned char>& lut)
      44             : 
      45             : {
      46           0 :     PCIDSKBuffer seg_data;
      47             : 
      48           0 :     seg_data.SetSize(256*4);
      49             : 
      50           0 :     ReadFromFile( seg_data.buffer, 0, 256*4);
      51             : 
      52           0 :     lut.resize(256);
      53           0 :     for( int i = 0; i < 256; i++ )
      54             :     {
      55           0 :         lut[i] = (unsigned char) seg_data.GetInt(0+i*4, 4);
      56             :     }
      57           0 : }
      58             : 
      59             : /************************************************************************/
      60             : /*                              WriteLUT()                              */
      61             : /************************************************************************/
      62             : 
      63           0 : void CPCIDSK_LUT::WriteLUT(const std::vector<unsigned char>& lut)
      64             : 
      65             : {
      66           0 :     if(lut.size() != 256)
      67             :     {
      68           0 :         throw PCIDSKException("LUT must contain 256 entries (%d given)", static_cast<int>(lut.size()));
      69             :     }
      70             : 
      71           0 :     PCIDSKBuffer seg_data;
      72             : 
      73           0 :     seg_data.SetSize(256*4);
      74             : 
      75           0 :     ReadFromFile( seg_data.buffer, 0, 256*4 );
      76             : 
      77             :     int i;
      78           0 :     for( i = 0; i < 256; i++ )
      79             :     {
      80           0 :         seg_data.Put( (int) lut[i], i*4, 4);
      81             :     }
      82             : 
      83           0 :     WriteToFile( seg_data.buffer, 0, 256*4 );
      84           0 : }

Generated by: LCOV version 1.14