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(transmitter, action, 
data[0]);                                        
 
   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;
 
  112     static bool apply(
JTransmitter& transmitter, 
const std::string& action, 
const double value)
 
  135       else if (action == add_t)
 
  136         transmitter.
add(pos);
 
  137       else if (action == sub_t)
 
  138         transmitter.
sub(pos);
 
  171 int main(
int argc, 
char **argv)
 
  189     JParser<> zap(
"Auxiliary program to modify transmitter configuration.");
 
  191     zap[
'f'] = 
make_field(inputFile,   
"transmitter input file")             = 
"";
 
  197     zap[
'q'] = 
make_field(squash,      
"squash meta data");
 
  202   catch(
const exception &error) {
 
  203     FATAL(error.what() << endl);
 
  208   if (inputFile != 
"") {
 
  210       data.load(inputFile.c_str());
 
  212     catch(
const exception& error) {
 
  218     data.comment.clear();
 
  231       if (
target->getString() == i->id) {
 
  233         DEBUG(
"Modifier"                                                                                                << 
' ' 
  235               << 
"action" << 
' ' << i->action << 
JEEPZ() << i->data << endl);
 
  238           ERROR(
"No valid action: " << *i << endl);
 
  244   for (container_type::iterator i = 
data.begin(); i != 
data.end(); ) {
 
  246     if ((keep.empty() || keep.count(i->getString()) != 0)  &&
 
  247         (rm  .empty() || rm  .count(i->getString()) == 0))
 
int main(int argc, char **argv)
 
std::istream & operator>>(std::istream &in, JAANET::JHead &header)
Read header from input.
 
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.
 
Data structure for transmitter.
 
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.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Auxiliary data structure for sequence of same character.
 
Type definition of transmitter.
 
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)...