Coverage Report

Created: 2025-06-09 08:44

/src/gdal/frmts/pcidsk/sdk/segment/cpcidskpct.cpp
Line
Count
Source (jump to first uncovered line)
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
0
PCIDSK_PCT::~PCIDSK_PCT() = default;
20
21
/************************************************************************/
22
/*                            CPCIDSK_PCT()                             */
23
/************************************************************************/
24
25
CPCIDSK_PCT::CPCIDSK_PCT( PCIDSKFile *fileIn, int segmentIn,
26
                          const char *segment_pointer )
27
0
        : CPCIDSKSegment( fileIn, segmentIn, segment_pointer )
28
29
0
{
30
0
}
Unexecuted instantiation: PCIDSK::CPCIDSK_PCT::CPCIDSK_PCT(PCIDSK::PCIDSKFile*, int, char const*)
Unexecuted instantiation: PCIDSK::CPCIDSK_PCT::CPCIDSK_PCT(PCIDSK::PCIDSKFile*, int, char const*)
31
32
/************************************************************************/
33
/*                           ~CPCIDSKGeoref()                           */
34
/************************************************************************/
35
36
CPCIDSK_PCT::~CPCIDSK_PCT()
37
38
0
{
39
0
}
40
41
/************************************************************************/
42
/*                              ReadPCT()                               */
43
/************************************************************************/
44
45
void CPCIDSK_PCT::ReadPCT( unsigned char pct[768] )
46
47
0
{
48
0
    PCIDSKBuffer seg_data;
49
50
0
    seg_data.SetSize( 768*4 );
51
52
0
    ReadFromFile( seg_data.buffer, 0, 768*4 );
53
54
0
    int i;
55
0
    for( i = 0; i < 256; i++ )
56
0
    {
57
0
        pct[  0+i] = (unsigned char) seg_data.GetInt(   0+i*4, 4 );
58
0
        pct[256+i] = (unsigned char) seg_data.GetInt(1024+i*4, 4 );
59
0
        pct[512+i] = (unsigned char) seg_data.GetInt(2048+i*4, 4 );
60
0
    }
61
0
}
62
63
/************************************************************************/
64
/*                              WritePCT()                              */
65
/************************************************************************/
66
67
void CPCIDSK_PCT::WritePCT( unsigned char pct[768] )
68
69
0
{
70
0
    PCIDSKBuffer seg_data;
71
72
0
    seg_data.SetSize( 768*4 );
73
74
0
    ReadFromFile( seg_data.buffer, 0, 768*4 );
75
76
0
    int i;
77
0
    for( i = 0; i < 256; i++ )
78
0
    {
79
0
        seg_data.Put( (int) pct[  0+i],   0+i*4, 4 );
80
0
        seg_data.Put( (int) pct[256+i],1024+i*4, 4 );
81
0
        seg_data.Put( (int) pct[512+i],2048+i*4, 4 );
82
0
    }
83
84
0
    WriteToFile( seg_data.buffer, 0, 768*4 );
85
0
}