diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp index eac616bf456f31e163212f7f2dbbc9110c71b6da..a74a778ff7c77b28e86163e612dc9bce362b2639 100644 --- a/Fltk/Callbacks.cpp +++ b/Fltk/Callbacks.cpp @@ -2731,7 +2731,7 @@ static void _add_new_multiline(std::string type) } if(ib == 'e') { if(p.size() >= 2) - add_multline(type, p.size(), &p[0], CTX.filename); + add_multline(type, p, CTX.filename); WID->reset_visibility(); ZeroHighlight(); Draw(); @@ -2796,7 +2796,7 @@ static void _add_new_line() break; } if(p.size() == 2) { - add_multline("Line", p.size(), &p[0], CTX.filename); + add_multline("Line", p, CTX.filename); WID->reset_visibility(); ZeroHighlight(); Draw(); @@ -3801,7 +3801,7 @@ static void _add_transfinite(int dim) if(ib == 'e') { if(dim == 1) { if(p.size()) - add_trsfline(p.size(), &p[0], CTX.filename, + add_trsfline(p, CTX.filename, WID->context_mesh_choice[0]->text(), WID->context_mesh_input[2]->value(), WID->context_mesh_input[1]->value()); @@ -3875,14 +3875,14 @@ static void _add_transfinite(int dim) switch (dim) { case 2: if(p.size() == 3 + 1 || p.size() == 4 + 1) - add_trsfsurf(p.size(), &p[0], CTX.filename, + add_trsfsurf(p, CTX.filename, WID->context_mesh_choice[1]->text()); else Msg::Error("Wrong number of points for transfinite surface"); break; case 3: if(p.size() == 6 + 1 || p.size() == 8 + 1) - add_trsfvol(p.size(), &p[0], CTX.filename); + add_trsfvol(p, CTX.filename); else Msg::Error("Wrong number of points for transfinite volume"); break; diff --git a/Geo/GeoStringInterface.cpp b/Geo/GeoStringInterface.cpp index 3f4dc2b31293843602308d5d1de5adad35bd1c54..9ea375feecad35a8cf7106d5b211fa898e372412 100644 --- a/Geo/GeoStringInterface.cpp +++ b/Geo/GeoStringInterface.cpp @@ -130,21 +130,6 @@ void delet(List_T *list, std::string filename, std::string what) add_infile(sstream.str(), filename, true); } -void add_trsfsurf(int N, int *l, std::string filename, std::string dir) -{ - std::ostringstream sstream; - sstream << "Transfinite Surface {" << l[0] << "} = {"; - for(int i = 1; i < N; i++) { - if(i > 1) sstream << ", "; - sstream << l[i]; - } - if(dir == "Left") - sstream << "};"; - else - sstream << "} " << dir << ";"; - add_infile(sstream.str(), filename); -} - void add_charlength(List_T *list, std::string filename, std::string lc) { std::ostringstream sstream; @@ -159,19 +144,45 @@ void add_recosurf(List_T *list, std::string filename) add_infile(sstream.str(), filename); } -void add_trsfline(int N, int *l, std::string filename, std::string type, +void add_trsfline(std::vector<int> &l, std::string filename, std::string type, std::string typearg, std::string pts) { std::ostringstream sstream; sstream << "Transfinite Line {"; - for(int i = 0; i < N; i++) { + for(unsigned int i = 0; i < l.size(); i++){ if(i) sstream << ", "; sstream << l[i]; } - if(typearg.empty()) - sstream << "} = " << pts << ";"; + sstream << "} = " << pts; + if(typearg.size()) sstream << " Using " << type << " " << typearg; + sstream << ";"; + add_infile(sstream.str(), filename); +} + +void add_trsfsurf(std::vector<int> &l, std::string filename, std::string dir) +{ + std::ostringstream sstream; + sstream << "Transfinite Surface {" << l[0] << "} = {"; + for(unsigned int i = 1; i < l.size(); i++) { + if(i > 1) sstream << ", "; + sstream << l[i]; + } + if(dir == "Left") + sstream << "};"; else - sstream << "} = " << pts << "Using " << type << " " << typearg << ";"; + sstream << "} " << dir << ";"; + add_infile(sstream.str(), filename); +} + +void add_trsfvol(std::vector<int> &l, std::string filename) +{ + std::ostringstream sstream; + sstream << "Transfinite Volume{" << l[0] << "} = {"; + for(unsigned int i = 1; i < l.size(); i++) { + if(i > 1) sstream << ", "; + sstream << l[i]; + } + sstream << "};"; add_infile(sstream.str(), filename); } @@ -214,18 +225,18 @@ void delete_field(int field_id, std::string filename) add_infile(sstream.str(), filename); } -void set_background_field(int field_id,std::string filename) +void set_background_field(int field_id, std::string filename) { std::ostringstream sstream; sstream << "Background Field = " << field_id << ";"; add_infile(sstream.str(), filename); } -void add_multline(std::string type, int N, int *p, std::string filename) +void add_multline(std::string type, std::vector<int> &p, std::string filename) { std::ostringstream sstream; sstream << type << "(" << NEWLINE() << ") = {"; - for(int i = 0; i < N; i++) { + for(unsigned int i = 0; i < p.size(); i++) { if(i) sstream << ", "; sstream << p[i]; } @@ -281,18 +292,6 @@ void add_vol(List_T *list, std::string filename) add_infile(sstream.str(), filename); } -void add_trsfvol(int N, int *l, std::string filename) -{ - std::ostringstream sstream; - sstream << "Transfinite Volume{" << l[0] << "} = {"; - for(int i = 1; i < N; i++) { - if(i > 1) sstream << ", "; - sstream << l[i]; - } - sstream << "};"; - add_infile(sstream.str(), filename); -} - void add_physical(std::string type, List_T *list, std::string filename) { std::ostringstream sstream; diff --git a/Geo/GeoStringInterface.h b/Geo/GeoStringInterface.h index f3408363dd1bd625e93183bc37b9f18f6d0790d8..5e05c4576e9c4365eb733cc5f28f90dac7648e32 100644 --- a/Geo/GeoStringInterface.h +++ b/Geo/GeoStringInterface.h @@ -7,6 +7,7 @@ #define _GEO_STRING_INTERFACE_H_ #include <string> +#include <vector> #include "ListUtils.h" double evaluate_scalarfunction(std::string var, double val, std::string funct); @@ -14,16 +15,16 @@ double evaluate_scalarfunction(std::string var, double val, std::string funct); void coherence(std::string filename); void delet(List_T *list, std::string filename, std::string what); void add_infile(std::string text, std::string filename, bool deleted_something=false); -void add_trsfline(int N, int *l, std::string filename, std::string type, - std::string typearg, std::string pts); -void add_trsfsurf(int N, int *l, std::string filename, std::string dir); -void add_trsfvol(int N, int *l, std::string filename); void add_charlength(List_T *list, std::string filename, std::string lc); void add_recosurf(List_T *list, std::string filename); +void add_trsfline(std::vector<int> &l, std::string filename, std::string type, + std::string typearg, std::string pts); +void add_trsfsurf(std::vector<int> &l, std::string filename, std::string dir); +void add_trsfvol(std::vector<int> &l, std::string filename); void add_param(std::string par, std::string value, std::string filename); void add_point(std::string filename, std::string x, std::string y, std::string z, std::string lc); -void add_multline(std::string type, int N, int *p, std::string filename); +void add_multline(std::string type, std::vector<int> &p, std::string filename); void add_circ(int p1, int p2, int p3, std::string filename); void add_ell(int p1, int p2, int p3, int p4, std::string filename); void add_field_option(int field_id, std::string option_name, std::string option_value,