19   static const std::string set_t       = 
"set";               
 
   20   static const std::string add_t       = 
"add";               
 
   21   static const std::string sub_t       = 
"sub";               
 
   22   static const std::string rot_t       = 
"rot";               
 
   36       switch (data.size()) {
 
   39         return  apply(hydrophone, action, data[0]);                                        
 
   42         return  apply(hydrophone, action, 
JVector3D(data[0], data[1], data[2]));           
 
   57     friend inline std::istream& 
operator>>(std::istream& 
in, JModifier& modifier)
 
   61       if (in >> modifier.id >> modifier.action) {
 
   63         modifier.data.clear();
 
   65         for (
double x; in >> 
x; ) {
 
   66           modifier.data.push_back(x);
 
   69         in.clear(ios_base::eofbit);
 
   83     friend inline std::ostream& 
operator<<(std::ostream& out, 
const JModifier& modifier)
 
   87       out << modifier.action;
 
  111     static bool apply(
JHydrophone& hydrophone, 
const std::string& action, 
const double value)
 
  134       else if (action == add_t)
 
  136       else if (action == sub_t)
 
  170 int main(
int argc, 
char **argv)
 
  186     JParser<> zap(
"Auxiliary program to modify hydrophone configuration.");
 
  188     zap[
'f'] = 
make_field(file_name,   
"hydrophone file");
 
  197   catch(
const exception &error) {
 
  198     FATAL(error.what() << endl);
 
  204     data.load(file_name.c_str());
 
  206   catch(
const exception&) {}
 
  209     data.comment.clear();
 
  212   data.comment.add(
JMeta(argc, argv));
 
  220     for (container_type::iterator 
target = data.begin(); 
target != data.end(); ++
target) {
 
  222       if (
target->getString() == i->id) {
 
  224         DEBUG(
"Modifier"                                                                                                << 
' ' 
  226               << 
"action" << 
' ' << i->action << 
JEEPZ() << i->data << endl);
 
  229           ERROR(
"No valid action: " << *i << endl);
 
  236     for (container_type::iterator 
target = data.begin(); 
target != data.end(); ) {
 
  237       if (
target->getString() == *i)
 
  244   data.store(file_name.c_str());
 
Utility class to parse command line options. 
 
int main(int argc, char *argv[])
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
clean for KEY in pcal ccal tripod transmitter hydrophone
 
Type definition of hydrophone. 
 
Data structure for hydrophone. 
 
JVector3D & sub(const JVector3D &vector)
Subtract vector. 
 
I/O formatting auxiliaries. 
 
Data structure for vector in three dimensions. 
 
Auxiliary wrapper for I/O of container with optional comment (see JComment). 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
Auxiliary data structure for streaming of STL containers. 
 
General purpose messaging. 
 
Auxiliary data structure for sequence of same character. 
 
std::istream & operator>>(std::istream &in, JAANET::JHead &header)
Read header from input. 
 
Utility class to parse command line options. 
 
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
 
JPosition3D & rotate(const JRotation3D &R)
Rotate. 
 
JVector3D & add(const JVector3D &vector)
Add vector. 
 
void setPosition(const JVector3D &pos)
Set position. 
 
#define DEBUG(A)
Message macros.