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

          Line data    Source code
       1             : /******************************************************************************
       2             :  *
       3             :  * Purpose:  Implementation of the CPCIDSK_PCT class.
       4             :  *
       5             :  ******************************************************************************
       6             :  * Copyright (c) 2009
       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/cpcidskpct.h"
      14             : #include <cassert>
      15             : #include <cstring>
      16             : 
      17             : using namespace PCIDSK;
      18             : 
      19             : /************************************************************************/
      20             : /*                            CPCIDSK_PCT()                             */
      21             : /************************************************************************/
      22             : 
      23           2 : CPCIDSK_PCT::CPCIDSK_PCT( PCIDSKFile *fileIn, int segmentIn,
      24           2 :                           const char *segment_pointer )
      25           2 :         : CPCIDSKSegment( fileIn, segmentIn, segment_pointer )
      26             : 
      27             : {
      28           2 : }
      29             : 
      30             : /************************************************************************/
      31             : /*                           ~CPCIDSKGeoref()                           */
      32             : /************************************************************************/
      33             : 
      34           4 : CPCIDSK_PCT::~CPCIDSK_PCT()
      35             : 
      36             : {
      37           4 : }
      38             : 
      39             : /************************************************************************/
      40             : /*                              ReadPCT()                               */
      41             : /************************************************************************/
      42             : 
      43           1 : void CPCIDSK_PCT::ReadPCT( unsigned char pct[768] )
      44             : 
      45             : {
      46           2 :     PCIDSKBuffer seg_data;
      47             : 
      48           1 :     seg_data.SetSize( 768*4 );
      49             : 
      50           1 :     ReadFromFile( seg_data.buffer, 0, 768*4 );
      51             : 
      52             :     int i;
      53         257 :     for( i = 0; i < 256; i++ )
      54             :     {
      55         256 :         pct[  0+i] = (unsigned char) seg_data.GetInt(   0+i*4, 4 );
      56         256 :         pct[256+i] = (unsigned char) seg_data.GetInt(1024+i*4, 4 );
      57         256 :         pct[512+i] = (unsigned char) seg_data.GetInt(2048+i*4, 4 );
      58             :     }
      59           1 : }
      60             : 
      61             : /************************************************************************/
      62             : /*                              WritePCT()                              */
      63             : /************************************************************************/
      64             : 
      65           1 : void CPCIDSK_PCT::WritePCT( unsigned char pct[768] )
      66             : 
      67             : {
      68           2 :     PCIDSKBuffer seg_data;
      69             : 
      70           1 :     seg_data.SetSize( 768*4 );
      71             : 
      72           1 :     ReadFromFile( seg_data.buffer, 0, 768*4 );
      73             : 
      74             :     int i;
      75         257 :     for( i = 0; i < 256; i++ )
      76             :     {
      77         256 :         seg_data.Put( (int) pct[  0+i],   0+i*4, 4 );
      78         256 :         seg_data.Put( (int) pct[256+i],1024+i*4, 4 );
      79         256 :         seg_data.Put( (int) pct[512+i],2048+i*4, 4 );
      80             :     }
      81             : 
      82           1 :     WriteToFile( seg_data.buffer, 0, 768*4 );
      83           1 : }

Generated by: LCOV version 1.14