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();
 
  221   data.comment.add(
JMeta(argc, argv));
 
  229     for (container_type::iterator 
target = data.begin(); 
target != data.end(); ++
target) {
 
  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))
 
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)...
 
JVector3D & sub(const JVector3D &vector)
Subtract vector. 
 
I/O formatting auxiliaries. 
 
Data structure for vector in three dimensions. 
 
Data structure for transmitter. 
 
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. 
 
then fatal The output file must have the wildcard in the e g root fi 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
 
Utility class to parse command line options. 
 
Type definition of transmitter. 
 
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.