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)
163 int main(
int argc,
char **argv)
176 JParser<> zap(
"Auxiliary program to modify hydrophone configuration.");
178 zap[
'f'] =
make_field(file_name,
"hydrophone file");
184 catch(
const exception &error) {
185 FATAL(error.what() << endl);
190 data.load(file_name.c_str());
192 data.comment.add(
JMeta(argc, argv));
196 for (container_type::iterator
target = data.begin();
target != data.end(); ++
target) {
198 if (
target->getString() == i->id) {
200 DEBUG(
"Modifier" <<
' '
202 <<
"action" <<
' ' << i->action <<
JEEPZ() << i->data << endl);
205 ERROR(
"No valid action: " << *i << endl);
211 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)...
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 source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS 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.