Skip to content

Commit ae7eccf

Browse files
chkim-usgsamystamile-usgsartmathgirlSarah Suttonkledmundson
authored
8.0.4 LTS Release Prep (#5686)
* Adds HRSC support in socetlinescankeywords (#5669) * Adds HRSC support in socetlinescankeywords * Add test cube * Fixed tests * Converted skypt to a callable app. Converted existing Makefile tests to gtests. Removed existing Makefile tests. (#5444) * Converted skypt to a callable app. Converted existing makefile tests to gtest format and removed old makefile tests and data. Addresses #5443. * Updated contributor list to add Sarah S. Sutton. Addresses #5443. --------- Co-authored-by: Sarah Sutton <[email protected]> * Noseam has been refactored to be callable. Makefile test has been converted to a gtest and removed. (#5600) * Noseam has been refactored to be callable. Makefile test has been converted to a gtest and removed. Addresses #5599. * Modifications to address gtest failures. Also added addtional input parameter error checking to ensure noseam exits prior to generation of temporary files. Finally modified gtests to remove the print.prt file if generated. Addresses #5599. * The explode application has been refactored to be callable and Makefile test converted to a gtest. (#5590) * Updated explode application gtest to use DefaultCube fixture instead of cube in isis/tests/data. Addresses #5557. * Cleaned up includes in default explode gtest. Added history entry to explode.xml. Addresses #5557. * Updating main.cpp and removed Makefile tests for explode conversion to callable app. Addresses #5557. * Added CHANGELOG entry for conversion of explode app to callable function. Addresses #5557. --------- Co-authored-by: Adam Paquette <[email protected]> * Isisminer has been refactored to be callable and Makefile tests converted to gtest format (#5579) * Fixed minor misspellings in error messages. Addresses #5516. * Test data added for isisminer. Addresses #5516. * Converted isisminer Makefile tests to gtest format. Addresses #5516. * Converted isisminer application to callable function. Addresses #5516. * Minor tweak to isisminer csvwriter test. Addresses #5516. * Added compareCsvLineCustomDelimiter method, specifically for isisminer testing support. Addresses #5516. * Removed isisminer Makefile tests (replaced by gtests) and updated CHANGELOG reflecting conversion of isisminer to callable app. Addresses #5516. * Replace isis cube in /isis/tests/data/isisminer/gistest with isd and label files. Minor tweaks to FunctionalTestsIsisminer.cpp. History entry added to isisminer.xml. Addresses #5516. * Minor changes for conversion of isisminer to callable app. Addresses #5516. * Had to add data file index.lbl to the .gitignore file for it to be uploaded. Addresses #5516. * Algebra has been refactored to be callable; old Makefile tests have been converted to gtests and removed. Addresses #5594. (#5597) * Photrim has been refactored to be callable; old Makefile tests have been converted to gtests and removed. (#5582) * Photrim has been converted to a callable app. Corresponding Makefile tests have been converted to gtests and removed. Addresses #5581. * Tweaks to FunctionalTestsPhotrim.cpp. Addresses #5581. * Bandtrim has been refactored to be callable; old Makefile tests have been converted to gtests. (#5572) * Bandtrim has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Addresses #5571. * Update FunctionalTestsBandtrim.cpp Minor documentation change. * Updated kaguyasp2ascii to support newer (detached) data (#5568) * Modified to work with new (detached) data * Updated changelog * Allow data specification outside current directory * Jigsaw csm error message (#5562) * Added fail-early + error message for csminit'd images without csm solve parameters * Updated changelog * Bug fix in noproj to remove persistent temporary lbl file (#5578) * Added line to close match cube in noproj.cpp. Not closing the cube resulted in a temporary "*.lbl" file that remained after running the noproj application. Addresses #5577. * CHANGELOG entry for noproj bug fix. Addresses #5577. * Added history entry in noproj.xml. Addresses #5577. * Remove restrictive validity check in caminfo (#5553) * Removed preemptive validity check for polygon * Removed unused import * Updated changelog * Qview command line Fix (#5505) * Avoid double image load when opening cubes from cmdline in qview * Added changelog entry * Revert interval change * Change qt to qt-main * Update deps and pcl cmake * Add float.h * CsmSerialNumber.trn - typo and PVL compilant fix (#5561) * Fixed typo * PVL compliant * PR feedback changes * hrsc2isis support for level 3 images (#5560) * Remove label check for level3 * update changelog * fix test * addressed PR feedback * fixed grammar * Fixed gllssi2isis to support V1.1 data (#5570) * Removed a debug output statement inadvertently left in noseam.cpp. Addresses #5660. (#5661) * Bug fixes to address incorrect handling of RADIUS in the jigsaw GUI and in the bundleout.txt file when performing a rectangular (XYZ) bundle adjustment, originally implemented in UofA OSIRIS-REx code on 2019-07-30. Addresses #5642. (#5643) * The RADIUS checkbox in the GUI is excluded when a RECTANGULAR solution is selected. * In the bundleout.txt file, for rectangular solutions, 1) RADIUS is set to N/A in the SOLVE OPTIONS section; and 2) the POINTS UNCERTAINTY SECTION was fixed to properly display adjusted point uncertainty statistics with Error Propagation turned on. * Spacing for point labels was cleaned up in the INPUT: GLOBAL IMAGE PARAMETER UNCERTAINTIES section. * Finally, a slight modification was added to the FunctionalTestJigsawBundleXYZ ctest to verify that RADIUS is N/A in a RECTANGULAR solution. * Updated kaguyasp2ascii to support newer (detached) data (#5568) * Modified to work with new (detached) data * Updated changelog * Allow data specification outside current directory * Speeds up FunctionalTestCamstatsDefaultParameters (#5647) * speed up camstats * add changelog * fixes photomet not accepting backplanes (#5658) * fixes photomet not accepting backplanes * fix changelog * Converted to gtests * Add input cube attributes * Convert dstripe to gtests (#5665) * Convert dstripe to gtests * add changelog * Fixed build error * trigger build * trigger build * Update docs --------- Co-authored-by: Amy Stamile <[email protected]> Co-authored-by: Sarah Sutton <[email protected]> Co-authored-by: Sarah Sutton <[email protected]> Co-authored-by: kledmundson <[email protected]> Co-authored-by: Adam Paquette <[email protected]> Co-authored-by: Austin Sanders <[email protected]> Co-authored-by: Shin-ya Murakami <[email protected]>
1 parent 5ac230a commit ae7eccf

File tree

153 files changed

+30724
-3628
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

153 files changed

+30724
-3628
lines changed

.zenodo.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,10 @@
336336
{
337337
"name": "Miller-Ribelin, Elizabeth"
338338
},
339+
{
340+
"affiliation": "Japan Aerospace Exploration Agency, Institute of Space and Astronautical Science",
341+
"name": "Murakami, Shin-ya",
342+
"orcid": "0000-0002-7137-4849"
339343
{
340344
"affiliation": "United States Geological Survey, Astro Geology Science Center",
341345
"name": "Nelson, Gavin"
@@ -437,6 +441,10 @@
437441
{
438442
"name": "Sucharski, Tracie"
439443
},
444+
{
445+
"affiliation": "University of Arizona, Lunar and Planetary Laboratory",
446+
"name": "Sutton, Sarah S."
447+
},
440448
{
441449
"name": "Takir, Driss"
442450
},

CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,43 @@ release.
3535

3636
## [Unreleased]
3737

38+
## [8.0.4] - 2024-11-27
39+
40+
### Added
41+
- Added HRSC support in socetlinescankeywords [#5465](https://github.com/DOI-USGS/ISIS3/issues/5465)
42+
43+
### Changed
44+
- Skypt has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5443](https://github.com/USGS-Astrogeology/ISIS3/issues/5443)
45+
- Noseam has been refactored to be callable; old Makefile test has been removed and replaced by a gtest. Issue: [#5599](https://github.com/USGS-Astrogeology/ISIS3/issues/5599)
46+
- Explode has been refactored to be callable; old Makefile test has been removed and replaced by a gtest. Issue: [#5557](https://github.com/USGS-Astrogeology/ISIS3/issues/5557)
47+
- Isisminer has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5516](https://github.com/USGS-Astrogeology/ISIS3/issues/5516)
48+
- Algebra has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5594](https://github.com/USGS-Astrogeology/ISIS3/issues/5594)
49+
- Photrim has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5581](https://github.com/USGS-Astrogeology/ISIS3/issues/5581)
50+
- Bandtrim has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5571](https://github.com/USGS-Astrogeology/ISIS3/issues/5571)
51+
- Modified kaguyasp2isis to work with new (detached) data [#5436](https://github.com/DOI-USGS/ISIS3/issues/5436)
52+
- Added jigsaw error message for csminit'd images without csm parameters[#5486](https://github.com/DOI-USGS/ISIS3/issues/5486)
53+
54+
### Fixed
55+
- Fixed a bug in noproj.cpp which left a persisent lbl file after running noproj. [#5577](https://github.com/DOI-USGS/ISIS3/issues/5577)
56+
- Fixed a bug in PolygonTools in which the program exited before attempting to fix an invalid Polygon [#5520](https://github.com/DOI-USGS/ISIS3/issues/5520)
57+
- Fixed a bug in QVIEW where images would double load if loaded from the commandline [#5505](https://github.com/DOI-USGS/ISIS3/pull/5505)
58+
- Fixed CSMSerialNumber.trn typo [#5485](https://github.com/DOI-USGS/ISIS3/issues/5485)
59+
- Fixed CSMSerialNumber.trn to be PVL compliant [#5484](https://github.com/DOI-USGS/ISIS3/issues/5484)
60+
- Fixed hrsc2isis to support level 3 hrsc images [#5497](https://github.com/DOI-USGS/ISIS3/issues/5497)
61+
- Fixed gllssi2isis to support V1.1 data [#5396](https://github.com/DOI-USGS/ISIS3/issues/5396)
62+
- Fixed noseam bug where a debugging output statement was inadvertently left in noseam.cpp. Issue: [5660](https://github.com/DOI-USGS/ISIS3/issues/5660)
63+
- Fixed jigsaw bugs in which RADIUS is handled incorrectly in the jigsaw gui and in the bundleout.txt file. Slightly modified the FunctionalTestJigsawBundleXYZ ctest accordingly. Issue: [5642](https://github.com/DOI-USGS/ISIS3/issues/5642)
64+
- Fixed a bug in kaguyasp2isis that doesn't work for data with a detached label. [#5568](https://github.com/DOI-USGS/ISIS3/pull/5568)
65+
- Fixed FunctionalTestCamstatsDefaultParameters test by increasing the runtime speed [#5459](https://github.com/DOI-USGS/ISIS3/issues/5459)
66+
- Fixed PHOTOMET not accepting backplanes [#5281](https://github.com/DOI-USGS/ISIS3/issues/5281)
67+
- Fixed dstripe parallel test failing by converting tests to gtests [#5613](https://github.com/DOI-USGS/ISIS3/issues/5613)
68+
3869
## [8.0.3] - 2023-04-18
3970

4071
### Changed
4172
- Disabled option to use web=true when running spiceinit with HRSC images. [#5223](https://github.com/DOI-USGS/ISIS3/issues/5223)
4273
- Changed the default spiceinit url to https://astrogeology.usgs.gov/apis/ale/v0.9.1/spiceserver/ and added deprecation warning for use of https://services.isis.astrogeology.usgs.gov/cgi-bin/spiceinit.cgi url. [#5327](https://github.com/USGS-Astrogeology/ISIS3/issues/5327)
74+
- Skypt has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5443](https://github.com/USGS-Astrogeology/ISIS3/issues/5443)
4375

4476
### Fixed
4577
- Fixed a bug in which capital E was problematic for OSX / Ubuntu [#5466](https://github.com/DOI-USGS/ISIS3/pull/5466)

code.json

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,43 @@
4343
"date": {
4444
"metadataLastUpdated": "2023-02-27"
4545
}
46+
}, {
47+
"name": "ISIS3",
48+
"organization": "U.S. Geological Survey",
49+
"description": "GitHub code repository for the Integrated Software for Imagers and Spectrometers (ISIS)",
50+
"version": "8.0.4",
51+
"status": "Production",
52+
"permissions": {
53+
"usageType": "openSource",
54+
"licenses": [
55+
{
56+
"name": "Public Domain, CC0-1.0",
57+
"URL": "https://code.usgs.gov/astrogeology/isis/-/raw/8.0.4/LICENSE.md"
58+
}
59+
]
60+
},
61+
"homepageURL": "https://isis.astrogeology.usgs.gov",
62+
"downloadURL": "https://code.usgs.gov/astrogeology/isis/-/archive/8.0.4/isis-8.0.4.zip",
63+
"disclaimerURL": "https://code.usgs.gov/astrogeology/isis/-/raw/8.0.4/DISCLAIMER.md",
64+
"repositoryURL": "https://code.usgs.gov/astrogeology/isis.git",
65+
"vcs": "git",
66+
"laborHours": 0,
67+
"tags": [
68+
"Planetary",
69+
"Remote Sensing",
70+
"Photogrammetry",
71+
"Data Processing"
72+
],
73+
"languages": [
74+
"C++"
75+
],
76+
"contact": {
77+
"name": "Christine Kim",
78+
"email": "[email protected]"
79+
},
80+
"date": {
81+
"metadataLastUpdated": "2024-11-27"
82+
}
4683
}, {
4784
"name": "ISIS3",
4885
"organization": "U.S. Geological Survey",

environment.yml

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ channels:
33
- defaults
44

55
dependencies:
6-
- ale=0.9.1
6+
- ale =0.10.0,<1
77
- armadillo
8-
- boost=1.72
9-
- boost-cpp=1.72
8+
- boost >=1.78.0,<1.79
9+
- boost-cpp >=1.78.0,<1.79
1010
- blas
1111
- usgs-astrogeology::bullet
1212
- bz2file
@@ -32,9 +32,9 @@ dependencies:
3232
- jpeg
3333
- usgs-astrogeology::kakadu==1
3434
- krb5
35-
- libopencv>=4.5.2
35+
- libopencv >=4.7,<4.8
3636
- libpng>=1.6.34
37-
- libprotobuf<3.20
37+
- libprotobuf
3838
- libtiff>=4.0
3939
- libxml2
4040
- make
@@ -47,16 +47,17 @@ dependencies:
4747
- nn
4848
- opencv>=4.5.2
4949
- openssl>=1.1.1k
50-
- pcl >= 1.10.0
51-
- protobuf<3.20
52-
- python>=3.7.11
50+
- pcl >=1.13,<1.14
51+
- protobuf
52+
- python >=3.10
53+
- python_abi >=3.10
5354
- pytest
5455
- rclone
5556
- qhull
56-
- qt>=5.9.6,<5.15.0
57-
- qwt
58-
- sqlite
59-
- suitesparse
57+
- qt-main >=5.15.8, <5.16
58+
- qwt <6.3.0
59+
- sqlite >=3.46.0,<3.47
60+
- suitesparse<7.7.0
6061
- superlu
6162
- swig
6263
- texlive-core

isis/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ set(PACKAGE "ISIS")
3434
set(PACKAGE_NAME "USGS ISIS")
3535

3636
# Version number
37-
set(VERSION "8.0.3")
37+
set(VERSION "8.0.4")
3838
string(REPLACE "." ";" VERSION_LIST ${VERSION})
3939
list(GET VERSION_LIST 0 VERSION_MAJOR)
4040
list(GET VERSION_LIST 1 VERSION_MINOR)

isis/appdata/serialnumbers/CsmSerialNumber.trn

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Group = Keyword1
2-
Auto
3-
InputKey = CSMPlatformId
2+
Auto = 1
3+
InputKey = CSMPlatformID
44
InputGroup = "IsisCube,CsmInfo"
55
InputPosition = (IsisCube, CsmInfo)
66
OutputName = Keyword1
@@ -9,7 +9,7 @@ Group = Keyword1
99
End_Group
1010

1111
Group = Keyword2
12-
Auto
12+
Auto = 1
1313
InputKey = CSMInstrumentId
1414
InputGroup = "IsisCube,CsmInfo"
1515
InputPosition = (IsisCube, CsmInfo)
@@ -19,7 +19,7 @@ Group = Keyword2
1919
End_Group
2020

2121
Group = Keyword3
22-
Auto
22+
Auto = 1
2323
InputKey = ReferenceTime
2424
InputGroup = "IsisCube,CsmInfo"
2525
InputPosition = (IsisCube, CsmInfo)

isis/cmake/FindPCL.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
find_path(PCL_INCLUDE_DIR
99
NAME pcl_base.h
10-
PATH_SUFFIXES "pcl-1.8/pcl" "pcl-1.9/pcl" "pcl-1.11/pcl" "pcl-1.13/pcl"
10+
PATH_SUFFIXES "pcl-1.8/pcl" "pcl-1.9/pcl" "pcl-1.11/pcl" "pcl-1.12/pcl" "pcl-1.13/pcl" "pcl-1.14/pcl"
1111
)
1212

1313
find_library(PCL_COMMON_LIBRARY NAMES pcl_common)
Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
/** This is free and unencumbered software released into the public domain.
2+
3+
The authors of ISIS do not claim copyright on the contents of this file.
4+
For more details about the LICENSE terms and the AUTHORS, you will
5+
find files of those names at the top level of this repository. **/
6+
7+
/* SPDX-License-Identifier: CC0-1.0 */
8+
9+
#include "algebra.h"
10+
11+
#include "Cube.h"
12+
#include "FileName.h"
13+
#include "ProcessByLine.h"
14+
#include "SpecialPixel.h"
15+
16+
namespace Isis {
17+
18+
/*
19+
* Algebra
20+
*
21+
* This program performs simple algebra on either one or two
22+
* cubes. The two cubes may be added, subtracted, multiplied or divided.
23+
*
24+
* The following equations are used:
25+
* UNARY: out = (A * from1) + C
26+
* ADD: out = ((from1 - D) * A) + ((from2 - E) * B) + C
27+
* SUBTRACT: out = ((from1 - D) * A) - ((from2 - E) * B) + C
28+
* MULTIPLY: out = ((from1 - D) * A) * ((from2 - E) * B) + C
29+
* DIVIDE: out = ((from1 - D) * A) / ((from2 - E) * B) + C
30+
*
31+
* The FROM2 cube must have either one band or the same number of bands
32+
* as the FROM cube. If the FROM2 cube has one band, then the algebraic
33+
* formula will be applied to all bands in FROM using that single band
34+
* in FROM2. If FROM2 is a multi-band cube, the algebra will be performed
35+
* between corresponding bands from FROM and FROM2.
36+
*
37+
* @param ui UserInterface object containing parameters
38+
*/
39+
void algebra(UserInterface &ui) {
40+
Cube* icube1 = new Cube();
41+
icube1->open(ui.GetCubeName("FROM"));
42+
43+
Cube* icube2 = nullptr;
44+
if(ui.WasEntered("FROM2")) {
45+
icube2 = new Cube();
46+
icube2->open(ui.GetCubeName("FROM2"));
47+
}
48+
49+
algebra(icube1, ui, icube2);
50+
}
51+
52+
53+
/*
54+
* Algebra
55+
*
56+
* This program performs simple algebra on either one or two
57+
* cubes. The two cubes may be added, subtracted, multiplied or divided.
58+
*
59+
* The following equations are used:
60+
* UNARY: out = (A * from1) + C
61+
* ADD: out = ((from1 - D) * A) + ((from2 - E) * B) + C
62+
* SUBTRACT: out = ((from1 - D) * A) - ((from2 - E) * B) + C
63+
* MULTIPLY: out = ((from1 - D) * A) * ((from2 - E) * B) + C
64+
* DIVIDE: out = ((from1 - D) * A) / ((from2 - E) * B) + C
65+
*
66+
* The FROM2 cube must have either one band or the same number of bands
67+
* as the FROM cube. If the FROM2 cube has one band, then the algebraic
68+
* formula will be applied to all bands in FROM using that single band
69+
* in FROM2. If FROM2 is a multi-band cube, the algebra will be performed
70+
* between corresponding bands from FROM and FROM2.
71+
*
72+
* @param icube1 Cube* input cube1
73+
* @param ui UserInterface object containing parameters
74+
* @param icube2 Cube* input cube2; optional second input cube
75+
*/
76+
void algebra(Cube* icube1, UserInterface &ui, Cube* icube2) {
77+
78+
// Processing by line
79+
ProcessByLine p;
80+
81+
// Set input cubes and attributes into ProcessByLine p
82+
CubeAttributeInput inatts1 = ui.GetInputAttribute("FROM");
83+
CubeAttributeInput inatts2;
84+
p.SetInputCube(icube1->fileName(), inatts1);
85+
if(icube2 != nullptr) {
86+
inatts2 = ui.GetInputAttribute("FROM2");
87+
p.SetInputCube(icube2->fileName(), inatts2);
88+
}
89+
90+
// Set output cube and attributes into ProcessByLine p
91+
QString outCubeFname = ui.GetCubeName("TO");
92+
CubeAttributeOutput &outatts = ui.GetOutputAttribute("TO");
93+
p.SetOutputCube(outCubeFname, outatts);
94+
95+
// Get the coefficients
96+
double Isisa = ui.GetDouble("A");
97+
double Isisb = ui.GetDouble("B");
98+
double Isisc = ui.GetDouble("C");
99+
double Isisd = ui.GetDouble("D");
100+
double Isise = ui.GetDouble("E");
101+
102+
QString op = ui.GetString("OPERATOR");
103+
104+
//*****************************************
105+
// Lambda functions to perform operations *
106+
//*****************************************
107+
108+
// operatorProcess for add, subtract, multiply, divide
109+
auto operatorProcess = [&](std::vector<Buffer *> &in, std::vector<Buffer *> &out)->void {
110+
Buffer &inp1 = *in[0];
111+
Buffer &inp2 = *in[1];
112+
Buffer &outp = *out[0];
113+
114+
// Loop for each pixel in the line
115+
// Special pixel propagation:
116+
// 1) special pixels in inp1 propagate to output cube unchanged
117+
// 2) if inp1 is not special and inp2 is, the output pixel is set to Null
118+
for(int i = 0; i < inp1.size(); i++) {
119+
if(IsSpecial(inp1[i])) {
120+
outp[i] = inp1[i];
121+
}
122+
else if(IsSpecial(inp2[i])) {
123+
outp[i] = NULL8;
124+
}
125+
else {
126+
double operand1 = (inp1[i] - Isisd) * Isisa;
127+
double operand2 = (inp2[i] - Isise) * Isisb;
128+
if(op == "ADD") {
129+
outp[i] = (operand1 + operand2) + Isisc;
130+
}
131+
if(op == "SUBTRACT") {
132+
outp[i] = (operand1 - operand2) + Isisc;
133+
}
134+
if(op == "MULTIPLY") {
135+
outp[i] = (operand1 * operand2) + Isisc;
136+
}
137+
if(op == "DIVIDE") {
138+
if((inp2[i] - Isise) * Isisb == 0.0) {
139+
outp[i] = NULL8;
140+
}
141+
else {
142+
outp[i] = (operand1 / operand2) + Isisc;
143+
}
144+
}
145+
}
146+
}
147+
};
148+
149+
// Unary process
150+
auto unaryProcess = [&](Buffer &in, Buffer &out)->void {
151+
// Loop for each pixel in the line.
152+
// Special pixels propagate directly to output
153+
for(int i = 0; i < in.size(); i++) {
154+
if(IsSpecial(in[i])) {
155+
out[i] = in[i];
156+
}
157+
else {
158+
out[i] = in[i] * Isisa + Isisc;
159+
}
160+
}
161+
};
162+
163+
//*****************************************
164+
// End Lambda functions *
165+
//*****************************************
166+
167+
// Start processing based on the operator
168+
if(op == "UNARY") {
169+
p.ProcessCube(unaryProcess);
170+
}
171+
else {
172+
p.ProcessCubes(operatorProcess); // add, subtract, multiply, divide
173+
}
174+
175+
p.EndProcess();
176+
}
177+
}
178+

0 commit comments

Comments
 (0)