NITFAPI(nitf_BandInfo *) nitf_BandInfo_construct(nitf_Error * error) { /* Start by allocating the struct */ nitf_BandInfo *info = (nitf_BandInfo *) NITF_MALLOC(sizeof(nitf_BandInfo)); /* Return now if we have a problem above */ if (!info) { nitf_Error_init(error, NITF_STRERROR(NITF_ERRNO), NITF_CTXT, NITF_ERR_MEMORY); return NULL; } /* This MUST happen before we construct fields */ /* in case destruction is required */ info->lut = NULL; _NITF_CONSTRUCT_FIELD(info, NITF_IREPBAND, NITF_BCS_A); _NITF_CONSTRUCT_FIELD(info, NITF_ISUBCAT, NITF_BCS_A); _NITF_CONSTRUCT_FIELD(info, NITF_IFC, NITF_BCS_A); _NITF_CONSTRUCT_FIELD(info, NITF_IMFLT, NITF_BCS_A); _NITF_CONSTRUCT_FIELD(info, NITF_NLUTS, NITF_BCS_N); _NITF_CONSTRUCT_FIELD(info, NITF_NELUT, NITF_BCS_N); return info; CATCH_ERROR: /* destruct if it was allocated */ if (info) nitf_BandInfo_destruct(&info); return NULL; }
int main(int argc, char** argv) { try { nitf_Error e; // Foo<int>* foo = new Bar<int>(); // delete foo; nitf_Field* cField = nitf_Field_construct(100, NITF_BCS_N, &e); nitf::Field field(cField); { nitf::Field field2(cField); } std::cout << field.isValid() << std::endl; nitf_BandInfo* cBandInfo = nitf_BandInfo_construct(&e); assert(cBandInfo); nitf::BandInfo info(cBandInfo); std::cout << (int)info.getNumLUTs() << std::endl; std::cout << "HERE!!!!!!!!!!!!!!!!!!!!" << std::endl; nitf::SubWindow sub; nitf::SubWindow sub2 = sub; sub.setNumRows(5); nitf::PixelSkip p(1, 1); sub.setDownSampler(p); sub.setDownSampler(p); sub.setDownSampler(p); sub.setDownSampler(p); nitf::PixelSkip p2(1, 1); sub.setDownSampler(p2); sub.setDownSampler(p); nitf_SubWindow* subw = nitf_SubWindow_construct(&e); nitf::SubWindow sub3(subw); std::cout << sub.getNumRows() << " == " << sub2.getNumRows() << std::endl; nitf::List list; nitf::List list2 = list; { nitf::FileHeader header; nitf::FileHeader header2(header.clone()); //should be not equal std::cout << "Equal? " << (header == header2) << std::endl; nitf::FileHeader header3(header2); //these two should be equal std::cout << "Equal? " << (header3 == header2) << std::endl; } nitf::HashTable hash; nitf::Extensions extensions; { nitf::ImageSegment imageSeg; nitf::ImageSubheader imageSub; imageSeg.getSubheader().getImageId() = "Test Image"; std::cout << imageSeg.getSubheader().getImageId().toString() << std::endl; nitf::Field f = imageSeg.getSubheader().getImageId(); std::cout << f.toString() << std::endl; nitf::ImageSegment imageSeg2 = imageSeg.clone(); nitf::ImageSubheader imageSub2(imageSub.clone()); extensions = imageSub.getExtendedSection(); } nitf::TextSegment tSeg; nitf::TextSubheader tSub; nitf::GraphicSegment gSeg; nitf::GraphicSubheader gSub; nitf::DESegment dSeg; nitf::DESubheader dSub; nitf::LabelSegment rSeg; nitf::LabelSubheader rSub; nitf::TRE tre("JITCID"); //tre.print(); std::cout << "HERE!!!!!" << std::endl; nitf::Reader reader; nitf::Writer writer; //open a file sys::OS os; std::vector< std::string > files; for (int i = 1; i < argc; ++i) { if (!os.exists(argv[i])) std::cout << "Error -> File does not exist: " << argv[i] << std::endl; else files.push_back(argv[i]); } for (std::vector< std::string >::iterator it = files.begin(); it != files.end(); ++it) { nitf::IOHandle handle(*it); nitf::Reader rdr; nitf::Record rec = rdr.read(handle); std::cout << "CODEWORDS: " << rec.getHeader().getSecurityGroup().getCodewords().toString() << std::endl; rec.getHeader().getSecurityGroup().getCodewords() = "TEST"; std::cout << "CODEWORDS: " << rec.getHeader().getSecurityGroup().getCodewords().toString() << std::endl; nitf::FileSecurity security; rec.getHeader().setSecurityGroup(security); std::cout << "CODEWORDS: " << rec.getHeader().getSecurityGroup().getCodewords().toString() << std::endl; std::cout << "Num Images: " << rec.getImages().getSize() << std::endl; } nitf_SubWindow_destruct(&subw); nitf_Field_destruct(&cField); nitf_BandInfo_destruct(&cBandInfo); } catch(except::Exception& ex) { std::cerr << "ERROR: " << ex.getMessage() << std::endl; return 1; } return 0; }