20  static const std::string set_t       = 
"set";               
 
   21  static const std::string add_t       = 
"add";               
 
   22  static const std::string sub_t       = 
"sub";               
 
   23  static const std::string rot_t       = 
"rot";               
 
   37      switch (
data.size()) {
 
   40        return  apply(hydrophone, action, data[0]);                                        
 
   43        return  apply(hydrophone, action, 
JVector3D(data[0], data[1], data[2]));           
 
   58    friend inline std::istream& 
operator>>(std::istream& in, JModifier& modifier)
 
   62      if (in >> modifier.id >> modifier.action) {
 
   64        modifier.data.clear();
 
   66        for (
double x; in >> 
x; ) {
 
   67          modifier.data.push_back(x);
 
   70        in.clear(ios_base::eofbit);
 
   84    friend inline std::ostream& 
operator<<(std::ostream& out, 
const JModifier& modifier)
 
   88      out << modifier.action;
 
   90      for (std::vector<double>::const_iterator i = modifier.data.begin(); i != modifier.data.end(); ++i) {
 
  112    static bool apply(
JHydrophone& hydrophone, 
const std::string& action, 
const double value)
 
  135      else if (action == add_t)
 
  137      else if (action == sub_t)
 
  189    JParser<> zap(
"Auxiliary program to modify hydrophone configuration.");
 
  191    zap[
'f'] = 
make_field(inputFile,   
"hydrophone input file")              = 
"";
 
  197    zap[
'q'] = 
make_field(squash,      
"squash meta data");
 
  202  catch(
const exception &error) {
 
  203    FATAL(error.what() << endl);
 
  206  const int ns = ((keep.empty() ? 0 : 1)  +
 
  207                  (rm  .empty() ? 0 : 1));
 
  210    FATAL(
"Use either option -k or -r." << endl);
 
  215  if (inputFile != 
"") {
 
  217      data.load(inputFile.c_str());
 
  219    catch(
const exception& error) {
 
  225    data.comment.clear();
 
  228  data.comment.add(
JMeta(argc, argv));
 
  230  for (vector<JHydrophone>::const_iterator i = add.begin(); i != add.end(); ++i) {
 
  234  for (vector<JModifier>::const_iterator i = mod.begin(); i != mod.end(); ++i) {
 
  236    for (container_type::iterator 
target = data.begin(); 
target != data.end(); ++
target) {
 
  238      if (
target->getString() == i->id) {
 
  240        DEBUG(
"Modifier"                                                                                                << 
' ' 
  242              << 
"action" << 
' ' << i->action << 
JEEPZ() << i->data << endl);
 
  245          ERROR(
"No valid action: " << *i << endl);
 
  251  for (container_type::iterator i = data.begin(); i != data.end(); ) {
 
  253    if ((keep.empty() || keep.count(i->getString()) != 0)  &&
 
  254        (rm  .empty() || rm  .count(i->getString()) == 0))
 
 
int main(int argc, char **argv)
 
Data structure for hydrophone.
 
General purpose messaging.
 
#define DEBUG(A)
Message macros.
 
Utility class to parse command line options.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
I/O formatting auxiliaries.
 
void setPosition(const JVector3D &pos)
Set position.
 
JPosition3D & rotate(const JRotation3D &R)
Rotate.
 
Data structure for vector in three dimensions.
 
JVector3D & add(const JVector3D &vector)
Add vector.
 
JVector3D & sub(const JVector3D &vector)
Subtract vector.
 
Utility class to parse command line options.
 
std::istream & operator>>(std::istream &in, JAHRSCalibration &calibration)
Read AHRS calibration from input stream.
 
std::ostream & operator<<(std::ostream &out, const JAHRSCalibration &calibration)
Write AHRS calibration to output stream.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Auxiliary data structure for sequence of same character.
 
Type definition of hydrophone.
 
Auxiliary wrapper for I/O of container with optional comment (see JComment).
 
Auxiliary data structure for streaming of STL containers.
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...