22int main(
int argc,
char **argv)
37 JParser<> zap(
"Auxiliary application to apply tilt angles to seabed.");
39 zap[
'a'] = make_field(detectorFile,
"detector file.");
40 zap[
'T'] = make_field(tripodsFile,
"tripods file.");
41 zap[
'x'] = make_field(Tx,
"tilt angle x-z [rad]");
42 zap[
'y'] = make_field(Ty,
"tilt angle y-z [rad]");
43 zap[
'd'] = make_field(debug) = 1;
47 catch(
const exception& error) {
48 FATAL(error.what() << endl);
55 tripods.load(tripodsFile.c_str());
57 catch(
const exception& error) {
58 FATAL(error.what() << endl);
65 load(detectorFile, detector);
67 catch(
const exception& error) {
68 FATAL(error.what() << endl);
72 JUTMPosition pos = detector.getUTMPosition();
74 if (!tripods.empty()) {
76 pos = JUTMPosition(0.0, 0.0, 0.0);
78 for (tripods_container::const_iterator i = tripods.begin(); i != tripods.end(); ++i) {
79 pos += i->getUTMPosition();
82 pos /= tripods.size();
86 detector.comment.add(JMeta(argc, argv));
88 for (JDetector::iterator i = detector.begin(); i != detector.end(); ++i) {
90 const double dz = Tx * (i->getX() + detector.getX() - pos.getX()) + Ty * (i->getY() + detector.getY() - pos.getY());
92 *i += JPosition3D(0.0, 0.0, dz);
95 store(detectorFile, detector);
98 tripods.comment.add(JMeta(argc, argv));
100 for (tripods_container::iterator i = tripods.begin(); i != tripods.end(); ++i) {
102 const double dz = Tx * (i->getX() - pos.getX()) + Ty * (i->getY() - pos.getY());
104 *i += JUTMPosition(0.0, 0.0, dz);
107 tripods.store(tripodsFile.c_str());