demoStripAdjust.cpp
#include "opals/Exception.hpp"
#include "opals/ParamList.hpp"
#include "opals/ModuleDeleter.hpp"
#include "opals/IStripAdjust.hpp"
#include <iostream>
#include <memory>
int main(int argc, char** argv)
{
int errorCode = 0;
bool use_cfg_file = false;
try {
//create an opals StripAdjust object
std::shared_ptr<opals::IStripAdjust> module( opals::IStripAdjust::New(), opals::ModuleDeleter() );
// set parameters
if (use_cfg_file)
{
module->commons().cfgFile().set("$OPALS_ROOT/demo/melkStripAdjust_ALS.cfg");
}
else
{
auto &opts = module->opts(); // use reference for more compact code
opts.utm().zone().set(33);
opts.utm().hemisphere().set(opals::Hemisphere::north);
opts.adjustment().voxelSize().set(5);
opts.adjustment().maxIter().set(12);
opts.strips().strips().all().iFormat().set("sdc");
opts.strips().strips().all().oFormat().set("odm");
opts.strips().strips().all().scannerOrientation().set(opals::ScannerOrientation::dfr);
opts.strips().strips().all().trajectory().correctionModel().set(opals::TrajectoryCorrectionModel::bias);
opts.strips().strips().resize(4);
opts.strips().strips()[0].inFile().set("melk11.sdc");
opts.strips().strips()[1].inFile().set("melk12.sdc");
opts.strips().strips()[2].inFile().set("melk21.sdc");
opts.strips().strips()[3].inFile().set("melk22.sdc");
opts.strips().strips()[1].trajectory().dX().sigmaApriori().set(0);
opts.strips().strips()[1].trajectory().dY().sigmaApriori().set(0);
opts.strips().strips()[1].trajectory().dZ().sigmaApriori().set(0);
opts.strips().strips()[1].trajectory().dRoll().sigmaApriori().set(0);
opts.strips().strips()[1].trajectory().dPitch().sigmaApriori().set(0);
opts.strips().strips()[1].trajectory().dYaw().sigmaApriori().set(0);
opts.strips().normals().searchRadius().set(1.5);
opts.sessions().resize(1);
opts.sessions()[0].trajectory().inFile().set("TrjMelk_utm33.txt");
opts.sessions()[0].trajectory().iFormat().set("trajectory.xml");
opts.sessions()[0].trajectory().timeLag().set(0.0004);
opts.correspondences().strip2strip().overlap().set(1);
opts.correspondences().strip2strip().selection().samplingDist().set(5);
opts.correspondences().strip2strip().rejection().maxDist().set(1);
}
//run module
module->run();
}
{
//in this case an error occurred, output error message
errorCode = e.errorCode();
std::cout << e.errorMessage() << std::endl;
}
return errorCode;
}
const char * errorMessage() const
returns the actual error message
ErrorCode::Enum errorCode() const
returns the error code
@ bias
Offsets of position and rotation. Polynomial degree: 0.
A functor that may be used for memory management of modules allocated on the heap usage: e....
Definition: ModuleDeleter.hpp:15
@ north
Northern hemisphere.
@ dfr
down/front/right
virtual ParamList run(bool reset=false)=0
The base class of all exceptions thrown by opals.
Definition: c++_api/inc/opals/Exception.hpp:170