Isis 3 Programmer Reference
CubeStretch.cpp
1
6/* SPDX-License-Identifier: CC0-1.0 */
7
8#include "CubeStretch.h"
9
10namespace Isis {
11
19 CubeStretch::CubeStretch(QString name, QString stretchType, int bandNumber) : m_name(name),
20 m_type(stretchType), m_bandNumber(bandNumber) {
21 }
22
23
27 CubeStretch::CubeStretch(CubeStretch const& stretch): Stretch(stretch) {
28 m_name = stretch.getName();
29 m_type = stretch.getType();
30 m_bandNumber = stretch.getBandNumber();
31 }
32
33
39 CubeStretch::CubeStretch(Stretch const& stretch): Stretch(stretch) {
40 m_name = "DefaultStretch";
41 m_bandNumber = 1;
42 m_type = "Default";
43 }
44
45
51 CubeStretch::CubeStretch(Stretch const& stretch, QString stretchType): Stretch(stretch), m_type(stretchType) {
52 m_name = "DefaultName";
53 m_bandNumber = 1;
54 }
55
56
63 char *buff = blob.getBuffer();
64 std::string stringFromBuffer(buff, blob.Size());
65 setName(blob.Label()["Name"][0]);
66 setType(blob.Label()["StretchType"][0]);
67 Parse(QString::fromStdString(stringFromBuffer));
68 setBandNumber(blob.Label()["BandNumber"][0].toInt());
69 }
70
71
72 // CubeStretch destructor
73 CubeStretch::~CubeStretch() {
74 }
75
76
85 Isis::Blob blob("CubeStretch", "Stretch");
86
87 blob.Label()["Name"] = getName();
88 blob.Label() += PvlKeyword("StretchType", getType());
89 blob.Label() += PvlKeyword("BandNumber", QString::number(getBandNumber()));
90 std::string blobString = Text().toStdString();
91 blob.setData(blobString.c_str(), blobString.size());
92 return blob;
93 }
94
95
104 return (getBandNumber() == stretch2.getBandNumber()) &&
105 (getName() == stretch2.getName()) &&
106 (Text() == stretch2.Text());
107 }
108
109
115 QString CubeStretch::getType() const{
116 return m_type;
117 }
118
119
125 void CubeStretch::setType(QString stretchType){
126 m_type = stretchType;
127 }
128
129
135 void CubeStretch::setName(QString name){
136 m_name = name;
137 }
138
139
145 QString CubeStretch::getName() const{
146 return m_name;
147 }
148
149
156 return m_bandNumber;
157 }
158
159
165 void CubeStretch::setBandNumber(int bandNumber) {
166 m_bandNumber = bandNumber;
167 }
168} // end namespace isis
Stores stretch information for a cube.
Definition CubeStretch.h:27
void setBandNumber(int bandNumber)
Set the band number for the stretch.
int m_bandNumber
Type of stretch. This is only currently used in the AdvancedStretchTool.
Definition CubeStretch.h:53
bool operator==(CubeStretch &stretch2)
Check if the CubeStretches are equal.
int getBandNumber() const
Get the band number for the stretch.
void setName(QString name)
Set the Stretch name.
Isis::Blob toBlob() const
Serialize the CubeStretch to a Blob.
QString getName() const
Get the Stretch name.
CubeStretch(QString name="DefaultStretch", QString stretchType="Default", int bandNumber=1)
Constructs a CubeStretch object with default mapping of special pixel values to themselves and a prov...
QString m_type
The name of the stretch.
Definition CubeStretch.h:52
QString getType() const
Get the Type of Stretch.
void setType(QString stretchType)
Set the type of Stretch.
A single keyword-value pair.
Definition PvlKeyword.h:87
Pixel value mapper.
Definition Stretch.h:58
void Parse(const QString &pairs)
Parses a string of the form "i1:o1 i2:o2...iN:oN" where each i:o represents an input:output pair.
Definition Stretch.cpp:181
QString Text() const
Converts stretch pair to a string.
Definition Stretch.cpp:268
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16