diff --git a/Common/Context.h b/Common/Context.h index f607e15cecf7b96dbadbc846e7eae5ab0e6bbc1e..4f4cad68fdcf3db95915f49516592ffdc3b25be5 100644 --- a/Common/Context.h +++ b/Common/Context.h @@ -70,6 +70,8 @@ class Context_T { int solver_position[2]; // position of the solver windows on the screen int plugin_position[2]; // position of the plugin window on the screen int plugin_size[2]; // size of the plugin window on the screen + int field_position[2]; // position of the field window on the screen + int field_size[2]; // size of the field window on the screen int file_chooser_position[2]; // position of the file chooser window on the screen int system_menu_bar; // use the system menu bar on MacOS? int batch; // 0=full gfx; -1=just parse; 1,2,3=batch 1D, 2D, 3D mesh diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index c130d8673e652f78b810933cf2f3bf62622b081d..2dccb4358f60402c4d6b5a62e24776bf4d763116 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -693,6 +693,15 @@ StringXNumber GeneralOptions_Number[] = { { F|S, "PluginHeight" , opt_general_plugin_size1 , 100. , "Height (in pixels) of the plugin window" }, + { F|S, "FieldPositionX" , opt_general_field_position0 , 650. , + "Horizontal position (in pixels) of the upper left corner of the field window" }, + { F|S, "FieldPositionY" , opt_general_field_position1 , 550. , + "Vertical position (in pixels) of the upper left corner of the field window" }, + { F|S, "FieldWidth" , opt_general_field_size0 , 100. , + "Width (in pixels) of the field window" }, + { F|S, "FieldHeight" , opt_general_field_size1 , 100. , + "Height (in pixels) of the field window" }, + { F|O, "PointSize" , opt_general_point_size , 3. , "Display size of points (in pixels)" }, { F|O, "PolygonOffsetAlwaysOn" , opt_general_polygon_offset_always , 0. , diff --git a/Common/Makefile b/Common/Makefile index 7528f3b2bfb68f69111bb2e6d28f8b373201df22..3e64eb5d99108898d0aeced365bd44d11cfb5aee 100644 --- a/Common/Makefile +++ b/Common/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.162 2008-03-11 22:30:31 geuzaine Exp $ +# $Id: Makefile,v 1.163 2008-03-18 08:41:20 remacle Exp $ # # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle # @@ -73,47 +73,56 @@ Octree.o: Octree.cpp Octree.h OctreeInternals.h OctreeInternals.o: OctreeInternals.cpp Message.h OctreeInternals.h Options.o: Options.cpp GmshUI.h GmshDefines.h Message.h \ ../Graphics/Draw.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ - ../Post/PView.h ../Post/PViewData.h ../Post/PViewOptions.h \ - ../Post/ColorTable.h ../Mesh/Generator.h Context.h Options.h \ - ../Mesh/BackgroundMesh.h ../Plugin/PluginManager.h ../Plugin/Plugin.h \ - ../Common/Options.h ../Common/Message.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Mesh/Generator.h \ + Context.h Options.h ../Post/ColorTable.h ../Mesh/BackgroundMesh.h \ + ../Plugin/PluginManager.h ../Plugin/Plugin.h ../Common/Options.h \ + ../Common/Message.h ../Post/PView.h ../Post/PViewDataList.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ../Fltk/Solvers.h ../Fltk/GUI.h \ ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h ../Common/GmshUI.h \ - ../Fltk/Popup_Button.h ../Fltk/SpherePosition_Widget.h + ../Post/ColorTable.h ../Fltk/Popup_Button.h \ + ../Fltk/SpherePosition_Widget.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h CommandLine.o: CommandLine.cpp GmshUI.h GmshDefines.h GmshVersion.h \ Message.h ../Parser/OpenFile.h CommandLine.h Context.h Options.h \ ../Post/ColorTable.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h \ - ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h \ - ../Geo/SPoint3.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ - ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \ - ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h \ - ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h \ - ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h \ - ../Geo/SBoundingBox3d.h ../Post/PView.h ../Post/PViewData.h \ - ../Post/PViewOptions.h ../Post/ColorTable.h ../Parser/CreateFile.h OS.h + ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \ + ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/SVector3.h ../Geo/GFace.h \ + ../Geo/GEdgeLoop.h ../Geo/Pair.h ../Geo/GRegion.h ../Mesh/Field.h \ + ../Geo/Geo.h ../Common/GmshDefines.h ../Geo/gmshSurface.h \ + ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../DataStr/List.h \ + ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \ + ../Common/SmoothData.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + ../Post/PView.h ../Parser/CreateFile.h OS.h Gmsh.o: Gmsh.cpp ../Parser/Parser.h ../DataStr/List.h ../DataStr/Tree.h \ ../DataStr/avl.h Options.h ../Post/ColorTable.h CommandLine.h OS.h \ ../Plugin/PluginManager.h ../Plugin/Plugin.h ../Common/Options.h \ ../Common/Message.h ../Post/PView.h ../Post/PViewData.h \ ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \ - ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \ - ../Post/AdaptiveViews.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \ - ../Numeric/NumericEmbedded.h + ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \ + ../DataStr/List.h ../Common/GmshMatrix.h ../Common/GmshMatrix.h \ + ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h OS.o: OS.cpp Message.h Visibility.o: Visibility.cpp Visibility.h GmshDefines.h ../Geo/GVertex.h \ ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/GModel.h ../Geo/GVertex.h \ - ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GRegion.h ../Geo/SBoundingBox3d.h \ - ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h ../Parser/Parser.h \ - ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h \ + ../Geo/GEdge.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GModel.h \ + ../Geo/GFace.h ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Geo/MElement.h \ + ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h ../Parser/Parser.h \ + ../DataStr/List.h ../DataStr/Tree.h Trackball.o: Trackball.cpp Trackball.h VertexArray.o: VertexArray.cpp VertexArray.h ../Geo/SVector3.h \ ../Geo/SPoint3.h Context.h ../Numeric/Numeric.h \ diff --git a/Common/Options.cpp b/Common/Options.cpp index 0e1ff2447342ee1602769ad28ae269ecf54b2069..48cfb649728c8f1839faa87393d0ae398b91c7de 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -1,4 +1,4 @@ -// $Id: Options.cpp,v 1.387 2008-03-11 20:24:30 geuzaine Exp $ +// $Id: Options.cpp,v 1.388 2008-03-18 08:41:20 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -2447,6 +2447,34 @@ double opt_general_plugin_size1(OPT_ARGS_NUM) return CTX.plugin_size[1]; } +double opt_general_field_position0(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) + CTX.field_position[0] = (int)val; + return CTX.field_position[0]; +} + +double opt_general_field_position1(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) + CTX.field_position[1] = (int)val; + return CTX.field_position[1]; +} + +double opt_general_field_size0(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) + CTX.field_size[0] = (int)val; + return CTX.field_size[0]; +} + +double opt_general_field_size1(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) + CTX.field_size[1] = (int)val; + return CTX.field_size[1]; +} + double opt_general_statistics_position0(OPT_ARGS_NUM) { if(action & GMSH_SET) diff --git a/Common/Options.h b/Common/Options.h index 22a08795da885f134ba84b63950daae066feedd3..ce63a6ef56f094338a8fd066c817e0b2e858874b 100644 --- a/Common/Options.h +++ b/Common/Options.h @@ -254,6 +254,10 @@ double opt_general_plugin_position0(OPT_ARGS_NUM); double opt_general_plugin_position1(OPT_ARGS_NUM); double opt_general_plugin_size0(OPT_ARGS_NUM); double opt_general_plugin_size1(OPT_ARGS_NUM); +double opt_general_field_position0(OPT_ARGS_NUM); +double opt_general_field_position1(OPT_ARGS_NUM); +double opt_general_field_size0(OPT_ARGS_NUM); +double opt_general_field_size1(OPT_ARGS_NUM); double opt_general_statistics_position0(OPT_ARGS_NUM); double opt_general_statistics_position1(OPT_ARGS_NUM); double opt_general_visibility_position0(OPT_ARGS_NUM); diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp index ead665a313df941b7ab1af47ea6fb35d15d7681f..01be3a1fa9ce1a35c7e86a4bd37df0ba209bf31a 100644 --- a/Fltk/Callbacks.cpp +++ b/Fltk/Callbacks.cpp @@ -1,4 +1,4 @@ -// $Id: Callbacks.cpp,v 1.566 2008-03-11 20:03:09 geuzaine Exp $ +// $Id: Callbacks.cpp,v 1.567 2008-03-18 08:41:20 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -24,6 +24,7 @@ #include <time.h> #include <map> #include <string> +#include <sstream> #include "GmshUI.h" #include "Message.h" @@ -137,6 +138,7 @@ void window_cb(CALLBACK_ARGS) WID->g_window->iconize(); if(WID->opt_window->shown()) WID->opt_window->iconize(); if(WID->plugin_window->shown()) WID->plugin_window->iconize(); + if(WID->field_window->shown()) WID->field_window->iconize(); if(WID->vis_window->shown()) WID->vis_window->iconize(); if(WID->clip_window->shown()) WID->clip_window->iconize(); if(WID->manip_window->shown()) WID->manip_window->iconize(); @@ -165,6 +167,7 @@ void window_cb(CALLBACK_ARGS) WID->g_window->show(); if(WID->opt_window->shown()) WID->opt_window->show(); if(WID->plugin_window->shown()) WID->plugin_window->show(); + if(WID->field_window->shown()) WID->field_window->show(); if(WID->context_geometry_window->shown()) WID->context_geometry_window->show(); if(WID->context_mesh_window->shown()) WID->context_mesh_window->show(); for(int i = 0; i < MAXSOLVERS; i++) { @@ -4492,13 +4495,13 @@ void view_all_visible_cb(CALLBACK_ARGS) void view_applybgmesh_cb(CALLBACK_ARGS) { - int index = (int)(long)data; + /*int index = (int)(long)data; if(index >= 0 && index < (int)PView::list.size()){ Field *field = new PostViewField(PView::list[index]); BGMReset(); BGMAddField(field); - fields.insert(field); - } + GModel::current()->fields.insert(field); + }*/ } void view_plugin_cb(CALLBACK_ARGS) @@ -4506,6 +4509,103 @@ void view_plugin_cb(CALLBACK_ARGS) WID->create_plugin_window((int)(long)data); } +void view_field_cb(CALLBACK_ARGS) +{ + WID->create_field_window((int)(long)data); +} + +void view_field_cancel_cb(CALLBACK_ARGS) +{ + WID->field_window->hide(); +} +void view_field_delete_cb(CALLBACK_ARGS) +{ + FieldDialogBox *fdb=(FieldDialogBox*)data; + fdb->group->hide(); + delete_field(fdb->current_field->id,CTX.filename); + WID->create_field_window(0); +} +void view_field_set_size_btn_cb(CALLBACK_ARGS){ + FieldDialogBox *fdb=(FieldDialogBox*)data; + fdb->group->hide(); + int v=((Fl_Check_Button*)w)->value(); + if(v) + set_background_field(fdb->current_field->id,CTX.filename); + else + set_background_field(-1,CTX.filename); + WID->create_field_window(fdb->current_field->id); +} +void view_field_new_cb(CALLBACK_ARGS) +{ + Fl_Menu_Button* mb=((Fl_Menu_Button*)w); + int id=GModel::current()->fields.new_id(); + add_field(id,mb->text(),CTX.filename); + WID->create_field_window(id); +} +void view_field_apply_cb(CALLBACK_ARGS){ + FieldDialogBox *fdb=(FieldDialogBox*)data; + fdb->save_values(); + int selected=WID->field_browser->value(); + std::ostringstream sstream(""); + sstream<<fdb->current_field->id; + sstream<<" "<<fdb->current_field->get_name(); + WID->field_browser->text(selected,sstream.str().c_str()); +} +void view_field_revert_cb(CALLBACK_ARGS){ + FieldDialogBox *fdb=(FieldDialogBox*)data; + fdb->load_field(fdb->current_field); +} +void view_field_browser_cb(CALLBACK_ARGS) +{ + int selected=WID->field_browser->value(); + if(WID->selected_field_dialog_box){ + WID->selected_field_dialog_box->group->hide(); + } + if(!selected)return; + Field *f=(Field*)WID->field_browser->data(selected); + f->dialog_box()->load_field(f); + WID->selected_field_dialog_box=f->dialog_box(); + f->dialog_box()->group->show(); +} +void view_field_put_on_view_cb(CALLBACK_ARGS){ + Fl_Menu_Button* mb=((Fl_Menu_Button*)w); + Field *field=((FieldDialogBox*)data)->current_field; + int iView; + sscanf(mb->text(),"View [%i]",&iView); + field->put_on_view(PView::list[iView]); + Draw(); +} + +void view_field_select_node_cb(CALLBACK_ARGS){ + const char *mode="select"; + const char *help="vertices"; + CTX.pick_elements = 1; + Draw(); + std::vector<GVertex*> vertices, vertices_old; + std::vector<GEdge*> edges, edges_old; + std::vector<GFace*> faces, faces_old; + std::vector<GRegion*> regions, regions_old; + std::vector<MElement*> elements, elements_old; + opt_geometry_points(0, GMSH_SET | GMSH_GUI, 1); + while(1) { + Msg(ONSCREEN, "Select %s\n[Press %s'q' to abort]", + help, mode ? "" : "'u' to undo or "); + + char ib = SelectEntity(ENT_POINT, vertices, edges, faces, regions, elements); + printf("char = %c\n",ib); + if(ib == 'q'){ + for(std::vector<GVertex*>::iterator it=vertices.begin();it!=vertices.end();it++){ + printf("%i\n",*it); + } + break; + } + } + CTX.mesh.changed = ENT_ALL; + CTX.pick_elements = 0; + Msg(ONSCREEN, ""); + Draw(); +} + void view_plugin_input_value_cb(CALLBACK_ARGS) { double (*f)(int, int, double) = (double (*)(int, int, double)) data; diff --git a/Fltk/Callbacks.h b/Fltk/Callbacks.h index 78dfc83a32df07734df31d73a23ac1671513b2d9..462eaf79059595f7f6b2f221e22b358b1c8e9f1c 100644 --- a/Fltk/Callbacks.h +++ b/Fltk/Callbacks.h @@ -133,6 +133,16 @@ void view_combine_time_visible_cb(CALLBACK_ARGS); void view_combine_time_by_name_cb(CALLBACK_ARGS); void view_all_visible_cb(CALLBACK_ARGS); void view_applybgmesh_cb(CALLBACK_ARGS); +void view_field_cb(CALLBACK_ARGS); +void view_field_new_cb(CALLBACK_ARGS); +void view_field_apply_cb(CALLBACK_ARGS); +void view_field_revert_cb(CALLBACK_ARGS); +void view_field_cancel_cb(CALLBACK_ARGS); +void view_field_browser_cb(CALLBACK_ARGS); +void view_field_delete_cb(CALLBACK_ARGS); +void view_field_set_size_btn_cb(CALLBACK_ARGS); +void view_field_put_on_view_cb(CALLBACK_ARGS); +void view_field_select_node_cb(CALLBACK_ARGS); void view_plugin_cb(CALLBACK_ARGS); void view_plugin_browser_cb(CALLBACK_ARGS); void view_plugin_run_cb(CALLBACK_ARGS); diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp index 35bb2d7d60e1735c0d5b4567c462e33569d8d140..90e588a0921b5253150a75cd0f6f47fa45c6dd4c 100644 --- a/Fltk/GUI.cpp +++ b/Fltk/GUI.cpp @@ -1,4 +1,4 @@ -// $Id: GUI.cpp,v 1.661 2008-03-01 20:01:37 geuzaine Exp $ +// $Id: GUI.cpp,v 1.662 2008-03-18 08:41:21 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -19,7 +19,8 @@ // // Please report all bugs and problems to <gmsh@geuz.org>. -#include <string.h> +#include <string> +#include <sstream> #include "GmshUI.h" #include "GmshDefines.h" #include "Message.h" @@ -37,6 +38,13 @@ #include "PluginManager.h" #include "Shortcut_Window.h" #include "PView.h" +#include "Field.h" +#include "GModel.h" + +#include "GeoStringInterface.h" + +#include "FL/Fl_Int_Input.H" +#include "FL/Fl_Float_Input.H" #define NB_BUTT_SCROLL 25 #define NB_HISTORY_MAX 1000 @@ -64,6 +72,7 @@ Fl_Menu_Item m_menubar_table[] = { {"&Tools", 0, 0, 0, FL_SUBMENU}, {"&Options...", FL_CTRL+FL_SHIFT+'n', (Fl_Callback *)options_cb, 0}, {"Pl&ugins...", FL_CTRL+FL_SHIFT+'u', (Fl_Callback *)view_plugin_cb, (void*)(-1)}, + {"&Fields...", FL_CTRL+FL_SHIFT+'f', (Fl_Callback *)view_field_cb, (void*)(-1)}, {"&Visibility", FL_CTRL+FL_SHIFT+'v', (Fl_Callback *)visibility_cb, 0}, {"&Clipping Planes", FL_CTRL+FL_SHIFT+'c', (Fl_Callback *)clip_cb, 0}, {"&Manipulator", FL_CTRL+FL_SHIFT+'m', (Fl_Callback *)manip_cb, 0, FL_MENU_DIVIDER}, @@ -105,6 +114,7 @@ Fl_Menu_Item m_sys_menubar_table[] = { {"Tools", 0, 0, 0, FL_SUBMENU}, {"Options...", FL_META+FL_SHIFT+'n', (Fl_Callback *)options_cb, 0}, {"Plugins...", FL_META+FL_SHIFT+'u', (Fl_Callback *)view_plugin_cb, (void*)(-1)}, + {"Fields...", FL_META+FL_SHIFT+'f', (Fl_Callback *)view_field_cb, (void*)(-1)}, {"Visibility", FL_META+FL_SHIFT+'v', (Fl_Callback *)visibility_cb, 0}, {"Clipping Planes", FL_META+FL_SHIFT+'c', (Fl_Callback *)clip_cb, 0}, {"Manipulator", FL_META+FL_SHIFT+'m', (Fl_Callback *)manip_cb, 0, FL_MENU_DIVIDER}, @@ -860,6 +870,7 @@ GUI::GUI(int argc, char **argv) g_window = NULL; opt_window = NULL; plugin_window = NULL; + field_window = NULL; stat_window = NULL; msg_window = NULL; vis_window = NULL; @@ -953,6 +964,7 @@ GUI::GUI(int argc, char **argv) create_option_window(); create_plugin_window(0); + create_field_window(0); create_message_window(); create_statistics_window(); create_visibility_window(); @@ -1309,6 +1321,8 @@ void GUI::set_context(Context_Item * menu_asked, int flag) (Fl_Callback *) view_options_cb, (void *)nb, 0); p[j]->add("Plugins...", 'p', (Fl_Callback *) view_plugin_cb, (void *)nb, 0); + p[j]->add("Fields...", 'p', + (Fl_Callback *) view_field_cb, (void *)nb, 0); } m_toggle_butt.push_back(b1); @@ -3810,6 +3824,242 @@ void GUI::create_plugin_window(int numview) plugin_window->end(); } +void FieldDialogBox::save_values() +{ + std::list<Fl_Widget*>::iterator input=inputs.begin(); + Field *f=current_field; + std::ostringstream sstream; + std::istringstream istream; + int i; + char a; + sstream.precision(16); + for(std::map<const char*,FieldOption*>::iterator it=f->options.begin();it!=f->options.end();it++){ + FieldOption *option=it->second; + sstream.str(""); + switch(option->get_type()){ + case FIELD_OPTION_STRING: + case FIELD_OPTION_PATH: + sstream<<"\""<<((Fl_Input*)*input)->value()<<"\""; + break; + case FIELD_OPTION_INT: + sstream<<(int)((Fl_Value_Input*)*input)->value(); + break; + case FIELD_OPTION_DOUBLE: + sstream<<((Fl_Value_Input*)*input)->value(); + break; + case FIELD_OPTION_BOOL: + sstream<<(bool)((Fl_Check_Button*)*input)->value(); + break; + case FIELD_OPTION_LIST: + sstream<<"{"; + istream.str(((Fl_Input*)*input)->value()); + while(istream>>i){ + sstream<<i; + if(istream>>a){ + if(a!=',') + Msg(GERROR, "Unexpected character \'%c\' while parsing option '%s' of field \'%s\'",a,it->first,f->id); + sstream<<", "; + } + } + sstream<<"}"; + break; + } + if((*input)->changed()){ + add_field_option(f->id,it->first,sstream.str().c_str(),CTX.filename); + (*input)->clear_changed(); + } + input++; + } +} + +void FieldDialogBox::load_field(Field *f){ + current_field=f; + std::list<Fl_Widget*>::iterator input=inputs.begin(); + for(std::map<const char*,FieldOption*>::iterator it=f->options.begin();it!=f->options.end();it++){ + FieldOption *option=it->second; + std::ostringstream vstr; + std::list<int>::iterator list_it;; + switch(option->get_type()){ + case FIELD_OPTION_STRING: + case FIELD_OPTION_PATH: + ((Fl_Input*)(*input))->value(option->string().c_str()); + break; + case FIELD_OPTION_INT: + case FIELD_OPTION_DOUBLE: + ((Fl_Value_Input*)(*input))->value(option->numerical_value()); + break; + case FIELD_OPTION_BOOL: + ((Fl_Check_Button*)(*input))->value(option->numerical_value()); + break; + case FIELD_OPTION_LIST: + vstr.str(""); + for(list_it=option->list().begin();list_it!=option->list().end();list_it++){ + if(list_it!=option->list().begin()) + vstr<<", "; + vstr<<*list_it; + } + ((Fl_Input*)(*input))->value(vstr.str().c_str()); + break; + } + input++; + } + if(PView::list.size()){ + put_on_view_btn->activate(); + for(unsigned int i = 0; i < PView::list.size(); i++) { + std::ostringstream s; + s<<"View ["<<i<<"]"; + put_on_view_btn->add(s.str().c_str()); + } + }else{ + put_on_view_btn->deactivate(); + } + set_size_btn->value(GModel::current()->fields.background_field==f->id); +} + +FieldDialogBox::FieldDialogBox(Field *f, int x, int y, int width, int height,int fontsize) +{ + current_field=NULL; + group=new Fl_Group(x, y, width, height); + { + Fl_Box *b = new Fl_Box(x, y, width, BH,f->get_name()); + b->labelfont(FL_BOLD); + Fl_Tabs *o = new Fl_Tabs(x, y + BH + WB, width, height-2*BH-2*WB); + group->resizable(o); + { + Fl_Group *g = new Fl_Group(x, y + 2*BH + WB, width, height - 2*BH-3*WB, "Options"); + apply_btn = new Fl_Return_Button(x+width - BB-WB ,y+ height - 2*BH -2*WB, BB, BH, "Apply"); + apply_btn->callback(view_field_apply_cb,this); + revert_btn = new Fl_Button(x+width - 2*BB-2*WB ,y+ height - 2*BH -2*WB, BB, BH, "Revert"); + revert_btn->callback(view_field_revert_cb,this); + Fl_Scroll *s = new Fl_Scroll(x + WB, y + 2*WB + 2*BH, width - 2 * WB, height - 4*BH - 5 * WB); + double yy=y+3*WB+2*BH; + for(std::map<const char*,FieldOption*>::iterator it=f->options.begin();it!=f->options.end();it++){ + Fl_Widget *input; + switch(it->second->get_type()){ + case FIELD_OPTION_INT: + case FIELD_OPTION_DOUBLE: + input=new Fl_Value_Input(x+WB,yy,IW,BH,it->first); + break; + case FIELD_OPTION_BOOL: + input=new Fl_Check_Button(x+WB,yy,BH,BH,it->first); + break; + case FIELD_OPTION_PATH: + case FIELD_OPTION_STRING: + input=new Fl_Input(x+WB,yy,IW,BH,it->first); + break; + case FIELD_OPTION_LIST: + /*{ + Fl_Button *b=new Fl_Button(x+WB,yy,BH,BH); + b->label("@+"); + b->callback(view_field_select_node_cb); + } + input=new Fl_Input(x+WB+2*BH,yy,IW-2*BH,BH,it->first);*/ + input=new Fl_Input(x+WB,yy,IW,BH,it->first); + break; + } + input->align(FL_ALIGN_RIGHT); + inputs.push_back(input); + yy+=WB+BH; + } + o->resizable(g); // to avoid ugly resizing of tab labels + g->resizable(s); + s->end(); + g->end(); + } + { + Fl_Group *g = new Fl_Group(x, y + 2*BH + WB, width, height - 2*BH-3*WB, "Help"); + Fl_Browser *o = new Fl_Browser(x + WB, y + 2*WB + 2*BH, width - 2 * WB, height - 4 * WB - 3 * BH); + + // char name[1024], copyright[256], author[256], help[4096]; + // p->getName(name); + // p->getInfos(author, copyright, help); + + o->add(" "); + // add_multiline_in_browser(o, "@c@b@.", name); + o->add(" "); + // add_multiline_in_browser(o, "", help); + o->add(" "); + //add_multiline_in_browser(o, "Author: ", author); + //add_multiline_in_browser(o, "Copyright (C) ", copyright); + o->add(" "); + + g->end(); + } + o->end(); + } + { + Fl_Button *b = new Fl_Button(x+width - BB,y+ height - BH , BB, BH, "Delete"); + b->callback(view_field_delete_cb,this); + } + put_on_view_btn = new Fl_Menu_Button(x+BB*3/2+WB,y+ height - BH ,BB*3/2,BH,"Put on view"); + put_on_view_btn->callback(view_field_put_on_view_cb,this); + + set_size_btn = new Fl_Check_Button(x,y+ height - BH ,BB*3/2,BH,"Background size"); + set_size_btn->callback(view_field_set_size_btn_cb,this); + + group->end(); + group->hide(); +} + +void GUI::create_field_window(int numfield) +{ + int width0 = 40 * fontsize; + int height0 = 13 * BH + 5 * WB; + + int width = (CTX.field_size[0] < width0) ? width0 : CTX.field_size[0]; + int height = (CTX.field_size[1] < height0) ? height0 : CTX.field_size[1]; + + int L1 = BB; + int i_entry=1; + if(field_window) { + width=field_window->w(); + height=field_window->h(); + FieldManager &fields=GModel::current()->fields; + field_browser->clear(); + for(FieldManager::iterator it=fields.begin();it!=fields.end();it++){ + Field *field=it->second; + std::ostringstream sstream; + if(it->first==fields.background_field) + sstream<<"*"; + sstream<<it->first; + sstream<<" "<<field->get_name(); + field_browser->add(sstream.str().c_str(),field); + if(!field->dialog_box()){ + field_window->begin(); + field->dialog_box()=new FieldDialogBox(field, 2 * WB + L1 , WB, width - L1 - 3 * WB, height - 2*WB ,fontsize); + field_window->end(); + } + if(it->second->id==numfield){ + field_browser->select(i_entry); + field_browser->do_callback(); + } + i_entry++; + } + field_window->show(); + return; + } + + selected_field_dialog_box=NULL; + field_window = new Dialog_Window(width, height, "Fields"); + field_window->box(GMSH_WINDOW_BOX); + Fl_Group *resize_box = new Fl_Group(2*WB+L1, 2*WB+BB,width-3*WB-L1, height - 3 * WB-BB); + resize_box->end(); + { + Fl_Menu_Button *b= new Fl_Menu_Button(WB,WB,L1,BH,"New"); + FieldManager &fields=GModel::current()->fields; + std::map<const std::string, FieldFactory*>::iterator it; + for(it=fields.map_type_name.begin();it!=fields.map_type_name.end();it++) + b->add(it->first.c_str()); + b->callback(view_field_new_cb); + } + field_browser = new Fl_Hold_Browser(WB, 2*WB+BH, L1, height - 3 * WB - BH); + field_browser->callback(view_field_browser_cb); + field_window->resizable(resize_box); + field_window->size_range(width0, height0); + field_window->position(CTX.field_position[0], CTX.field_position[1]); + field_window->end(); +} + // Create the window for the statistics void GUI::create_statistics_window() diff --git a/Fltk/GUI.h b/Fltk/GUI.h index 054efcc34b72c36ab07979a206a1aae691d596f4..7885788f3f9c77925358620f91ee0e95047088b6 100644 --- a/Fltk/GUI.h +++ b/Fltk/GUI.h @@ -55,12 +55,15 @@ #include <vector> #include <string> +#include <list> #include "Opengl_Window.h" #include "Colorbar_Window.h" #include "Popup_Button.h" #include "SpherePosition_Widget.h" +#include "Field.h" + // The dynamic contexts typedef struct{ @@ -108,6 +111,21 @@ struct PluginDialogBox Fl_Input *input[MAX_PLUGIN_OPTIONS]; }; +class FieldDialogBox +{ + std::list<Fl_Widget*> inputs; + std::list<std::string> inputs_values; + public: + Field *current_field; + Fl_Group *group; + Fl_Menu_Button *put_on_view_btn; + Fl_Check_Button *set_size_btn; + Fl_Button *apply_btn,*revert_btn; + FieldDialogBox(Field *field,int x,int y, int width, int height,int fontsize); + void load_field(Field *field); + void save_values(); +}; + // The dialog for solvers struct SolverDialogBox @@ -211,6 +229,11 @@ public: Fl_Return_Button *view_ok; Fl_Menu_Button *view_menu_butt[2]; + // Field window + Fl_Window *field_window; + Fl_Hold_Browser *field_browser; + FieldDialogBox *selected_field_dialog_box; + // Plugin window Fl_Window *plugin_window; Fl_Hold_Browser *plugin_browser; @@ -283,6 +306,8 @@ public: void create_view_options_window(int numview); void create_plugin_dialog_box(GMSH_Plugin *p, int x, int y, int width, int height); void create_plugin_window(int numview); + void create_field_dialog_box(Field *f, int x, int y, int width, int height); + void create_field_window(int numview); void create_visibility_window(bool redraw_only=false); void create_clip_window(); void create_manip_window(); diff --git a/Fltk/Main.cpp b/Fltk/Main.cpp index 326720e1b7077e077ef6af7a79ca83a43cd7bb8c..7eda7b40da201e4d82cfa0d62b433b267fcabeb8 100644 --- a/Fltk/Main.cpp +++ b/Fltk/Main.cpp @@ -1,4 +1,4 @@ -// $Id: Main.cpp,v 1.120 2008-03-11 22:30:31 geuzaine Exp $ +// $Id: Main.cpp,v 1.121 2008-03-18 08:41:21 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -88,9 +88,10 @@ int main(int argc, char *argv[]) if(CTX.bgm_filename) { MergeFile(CTX.bgm_filename); if(PView::list.size()){ - Field *field = new PostViewField(PView::list.back()); - BGMAddField(field); - fields.insert(field); + /*Field *field = new PostViewField(PView::list.back()); + GModel::current()->fields.insert(field); + field->set_mesh_size=true; + GModel::current()->mesh_size_fields.insert(field);*/ } else Msg(GERROR, "Invalid background mesh (no view)"); @@ -170,9 +171,10 @@ int main(int argc, char *argv[]) if(CTX.bgm_filename) { MergeFile(CTX.bgm_filename); if(PView::list.size()){ - Field *field = new PostViewField(PView::list.back()); - BGMAddField(field); - fields.insert(field); + /*Field *field = new PostViewField(PView::list.back()); + GModel::current()->fields.insert(field); + field->set_mesh_size=true; + GModel::current()->mesh_size_fields.insert(field);*/ } else Msg(GERROR, "Invalid background mesh (no view)"); diff --git a/Fltk/Makefile b/Fltk/Makefile index 72a17fce2b5ab6254ae7518601ebfa5c379ac89d..b536ff0dab38cc4ec941433b996c1f156db26825 100644 --- a/Fltk/Makefile +++ b/Fltk/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.174 2008-03-11 22:30:31 geuzaine Exp $ +# $Id: Makefile,v 1.175 2008-03-18 08:41:21 remacle Exp $ # # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle # @@ -70,154 +70,188 @@ depend: # DO NOT DELETE THIS LINE Main.o: Main.cpp GUI.h Opengl_Window.h Colorbar_Window.h \ ../Common/GmshUI.h ../Post/ColorTable.h Popup_Button.h \ - SpherePosition_Widget.h ../Common/Gmsh.h ../Common/Message.h \ - ../Mesh/Generator.h ../Parser/CreateFile.h ../Graphics/Draw.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Common/Context.h \ - ../Common/Options.h ../Parser/Parser.h ../DataStr/List.h \ - ../DataStr/Tree.h ../DataStr/avl.h ../Parser/OpenFile.h \ + SpherePosition_Widget.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/Gmsh.h \ + ../Common/Message.h ../Mesh/Generator.h ../Parser/CreateFile.h \ + ../Graphics/Draw.h ../Geo/SBoundingBox3d.h ../Common/Context.h \ + ../Common/Options.h ../Post/ColorTable.h ../Parser/Parser.h \ + ../DataStr/List.h ../DataStr/Tree.h ../Parser/OpenFile.h \ ../Common/CommandLine.h Solvers.h ../Plugin/PluginManager.h \ - ../Plugin/Plugin.h ../Post/PView.h ../Post/PViewData.h \ - ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../Common/GmshMatrix.h \ - ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \ - ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ - ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h \ - ../Geo/SPoint3.h ../Geo/SVector3.h ../Geo/SBoundingBox3d.h \ - ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Geo/SPoint2.h \ - ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/OctreePost.h \ - ../Common/Octree.h ../Common/OctreeInternals.h ../Mesh/BackgroundMesh.h + ../Plugin/Plugin.h ../Common/Options.h ../Common/Message.h \ + ../Post/PView.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \ + ../DataStr/List.h ../Common/GmshMatrix.h ../Common/GmshMatrix.h \ + ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/GPoint.h \ + ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/GRegion.h \ + ../Mesh/Field.h ../Mesh/BackgroundMesh.h ../Post/PView.h Message.o: Message.cpp ../Common/Message.h ../Common/GmshUI.h \ ../Common/Context.h ../Common/Options.h ../Post/ColorTable.h GUI.h \ - Opengl_Window.h Colorbar_Window.h Popup_Button.h \ - SpherePosition_Widget.h GUI_Extras.h ../Common/OS.h + Opengl_Window.h Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \ + SpherePosition_Widget.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h GUI_Extras.h ../Common/OS.h GUI.o: GUI.cpp ../Common/GmshUI.h ../Common/GmshDefines.h \ ../Common/Message.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ ../Common/Context.h ../Common/Options.h ../Post/ColorTable.h \ ../Graphics/Draw.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h GUI.h \ - Opengl_Window.h Colorbar_Window.h Popup_Button.h \ - SpherePosition_Widget.h Callbacks.h Win32Icon.h ../Parser/OpenFile.h \ - ../Common/CommandLine.h ../Mesh/Generator.h Solvers.h \ - ../Plugin/PluginManager.h ../Plugin/Plugin.h ../Post/PView.h \ - ../Post/PViewData.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../DataStr/List.h ../Common/GmshMatrix.h Shortcut_Window.h + Opengl_Window.h Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \ + SpherePosition_Widget.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h ../DataStr/List.h \ + ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \ + ../Common/SmoothData.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + Callbacks.h Win32Icon.h ../Parser/OpenFile.h ../Common/CommandLine.h \ + ../Mesh/Generator.h Solvers.h ../Plugin/PluginManager.h \ + ../Plugin/Plugin.h ../Common/Options.h ../Common/Message.h \ + ../Post/PView.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \ + ../DataStr/List.h ../Common/GmshMatrix.h ../Common/GmshMatrix.h \ + Shortcut_Window.h ../Post/PView.h ../Geo/GModel.h ../Geo/GVertex.h \ + ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdge.h ../Geo/GFace.h \ + ../Geo/GEdgeLoop.h ../Geo/GRegion.h ../Mesh/Field.h \ + ../Geo/GeoStringInterface.h GUI_Extras.o: GUI_Extras.cpp ../Common/GmshUI.h ../Common/GmshDefines.h \ ../Parser/CreateFile.h ../Common/Options.h ../Post/ColorTable.h \ ../Common/Context.h ../Graphics/Draw.h ../Geo/SBoundingBox3d.h \ - ../Geo/SPoint3.h GUI.h Opengl_Window.h Colorbar_Window.h Popup_Button.h \ - SpherePosition_Widget.h Shortcut_Window.h File_Picker.h + ../Geo/SPoint3.h GUI.h Opengl_Window.h Colorbar_Window.h \ + ../Post/ColorTable.h Popup_Button.h SpherePosition_Widget.h \ + ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h \ + ../Geo/SVector3.h ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h Shortcut_Window.h \ + File_Picker.h GUI_Projection.o: GUI_Projection.cpp ../Geo/GModelIO_Fourier.h \ ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \ - ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ - ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h \ - ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h \ - ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h \ - ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h \ - ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h ../Graphics/Draw.h \ - ../Common/Options.h ../Post/ColorTable.h ../Common/Context.h \ - ../Parser/OpenFile.h ../Graphics/SelectBuffer.h GUI_Projection.h \ - ../Common/GmshUI.h ../Geo/fourierProjectionFace.h ../Geo/GModel.h \ - ../Geo/Range.h GUI.h Opengl_Window.h Colorbar_Window.h Popup_Button.h \ - SpherePosition_Widget.h Shortcut_Window.h GUI_Extras.h \ - ../Geo/fourierFace.h ../Geo/GFace.h ../Geo/GModel.h ../Geo/Range.h \ - ../Geo/fourierEdge.h ../Geo/GEdge.h ../Geo/GModel.h \ - ../Geo/fourierVertex.h ../Geo/GModel.h ../Geo/GVertex.h \ - ../Geo/MVertex.h ../Common/Message.h + ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \ + ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/SVector3.h ../Geo/GFace.h \ + ../Geo/GEdgeLoop.h ../Geo/Pair.h ../Geo/GRegion.h ../Mesh/Field.h \ + ../Geo/Geo.h ../Common/GmshDefines.h ../Geo/gmshSurface.h \ + ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../DataStr/List.h \ + ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \ + ../Common/SmoothData.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \ + ../Graphics/Draw.h ../Geo/SBoundingBox3d.h ../Common/Options.h \ + ../Post/ColorTable.h ../Common/Context.h ../Parser/OpenFile.h \ + ../Graphics/SelectBuffer.h ../Geo/GVertex.h ../Geo/GEdge.h \ + ../Geo/GFace.h ../Geo/GRegion.h GUI_Projection.h ../Common/GmshUI.h \ + ../Geo/GModel.h ../Geo/fourierProjectionFace.h GUI.h Opengl_Window.h \ + Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \ + SpherePosition_Widget.h ../Mesh/Field.h Shortcut_Window.h GUI_Extras.h \ + ../Geo/fourierFace.h ../Geo/fourierEdge.h ../Geo/fourierVertex.h \ + ../Common/Message.h GUI_Classifier.o: GUI_Classifier.cpp GUI_Classifier.h ../Common/GmshUI.h \ ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \ - ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ - ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h \ - ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h \ - ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h \ - ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h \ - ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h GUI.h Opengl_Window.h \ - Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \ - SpherePosition_Widget.h Shortcut_Window.h ../Graphics/Draw.h \ - ../Common/Options.h ../Common/Context.h ../Graphics/SelectBuffer.h \ + ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \ + ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/SVector3.h ../Geo/GFace.h \ + ../Geo/GEdgeLoop.h ../Geo/Pair.h ../Geo/GRegion.h ../Mesh/Field.h \ + ../Geo/Geo.h ../Common/GmshDefines.h ../Geo/gmshSurface.h \ + ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../DataStr/List.h \ + ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \ + ../Common/SmoothData.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h GUI.h \ + Opengl_Window.h Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \ + SpherePosition_Widget.h ../Mesh/Field.h Shortcut_Window.h \ + ../Graphics/Draw.h ../Geo/SBoundingBox3d.h ../Common/Options.h \ + ../Post/ColorTable.h ../Common/Context.h ../Graphics/SelectBuffer.h \ + ../Geo/GVertex.h ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GRegion.h \ GUI_Projection.h ../Geo/fourierProjectionFace.h ../Geo/GModel.h \ - ../Geo/Range.h GUI_Extras.h ../Common/Message.h \ - ../Mesh/meshGFaceDelaunayInsertion.h ../Mesh/meshGFaceOptimize.h \ - ../Mesh/meshGFaceDelaunayInsertion.h ../Geo/discreteEdge.h \ - ../Geo/GModel.h ../Geo/GEdge.h ../Geo/Geo.h ../Geo/gmshSurface.h \ - ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h \ - ../Geo/SVector3.h ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ - ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \ - ../Common/SmoothData.h ../Geo/discreteFace.h ../Geo/GModel.h \ - ../Geo/GFace.h ../Geo/Geo.h + GUI_Extras.h ../Common/Message.h ../Mesh/meshGFaceDelaunayInsertion.h \ + ../Geo/MElement.h ../Mesh/meshGFaceOptimize.h ../Geo/MEdge.h \ + ../Mesh/meshGFaceDelaunayInsertion.h ../Geo/discreteEdge.h ../Geo/Geo.h \ + ../Geo/discreteFace.h Callbacks.o: Callbacks.cpp ../Common/GmshUI.h ../Common/Message.h \ ../DataStr/Malloc.h ../DataStr/Tools.h ../DataStr/List.h \ ../DataStr/Tree.h ../DataStr/avl.h ../Geo/GModel.h ../Geo/GVertex.h \ ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ + ../DataStr/List.h ../DataStr/Tree.h ../Geo/ExtrudeParams.h \ + ../Common/SmoothData.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \ ../Geo/GeoStringInterface.h ../Geo/findLinks.h ../Mesh/Generator.h \ - ../Mesh/HighOrder.h ../Graphics/Draw.h ../Graphics/SelectBuffer.h \ - ../Post/PView.h ../Post/PViewData.h ../Post/PViewOptions.h \ - ../Post/ColorTable.h ../Parser/CreateFile.h ../Parser/OpenFile.h \ - ../Common/CommandLine.h ../Common/Context.h ../Common/Options.h GUI.h \ - Opengl_Window.h Colorbar_Window.h Popup_Button.h \ - SpherePosition_Widget.h GUI_Extras.h Callbacks.h ../Plugin/Plugin.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../Common/GmshMatrix.h ../Plugin/PluginManager.h ../Plugin/Plugin.h \ - ../Common/Visibility.h ../Common/GmshDefines.h ../Numeric/Numeric.h \ - ../Numeric/NumericEmbedded.h Solvers.h ../Common/OS.h ../Mesh/Field.h \ - ../Geo/Geo.h ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h \ - ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \ - ../Common/SmoothData.h ../Post/OctreePost.h ../Common/Octree.h \ - ../Common/OctreeInternals.h ../Mesh/BackgroundMesh.h + ../Mesh/HighOrder.h ../Geo/GModel.h ../Graphics/Draw.h \ + ../Geo/SBoundingBox3d.h ../Graphics/SelectBuffer.h ../Geo/GVertex.h \ + ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GRegion.h ../Post/PView.h \ + ../Parser/CreateFile.h ../Parser/OpenFile.h ../Common/CommandLine.h \ + ../Common/Context.h ../Common/Options.h ../Post/ColorTable.h GUI.h \ + Opengl_Window.h Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \ + SpherePosition_Widget.h ../Mesh/Field.h GUI_Extras.h Callbacks.h \ + ../Plugin/Plugin.h ../Common/Options.h ../Common/Message.h \ + ../Post/PView.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \ + ../DataStr/List.h ../Common/GmshMatrix.h ../Common/GmshMatrix.h \ + ../Plugin/PluginManager.h ../Plugin/Plugin.h ../Common/Visibility.h \ + ../Common/GmshDefines.h ../Geo/GVertex.h ../Geo/GEdge.h ../Geo/GFace.h \ + ../Geo/GRegion.h ../Numeric/Numeric.h Solvers.h ../Common/OS.h \ + ../Mesh/BackgroundMesh.h Opengl.o: Opengl.cpp ../Common/GmshUI.h ../Common/GmshDefines.h \ ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Common/Context.h \ ../Graphics/Draw.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Graphics/SelectBuffer.h ../Geo/GVertex.h ../Geo/GEntity.h \ - ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Common/StringUtils.h GUI.h \ - Opengl_Window.h Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \ - SpherePosition_Widget.h ../Graphics/gl2ps.h + ../Geo/Range.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h \ + ../Geo/GEdge.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/GFace.h \ + ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/Pair.h ../Geo/GRegion.h \ + ../Common/StringUtils.h GUI.h Opengl_Window.h Colorbar_Window.h \ + ../Post/ColorTable.h Popup_Button.h SpherePosition_Widget.h \ + ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../DataStr/List.h \ + ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \ + ../Common/SmoothData.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + ../Graphics/gl2ps.h Opengl_Window.o: Opengl_Window.cpp ../Common/GmshUI.h \ ../Common/GmshDefines.h ../Common/Message.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h ../Common/Context.h ../Graphics/Draw.h \ ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Graphics/SelectBuffer.h \ - ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ + ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \ ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ - ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \ - ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h \ - ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h \ - ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h GUI.h \ - Opengl_Window.h Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \ - SpherePosition_Widget.h ../Geo/MElement.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h + ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h \ + ../Geo/GEdge.h ../Geo/Pair.h ../Geo/GRegion.h GUI.h Opengl_Window.h \ + Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \ + SpherePosition_Widget.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Numeric/Numeric.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/PView.h \ + ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h \ + ../Post/ColorTable.h ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h \ + ../Geo/MFace.h Colorbar_Window.o: Colorbar_Window.cpp ../Common/GmshUI.h GUI.h \ Opengl_Window.h Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \ - SpherePosition_Widget.h ../Common/Context.h + SpherePosition_Widget.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/Context.h Solvers.o: Solvers.cpp ../Common/Message.h Solvers.h GmshServer.h \ ../Parser/OpenFile.h ../Common/GmshUI.h GUI.h Opengl_Window.h \ Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \ - SpherePosition_Widget.h ../Post/PView.h ../Post/PViewData.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \ - ../Post/ColorTable.h ../Graphics/Draw.h ../Common/Context.h + SpherePosition_Widget.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PView.h \ + ../Graphics/Draw.h ../Geo/SBoundingBox3d.h ../Common/Context.h diff --git a/Fltk/Message.cpp b/Fltk/Message.cpp index 6d427d429edfde0b9d75ab702de0fe296eb57c43..b1187aebd0dae9109e5cf0aaf4c404e5eb5d39ae 100644 --- a/Fltk/Message.cpp +++ b/Fltk/Message.cpp @@ -1,4 +1,4 @@ -// $Id: Message.cpp,v 1.86 2008-03-11 20:03:10 geuzaine Exp $ +// $Id: Message.cpp,v 1.87 2008-03-18 08:41:21 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -204,6 +204,10 @@ void Exit(int level) CTX.plugin_position[1] = WID->plugin_window->y(); CTX.plugin_size[0] = WID->plugin_window->w(); CTX.plugin_size[1] = WID->plugin_window->h(); + CTX.field_position[0] = WID->field_window->x(); + CTX.field_position[1] = WID->field_window->y(); + CTX.field_size[0] = WID->field_window->w(); + CTX.field_size[1] = WID->field_window->h(); CTX.stat_position[0] = WID->stat_window->x(); CTX.stat_position[1] = WID->stat_window->y(); CTX.vis_position[0] = WID->vis_window->x(); diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index 0b5c8ff8b4e6ba035d45a6cecd0e5293429e50ac..0ce655c6ab09d631abf3ea247ea3c0f79ccc6833 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -1,4 +1,4 @@ -// $Id: GModel.cpp,v 1.70 2008-03-11 22:37:50 geuzaine Exp $ +// $Id: GModel.cpp,v 1.71 2008-03-18 08:41:21 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -99,9 +99,9 @@ void GModel::destroy() MVertex::resetGlobalNumber(); MElement::resetGlobalNumber(); + fields.reset(); #if !defined(HAVE_GMSH_EMBEDDED) gmshSurface::reset(); - fields.reset(); BGMReset(); #endif } diff --git a/Geo/GModel.h b/Geo/GModel.h index 12648f5a2fbe563a3c12faa8dcac3327ec260ee0..022a4e36342b3fc9fb6ecdb7ea479dbb7ec5cb29 100644 --- a/Geo/GModel.h +++ b/Geo/GModel.h @@ -28,6 +28,7 @@ #include "GFace.h" #include "GRegion.h" #include "SBoundingBox3d.h" +#include "Field.h" class GEO_Internals; class OCC_Internals; @@ -37,6 +38,7 @@ class smooth_normals; class GModel { private: + std::set<Field*>mesh_size_fields; // Vertex cache to speed-up direct access by vertex number (used for // post-processing I/O) std::vector<MVertex*> _vertexVectorCache; @@ -245,6 +247,9 @@ class GModel // Med interface ("Modele d'Echange de Donnees") int writeMED(const std::string &name); + + // Characteristic Lengths fields + FieldManager fields; }; #endif diff --git a/Geo/GModelIO_Geo.cpp b/Geo/GModelIO_Geo.cpp index 7d9124fd99cf2f9e3bc774e8297ee0ad7feb96d6..13716cb177ab6d8447548954a40495835409bd03 100644 --- a/Geo/GModelIO_Geo.cpp +++ b/Geo/GModelIO_Geo.cpp @@ -1,4 +1,4 @@ -// $Id: GModelIO_Geo.cpp,v 1.16 2008-02-22 21:09:00 geuzaine Exp $ +// $Id: GModelIO_Geo.cpp,v 1.17 2008-03-18 08:41:21 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -147,6 +147,30 @@ int GModel::importGEOInternals() return 1; } +class writeFieldOptionGEO{ + private : + FILE *geo; + Field *field; + public : + writeFieldOptionGEO(FILE *fp,Field *_field) { geo = fp ? fp : stdout; field=_field;} + void operator() (std::pair<const char *,FieldOption *> it) + { + std::string v; + it.second->get_text_representation(v); + fprintf(geo,"Field[%i].%s = %s;\n",field->id,it.first,v.c_str()); + } +}; +class writeFieldGEO{ + private : + FILE *geo; + public : + writeFieldGEO(FILE *fp) { geo = fp ? fp : stdout; } + void operator() (std::pair<int, Field *> it) + { + fprintf(geo,"Field[%i] = %s;\n",it.first,it.second->get_name()); + std::for_each(it.second->options.begin(),it.second->options.end(),writeFieldOptionGEO(geo,it.second)); + } +}; class writeGVertexGEO { private : @@ -409,6 +433,8 @@ int GModel::writeGEO(const std::string &name, bool printLabels) std::for_each(groups[i].begin(), groups[i].end(), writePhysicalGroupGEO(fp, i, printLabels, labels, physicalNames)); + std::for_each(fields.begin(),fields.end(), writeFieldGEO(fp)); + if(fields.background_field>0)fprintf(fp,"Background Field = %i;\n",fields.background_field); if(fp) fclose(fp); return 1; } diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp index d57bcc547245b34310d29e0df6802bf6af4af54c..7a2fc434011486db7ed9347f51601c08349a4871 100644 --- a/Geo/Geo.cpp +++ b/Geo/Geo.cpp @@ -1,4 +1,4 @@ -// $Id: Geo.cpp,v 1.106 2008-02-26 08:28:16 geuzaine Exp $ +// $Id: Geo.cpp,v 1.107 2008-03-18 08:41:21 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -716,6 +716,11 @@ int NEWVOLUME(void) return (GModel::current()->getGEOInternals()->MaxVolumeNum + 1); } +int NEWFIELD(void) +{ + return (GModel::current()->fields.max_id()+1); +} + int NEWPHYSICAL(void) { if(CTX.geom.old_newreg) @@ -1031,7 +1036,7 @@ void DeletePoint(int ip) List_Read(Curves, i, &c); for(int j = 0; j < List_Nbr(c->Control_Points); j++) { if(!compareVertex(List_Pointer(c->Control_Points, j), &v)){ - List_Delete(Curves); + List_Delete(Curves); return; } } diff --git a/Geo/Geo.h b/Geo/Geo.h index f743100ab54dd7304c1b9edaf111505bf1688f18..2fada331e3a1bce0d22ee7a63bf46b48ed061cf1 100644 --- a/Geo/Geo.h +++ b/Geo/Geo.h @@ -259,6 +259,7 @@ int NEWLINELOOP(void); int NEWSURFACE(void); int NEWSURFACELOOP(void); int NEWVOLUME(void); +int NEWFIELD(void); int NEWPHYSICAL(void); int NEWREG(void); diff --git a/Geo/GeoStringInterface.cpp b/Geo/GeoStringInterface.cpp index 734f11f3548a4063a06eee8b9fb6a80b17bb2c88..1e6ee3a8ace07b7399f6a8b563a2cafeb1c68b81 100644 --- a/Geo/GeoStringInterface.cpp +++ b/Geo/GeoStringInterface.cpp @@ -1,4 +1,4 @@ -// $Id: GeoStringInterface.cpp,v 1.18 2008-02-25 15:36:38 geuzaine Exp $ +// $Id: GeoStringInterface.cpp,v 1.19 2008-03-18 08:41:21 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -20,6 +20,7 @@ // Please report all bugs and problems to <gmsh@geuz.org>. #include <string.h> +#include <sstream> #include "Message.h" #include "Numeric.h" #include "Malloc.h" @@ -241,22 +242,26 @@ void add_point(const char *fich, const char *x, const char *y, const char *z, add_infile(text, fich); } -void add_attractor(const char *fich, int ip, int typ, - const char *ax, const char *ay, const char *ad) -{ - char text[BUFFSIZE]; - if(typ == 0) { - snprintf(text, BUFFSIZE, "Attractor Point {%d} = {%s,%s,%s} = ;", ip, ax, ay, ad); - } - else if(typ == 1) { - snprintf(text, BUFFSIZE, "Attractor Line {%d} = {%s,%s,%s};", ip, ax, ay, ad); - } - else if(typ == 2) { - snprintf(text, BUFFSIZE, "Attractor Surface {%d} = {%s,%s,%s};", ip, ax, ay, ad); - } - add_infile(text, fich); +void add_field_option(int field_id, const char *option_name, const char *option_value, const char *fich){ + std::ostringstream sstream; + sstream<<"Field["<<field_id<<"]."<<std::string(option_name)<<" = "<<std::string(option_value)<<";"; + add_infile(sstream.str().c_str(),fich); +} +void add_field(int field_id, const char *type_name, const char *fich){ + std::ostringstream sstream; + sstream<<"Field["<<field_id<<"] = "<<std::string(type_name)<<";"; + add_infile(sstream.str().c_str(),fich); +} +void delete_field(int field_id, const char *fich){ + std::ostringstream sstream; + sstream<<"Delete Field ["<<field_id<<"];"; + add_infile(sstream.str().c_str(),fich); +} +void set_background_field(int field_id,const char *fich){ + std::ostringstream sstream; + sstream<<"Background Field = "<<field_id<<";"; + add_infile(sstream.str().c_str(),fich); } - void add_line(int p1, int p2, const char *fich) { diff --git a/Geo/GeoStringInterface.h b/Geo/GeoStringInterface.h index bde4965a365d601c2f5e35cac3751db5dc82b5f9..ac61dca160acedeb8810b4f8eeac29b7f41b9d6f 100644 --- a/Geo/GeoStringInterface.h +++ b/Geo/GeoStringInterface.h @@ -36,13 +36,16 @@ void add_recosurf(List_T *list, const char *fich); void add_param(const char *par, const char *value, const char *fich); void add_point(const char *fich, const char *x, const char *y, const char *z, const char *lc); -void add_attractor(const char *fich, int ip, int typ); void add_line(int p1, int p2, const char *fich); void add_circ(int p1, int p2, int p3, const char *fich); void add_ell(int p1, int p2, int p3, int p4, const char *fich); void add_spline(int N, int *p, const char *fich); void add_bezier(int N, int *p, const char *fich); void add_bspline(int N, int *p, const char *fich); +void add_field_option(int field_id, const char *option_name, const char *option_value, const char *fich); +void add_field(int field_id, const char *type_name, const char *fich); +void delete_field(int field_id, const char *fich); +void set_background_field(int field_id,const char *fich); void add_multline(int N, int *p, const char *fich); void add_lineloop(List_T *list, const char *fich, int *numloop); void add_surf(List_T *list, const char *fich, int support, int typ); diff --git a/Geo/Makefile b/Geo/Makefile index 19440ba1f8f9f9d35cb27c2f4fa6fa66fef5ebbb..38dca74c25ca55fb8e173feeebe396b9a432a5d1 100644 --- a/Geo/Makefile +++ b/Geo/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.192 2008-03-11 22:30:31 geuzaine Exp $ +# $Id: Makefile,v 1.193 2008-03-18 08:41:21 remacle Exp $ # # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle # @@ -75,28 +75,50 @@ depend: # DO NOT DELETE THIS LINE GEntity.o: GEntity.cpp GEntity.h Range.h SPoint3.h SBoundingBox3d.h \ ../Common/VertexArray.h ../Geo/SVector3.h ../Geo/SPoint3.h \ - ../Common/Context.h + ../Common/Context.h ../Common/Context.h GVertex.o: GVertex.cpp GVertex.h GEntity.h Range.h SPoint3.h \ SBoundingBox3d.h GPoint.h SPoint2.h GFace.h GEdgeLoop.h GEdge.h \ SVector3.h Pair.h MVertex.h ../Common/Message.h GEdge.o: GEdge.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \ SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h GFace.h \ - GEdgeLoop.h Pair.h GRegion.h MElement.h ../Common/GmshDefines.h \ - MVertex.h MEdge.h MFace.h ../Common/Message.h \ + GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h MElement.h \ + ../Common/GmshDefines.h MVertex.h MEdge.h MFace.h ../Common/Message.h \ ../Numeric/GaussLegendre1D.h GEdgeLoop.o: GEdgeLoop.cpp GEdgeLoop.h GEdge.h GEntity.h Range.h \ SPoint3.h SBoundingBox3d.h GVertex.h GPoint.h SPoint2.h SVector3.h \ ../Common/Message.h GFace.o: GFace.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \ SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h GFace.h \ - GEdgeLoop.h Pair.h GRegion.h MElement.h ../Common/GmshDefines.h \ - MVertex.h MEdge.h MFace.h ../Common/Message.h ../Numeric/Numeric.h \ - ../Numeric/NumericEmbedded.h ../Numeric/GaussLegendre1D.h \ - ../Common/VertexArray.h ../Geo/SVector3.h ../Common/Context.h + GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h MElement.h \ + ../Common/GmshDefines.h MVertex.h MEdge.h MFace.h ../Common/Message.h \ + ../Numeric/Numeric.h ../Numeric/GaussLegendre1D.h \ + ../Common/VertexArray.h ../Geo/SVector3.h ../Common/Context.h \ + ../Common/Context.h GRegion.o: GRegion.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \ SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h GFace.h \ - GEdgeLoop.h Pair.h GRegion.h MElement.h ../Common/GmshDefines.h \ - MVertex.h MEdge.h MFace.h ../Common/Message.h + GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h MElement.h \ + ../Common/GmshDefines.h MVertex.h MEdge.h MFace.h ../Common/Message.h gmshVertex.o: gmshVertex.cpp GFace.h GEntity.h Range.h SPoint3.h \ SBoundingBox3d.h GPoint.h GEdgeLoop.h GEdge.h GVertex.h SPoint2.h \ SVector3.h Pair.h gmshVertex.h Geo.h ../Common/GmshDefines.h \ @@ -105,105 +127,207 @@ gmshVertex.o: gmshVertex.cpp GFace.h GEntity.h Range.h SPoint3.h \ ../Common/SmoothData.h MVertex.h GeoInterpolation.h ../Common/Message.h gmshEdge.o: gmshEdge.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \ SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h GFace.h \ - GEdgeLoop.h Pair.h GRegion.h gmshEdge.h Geo.h ../Common/GmshDefines.h \ - gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ - ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ExtrudeParams.h \ - ../Common/SmoothData.h GeoInterpolation.h ../Common/Message.h \ - ../Common/Context.h + GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h gmshEdge.h Geo.h \ + GeoInterpolation.h ../Common/Message.h ../Common/Context.h gmshFace.o: gmshFace.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \ SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h GFace.h \ - GEdgeLoop.h Pair.h GRegion.h gmshFace.h Geo.h ../Common/GmshDefines.h \ - gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ - ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ExtrudeParams.h \ - ../Common/SmoothData.h GeoInterpolation.h ../Common/Message.h + GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h gmshFace.h Geo.h \ + GeoInterpolation.h ../Numeric/Numeric.h ../Common/Message.h gmshRegion.o: gmshRegion.cpp GModel.h GVertex.h GEntity.h Range.h \ SPoint3.h SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h \ - GFace.h GEdgeLoop.h Pair.h GRegion.h gmshRegion.h Geo.h \ - ../Common/GmshDefines.h gmshSurface.h ../Numeric/Numeric.h \ + GFace.h GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ExtrudeParams.h ../Common/SmoothData.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h gmshRegion.h Geo.h \ ../Common/Message.h gmshSurface.o: gmshSurface.cpp gmshSurface.h Pair.h Range.h SPoint2.h \ SPoint3.h SVector3.h SBoundingBox3d.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h ../Common/Message.h OCCVertex.o: OCCVertex.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \ SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h GFace.h \ - GEdgeLoop.h Pair.h GRegion.h OCCVertex.h OCCIncludes.h MVertex.h \ - OCCEdge.h OCCFace.h + GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h OCCVertex.h OCCIncludes.h \ + MVertex.h OCCEdge.h OCCFace.h OCCEdge.o: OCCEdge.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \ SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h GFace.h \ - GEdgeLoop.h Pair.h GRegion.h ../Common/Message.h OCCEdge.h OCCVertex.h \ - OCCIncludes.h MVertex.h OCCFace.h ../Common/Context.h + GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/Message.h \ + OCCEdge.h OCCVertex.h OCCIncludes.h MVertex.h OCCFace.h \ + ../Common/Context.h OCCFace.o: OCCFace.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \ SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h GFace.h \ - GEdgeLoop.h Pair.h GRegion.h OCCVertex.h OCCIncludes.h MVertex.h \ - OCCEdge.h OCCFace.h ../Common/Message.h ../Numeric/Numeric.h \ - ../Numeric/NumericEmbedded.h ../Common/VertexArray.h ../Geo/SVector3.h \ - ../Common/Context.h + GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h OCCVertex.h OCCIncludes.h \ + MVertex.h OCCEdge.h OCCFace.h ../Common/Message.h ../Numeric/Numeric.h \ + ../Common/VertexArray.h ../Geo/SVector3.h ../Common/Context.h OCCRegion.o: OCCRegion.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \ SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h GFace.h \ - GEdgeLoop.h Pair.h GRegion.h OCCVertex.h OCCIncludes.h MVertex.h \ - OCCEdge.h OCCFace.h OCCRegion.h ../Common/Message.h + GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h OCCVertex.h OCCIncludes.h \ + MVertex.h OCCEdge.h OCCFace.h OCCRegion.h ../Common/Message.h fourierEdge.o: fourierEdge.cpp fourierEdge.h GEdge.h GEntity.h Range.h \ SPoint3.h SBoundingBox3d.h GVertex.h GPoint.h SPoint2.h SVector3.h \ - GModel.h GFace.h GEdgeLoop.h Pair.h GRegion.h fourierVertex.h MVertex.h \ + GModel.h GFace.h GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h \ + ../Geo/Geo.h ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h fourierVertex.h MVertex.h \ ../Common/Context.h fourierFace.o: fourierFace.cpp fourierVertex.h GModel.h GVertex.h \ GEntity.h Range.h SPoint3.h SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h \ - SVector3.h GFace.h GEdgeLoop.h Pair.h GRegion.h MVertex.h fourierFace.h \ + SVector3.h GFace.h GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h \ + ../Geo/Geo.h ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h MVertex.h fourierFace.h \ fourierEdge.h ../Common/Message.h fourierProjectionFace.o: fourierProjectionFace.cpp \ fourierProjectionFace.h GModel.h GVertex.h GEntity.h Range.h SPoint3.h \ SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h GFace.h \ - GEdgeLoop.h Pair.h GRegion.h ../Common/VertexArray.h ../Geo/SVector3.h \ - ../Common/Context.h + GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/VertexArray.h \ + ../Geo/SVector3.h ../Common/Context.h GModel.o: GModel.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \ SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h GFace.h \ - GEdgeLoop.h Pair.h GRegion.h MElement.h ../Common/GmshDefines.h \ - MVertex.h MEdge.h MFace.h ../Common/Message.h gmshSurface.h \ - ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Mesh/Field.h \ - ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ - ../Post/PViewOptions.h ../Post/ColorTable.h ../Geo/Geo.h \ - ../Geo/gmshSurface.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \ - ../Common/SmoothData.h ../Geo/GEdge.h ../Post/OctreePost.h \ - ../Common/Octree.h ../Common/OctreeInternals.h ../Mesh/Generator.h \ - ../Mesh/BackgroundMesh.h ../Common/Context.h + GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h MElement.h \ + ../Common/GmshDefines.h MVertex.h MEdge.h MFace.h ../Common/Message.h \ + gmshSurface.h ../Mesh/Generator.h ../Mesh/BackgroundMesh.h \ + ../Common/Context.h GModelIO_Geo.o: GModelIO_Geo.cpp GModel.h GVertex.h GEntity.h Range.h \ SPoint3.h SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h \ - GFace.h GEdgeLoop.h Pair.h GRegion.h Geo.h ../Common/GmshDefines.h \ - gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ - ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ExtrudeParams.h \ - ../Common/SmoothData.h ../Parser/OpenFile.h ../DataStr/Tools.h \ - ../DataStr/List.h ../DataStr/Tree.h ../Common/Message.h gmshVertex.h \ - MVertex.h gmshFace.h gmshEdge.h gmshRegion.h ../Parser/Parser.h + GFace.h GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h Geo.h ../Parser/OpenFile.h \ + ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \ + ../Numeric/Numeric.h ../Common/Message.h gmshVertex.h MVertex.h \ + gmshFace.h gmshEdge.h gmshRegion.h ../Parser/Parser.h ../DataStr/List.h \ + ../DataStr/Tree.h GModelIO_Mesh.o: GModelIO_Mesh.cpp GModel.h GVertex.h GEntity.h Range.h \ SPoint3.h SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h \ - GFace.h GEdgeLoop.h Pair.h GRegion.h ../Common/GmshDefines.h MElement.h \ - MVertex.h MEdge.h MFace.h discreteRegion.h Geo.h gmshSurface.h \ - ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../DataStr/List.h \ - ../DataStr/Tree.h ../DataStr/avl.h ExtrudeParams.h \ - ../Common/SmoothData.h discreteFace.h discreteEdge.h discreteVertex.h \ - ../Common/StringUtils.h ../Common/Message.h + GFace.h GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/GmshDefines.h \ + MElement.h MVertex.h MEdge.h MFace.h discreteRegion.h Geo.h \ + discreteFace.h discreteEdge.h discreteVertex.h ../Common/StringUtils.h \ + ../Common/Message.h GModelIO_OCC.o: GModelIO_OCC.cpp GModelIO_OCC.h GModel.h GVertex.h \ GEntity.h Range.h SPoint3.h SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h \ - SVector3.h GFace.h GEdgeLoop.h Pair.h GRegion.h OCCIncludes.h \ + SVector3.h GFace.h GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h \ + ../Geo/Geo.h ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h OCCIncludes.h \ ../Common/Message.h ../Common/Context.h OCCVertex.h MVertex.h OCCEdge.h \ OCCFace.h OCCRegion.h GModelIO_Fourier.o: GModelIO_Fourier.cpp GModel.h GVertex.h GEntity.h \ Range.h SPoint3.h SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h \ - SVector3.h GFace.h GEdgeLoop.h Pair.h GRegion.h ../Common/Message.h \ + SVector3.h GFace.h GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h \ + ../Geo/Geo.h ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/Message.h \ fourierVertex.h MVertex.h fourierEdge.h fourierFace.h \ GModelIO_Fourier.h GModelIO_CGNS.o: GModelIO_CGNS.cpp GModel.h GVertex.h GEntity.h Range.h \ SPoint3.h SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h \ - GFace.h GEdgeLoop.h Pair.h GRegion.h ../Common/Message.h MElement.h \ - ../Common/GmshDefines.h MVertex.h MEdge.h MFace.h MNeighbour.h \ - MEdgeHash.h ../Common/Hash.h MFaceHash.h + GFace.h GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/Message.h \ + MElement.h ../Common/GmshDefines.h MVertex.h MEdge.h MFace.h \ + MNeighbour.h MEdgeHash.h ../Common/Hash.h MFaceHash.h GModelIO_MED.o: GModelIO_MED.cpp GModel.h GVertex.h GEntity.h Range.h \ SPoint3.h SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h \ - GFace.h GEdgeLoop.h Pair.h GRegion.h MElement.h ../Common/GmshDefines.h \ - MVertex.h MEdge.h MFace.h ../Common/Message.h + GFace.h GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h MElement.h \ + ../Common/GmshDefines.h MVertex.h MEdge.h MFace.h ../Common/Message.h ExtrudeParams.o: ExtrudeParams.cpp ../Common/Message.h Geo.h \ ../Common/GmshDefines.h gmshSurface.h Pair.h Range.h SPoint2.h \ SPoint3.h SVector3.h SBoundingBox3d.h ../Numeric/Numeric.h \ @@ -213,18 +337,24 @@ Geo.o: Geo.cpp ../Common/Message.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h ../DataStr/Malloc.h ../DataStr/Tools.h \ ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h Geo.h \ ../Common/GmshDefines.h gmshSurface.h Pair.h Range.h SPoint2.h \ - SPoint3.h SVector3.h SBoundingBox3d.h ExtrudeParams.h \ - ../Common/SmoothData.h GModel.h GVertex.h GEntity.h GPoint.h GEdge.h \ - GFace.h GEdgeLoop.h GRegion.h GeoInterpolation.h ../Parser/Parser.h \ - ../Common/Context.h + SPoint3.h SVector3.h SBoundingBox3d.h ../DataStr/List.h \ + ../DataStr/Tree.h ExtrudeParams.h ../Common/SmoothData.h GModel.h \ + GVertex.h GEntity.h GPoint.h GEdge.h GFace.h GEdgeLoop.h GRegion.h \ + ../Mesh/Field.h ../Geo/Geo.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + GeoInterpolation.h ../Parser/Parser.h ../DataStr/List.h \ + ../DataStr/Tree.h ../Common/Context.h GeoStringInterface.o: GeoStringInterface.cpp ../Common/Message.h \ ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../DataStr/Malloc.h \ Geo.h ../Common/GmshDefines.h gmshSurface.h Pair.h Range.h SPoint2.h \ SPoint3.h SVector3.h SBoundingBox3d.h ../DataStr/List.h \ ../DataStr/Tree.h ../DataStr/avl.h ExtrudeParams.h \ ../Common/SmoothData.h GeoStringInterface.h ../Parser/Parser.h \ - ../Parser/OpenFile.h ../Common/Context.h GModel.h GVertex.h GEntity.h \ - GPoint.h GEdge.h GFace.h GEdgeLoop.h GRegion.h + ../DataStr/List.h ../DataStr/Tree.h ../Parser/OpenFile.h \ + ../Common/Context.h GModel.h GVertex.h GEntity.h GPoint.h GEdge.h \ + GFace.h GEdgeLoop.h GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h GeoInterpolation.o: GeoInterpolation.cpp ../Common/Message.h Geo.h \ ../Common/GmshDefines.h gmshSurface.h Pair.h Range.h SPoint2.h \ SPoint3.h SVector3.h SBoundingBox3d.h ../Numeric/Numeric.h \ @@ -233,8 +363,15 @@ GeoInterpolation.o: GeoInterpolation.cpp ../Common/Message.h Geo.h \ GeoInterpolation.h GeoStringInterface.h findLinks.o: findLinks.cpp ../Common/Message.h GModel.h GVertex.h \ GEntity.h Range.h SPoint3.h SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h \ - SVector3.h GFace.h GEdgeLoop.h Pair.h GRegion.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../DataStr/List.h ../DataStr/Tools.h ../DataStr/List.h \ + SVector3.h GFace.h GEdgeLoop.h Pair.h GRegion.h ../Mesh/Field.h \ + ../Geo/Geo.h ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../DataStr/Tree.h \ + ../DataStr/List.h ../DataStr/Tools.h ../DataStr/List.h \ ../DataStr/Tree.h MVertex.o: MVertex.cpp MVertex.h SPoint3.h GEdge.h GEntity.h Range.h \ SBoundingBox3d.h GVertex.h GPoint.h SPoint2.h SVector3.h GFace.h \ diff --git a/Geo/SPoint3.h b/Geo/SPoint3.h index 31821bd0f73167f2dfae4f0e360acff73fd41055..2d05ae76d0bd2253e797baff8eb1fab24904e1d8 100644 --- a/Geo/SPoint3.h +++ b/Geo/SPoint3.h @@ -47,7 +47,7 @@ class SPoint3 { void operator/=(double mult); SPoint3 operator*(double mult); operator double *() { return P; } - double distance(const SPoint3 &p); + double distance(const SPoint3 &p)const; // lexicographic bool operator < (const SPoint3 &p) const { @@ -108,7 +108,7 @@ inline double &SPoint3::operator[](int i) inline double SPoint3::operator[](int i) const { return P[i]; } -inline double SPoint3::distance(const SPoint3 &p) +inline double SPoint3::distance(const SPoint3 &p)const { double x = P[0] - p.P[0], y = P[1] - p.P[1], z = P[2] - p.P[2]; return sqrt(x * x + y * y + z * z); diff --git a/Geo/gmshSurface.cpp b/Geo/gmshSurface.cpp index b42da18673d025904c7d2c32f282e5d979bbaf27..2030499965f92682481378f6b780cb9a502378b7 100644 --- a/Geo/gmshSurface.cpp +++ b/Geo/gmshSurface.cpp @@ -1,4 +1,4 @@ -// $Id: gmshSurface.cpp,v 1.11 2008-02-20 09:20:45 geuzaine Exp $ +// $Id: gmshSurface.cpp,v 1.12 2008-03-18 08:41:21 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -78,8 +78,10 @@ SPoint3 gmshPolarSphere::point(double parA, double parB) const //at the center of the sphere //parA=2rx/(r+z) parB=2ry/(r+z) double rp2 = parA * parA + parB * parB; - double z = r * (4 * r * r - rp2) / (4 * r * r + rp2); - return SPoint3((r + z) * parA / (2 * r), (r + z) * parB / (2 * r), z); + SPoint3 p(2*parA/(1+rp2),2*parB/(1+rp2),(rp2-1)/(rp2+1)); + p*=-r; + p+=o; + return p; } gmshSurface *gmshParametricSurface::NewParametricSurface(int iSurf, char *valX, diff --git a/Geo/gmshSurface.h b/Geo/gmshSurface.h index 20ee94528d5b4c35fd82cb27a722a3e5f4edb8b8..2e58b4704a5ada7e7376b1e772a408b1c2aa7807 100644 --- a/Geo/gmshSurface.h +++ b/Geo/gmshSurface.h @@ -105,8 +105,9 @@ public: }; class gmshPolarSphere : public gmshSurface { - double xc, yc, zc, r; - gmshPolarSphere(double _x, double _y, double _z, double _r) : xc(_x), yc(_y), zc(_z), r(_r){} + double r; + SPoint3 o; + gmshPolarSphere(double x, double y, double z, double _r) : o(x,y,z), r(_r){} public: static gmshSurface *NewPolarSphere(int _iSphere, double _x, double _y, double _z, double _r); virtual Range<double> parBounds(int i) const @@ -127,8 +128,7 @@ public: virtual SVector3 normal(const SPoint2 ¶m) const { SPoint3 p1 = gmshSurface::point(param); - SPoint3 p2(xc, yc, zc); - SVector3 n(p1, p2); + SVector3 n(p1, o); n.normalize(); return n; } diff --git a/Graphics/Makefile b/Graphics/Makefile index a145e5d4b31bd3878274bdbb2f7623ac2eef9348..66567c1412783c98cf0ef0b276b8d1ad4b7383be 100644 --- a/Graphics/Makefile +++ b/Graphics/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.143 2008-03-11 22:30:31 geuzaine Exp $ +# $Id: Makefile,v 1.144 2008-03-18 08:41:21 remacle Exp $ # # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle # @@ -74,55 +74,59 @@ Draw.o: Draw.cpp ../Common/GmshUI.h ../Common/GmshDefines.h \ ../Common/Message.h Draw.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Common/Context.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \ - ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Post/PView.h ../Post/PViewData.h ../Post/PViewOptions.h \ - ../Post/ColorTable.h + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../DataStr/List.h \ + ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \ + ../Common/SmoothData.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + ../Post/PView.h Mesh.o: Mesh.cpp ../Common/Message.h ../Common/GmshUI.h ../Geo/GModel.h \ ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h Draw.h \ - ../Common/Context.h ../Common/OS.h gl2ps.h ../Common/VertexArray.h \ + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/PView.h \ + ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h \ + ../Post/ColorTable.h ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h \ + ../Geo/MFace.h Draw.h ../Geo/SBoundingBox3d.h ../Common/Context.h \ + ../Common/OS.h gl2ps.h ../Common/VertexArray.h ../Geo/SVector3.h \ ../Common/Context.h ../Common/SmoothData.h Geom.o: Geom.cpp ../Common/GmshUI.h Draw.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Common/Context.h gl2ps.h ../Common/VertexArray.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Common/Context.h ../Geo/GModel.h \ - ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ - ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \ - ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h \ - ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h \ - ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h + ../Geo/SVector3.h ../Common/Context.h ../Geo/GModel.h ../Geo/GVertex.h \ + ../Geo/GEntity.h ../Geo/Range.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \ + ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/SVector3.h ../Geo/GFace.h \ + ../Geo/GEdgeLoop.h ../Geo/Pair.h ../Geo/GRegion.h ../Mesh/Field.h \ + ../Geo/Geo.h ../Common/GmshDefines.h ../Geo/gmshSurface.h \ + ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../DataStr/List.h \ + ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \ + ../Common/SmoothData.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h Post.o: Post.cpp ../Common/Message.h ../Common/GmshUI.h \ ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h Draw.h \ ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h Iso.h ../Post/PView.h \ - ../Post/PViewData.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Common/VertexArray.h ../Geo/SVector3.h ../Geo/SPoint3.h \ - ../Common/Context.h ../Common/SmoothData.h gl2ps.h + ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h \ + ../Post/ColorTable.h ../Common/VertexArray.h ../Geo/SVector3.h \ + ../Common/Context.h ../Common/SmoothData.h ../Common/Context.h gl2ps.h SelectBuffer.o: SelectBuffer.cpp ../Common/Message.h ../Common/GmshUI.h \ ../Common/GmshDefines.h ../Geo/GModel.h ../Geo/GVertex.h \ ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/MElement.h ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h \ - ../Geo/MVertex.h ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h \ - ../Geo/SVector3.h Draw.h ../Common/Context.h SelectBuffer.h \ - ../Common/VertexArray.h ../Common/Context.h + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/PView.h \ + ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h \ + ../Post/ColorTable.h ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h \ + ../Geo/MFace.h Draw.h ../Geo/SBoundingBox3d.h ../Common/Context.h \ + SelectBuffer.h ../Geo/GVertex.h ../Geo/GEdge.h ../Geo/GFace.h \ + ../Geo/GRegion.h ../Common/VertexArray.h ../Geo/SVector3.h \ + ../Common/Context.h Iso.o: Iso.cpp ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h Entity.o: Entity.cpp ../Common/GmshUI.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h Draw.h ../Geo/SBoundingBox3d.h \ @@ -130,15 +134,17 @@ Entity.o: Entity.cpp ../Common/GmshUI.h ../Numeric/Numeric.h \ ReadImg.o: ReadImg.cpp ReadImg.h ../Common/Message.h ../Common/GmshUI.h \ ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../DataStr/List.h ../Common/GmshMatrix.h + ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Common/GmshMatrix.h Scale.o: Scale.cpp ../Common/GmshUI.h Draw.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Post/PView.h ../Post/PViewData.h \ - ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/Context.h gl2ps.h + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + ../Common/Context.h gl2ps.h Graph2D.o: Graph2D.cpp ../Common/GmshUI.h Draw.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Post/PView.h ../Post/PViewData.h \ - ../Post/PViewOptions.h ../Post/ColorTable.h gl2ps.h ../Common/Context.h \ - ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + gl2ps.h ../Common/Context.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h gl2ps.o: gl2ps.cpp gl2ps.h gl2gif.o: gl2gif.cpp gl2gif.h PixelBuffer.h ../Common/GmshUI.h \ ../Common/Message.h ../DataStr/Malloc.h Draw.h ../Geo/SBoundingBox3d.h \ diff --git a/Mesh/BackgroundMesh.cpp b/Mesh/BackgroundMesh.cpp index 28dc03b1a7f0b27b18a3ad78606bcf3f4cc0cd41..2256a59972291d359bab2d8f6838ec59e1dd730b 100644 --- a/Mesh/BackgroundMesh.cpp +++ b/Mesh/BackgroundMesh.cpp @@ -1,4 +1,4 @@ -// $Id: BackgroundMesh.cpp,v 1.39 2008-03-12 08:36:48 remacle Exp $ +// $Id: BackgroundMesh.cpp,v 1.40 2008-03-18 08:41:21 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -30,23 +30,17 @@ #include "Field.h" extern Context_T CTX; -MinField lc_field; #define MAX_LC 1.e22 bool BGMExists() { - return !lc_field.empty(); -} - -void BGMAddField(Field *field) -{ - lc_field.push_front(field); + FieldManager &fields=GModel::current()->fields; + return (fields.background_field>0); } void BGMReset() { - lc_field.clear(); } // computes the characteristic length of the mesh at a vertex in order @@ -172,10 +166,14 @@ double BGM_MeshSize(GEntity *ge, double U, double V, double X, double Y, double double l1 = MAX_LC; double l2 = MAX_LC; double l3 = CTX.lc; - double l4 = lc_field.empty() ? MAX_LC : lc_field(X, Y, Z); - - + double l4 = MAX_LC; double lc; + FieldManager &fields=GModel::current()->fields; + if(fields.background_field>0){ + Field *f=fields.get(fields.background_field); + if(f) l4=(*f)(X,Y,Z); + } + if(l4 < MAX_LC && !CTX.mesh.constrained_bgmesh){ // use the fields unconstrained by other characteristic lengths lc = l4 * CTX.mesh.lc_factor; @@ -205,7 +203,7 @@ double BGM_MeshSize(GEntity *ge, double U, double V, double X, double Y, double // we do it also if CTX.mesh.constrained_bgmesh is true; bool Extend1dMeshIn2dSurfaces() { - if(lc_field.empty()) return true; + //if(lc_field.empty()) return true; if(CTX.mesh.constrained_bgmesh) return true; return false; } diff --git a/Mesh/Field.cpp b/Mesh/Field.cpp index 2c2a1e7058d0f76ce6bcf188941fbb3ba2e77f7a..894f944a2f75181dffa32b4d913717dcc0115820 100644 --- a/Mesh/Field.cpp +++ b/Mesh/Field.cpp @@ -1,4 +1,4 @@ -// $Id: Field.cpp,v 1.15 2008-02-22 07:49:39 geuzaine Exp $ +// $Id: Field.cpp,v 1.16 2008-03-18 08:41:21 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -19,410 +19,682 @@ // // Please report all bugs and problems to <gmsh@geuz.org>. -#include <fstream> -#include <string.h> +#include <list> #include <math.h> -#include "GModel.h" -#include "MVertex.h" -#include "Message.h" -#include "Field.h" -#include "Context.h" -#include "GeoInterpolation.h" -#include "BackgroundMesh.h" +#include <fstream> +#include <string> +#include <sstream> + #ifdef HAVE_MATH_EVAL #include "matheval.h" #endif +#ifdef HAVE_ANN +#include "ANN/ANN.h" +#endif + +#include "Context.h" +#include "Field.h" +#include "GeoInterpolation.h" +#include "GModel.h" +#include "Message.h" +#include "OctreePost.h" +#include "PViewDataList.h" #define MAX_LC 1.e22 extern Context_T CTX; -FieldManager fields; + +class FieldOptionDouble:public FieldOption{ + public: + double &val; + FieldOptionType get_type(){return FIELD_OPTION_DOUBLE;}; + FieldOptionDouble(double &_val,bool *_status=NULL):FieldOption(_status),val(_val){}; + double numerical_value()const { return val;}; + void numerical_value(double v){modified(); val=v;}; + void get_text_representation(std::string &v_str){ + std::ostringstream sstream; + sstream.precision(16); + sstream<<val; + v_str=sstream.str(); + } +}; + +class FieldOptionInt:public FieldOption{ + public: + int &val; + FieldOptionType get_type(){return FIELD_OPTION_INT;}; + FieldOptionInt(int &_val, bool *_status=NULL):FieldOption(_status),val(_val){}; + double numerical_value()const{ return val;}; + void numerical_value(double v){modified(); val=v;}; + void get_text_representation(std::string &v_str){ + std::ostringstream sstream; + sstream<<val; + v_str=sstream.str(); + } +}; +class FieldOptionList:public FieldOption{ + public: + std::list<int> &val; + FieldOptionType get_type(){return FIELD_OPTION_LIST;}; + FieldOptionList(std::list<int> &_val, bool *_status=NULL):FieldOption(_status),val(_val){}; + std::list<int> &list(){modified(); return val; } + const std::list<int> &list()const { return val; } + void get_text_representation(std::string &v_str){ + std::ostringstream sstream; + sstream<<"{"; + for(std::list<int>::iterator it=val.begin();it!=val.end();it++){ + if(it!=val.begin()) + sstream<<", "; + sstream<<*it; + } + sstream<<"}"; + v_str=sstream.str(); + } +}; +class FieldOptionString:public FieldOption{ + public: + std::string &val; + virtual FieldOptionType get_type(){return FIELD_OPTION_STRING;}; + FieldOptionString(std::string &_val, bool *_status=NULL):FieldOption(_status),val(_val){}; + std::string &string(){modified(); return val; } + const std::string &string()const {return val; } + void get_text_representation(std::string &v_str){ + std::ostringstream sstream; + sstream<<"\""<<val<<"\""; + v_str=sstream.str(); + } +}; +class FieldOptionBool:public FieldOption{ + public: + bool &val; + FieldOptionType get_type(){return FIELD_OPTION_BOOL;}; + FieldOptionBool(bool &_val, bool *_status=NULL):FieldOption(_status),val(_val){}; + double numerical_value()const { return val;}; + void numerical_value(double v){modified(); val=v;}; + void get_text_representation(std::string &v_str){ + std::ostringstream sstream; + sstream<<val; + v_str=sstream.str(); + } +}; +class FieldOptionPath:public FieldOptionString{ + public: + FieldOptionType get_type(){return FIELD_OPTION_PATH;}; +}; void FieldManager::reset() { - for(std::map<int,Field*>::iterator it = id_map.begin(); it != id_map.end(); it++){ + for(std::map<int,Field*>::iterator it = begin(); it != end(); it++){ delete it->second; } - id_map.clear(); + clear(); } Field *FieldManager::get(int id) { - std::map<int,Field*>::iterator it = id_map.find(id); - if(it == id_map.end()){ - Msg(GERROR, "Field id %i does not exist", id); + iterator it = find(id); + if(it == end()){ return NULL; } return it->second; } -int FieldManager::insert(Field *field, int id) -{ - if(id == -1){ // get an automatic negative id starting from -1 - if(id_map.begin() != id_map.end()){ - id = id_map.begin()->first - 1; - } - } - if(id > 0){ - if(id_map.find(id) != id_map.end()){ - Msg(GERROR, "Field id %i is already defined, it will be deleted"); - delete id_map[id]; - } - id_map[id] = field; - } - return id; +Field *FieldManager::new_field(int id, const char *type_name) +{ + if(find(id) != end()){ + Msg(GERROR, "Field id %i is already defined.",id); + return NULL; + } + if(map_type_name.find(type_name) == map_type_name.end()){ + Msg(GERROR, "Unknown field type \"%s\".",type_name); + return NULL; + } + Field *f=(*map_type_name[type_name])(); + if(!f) + return NULL; + f->id=id; + (*this)[id]=f; + return f; +} + +int FieldManager::new_id(){ + int i=0; + iterator it=begin(); + while(1){ + i++; + while(it!=end() && it->first<i)it++; + if(it==end() || it->first!=i)break; + } + return std::max(i,1); +} +int FieldManager::max_id(){ + if(!empty()) + return rbegin()->first; + else return 0; +} +void FieldManager::delete_field(int id){ + iterator it=find(id); + if(it==end()){ + Msg(GERROR, "Cannot delete field id %i, it does not exist.",id); + return; + } + delete it->second; + erase(it); } // StructuredField -StructuredField::StructuredField(const char *filename) -{ - std::ifstream input(filename); - input.read((char*)o, 3 * sizeof(double)); - input.read((char*)d, 3 * sizeof(double)); - input.read((char*)n, 3 * sizeof(int)); - int nt = n[0] * n[1] * n[2]; - data = new double[nt]; - input.read((char*)data, nt * sizeof(double)); - input.close(); -} - -StructuredField::~StructuredField() -{ - delete []data; -} - -double StructuredField::operator()(double x,double y,double z) -{ - //tri-linear - int id[2][3]; - double xi[3]; - double xyz[3]={x,y,z}; - for(int i = 0; i < 3; i++){ - id[0][i] = (int)floor((xyz[i] - o[i]) / d[i]); - id[1][i] = id[0][i] + 1; - id[0][i] = std::max(std::min(id[0][i], n[i] - 1), 0); - id[1][i] = std::max(std::min(id[1][i], n[i] - 1), 0); - xi[i] = xyz[i] - (o[i] + id[0][i] * d[i]); - xi[i] = std::max(std::min(xi[i], 1.), 0.); - } - double v = 0; - for(int i = 0; i < 2; i++) - for(int j = 0;j < 2; j++) - for(int k = 0; k < 2; k++){ - v += data[id[i][0] * n[1] * n[2] + id[j][1] * n[2] + id[j][2]] - * (i * xi[0] + (1 - i) * (1 - xi[0])) - * (j * xi[1] + (1 - j) * (1 - xi[1])) - * (k * xi[2] + (1 - k) * (1 - xi[2])); - } - return v; -} - -// LatLonField -double LatLonField::operator()(double x, double y, double z) -{ - return (*field)(asin(z / sqrt(x * x + y * y + z * z)), atan2(y, x), 0); -} - -// ThresholdField -ThresholdField::ThresholdField(Field *_field, - double _dmin, double _dmax, double _lcmin, double _lcmax) - : field(_field), dmin(_dmin), dmax(_dmax), lcmin(_lcmin), lcmax(_lcmax) -{ -} - -double ThresholdField::operator()(double x, double y, double z) -{ - double r = ((*field)(x, y, z) - dmin) / (dmax - dmin); - r = std::max(std::min(r, 1.), 0.); - double lc = lcmin * (1 - r) + lcmax * r; - return lc; -} - -//GradField -GradField::GradField(Field *_field, int _kind, double _delta) - : field(_field), kind(_kind), delta(_delta) -{ - if(delta < 0) delta = CTX.lc / 10000; -} - -double GradField::operator()(double x, double y, double z) -{ - double gx, gy, gz; - switch(kind){ - case 0 : /* x */ - return ((*field)(x + delta / 2, y, z) - (*field)(x - delta / 2, y, z)) / delta; - case 1 : /* y */ - return ((*field)(x, y + delta / 2, z) - (*field)(x, y - delta / 2, z)) / delta; - case 2 : /* z */ - return ((*field)(x, y, z + delta / 2) - (*field)(x, y, z - delta / 2)) / delta; - case 3 : /* max */ - gx = ((*field)(x + delta / 2, y, z) - (*field)(x - delta / 2, y, z)) / delta; - gy = ((*field)(x, y + delta / 2, z) - (*field)(x, y - delta / 2, z)) / delta; - gz = ((*field)(x, y, z + delta / 2) - (*field)(x, y, z - delta / 2)) / delta; - return sqrt(gx * gx + gy * gy + gz * gz); - default : - Msg(GERROR, "Unknown kind (%i) for GradField", kind); - return 0; - } -} - -// ParametricField -ParametricField::ParametricField(Field *_field, - const char *strX, const char *strY, const char *strZ) - : field(_field) -{ - char *sx = strdup(strX), *sy = strdup(strY), *sz = strdup(strZ); -#if !defined(HAVE_MATH_EVAL) - Msg(GERROR, "MathEval is not compiled in this version of Gmsh"); -#else - evalX = evaluator_create(sx); - evalY = evaluator_create(sy); - evalZ = evaluator_create(sz); -#endif -} - -ParametricField::~ParametricField() -{ -#if !defined(HAVE_MATH_EVAL) - Msg(GERROR, "MathEval is not compiled in this version of Gmsh"); -#else - evaluator_destroy(evalX); - evaluator_destroy(evalY); - evaluator_destroy(evalZ); -#endif -} - -double ParametricField::operator()(double x, double y, double z) -{ -#if !defined(HAVE_MATH_EVAL) - Msg(GERROR, "MathEval is not compiled in this version of Gmsh"); - return 0.; -#else - static char *names[3] = {"x", "y", "z"}; - double values [3] = {x, y, z}; - const double nx = evaluator_evaluate(evalX, 3, names, values); - const double ny = evaluator_evaluate(evalY, 3, names, values); - const double nz = evaluator_evaluate(evalZ, 3, names, values); - return (*field)(nx, ny, nz); -#endif -} - -// FunctionField -FunctionField::FunctionField(std::list<Field*> *_list, const char *str) - : list(_list) -{ -#if !defined(HAVE_MATH_EVAL) - Msg(GERROR, "MathEval is not compiled in this version of Gmsh"); -#else - char *s = strdup(str); - eval = evaluator_create(s); - values = new double[3 + list->size()]; - names = new char*[3 + list->size()]; - names[0] = strdup("x"); - names[1] = strdup("y"); - names[2] = strdup("z"); - int p = 3; - for(std::list<Field*>::iterator it = list->begin(); it != list->end(); it++){ - char tmp[256] ; - sprintf(tmp, "f%i", p - 3); - names[p] = strdup(tmp); - p++; - } -#endif -} - -double FunctionField::operator()(double x, double y, double z) -{ -#if !defined(HAVE_MATH_EVAL) - Msg(GERROR, "MathEval is not compiled in this version of Gmsh"); - return 0.; -#else - values[0] = x; - values[1] = y; - values[2] = z; - int p = 3; - for(std::list<Field*>::iterator it = list->begin(); it != list->end(); it++){ - values[p]=(**it)(x, y ,z); - p++; - } - return evaluator_evaluate(eval, p, names, values); +class StructuredField : public Field{ + double o[3], d[3]; + int n[3]; + double *data; + bool error_status; + std::string file_name; +public : + StructuredField(){ + options["FileName"]=new FieldOptionString(file_name,&update_needed); + } + const char *get_name(){ + return "Structured"; + } + virtual ~StructuredField(){ + if(data) delete []data; + } + double operator()(double x, double y, double z){ + if(update_needed){ + error_status=false; + try{ + std::ifstream input(file_name.c_str()); + if(!input.is_open())throw(1); + input.exceptions ( std::ifstream::eofbit | std::ifstream::failbit | std::ifstream::badbit ); + input.read((char*)o, 3 * sizeof(double)); + input.read((char*)d, 3 * sizeof(double)); + input.read((char*)n, 3 * sizeof(int)); + int nt = n[0] * n[1] * n[2]; + if(data) delete []data; + data = new double[nt]; + input.read((char*)data, nt * sizeof(double)); + input.close(); + } + catch(...){ + error_status=true; + Msg(GERROR,"Field %i : error reading file %s",this->id,file_name.c_str()); + } + update_needed=false; + } + if(error_status)return MAX_LC; + //tri-linear + int id[2][3]; + double xi[3]; + double xyz[3]={x,y,z}; + for(int i = 0; i < 3; i++){ + id[0][i] = (int)floor((xyz[i] - o[i]) / d[i]); + id[1][i] = id[0][i] + 1; + id[0][i] = std::max(std::min(id[0][i], n[i] - 1), 0); + id[1][i] = std::max(std::min(id[1][i], n[i] - 1), 0); + xi[i] = xyz[i] - (o[i] + id[0][i] * d[i]); + xi[i] = std::max(std::min(xi[i], 1.), 0.); + } + double v = 0; + for(int i = 0; i < 2; i++) + for(int j = 0;j < 2; j++) + for(int k = 0; k < 2; k++){ + v += data[id[i][0] * n[1] * n[2] + id[j][1] * n[2] + id[k][2]] + * (i * xi[0] + (1 - i) * (1 - xi[0])) + * (j * xi[1] + (1 - j) * (1 - xi[1])) + * (k * xi[2] + (1 - k) * (1 - xi[2])); + } + return v; + } + FieldDialogBox *&dialog_box(){ + static FieldDialogBox *dialogBox=NULL; + return dialogBox; + } +}; + +class LonLatField : public Field{ + int field_id; +public: + LonLatField(){ + field_id=1; + options["IField"]=new FieldOptionInt(field_id); + } + const char *get_name(){return "LonLat";} + double operator()(double x, double y, double z){ + return (*GModel::current()->fields.get(field_id))(atan2(x,y),asin(z / sqrt(x * x + y * y + z * z)), 0); + } + FieldDialogBox *&dialog_box(){ + static FieldDialogBox *dialogBox=NULL; + return dialogBox; + } +}; + +class BoxField : public Field{ + double v_in,v_out,x_min,x_max,y_min,y_max,z_min,z_max; + public: + BoxField(){ + v_in=v_out=x_min=x_max=y_min=y_max=z_min=z_max=0; + options["VIn"]=new FieldOptionDouble(v_in); + options["VOut"]=new FieldOptionDouble(v_out); + options["XMin"]=new FieldOptionDouble(x_min); + options["XMax"]=new FieldOptionDouble(x_max); + options["YMin"]=new FieldOptionDouble(y_min); + options["YMax"]=new FieldOptionDouble(y_max); + options["ZMin"]=new FieldOptionDouble(z_min); + options["ZMax"]=new FieldOptionDouble(z_max); + } + const char *get_name(){return "Box";} + FieldDialogBox *&dialog_box(){ + static FieldDialogBox *dialogBox=NULL; + return dialogBox; + } + double operator()(double x, double y, double z){ + return (x<=x_max && x>=x_min && y<=y_max && y>=y_min && z<=z_max && z>=z_min) ? + v_in : v_out; + } +}; + + +class ThresholdField : public Field{ + int iField; + double dmin, dmax, lcmin, lcmax; + public: + const char *get_name(){ + return "Threshold"; + } + ThresholdField(){ + iField=0; + dmin=1; + dmax=10; + lcmin=0.1; + lcmax=1; + options["IField"]=new FieldOptionInt(iField); + options["DistMin"]=new FieldOptionDouble(dmin); + options["DistMax"]=new FieldOptionDouble(dmax); + options["LcMin"]=new FieldOptionDouble(lcmin); + options["LcMax"]=new FieldOptionDouble(lcmax); + } + double operator()(double x, double y, double z){ + Field *field=GModel::current()->fields.get(iField); + double r = ((*field)(x, y, z) - dmin) / (dmax - dmin); + r = std::max(std::min(r, 1.), 0.); + double lc = lcmin * (1 - r) + lcmax * r; + return lc; + } + FieldDialogBox *&dialog_box(){ + static FieldDialogBox *dialogBox=NULL; + return dialogBox; + } +}; + + +class GradientField : public Field{ + int iField,kind; + double delta; + public: + const char *get_name(){ + return "Gradient"; + } + GradientField():iField(0),kind(3),delta(CTX.lc/1e4){ + options["IField"]=new FieldOptionInt(iField); + options["Kind"]=new FieldOptionInt(kind); + options["Delta"]=new FieldOptionDouble(delta); + } + double operator()(double x, double y, double z){ + Field *field=GModel::current()->fields.get(iField); + double gx, gy, gz; + switch(kind){ + case 0 : /* x */ + return ((*field)(x + delta / 2, y, z) - (*field)(x - delta / 2, y, z)) / delta; + case 1 : /* y */ + return ((*field)(x, y + delta / 2, z) - (*field)(x, y - delta / 2, z)) / delta; + case 2 : /* z */ + return ((*field)(x, y, z + delta / 2) - (*field)(x, y, z - delta / 2)) / delta; + case 3 : /* norm */ + gx = ((*field)(x + delta / 2, y, z) - (*field)(x - delta / 2, y, z)) / delta; + gy = ((*field)(x, y + delta / 2, z) - (*field)(x, y - delta / 2, z)) / delta; + gz = ((*field)(x, y, z + delta / 2) - (*field)(x, y, z - delta / 2)) / delta; + return sqrt(gx * gx + gy * gy + gz * gz); + default : + Msg(GERROR, "Field %i : Unknown kind (%i) of gradient.",this->id, kind); + return MAX_LC; + } + } + FieldDialogBox *&dialog_box(){ + static FieldDialogBox *dialogBox=NULL; + return dialogBox; + } +}; + +#if defined(HAVE_MATH_EVAL) +class MathEvalExpression{ + bool error_status; + std::list<Field*> *list; + int nvalues; + char **names; + double *values; + void *eval; + int *evaluators_id; + std::string function; + char *c_str_function; + public: + double evaluate(double x,double y, double z){ + if(error_status) return MAX_LC; + for(int i=0;i<nvalues;i++){ + Field *f; + switch (evaluators_id[i]){ + case -1: values[i]=x; break; + case -2: values[i]=y; break; + case -3: values[i]=z; break; + default: { + f=GModel::current()->fields.get(evaluators_id[i]); + values[i] = f ? (*f)(x,y,z) : MAX_LC; + } + } + } + return evaluator_evaluate(eval, nvalues, names, values); + } + MathEvalExpression(){ + eval=NULL; + values=NULL; + c_str_function=NULL; + evaluators_id=NULL; + } + bool set_function(const std::string &f){ + free_members(); + error_status=false; + c_str_function=strdup(f.c_str()); + eval = evaluator_create(c_str_function); + if(!eval){ + error_status=true; + return false; + } + evaluator_get_variables(eval,&names,&nvalues); + values = new double[nvalues]; + evaluators_id=new int[nvalues]; + for(int i=0;i<nvalues;i++){ + int id; + if(!strcmp("x",names[i])) evaluators_id[i]=-1; + else if(!strcmp("y",names[i])) evaluators_id[i]=-2; + else if(!strcmp("z",names[i])) evaluators_id[i]=-3; + else if(sscanf(names[i],"F%i",&id)==1) evaluators_id[i]=id; + else{ + Msg(GERROR, "Unknown matheval argument \"%s\"\n",names[i]); + error_status=true; + return false; + } + } + return true; + } + void free_members(){ + if(c_str_function)free(c_str_function); + if(eval) evaluator_destroy(eval); + if(values)delete[]values; + if(evaluators_id) delete evaluators_id; + } + ~MathEvalExpression(){ + free_members(); + } +}; + +class MathEvalField : public Field{ + MathEvalExpression expr; + std::string f; + public: + MathEvalField(){ + options["F"]=new FieldOptionString(f,&update_needed); + } + double operator()(double x, double y, double z){ + if(update_needed){ + if(!expr.set_function(f)) + Msg(GERROR, "Field %i : Invalid matheval expression \"%s\"\n",this->id,f.c_str()); + update_needed=false; + } + return expr.evaluate(x,y,z); + } + FieldDialogBox *&dialog_box(){ + static FieldDialogBox *dialogBox=NULL; + return dialogBox; + } + const char *get_name(){return "MathEval";} +}; +class ParametricField : public Field{ + MathEvalExpression expr[3]; + std::string f[3]; + int ifield; + public: + ParametricField(){ + options["IField"] = new FieldOptionInt(ifield); + options["FX"]=new FieldOptionString(f[0],&update_needed); + options["FY"]=new FieldOptionString(f[1],&update_needed); + options["FZ"]=new FieldOptionString(f[2],&update_needed); + } + double operator()(double x, double y, double z){ + if(update_needed){ + for(int i=0;i<3;i++){ + if(!expr[i].set_function(f[i])) + Msg(GERROR, "Field %i : Invalid matheval expression \"%s\"\n",this->id,f[i].c_str()); + } + update_needed=false; + } + return (*GModel::current()->fields.get(ifield))(expr[0].evaluate(x,y,z),expr[1].evaluate(x,y,z),expr[2].evaluate(x,y,z)); + } + FieldDialogBox *&dialog_box(){ + static FieldDialogBox *dialogBox=NULL; + return dialogBox; + } + const char *get_name(){return "Param";} +}; #endif -} - -FunctionField::~FunctionField() -{ -#if !defined(HAVE_MATH_EVAL) - Msg(GERROR, "MathEval is not compiled in this version of Gmsh"); -#else - int n = 3 + list->size(); - for(int i = 0; i < n; i++){ - free(names[i]); - } - delete [] names; - delete [] values; - delete list; - evaluator_destroy(eval); -#endif -} - -// PostViewField -double PostViewField::operator()(double x, double y, double z) -{ - // FIXME: should test unique view num instead, but that would be slower - if(view_index < 0 || view_index >= (int)PView::list.size()) return MAX_LC; - - double l = 0.; - if(!octree->searchScalar(x, y, z, &l, 0)){ - // uncomment the following to try really hard to find an element - // around the point - /* - double fact[9] = {0.001, 0.0025, 0.005, 0.0075, 0.01, 0.025, 0.05, 0.075, 0.1}; - for(int i = 0; i < 9; i++){ - double eps = CTX.lc * fact[i]; - if(octree->searchScalar(x + eps, y, z, &l, 0)) break; - if(octree->searchScalar(x - eps, y, z, &l, 0)) break; - if(octree->searchScalar(x, y + eps, z, &l, 0)) break; - if(octree->searchScalar(x, y - eps, z, &l, 0)) break; - if(octree->searchScalar(x, y, z + eps, &l, 0)) break; - if(octree->searchScalar(x, y, z - eps, &l, 0)) break; - if(octree->searchScalar(x + eps, y - eps, z - eps, &l, 0)) break; - if(octree->searchScalar(x + eps, y + eps, z - eps, &l, 0)) break; - if(octree->searchScalar(x - eps, y - eps, z - eps, &l, 0)) break; - if(octree->searchScalar(x - eps, y + eps, z - eps, &l, 0)) break; - if(octree->searchScalar(x + eps, y - eps, z + eps, &l, 0)) break; - if(octree->searchScalar(x + eps, y + eps, z + eps, &l, 0)) break; - if(octree->searchScalar(x - eps, y - eps, z + eps, &l, 0)) break; - if(octree->searchScalar(x - eps, y + eps, z + eps, &l, 0)) break; - } - */ - } - if(l <= 0) return MAX_LC; - return l; -} - -PostViewField::PostViewField(PView *view) -{ - Msg(INFO, "Field from '%s'", view->getData()->getName().c_str()); - octree = new OctreePost(view); - view_index = view->getIndex(); -} - -PostViewField::~PostViewField() -{ - delete octree; -} - -// Min Field -double MinField::operator()(double x, double y, double z) -{ - if(size() == 0){ - Msg(GERROR, "Requesting minimum of a void list of field"); - return 0; - } - iterator it = begin(); - double v = (**it++)(x, y, z); - while(it != end()){ - v = std::min(v, (**it++)(x, y, z)); - } - return v; -} - -// Attractor Field -#define maxpts 1 -void AttractorField::addPoint(double X, double Y, double Z) -{ - attractorPoints.push_back(SPoint3(X, Y, Z)); -} - -AttractorField::~AttractorField() -{ -#ifdef HAVE_ANN - if(kdtree) delete kdtree; - if(zeronodes) annDeallocPts(zeronodes); - delete [] index; - delete [] dist; -#endif -} - -AttractorField::AttractorField() -#ifdef HAVE_ANN - : kdtree (0), zeronodes(0) -#endif -{ -#ifdef HAVE_ANN - index = new ANNidx[maxpts]; - dist = new ANNdist[maxpts]; -#endif -} -void AttractorField::buildFastSearchStructures() -{ +class PostViewField:public Field{ + int view_index; + OctreePost *octree; + public : + double operator()(double x, double y, double z) { + // FIXME: should test unique view num instead, but that would be slower + if(view_index < 0 || view_index >= (int)PView::list.size()) return MAX_LC; + if(update_needed){ + if(octree)delete octree; + octree = new OctreePost(PView::list[view_index]); + update_needed=false; + } + double l = 0.; + if(!octree->searchScalar(x, y, z, &l, 0)){ + // uncomment the following to try really hard to find an element + // around the point + /* + double fact[9] = {0.001, 0.0025, 0.005, 0.0075, 0.01, 0.025, 0.05, 0.075, 0.1}; + for(int i = 0; i < 9; i++){ + double eps = CTX.lc * fact[i]; + if(octree->searchScalar(x + eps, y, z, &l, 0)) break; + if(octree->searchScalar(x - eps, y, z, &l, 0)) break; + if(octree->searchScalar(x, y + eps, z, &l, 0)) break; + if(octree->searchScalar(x, y - eps, z, &l, 0)) break; + if(octree->searchScalar(x, y, z + eps, &l, 0)) break; + if(octree->searchScalar(x, y, z - eps, &l, 0)) break; + if(octree->searchScalar(x + eps, y - eps, z - eps, &l, 0)) break; + if(octree->searchScalar(x + eps, y + eps, z - eps, &l, 0)) break; + if(octree->searchScalar(x - eps, y - eps, z - eps, &l, 0)) break; + if(octree->searchScalar(x - eps, y + eps, z - eps, &l, 0)) break; + if(octree->searchScalar(x + eps, y - eps, z + eps, &l, 0)) break; + if(octree->searchScalar(x + eps, y + eps, z + eps, &l, 0)) break; + if(octree->searchScalar(x - eps, y - eps, z + eps, &l, 0)) break; + if(octree->searchScalar(x - eps, y + eps, z + eps, &l, 0)) break; + } + */ + } + //if(l <= 0) return MAX_LC; + return l; + } + const char *get_name(){ return "PostView"; } + PostViewField() { + octree=NULL; + options["IView"]=new FieldOptionInt(view_index,&update_needed); + } + ~PostViewField(){ + if(octree) delete octree; + } + FieldDialogBox *&dialog_box(){ + static FieldDialogBox *dialogBox=NULL; + return dialogBox; + } +}; + +class MinField : public Field{ + std::list<int> idlist; + public: + MinField(){ + options["FieldsList"]=new FieldOptionList(idlist,&update_needed); + } + double operator()(double x, double y, double z){ + double v=MAX_LC; + for(std::list<int>::iterator it=idlist.begin();it!=idlist.end();it++){ + Field *f=(GModel::current()->fields.get(*it)); + if(f) + v=std::min(v,(*f)(x,y,z)); + } + return v; + } + FieldDialogBox *&dialog_box(){ + static FieldDialogBox *dialogBox=NULL; + return dialogBox; + } + const char *get_name(){return "Min";} +}; + +class MaxField : public Field{ + std::list<int> idlist; + public: + MaxField(){ + options["FieldsList"]=new FieldOptionList(idlist,&update_needed); + } + double operator()(double x, double y, double z){ + double v=-MAX_LC; + for(std::list<int>::iterator it=idlist.begin();it!=idlist.end();it++){ + Field *f=(GModel::current()->fields.get(*it)); + if(f) + v=std::max(v,(*f)(x,y,z)); + } + return v; + } + FieldDialogBox *&dialog_box(){ + static FieldDialogBox *dialogBox=NULL; + return dialogBox; + } + const char *get_name(){return "Max";} +}; #ifdef HAVE_ANN - if(zeronodes){ - annDeallocPts(zeronodes); - delete kdtree; - } - int totpoints = attractorPoints.size(); - if (totpoints) - zeronodes = annAllocPts(totpoints, 4); - int k = 0; - for(std::list <SPoint3>::iterator it2 = attractorPoints.begin(); - it2 != attractorPoints.end(); ++it2){ - zeronodes[k][0]=it2->x(); - zeronodes[k][1]=it2->y(); - zeronodes[k++][2]=it2->z(); - } - kdtree = new ANNkd_tree(zeronodes, totpoints, 3); +class AttractorField : public Field{ + ANNkd_tree* kdtree; + ANNpointArray zeronodes; + ANNidxArray index; + ANNdistArray dist; + std::list<int> nodes_id; + std::list<int> edges_id; + int n_nodes_by_edge; +public : + AttractorField(): kdtree (0), zeronodes(0) { + index = new ANNidx[1]; + dist = new ANNdist[1]; + options["NodesList"]=new FieldOptionList(nodes_id,&update_needed); + options["EdgesList"]=new FieldOptionList(edges_id,&update_needed); + options["NNodesByEdge"]=new FieldOptionInt(n_nodes_by_edge,&update_needed); + n_nodes_by_edge=20; + } + ~AttractorField(){ + if(kdtree) delete kdtree; + if(zeronodes) annDeallocPts(zeronodes); + delete [] index; + delete [] dist; + } + const char *get_name(){ + return "Attractor"; + } + virtual double operator()(double X, double Y, double Z){ + if(update_needed){ + if(zeronodes){ + annDeallocPts(zeronodes); + delete kdtree; + } + int totpoints = nodes_id.size()+n_nodes_by_edge*edges_id.size(); + if (totpoints) + zeronodes = annAllocPts(totpoints, 4); + int k = 0; + for(std::list <int>::iterator it = nodes_id.begin(); it != nodes_id.end(); ++it){ + Vertex *v = FindPoint(*it); + if(v){ + zeronodes[k][0]=v->Pos.X; + zeronodes[k][1]=v->Pos.Y; + zeronodes[k++][2]=v->Pos.Z; + }else{ + GVertex *gv = GModel::current()->getVertexByTag(*it); + if(gv){ + zeronodes[k][0]=gv->x(); + zeronodes[k][1]=gv->y(); + zeronodes[k++][2]=gv->z(); + } + } + } + for(std::list <int>::iterator it = edges_id.begin(); it != edges_id.end(); ++it){ + Curve *c = FindCurve(*it); + if(c){ + for(int i = 0; i < n_nodes_by_edge ; i++){ + double u = (double)i / (n_nodes_by_edge - 1); + Vertex V = InterpolateCurve(c, u, 0); + zeronodes[k][0]=V.Pos.X; + zeronodes[k][1]=V.Pos.Y; + zeronodes[k++][2]=V.Pos.Z; + } + }else{ + GEdge *ge = GModel::current()->getEdgeByTag(*it); + if(ge){ + for(int i = 0; i < n_nodes_by_edge; i++){ + double u = (double)i / (n_nodes_by_edge - 1); + Range<double> b = ge->parBounds(0); + double t = b.low() + u * (b.high() - b.low()); + GPoint gp = ge->point(t); + zeronodes[k][0]=gp.x(); + zeronodes[k][1]=gp.y(); + zeronodes[k++][2]=gp.z(); + } + } + } + } + kdtree = new ANNkd_tree(zeronodes, totpoints, 3); + } + double xyz[3] = {X, Y, Z}; + kdtree->annkSearch(xyz, 1, index, dist); + return sqrt(dist[0]); + } + FieldDialogBox *&dialog_box(){ + static FieldDialogBox *dialogBox=NULL; + return dialogBox; + } +}; #endif -} - -double AttractorField::operator()(double X, double Y, double Z) -{ - double xyz[3] = {X, Y, Z}; - if(attractorPoints.size() == 1){ - SPoint3 p = *(attractorPoints.begin()); - return sqrt((p.x() - X) * (p.x() - X) + - (p.y() - Y) * (p.y() - Y) + - (p.z() - Z) * (p.z() - Z)); - } - else{ -#ifdef HAVE_ANN - kdtree->annkSearch(xyz, maxpts, index, dist); - return sqrt(dist[0]); -#else - Msg(GERROR,"GMSH should be compiled with ANN in order to enable attractors"); - return 0.; -#endif - } -} - -void AttractorField::addCurve(Curve *c, int N) -{ - for(int i = 0; i < N; i++){ - double u = (double)i / (N - 1); - Vertex V = InterpolateCurve(c, u, 0); - addPoint(V.Pos.X, V.Pos.Y, V.Pos.Z); - } -} - -void AttractorField::addGEdge(GEdge *c, int N) -{ - for(int i = 0; i < N; i++){ - double u = (double)i / (N - 1); - Range<double> b = c->parBounds(0); - double t = b.low() + u * (b.high() - b.low()); - GPoint gp = c->point(t); - addPoint(gp.x(), gp.y(), gp.z()); - } -} +#if 0 void addMapLc (std::map<MVertex*, double> &maplc, MVertex *v, double l) { std::map<MVertex*, double>::iterator it = maplc.find(v); if(it == maplc.end()) maplc[v] = l; else if(it->second > l) it->second = l; } +#endif +#if 0 +/*class AttractorField_1DMesh : public AttractorField +{ +protected: + std::vector<double> lcs; + std::vector<double> lcs2; + double _dmax,_dmin,_lcmax; +public: + AttractorField_1DMesh (GModel *m , double dmax, double dmin, double lcmax); + AttractorField_1DMesh (GFace *gf, double dmax, double dmin, double lcmax); + virtual double operator()(double X, double Y, double Z) ; + virtual void eval(double X, double Y, double Z, double &l, double &lpt, double &dist) ; +};*/ AttractorField_1DMesh::AttractorField_1DMesh(GModel *m, double dmax, double dmin, double lcmax) : _dmax(dmax), _dmin(dmin), _lcmax(lcmax) @@ -496,7 +768,6 @@ AttractorField_1DMesh::AttractorField_1DMesh(GFace *gf, double dmax, double dmin } } - double AttractorField_1DMesh::operator()(double X, double Y, double Z) { #ifdef HAVE_ANN @@ -526,3 +797,94 @@ void AttractorField_1DMesh::eval(double X, double Y, double Z, double &lcmin, do Msg(GERROR,"GMSH should be compiled with ANN in order to enable attractors"); #endif } +#endif + +template<class F> +class FieldFactoryT:public FieldFactory{ + public: + Field *operator()(){return new F;}; +}; + +template<class F> +Field *field_factory(){return new F();}; + +FieldManager::FieldManager(){ + map_type_name["Structured"]=new FieldFactoryT<StructuredField>(); + map_type_name["Threshold"]=new FieldFactoryT<ThresholdField>(); + map_type_name["Box"]=new FieldFactoryT<BoxField>(); + map_type_name["LonLat"]=new FieldFactoryT<LonLatField>(); +#if defined(HAVE_MATH_EVAL) + map_type_name["Param"]=new FieldFactoryT<ParametricField>(); + map_type_name["MathEval"]=new FieldFactoryT<MathEvalField>(); +#endif +#if defined(HAVE_ANN) + map_type_name["Attractor"]=new FieldFactoryT<AttractorField>(); +#endif + map_type_name["PostView"]=new FieldFactoryT<PostViewField>(); + map_type_name["Gradient"]=new FieldFactoryT<GradientField>(); + map_type_name["Min"]=new FieldFactoryT<MinField>(); + map_type_name["Max"]=new FieldFactoryT<MaxField>(); + background_field=-1; +} + +static void evaluate(Field *field, List_T *list1, int nbElm1, int nbNod, + int nbComp, int comp ) +{ + if(!nbElm1) return; + int nb = List_Nbr(list1) / nbElm1; + for(int i = 0; i < List_Nbr(list1); i += nb) { + double *x = (double *)List_Pointer_Fast(list1, i); + double *y = (double *)List_Pointer_Fast(list1, i + nbNod); + double *z = (double *)List_Pointer_Fast(list1, i + 2 * nbNod); + for(int j = 0; j < nbNod; j++) { + // store data from the main view into v + double *val1 = (double *)List_Pointer_Fast(list1, + i + 3 * nbNod + + nbNod * nbComp * 0 + nbComp * j); + val1[comp] = (*field)(x[j],y[j],z[j]); + } + } +} + +Field::Field(){ +} + +void Field::put_on_view(PView *view,int comp) +{ + PViewDataList *data = dynamic_cast<PViewDataList*>(view->getData()); + if(!data) return ; + evaluate(this, data->SP, data->NbSP, 1, 1, 0); + evaluate(this, data->SL, data->NbSL, 2, 1, 0); + evaluate(this, data->ST, data->NbST, 3, 1, 0); + evaluate(this, data->SQ, data->NbSQ, 4, 1, 0); + evaluate(this, data->SS, data->NbSS, 4, 1, 0); + evaluate(this, data->SH, data->NbSH, 8, 1, 0); + evaluate(this, data->SI, data->NbSI, 6, 1, 0); + evaluate(this, data->SY, data->NbSY, 5, 1, 0); + for(int cc = 0; cc < 3; cc++){ + if(comp < 0 || comp == cc){ + evaluate(this, data->VP, data->NbVP, 1, 3, cc); + evaluate(this, data->VL, data->NbVL, 2, 3, cc); + evaluate(this, data->VT, data->NbVT, 3, 3, cc); + evaluate(this, data->VQ, data->NbVQ, 4, 3, cc); + evaluate(this, data->VS, data->NbVS, 4, 3, cc); + evaluate(this, data->VH, data->NbVH, 8, 3, cc); + evaluate(this, data->VI, data->NbVI, 6, 3, cc); + evaluate(this, data->VY, data->NbVY, 5, 3, cc); + } + } + for(int cc = 0; cc < 9; cc++){ + if(comp < 0 || comp == cc){ + evaluate(this, data->TP, data->NbTP, 1, 9, cc); + evaluate(this, data->TL, data->NbTL, 2, 9, cc); + evaluate(this, data->TT, data->NbTT, 3, 9, cc); + evaluate(this, data->TQ, data->NbTQ, 4, 9, cc); + evaluate(this, data->TS, data->NbTS, 4, 9, cc); + evaluate(this, data->TH, data->NbTH, 8, 9, cc); + evaluate(this, data->TI, data->NbTI, 6, 9, cc); + evaluate(this, data->TY, data->NbTY, 5, 9, cc); + } + } + data->finalize(); + view->setChanged(true); +} diff --git a/Mesh/Field.h b/Mesh/Field.h index d92632a24043a7a9bd1e613a43d719fc5c7d764b..cd97bb76f5fe8d0fe0170db1cecd6cf0b7f27f7a 100644 --- a/Mesh/Field.h +++ b/Mesh/Field.h @@ -20,134 +20,63 @@ // // Please report all bugs and problems to <gmsh@geuz.org>. -#include <vector> #include <map> #include <list> -#include "PView.h" -#ifdef HAVE_ANN -#include "ANN/ANN.h" -#endif #include "Geo.h" -#include "GEdge.h" -#include "OctreePost.h" +#include "PView.h" + +class Field; +typedef enum {FIELD_OPTION_DOUBLE=0,FIELD_OPTION_INT,FIELD_OPTION_STRING,FIELD_OPTION_PATH,FIELD_OPTION_BOOL,FIELD_OPTION_LIST}FieldOptionType; +class FieldOption{ + protected: + bool *status; + inline void modified(){if(status)*status=true;} + public: + FieldOption(bool *_status):status(_status){}; + virtual FieldOptionType get_type()=0; + virtual void get_text_representation(std::string &v_str)=0; + virtual void numerical_value(double val){throw (1);} + virtual double numerical_value()const {throw (1);} + virtual const std::list<int> & list()const {throw (1);} + virtual std::list<int> & list(){throw (1);} + virtual const std::string & string()const{throw (1);} + virtual std::string & string(){throw (1);} +}; +class FieldDialogBox; class Field{ + struct lstr{ + bool operator() (const char* s1, const char* s2 ) const{ + return strcmp(s1,s2)<0; + } + }; public: + int id; + std::map<const char *, FieldOption*,lstr> options; virtual double operator()(double x, double y, double z) = 0; virtual ~Field(){} + bool update_needed; + Field(); + virtual const char *get_name()=0; + virtual FieldDialogBox *&dialog_box()=0; + void put_on_view(PView *view,int comp=-1); }; -class FieldManager{ - std::map<int, Field*> id_map; -public: +class FieldFactory{ + public: + virtual Field *operator()()=0; +}; +class FieldManager:public std::map<int, Field*>{ + public: + std::map<const std::string,FieldFactory*> map_type_name; void reset(); - int insert(Field *field, int id=-1 /* -1 = automatic id */); /* returns the id */ Field *get(int id); + Field *new_field(int id, const char *type_name); + void delete_field(int id); + int new_id(); + int max_id(); + FieldManager(); + int background_field; }; -extern FieldManager fields; - -class StructuredField : public Field{ - double o[3], d[3]; - int n[3]; - double *data; -public : - StructuredField(const char *filename); - virtual ~StructuredField(); - double operator()(double x, double y, double z); -}; - -class LatLonField : public Field{ - Field *field; -public: - LatLonField(Field *_field) : field(_field){}; - double operator()(double x, double y, double z); -}; - -class ParametricField : public Field{ - void *evalX, *evalY, *evalZ; - Field *field; -public: - ParametricField(Field *_field, const char *strX, const char *strY, const char *strZ); - double operator()(double x, double y, double z); - virtual ~ParametricField(); -}; - -class ThresholdField : public Field{ - Field *field; - double dmin, dmax, lcmin, lcmax; -public: - ThresholdField(Field *field, double dmin, double dmax, double lcmin, double lcmax); - double operator()(double x, double y, double z); -}; - -class GradField : public Field{ - Field *field; - int kind; /* 0 x, 1 y, 2 z, 3 max */ - double delta; -public: - GradField(Field *field, int _kind=2, double _delta=-1); - double operator()(double x, double y, double z); -}; - -class FunctionField : public Field{ - std::list<Field*> *list; - char **names; - double *values; - void *eval; -public: - FunctionField(std::list<Field*> *_list, const char *fct); - double operator()(double x, double y, double z); - virtual ~FunctionField(); -}; - -class PostViewField : public Field{ - OctreePost *octree; - int view_index; -public: - PostViewField(PView *view); - double operator()(double x, double y, double z); - virtual ~PostViewField(); -}; - -class MinField : public Field, public std::list<Field*>{ -public: - MinField(){} - double operator()(double x, double y, double z); -}; - -class AttractorField : public Field{ -protected : -#ifdef HAVE_ANN - ANNkd_tree* kdtree; - ANNpointArray zeronodes; - ANNidxArray index; - ANNdistArray dist; -#endif - std::list<SPoint3> attractorPoints; -public : - AttractorField(); - virtual ~AttractorField(); - void addPoint(double X, double Y, double Z); - void buildFastSearchStructures() ; - void addGEdge(GEdge*, int); - void addCurve(Curve*, int); - virtual double operator()(double X, double Y, double Z) ; -}; - -class AttractorField_1DMesh : public AttractorField -{ -protected: - std::vector<double> lcs; - std::vector<double> lcs2; - double _dmax,_dmin,_lcmax; -public: - AttractorField_1DMesh (GModel *m , double dmax, double dmin, double lcmax); - AttractorField_1DMesh (GFace *gf, double dmax, double dmin, double lcmax); - virtual double operator()(double X, double Y, double Z) ; - virtual void eval(double X, double Y, double Z, double &l, double &lpt, double &dist) ; -}; - - - #endif diff --git a/Mesh/Makefile b/Mesh/Makefile index 0fa65be99ac9c0c50af6d997d2ee8dd3b85fcb96..e74a2fc62e8558b2bf8e98dfbea1fa6e66727944 100644 --- a/Mesh/Makefile +++ b/Mesh/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.207 2008-03-11 22:30:31 geuzaine Exp $ +# $Id: Makefile,v 1.208 2008-03-18 08:41:21 remacle Exp $ # # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle # @@ -89,292 +89,237 @@ Generator.o: Generator.cpp ../Common/Message.h ../Numeric/Numeric.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/OS.h \ ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \ - ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h meshGEdge.h \ - meshGFace.h meshGFaceBDS.h meshGRegion.h BackgroundMesh.h \ - BoundaryLayer.h HighOrder.h -Field.o: Field.cpp ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h \ - ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h \ - ../Geo/SPoint3.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ - ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \ - ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h \ - ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h \ - ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h \ - ../Geo/SBoundingBox3d.h ../Geo/MVertex.h ../Geo/SPoint3.h \ - ../Common/Message.h Field.h ../Post/PView.h ../Post/PViewData.h \ - ../Post/PViewOptions.h ../Post/ColorTable.h ../Geo/Geo.h \ + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../DataStr/List.h \ + ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \ + ../Common/SmoothData.h ../Post/PView.h ../Geo/MElement.h \ + ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h meshGEdge.h meshGFace.h \ + meshGFaceBDS.h meshGRegion.h BackgroundMesh.h BoundaryLayer.h \ + HighOrder.h +Field.o: Field.cpp ../Common/Context.h Field.h ../Geo/Geo.h \ ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \ - ../Common/SmoothData.h ../Post/OctreePost.h ../Common/Octree.h \ - ../Common/OctreeInternals.h ../Common/Context.h \ - ../Geo/GeoInterpolation.h ../Geo/Geo.h BackgroundMesh.h + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Geo/GeoInterpolation.h \ + ../Geo/Geo.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h \ + ../Geo/GPoint.h ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GEdgeLoop.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Common/Message.h \ + ../Post/OctreePost.h ../Common/Octree.h ../Common/OctreeInternals.h \ + ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Common/GmshMatrix.h meshGEdge.o: meshGEdge.cpp meshGEdge.h ../Geo/GEdge.h ../Geo/GEntity.h \ ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h \ - ../Geo/SPoint3.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h \ - ../Geo/SPoint2.h ../Geo/MElement.h ../Common/GmshDefines.h \ - ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h \ - ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \ - BackgroundMesh.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ - ../Common/Message.h ../DataStr/List.h ../Common/Context.h + ../Geo/GVertex.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \ + ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ + ../Geo/MEdge.h ../Geo/MFace.h BackgroundMesh.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../Common/Message.h ../DataStr/List.h \ + ../Common/Context.h meshGEdgeExtruded.o: meshGEdgeExtruded.cpp ../Geo/GModel.h \ ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Common/Message.h + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/PView.h \ + ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h \ + ../Post/ColorTable.h ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h \ + ../Geo/MFace.h ../Geo/ExtrudeParams.h ../Common/Message.h meshGFace.o: meshGFace.cpp meshGFace.h meshGFaceBDS.h \ meshGFaceDelaunayInsertion.h ../Geo/MElement.h ../Common/GmshDefines.h \ - ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/MFace.h ../Geo/MVertex.h \ - ../Geo/SVector3.h meshGFaceOptimize.h DivideAndConquer.h \ + ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/SVector3.h \ + ../Geo/MFace.h meshGFaceOptimize.h ../Geo/MEdge.h DivideAndConquer.h \ BackgroundMesh.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \ - ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ - ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h \ - ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Common/Context.h ../Common/Message.h ../Numeric/Numeric.h \ - ../Numeric/NumericEmbedded.h BDS.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/GVertex.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h \ + ../Geo/Pair.h ../Geo/MVertex.h ../Common/Context.h ../Geo/GPoint.h \ + ../Common/Message.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ + BDS.h ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ ../Post/PViewOptions.h ../Post/ColorTable.h qualityMeasures.h Field.h \ - ../Geo/Geo.h ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h \ - ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ - ../Geo/SBoundingBox3d.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \ - ../Common/SmoothData.h ../Post/OctreePost.h ../Common/Octree.h \ - ../Common/OctreeInternals.h ../Common/OS.h + ../Geo/Geo.h ../Geo/gmshSurface.h ../Numeric/Numeric.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Common/OS.h meshGFaceTransfinite.o: meshGFaceTransfinite.cpp meshGFace.h \ ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MElement.h \ - ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h \ - ../Geo/MVertex.h ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h \ - ../Geo/SVector3.h ../Common/Context.h ../Common/Message.h \ - ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h \ + ../Geo/GEdge.h ../Geo/Pair.h ../Geo/MVertex.h ../Geo/MElement.h \ + ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \ + ../Common/Context.h ../Common/Message.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h meshGFaceExtruded.o: meshGFaceExtruded.cpp ../Geo/GModel.h \ ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Common/Context.h \ + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/PView.h \ + ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h \ + ../Post/ColorTable.h ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h \ + ../Geo/MFace.h ../Geo/ExtrudeParams.h ../Common/Context.h \ ../Common/Message.h meshGFaceBDS.o: meshGFaceBDS.cpp meshGFace.h meshGFaceOptimize.h \ ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/SPoint3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \ - meshGFaceDelaunayInsertion.h BackgroundMesh.h ../Geo/GVertex.h \ - ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h \ - ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h \ - ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h ../Common/Context.h \ - ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEdge.h ../Geo/GFace.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Common/Message.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ - BDS.h ../Post/PView.h ../Post/PViewData.h ../Post/PViewOptions.h \ - ../Post/ColorTable.h qualityMeasures.h Field.h ../Geo/Geo.h \ - ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h \ - ../Geo/SPoint3.h ../Geo/SVector3.h ../Geo/SBoundingBox3d.h \ - ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../Geo/SPoint2.h \ - ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/OctreePost.h \ - ../Common/Octree.h ../Common/OctreeInternals.h ../Common/OS.h + ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/SVector3.h ../Geo/MFace.h \ + ../Geo/MEdge.h meshGFaceDelaunayInsertion.h BackgroundMesh.h \ + ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \ + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/GVertex.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h \ + ../Geo/Pair.h ../Geo/MVertex.h ../Common/Context.h ../Geo/GPoint.h \ + ../Geo/GModel.h ../Geo/GFace.h ../Geo/GRegion.h ../Mesh/Field.h \ + ../Geo/Geo.h ../Geo/gmshSurface.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/Message.h \ + ../Numeric/Numeric.h BDS.h ../Post/PView.h qualityMeasures.h Field.h \ + ../Common/OS.h meshGFaceDelaunayInsertion.o: meshGFaceDelaunayInsertion.cpp BDS.h \ ../Geo/GFace.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \ - ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h \ - ../Geo/SVector3.h ../Geo/Pair.h ../Post/PView.h ../Post/PViewData.h \ - ../Post/PViewOptions.h ../Post/ColorTable.h BackgroundMesh.h \ - meshGFaceDelaunayInsertion.h ../Geo/MElement.h ../Common/GmshDefines.h \ - ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h \ - ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \ - meshGFaceOptimize.h meshGFace.h ../Numeric/Numeric.h \ + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ + ../Geo/GEdge.h ../Geo/GVertex.h ../Geo/SPoint2.h ../Geo/SVector3.h \ + ../Geo/Pair.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + BackgroundMesh.h meshGFaceDelaunayInsertion.h ../Geo/MElement.h \ + ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \ + meshGFaceOptimize.h ../Geo/MEdge.h meshGFace.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h ../Common/Message.h meshGFaceOptimize.o: meshGFaceOptimize.cpp meshGFaceOptimize.h \ ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/SPoint3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \ - meshGFaceDelaunayInsertion.h qualityMeasures.h ../Geo/GFace.h \ - ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \ - ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h ../Geo/SVector3.h \ - ../Geo/Pair.h BackgroundMesh.h + ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/SVector3.h ../Geo/MFace.h \ + ../Geo/MEdge.h meshGFaceDelaunayInsertion.h qualityMeasures.h \ + ../Geo/GFace.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SBoundingBox3d.h \ + ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GVertex.h \ + ../Geo/SPoint2.h ../Geo/Pair.h ../Geo/GEdge.h ../Geo/GVertex.h \ + ../Geo/MVertex.h BackgroundMesh.h meshGRegion.o: meshGRegion.cpp meshGRegion.h \ meshGRegionDelaunayInsertion.h ../Geo/MElement.h \ ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/SPoint3.h \ - ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h qualityMeasures.h \ - ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \ - ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ - ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h \ - ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/gmshRegion.h ../Geo/Geo.h ../Geo/gmshSurface.h ../Geo/Pair.h \ - ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ - ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ - ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \ - ../Common/SmoothData.h ../Geo/GRegion.h BDS.h ../Post/PView.h \ - ../Post/PViewData.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Common/Message.h ../Common/Context.h + ../Geo/MEdge.h ../Geo/SVector3.h ../Geo/MFace.h BackgroundMesh.h \ + qualityMeasures.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h \ + ../Geo/Range.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h \ + ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Geo/gmshSurface.h \ + ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../DataStr/List.h \ + ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \ + ../Common/SmoothData.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + ../Geo/GRegion.h ../Geo/GFace.h ../Geo/GEdge.h ../Geo/gmshRegion.h \ + ../Geo/Geo.h BDS.h ../Post/PView.h ../Common/Message.h \ + ../Common/Context.h meshGRegionDelaunayInsertion.o: meshGRegionDelaunayInsertion.cpp \ ../Common/OS.h BackgroundMesh.h meshGRegion.h meshGRegionLocalMeshMod.h \ meshGRegionDelaunayInsertion.h ../Geo/MElement.h \ ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/SPoint3.h \ - ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h qualityMeasures.h \ + ../Geo/MEdge.h ../Geo/SVector3.h ../Geo/MFace.h qualityMeasures.h \ ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \ - ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ - ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h \ - ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Common/Message.h + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h ../Geo/GRegion.h \ + ../Mesh/Field.h ../Geo/Geo.h ../Geo/gmshSurface.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Geo/GRegion.h \ + ../Numeric/Numeric.h ../Common/Message.h meshGRegionTransfinite.o: meshGRegionTransfinite.cpp meshGFace.h \ ../Geo/GFace.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \ - ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h \ - ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h \ - ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MElement.h \ - ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h \ - ../Geo/MVertex.h ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h \ - ../Geo/SVector3.h ../Common/Context.h ../Common/Message.h + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ + ../Geo/GEdge.h ../Geo/GVertex.h ../Geo/SPoint2.h ../Geo/SVector3.h \ + ../Geo/Pair.h ../Geo/GRegion.h ../Geo/MVertex.h ../Geo/MElement.h \ + ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \ + ../Common/Context.h ../Common/Message.h meshGRegionExtruded.o: meshGRegionExtruded.cpp ../Geo/GModel.h \ ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/ExtrudeParams.h ../Common/SmoothData.h meshGFace.h meshGRegion.h \ + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/PView.h \ + ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h \ + ../Post/ColorTable.h ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h \ + ../Geo/MFace.h ../Geo/ExtrudeParams.h meshGFace.h meshGRegion.h \ ../Common/Context.h ../Common/Message.h meshGRegionCarveHole.o: meshGRegionCarveHole.cpp ../Geo/GModel.h \ ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h ../Common/Message.h + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/PView.h \ + ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h \ + ../Post/ColorTable.h ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h \ + ../Geo/MFace.h ../Common/Message.h meshGRegionLocalMeshMod.o: meshGRegionLocalMeshMod.cpp \ meshGRegionLocalMeshMod.h meshGRegionDelaunayInsertion.h \ ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/SPoint3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \ - qualityMeasures.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GRegion.h \ - ../Geo/GEntity.h ../Common/Message.h ../Numeric/Numeric.h \ - ../Numeric/NumericEmbedded.h + ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/SVector3.h ../Geo/MFace.h \ + BackgroundMesh.h qualityMeasures.h ../Geo/GEntity.h ../Geo/Range.h \ + ../Geo/SBoundingBox3d.h ../Geo/GRegion.h ../Geo/GEntity.h \ + ../Common/Message.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h DivideAndConquer.o: DivideAndConquer.cpp ../Common/Message.h \ ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h DivideAndConquer.h \ ../DataStr/Malloc.h BackgroundMesh.o: BackgroundMesh.cpp ../Common/Message.h BackgroundMesh.h \ ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Common/Context.h \ ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEdge.h ../Geo/GFace.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h Field.h \ - ../Post/PView.h ../Post/PViewData.h ../Post/PViewOptions.h \ - ../Post/ColorTable.h ../Geo/Geo.h ../Common/GmshDefines.h \ - ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h \ - ../Geo/SPoint3.h ../Geo/SVector3.h ../Geo/SBoundingBox3d.h \ - ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../Geo/SPoint2.h \ - ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/OctreePost.h \ - ../Common/Octree.h ../Common/OctreeInternals.h + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h \ + ../Geo/GEdge.h ../Geo/Pair.h ../Geo/GModel.h ../Geo/GFace.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../DataStr/List.h \ + ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \ + ../Common/SmoothData.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + Field.h qualityMeasures.o: qualityMeasures.cpp qualityMeasures.h BDS.h \ ../Geo/GFace.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \ - ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h \ - ../Geo/SVector3.h ../Geo/Pair.h ../Post/PView.h ../Post/PViewData.h \ - ../Post/PViewOptions.h ../Post/ColorTable.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MElement.h ../Common/GmshDefines.h \ - ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h ../Numeric/Numeric.h \ + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ + ../Geo/GEdge.h ../Geo/GVertex.h ../Geo/SPoint2.h ../Geo/SVector3.h \ + ../Geo/Pair.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + ../Geo/MVertex.h ../Geo/MElement.h ../Common/GmshDefines.h \ + ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h BoundaryLayer.o: BoundaryLayer.cpp ../Geo/GModel.h ../Geo/GVertex.h \ ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h BoundaryLayer.h \ - ../Geo/ExtrudeParams.h ../Common/SmoothData.h meshGEdge.h meshGFace.h \ - ../Common/Message.h + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/PView.h \ + ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h \ + ../Post/ColorTable.h ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h \ + ../Geo/MFace.h BoundaryLayer.h ../Geo/ExtrudeParams.h meshGEdge.h \ + meshGFace.h ../Common/Message.h BDS.o: BDS.cpp ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h BDS.h \ ../Geo/GFace.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \ - ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h \ - ../Geo/SVector3.h ../Geo/Pair.h ../Post/PView.h ../Post/PViewData.h \ - ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/Message.h \ - meshGFaceDelaunayInsertion.h ../Geo/MElement.h ../Common/GmshDefines.h \ - ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h \ - ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ + ../Geo/GEdge.h ../Geo/GVertex.h ../Geo/SPoint2.h ../Geo/SVector3.h \ + ../Geo/Pair.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + ../Common/Message.h meshGFaceDelaunayInsertion.h ../Geo/MElement.h \ + ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \ qualityMeasures.h HighOrder.o: HighOrder.cpp HighOrder.h ../Geo/GModel.h ../Geo/GVertex.h \ ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - meshGFaceOptimize.h ../Geo/MElement.h ../Common/GmshDefines.h \ - ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h \ - ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/PView.h \ + ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h \ + ../Post/ColorTable.h meshGFaceOptimize.h ../Geo/MElement.h \ + ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h ../Geo/MEdge.h \ meshGFaceDelaunayInsertion.h ../Common/Message.h ../Common/OS.h \ - ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Common/Context.h \ - ../Common/GmshMatrix.h ../Numeric/FunctionSpace.h + ../Numeric/Numeric.h ../Common/Context.h ../Common/GmshMatrix.h \ + ../Numeric/FunctionSpace.h ../Common/GmshMatrix.h diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index 392e9a2a00e6481702be7a713f86b585632bd25f..03ecb92fcfed6f5bc84a93ad600010dac02dd176 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.l,v 1.100 2008-02-23 15:30:07 geuzaine Exp $ +// $Id: Gmsh.l,v 1.101 2008-03-18 08:41:22 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -84,6 +84,7 @@ string {alpha}({alpha}|{digit})* "news" { gmsh_yylval.d = NEWSURFACE(); return tDOUBLE; } "newsl" { gmsh_yylval.d = NEWSURFACELOOP(); return tDOUBLE; } "newv" { gmsh_yylval.d = NEWVOLUME(); return tDOUBLE; } +"newf" { gmsh_yylval.d = NEWFIELD(); return tDOUBLE; } "=" return tAFFECT; "+=" return tAFFECTPLUS; "-=" return tAFFECTMINUS; @@ -110,7 +111,6 @@ Atan return tAtan; ArcTan return tAtan; Atan2 return tAtan2; ArcTan2 return tAtan2; -Attractor return tAttractor; Bezier return tBezier; Boundary return tBoundary; @@ -155,7 +155,6 @@ For return tFor; Function return tFunction; GetValue return tGetValue; -Grad return tGrad; GMSH_MAJOR_VERSION return tGMSH_MAJOR_VERSION; GMSH_MINOR_VERSION return tGMSH_MINOR_VERSION; GMSH_PATCH_VERSION return tGMSH_PATCH_VERSION; @@ -170,7 +169,6 @@ Intersect return tIntersect; Knots return tKnots; -LatLon return tLatLon; Length return tLength; Line return tLine; Loop return tLoop; @@ -215,20 +213,17 @@ Sprintf return tSprintf; StrCat return tStrCat; StrPrefix return tStrPrefix; StrRelative return tStrRelative; -Structured return tStructured; Show return tShow; Transfinite return tTransfinite; Translate return tTranslate; Tanh return tTanh; Tan return tTan; -Threshold return tThreshold; Today return tToday; Using return tUsing; Volume return tVolume; -PostView return tPostView; T2 return tText2D; T3 return tText3D; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index b651e6d0bbc575e4fe474bce0c44dbaa232d2a8a..5d15d6b9b4cecd9154f720b2a7c0ebde25f35be6 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -149,57 +149,51 @@ tCoherence = 330, tIntersect = 331, tBoundary = 332, - tAttractor = 333, - tLayers = 334, - tHole = 335, - tAlias = 336, - tAliasWithOptions = 337, - tText2D = 338, - tText3D = 339, - tInterpolationScheme = 340, - tTime = 341, - tCombine = 342, - tBSpline = 343, - tBezier = 344, - tNurbs = 345, - tOrder = 346, - tKnots = 347, - tColor = 348, - tColorTable = 349, - tFor = 350, - tIn = 351, - tEndFor = 352, - tIf = 353, - tEndIf = 354, - tExit = 355, - tField = 356, - tThreshold = 357, - tStructured = 358, - tLatLon = 359, - tGrad = 360, - tPostView = 361, - tReturn = 362, - tCall = 363, - tFunction = 364, - tShow = 365, - tHide = 366, - tGetValue = 367, - tGMSH_MAJOR_VERSION = 368, - tGMSH_MINOR_VERSION = 369, - tGMSH_PATCH_VERSION = 370, - tAFFECTDIVIDE = 371, - tAFFECTTIMES = 372, - tAFFECTMINUS = 373, - tAFFECTPLUS = 374, - tOR = 375, - tAND = 376, - tNOTEQUAL = 377, - tEQUAL = 378, - tGREATEROREQUAL = 379, - tLESSOREQUAL = 380, - UNARYPREC = 381, - tMINUSMINUS = 382, - tPLUSPLUS = 383 + tLayers = 333, + tHole = 334, + tAlias = 335, + tAliasWithOptions = 336, + tText2D = 337, + tText3D = 338, + tInterpolationScheme = 339, + tTime = 340, + tCombine = 341, + tBSpline = 342, + tBezier = 343, + tNurbs = 344, + tOrder = 345, + tKnots = 346, + tColor = 347, + tColorTable = 348, + tFor = 349, + tIn = 350, + tEndFor = 351, + tIf = 352, + tEndIf = 353, + tExit = 354, + tField = 355, + tReturn = 356, + tCall = 357, + tFunction = 358, + tShow = 359, + tHide = 360, + tGetValue = 361, + tGMSH_MAJOR_VERSION = 362, + tGMSH_MINOR_VERSION = 363, + tGMSH_PATCH_VERSION = 364, + tAFFECTDIVIDE = 365, + tAFFECTTIMES = 366, + tAFFECTMINUS = 367, + tAFFECTPLUS = 368, + tOR = 369, + tAND = 370, + tNOTEQUAL = 371, + tEQUAL = 372, + tGREATEROREQUAL = 373, + tLESSOREQUAL = 374, + UNARYPREC = 375, + tMINUSMINUS = 376, + tPLUSPLUS = 377 }; #endif /* Tokens. */ @@ -278,57 +272,51 @@ #define tCoherence 330 #define tIntersect 331 #define tBoundary 332 -#define tAttractor 333 -#define tLayers 334 -#define tHole 335 -#define tAlias 336 -#define tAliasWithOptions 337 -#define tText2D 338 -#define tText3D 339 -#define tInterpolationScheme 340 -#define tTime 341 -#define tCombine 342 -#define tBSpline 343 -#define tBezier 344 -#define tNurbs 345 -#define tOrder 346 -#define tKnots 347 -#define tColor 348 -#define tColorTable 349 -#define tFor 350 -#define tIn 351 -#define tEndFor 352 -#define tIf 353 -#define tEndIf 354 -#define tExit 355 -#define tField 356 -#define tThreshold 357 -#define tStructured 358 -#define tLatLon 359 -#define tGrad 360 -#define tPostView 361 -#define tReturn 362 -#define tCall 363 -#define tFunction 364 -#define tShow 365 -#define tHide 366 -#define tGetValue 367 -#define tGMSH_MAJOR_VERSION 368 -#define tGMSH_MINOR_VERSION 369 -#define tGMSH_PATCH_VERSION 370 -#define tAFFECTDIVIDE 371 -#define tAFFECTTIMES 372 -#define tAFFECTMINUS 373 -#define tAFFECTPLUS 374 -#define tOR 375 -#define tAND 376 -#define tNOTEQUAL 377 -#define tEQUAL 378 -#define tGREATEROREQUAL 379 -#define tLESSOREQUAL 380 -#define UNARYPREC 381 -#define tMINUSMINUS 382 -#define tPLUSPLUS 383 +#define tLayers 333 +#define tHole 334 +#define tAlias 335 +#define tAliasWithOptions 336 +#define tText2D 337 +#define tText3D 338 +#define tInterpolationScheme 339 +#define tTime 340 +#define tCombine 341 +#define tBSpline 342 +#define tBezier 343 +#define tNurbs 344 +#define tOrder 345 +#define tKnots 346 +#define tColor 347 +#define tColorTable 348 +#define tFor 349 +#define tIn 350 +#define tEndFor 351 +#define tIf 352 +#define tEndIf 353 +#define tExit 354 +#define tField 355 +#define tReturn 356 +#define tCall 357 +#define tFunction 358 +#define tShow 359 +#define tHide 360 +#define tGetValue 361 +#define tGMSH_MAJOR_VERSION 362 +#define tGMSH_MINOR_VERSION 363 +#define tGMSH_PATCH_VERSION 364 +#define tAFFECTDIVIDE 365 +#define tAFFECTTIMES 366 +#define tAFFECTMINUS 367 +#define tAFFECTPLUS 368 +#define tOR 369 +#define tAND 370 +#define tNOTEQUAL 371 +#define tEQUAL 372 +#define tGREATEROREQUAL 373 +#define tLESSOREQUAL 374 +#define UNARYPREC 375 +#define tMINUSMINUS 376 +#define tPLUSPLUS 377 @@ -336,7 +324,7 @@ /* Copy the first part of user declarations. */ #line 1 "Gmsh.y" -// $Id: Gmsh.tab.cpp,v 1.349 2008-02-23 15:30:07 geuzaine Exp $ +// $Id: Gmsh.tab.cpp,v 1.350 2008-03-18 08:41:22 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -443,8 +431,8 @@ typedef union YYSTYPE Shape s; List_T *l; } -/* Line 193 of yacc.c. */ -#line 448 "Gmsh.tab.cpp" +/* Line 187 of yacc.c. */ +#line 436 "Gmsh.tab.cpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -457,7 +445,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 461 "Gmsh.tab.cpp" +#line 449 "Gmsh.tab.cpp" #ifdef short # undef short @@ -507,7 +495,7 @@ typedef short int yytype_int16; #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS +# if YYENABLE_NLS # if ENABLE_NLS # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ # define YY_(msgid) dgettext ("bison-runtime", msgid) @@ -672,20 +660,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 6691 +#define YYLAST 6361 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 149 +#define YYNTOKENS 143 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 68 /* YYNRULES -- Number of rules. */ -#define YYNRULES 354 +#define YYNRULES 350 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1280 +#define YYNSTATES 1242 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 383 +#define YYMAXUTOK 377 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -696,16 +684,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 134, 2, 144, 2, 133, 2, 2, - 139, 140, 131, 129, 145, 130, 143, 132, 2, 2, + 2, 2, 2, 128, 2, 138, 2, 127, 2, 2, + 133, 134, 125, 123, 139, 124, 137, 126, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 125, 2, 126, 120, 2, 2, 2, 2, 2, 2, + 119, 2, 120, 114, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 141, 2, 142, 138, 2, 2, 2, 2, 2, + 2, 135, 2, 136, 132, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 146, 2, 147, 148, 2, 2, 2, + 2, 2, 2, 140, 2, 141, 142, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -729,9 +717,8 @@ static const yytype_uint8 yytranslate[] = 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 121, 122, 123, 124, 127, - 128, 135, 136, 137 + 105, 106, 107, 108, 109, 110, 111, 112, 113, 115, + 116, 117, 118, 121, 122, 129, 130, 131 }; #if YYDEBUG @@ -747,250 +734,246 @@ static const yytype_uint16 yyprhs[] = 183, 192, 207, 208, 215, 217, 219, 221, 223, 225, 227, 229, 234, 242, 252, 259, 266, 270, 277, 282, 289, 299, 306, 316, 322, 331, 340, 352, 359, 369, - 379, 389, 391, 393, 401, 410, 420, 429, 438, 447, - 456, 466, 475, 481, 488, 495, 502, 510, 518, 526, - 536, 544, 554, 572, 580, 588, 600, 609, 618, 627, - 636, 640, 645, 656, 664, 672, 681, 690, 699, 707, - 716, 722, 734, 740, 750, 755, 765, 770, 772, 774, - 775, 778, 785, 792, 799, 806, 811, 818, 822, 827, - 833, 837, 841, 846, 851, 855, 863, 871, 875, 883, - 887, 890, 893, 909, 912, 919, 928, 937, 948, 950, - 953, 955, 959, 964, 966, 972, 984, 998, 999, 1007, - 1008, 1022, 1023, 1039, 1040, 1047, 1048, 1059, 1068, 1077, - 1086, 1099, 1112, 1125, 1140, 1155, 1170, 1171, 1184, 1185, - 1198, 1199, 1212, 1213, 1230, 1231, 1248, 1249, 1266, 1267, - 1286, 1287, 1306, 1307, 1326, 1328, 1331, 1337, 1345, 1355, - 1358, 1368, 1375, 1385, 1395, 1404, 1414, 1423, 1432, 1439, - 1444, 1451, 1462, 1473, 1484, 1495, 1498, 1500, 1504, 1507, - 1510, 1513, 1517, 1521, 1525, 1529, 1533, 1537, 1541, 1545, - 1549, 1553, 1557, 1561, 1565, 1569, 1575, 1580, 1585, 1590, - 1595, 1600, 1605, 1610, 1615, 1620, 1625, 1632, 1637, 1642, - 1647, 1652, 1657, 1662, 1669, 1676, 1683, 1688, 1693, 1698, - 1703, 1708, 1713, 1718, 1723, 1728, 1733, 1738, 1745, 1750, - 1755, 1760, 1765, 1770, 1775, 1782, 1789, 1796, 1801, 1803, - 1805, 1807, 1809, 1811, 1813, 1815, 1817, 1823, 1828, 1833, - 1836, 1842, 1846, 1853, 1858, 1866, 1873, 1875, 1878, 1881, - 1885, 1889, 1901, 1911, 1919, 1927, 1929, 1933, 1935, 1937, - 1940, 1944, 1949, 1955, 1958, 1962, 1966, 1972, 1977, 1979, - 1981, 1985, 1992, 1994, 1996, 2000, 2004, 2014, 2022, 2024, - 2030, 2034, 2041, 2043, 2047, 2049, 2051, 2053, 2055, 2062, - 2067, 2072, 2077, 2084, 2091 + 375, 383, 393, 403, 413, 423, 433, 435, 437, 445, + 454, 461, 469, 477, 485, 495, 503, 513, 531, 539, + 547, 559, 568, 577, 586, 595, 599, 604, 615, 623, + 631, 640, 649, 658, 666, 675, 681, 693, 699, 709, + 714, 724, 729, 731, 733, 734, 737, 744, 751, 758, + 765, 770, 777, 784, 788, 793, 799, 803, 807, 812, + 817, 821, 829, 837, 841, 849, 853, 856, 859, 875, + 878, 885, 894, 903, 914, 916, 919, 921, 925, 930, + 932, 938, 950, 964, 965, 973, 974, 988, 989, 1005, + 1006, 1013, 1014, 1025, 1034, 1043, 1052, 1065, 1078, 1091, + 1106, 1121, 1136, 1137, 1150, 1151, 1164, 1165, 1178, 1179, + 1196, 1197, 1214, 1215, 1232, 1233, 1252, 1253, 1272, 1273, + 1292, 1294, 1297, 1303, 1311, 1321, 1324, 1334, 1341, 1351, + 1361, 1370, 1380, 1389, 1398, 1405, 1410, 1417, 1428, 1439, + 1450, 1461, 1464, 1466, 1470, 1473, 1476, 1479, 1483, 1487, + 1491, 1495, 1499, 1503, 1507, 1511, 1515, 1519, 1523, 1527, + 1531, 1535, 1541, 1546, 1551, 1556, 1561, 1566, 1571, 1576, + 1581, 1586, 1591, 1598, 1603, 1608, 1613, 1618, 1623, 1628, + 1635, 1642, 1649, 1654, 1659, 1664, 1669, 1674, 1679, 1684, + 1689, 1694, 1699, 1704, 1711, 1716, 1721, 1726, 1731, 1736, + 1741, 1748, 1755, 1762, 1767, 1769, 1771, 1773, 1775, 1777, + 1779, 1781, 1783, 1789, 1794, 1799, 1802, 1808, 1812, 1819, + 1824, 1832, 1839, 1841, 1844, 1847, 1851, 1855, 1867, 1877, + 1885, 1893, 1895, 1899, 1901, 1903, 1906, 1910, 1915, 1921, + 1924, 1928, 1932, 1938, 1943, 1945, 1947, 1951, 1958, 1960, + 1962, 1966, 1970, 1980, 1988, 1990, 1996, 2000, 2007, 2009, + 2013, 2015, 2017, 2019, 2021, 2028, 2033, 2038, 2043, 2050, + 2057 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 150, 0, -1, 151, -1, 1, 6, -1, -1, 151, - 152, -1, 155, -1, 154, -1, 173, -1, 175, -1, - 176, -1, 179, -1, 180, -1, 181, -1, 184, -1, - 201, -1, 202, -1, 203, -1, 183, -1, 182, -1, - 126, -1, 126, 126, -1, 35, 139, 5, 140, 6, - -1, 35, 139, 5, 140, 153, 215, 6, -1, 35, - 139, 5, 145, 211, 140, 6, -1, 35, 139, 5, - 145, 211, 140, 153, 215, 6, -1, 4, 5, 146, - 156, 147, 6, -1, 81, 4, 141, 204, 142, 6, - -1, 82, 4, 141, 204, 142, 6, -1, -1, 156, - 159, -1, 156, 163, -1, 156, 166, -1, 156, 168, - -1, 156, 169, -1, 204, -1, 157, 145, 204, -1, - 204, -1, 158, 145, 204, -1, -1, -1, 4, 160, - 139, 157, 140, 161, 146, 158, 147, 6, -1, 215, - -1, 162, 145, 215, -1, -1, 83, 139, 204, 145, - 204, 145, 204, 140, 164, 146, 162, 147, 6, -1, - 215, -1, 165, 145, 215, -1, -1, 84, 139, 204, - 145, 204, 145, 204, 145, 204, 140, 167, 146, 165, - 147, 6, -1, 85, 146, 208, 147, 146, 208, 147, - 6, -1, 85, 146, 208, 147, 146, 208, 147, 146, - 208, 147, 146, 208, 147, 6, -1, -1, 86, 170, - 146, 158, 147, 6, -1, 7, -1, 119, -1, 118, - -1, 117, -1, 116, -1, 137, -1, 136, -1, 4, - 171, 204, 6, -1, 4, 141, 204, 142, 171, 204, - 6, -1, 4, 141, 146, 211, 147, 142, 171, 209, - 6, -1, 4, 141, 142, 7, 209, 6, -1, 4, - 141, 142, 119, 209, 6, -1, 4, 172, 6, -1, - 4, 141, 204, 142, 172, 6, -1, 4, 7, 216, - 6, -1, 4, 143, 4, 7, 216, 6, -1, 4, - 141, 204, 142, 143, 4, 7, 216, 6, -1, 4, - 143, 4, 171, 204, 6, -1, 4, 141, 204, 142, - 143, 4, 171, 204, 6, -1, 4, 143, 4, 172, - 6, -1, 4, 141, 204, 142, 143, 4, 172, 6, - -1, 4, 143, 93, 143, 4, 7, 212, 6, -1, - 4, 141, 204, 142, 143, 93, 143, 4, 7, 212, - 6, -1, 4, 143, 94, 7, 213, 6, -1, 4, - 141, 204, 142, 143, 94, 7, 213, 6, -1, 64, - 139, 4, 140, 143, 4, 7, 204, 6, -1, 64, - 139, 4, 140, 143, 4, 7, 216, 6, -1, 204, - -1, 216, -1, 43, 139, 204, 140, 7, 206, 6, - -1, 60, 43, 139, 174, 140, 7, 209, 6, -1, - 78, 43, 101, 139, 204, 140, 7, 209, 6, -1, - 104, 101, 139, 204, 140, 7, 204, 6, -1, 106, - 101, 139, 204, 140, 7, 204, 6, -1, 102, 101, - 139, 204, 140, 7, 209, 6, -1, 109, 101, 139, - 204, 140, 7, 5, 6, -1, 109, 101, 139, 204, - 140, 7, 5, 209, 6, -1, 103, 101, 139, 204, - 140, 7, 5, 6, -1, 52, 53, 101, 209, 6, - -1, 78, 43, 209, 7, 209, 6, -1, 78, 46, - 209, 7, 209, 6, -1, 52, 53, 209, 7, 204, - 6, -1, 46, 139, 204, 140, 7, 209, 6, -1, - 50, 139, 204, 140, 7, 209, 6, -1, 44, 139, - 204, 140, 7, 209, 6, -1, 44, 139, 204, 140, - 7, 209, 56, 206, 6, -1, 45, 139, 204, 140, - 7, 209, 6, -1, 45, 139, 204, 140, 7, 209, - 56, 206, 6, -1, 54, 139, 204, 140, 7, 146, - 204, 145, 204, 145, 5, 145, 5, 145, 5, 147, - 6, -1, 88, 139, 204, 140, 7, 209, 6, -1, - 89, 139, 204, 140, 7, 209, 6, -1, 90, 139, - 204, 140, 7, 209, 92, 209, 91, 204, 6, -1, - 46, 71, 139, 204, 140, 7, 209, 6, -1, 60, - 46, 139, 174, 140, 7, 209, 6, -1, 56, 49, - 139, 204, 140, 7, 209, 6, -1, 57, 49, 139, - 204, 140, 7, 209, 6, -1, 12, 13, 6, -1, - 13, 49, 204, 6, -1, 54, 49, 139, 204, 140, - 7, 5, 5, 5, 6, -1, 47, 139, 204, 140, - 7, 209, 6, -1, 48, 139, 204, 140, 7, 209, - 6, -1, 49, 71, 139, 204, 140, 7, 209, 6, - -1, 60, 49, 139, 174, 140, 7, 209, 6, -1, - 59, 51, 139, 204, 140, 7, 209, 6, -1, 51, - 139, 204, 140, 7, 209, 6, -1, 60, 51, 139, - 174, 140, 7, 209, 6, -1, 66, 206, 146, 177, - 147, -1, 65, 146, 206, 145, 206, 145, 204, 147, - 146, 177, 147, -1, 67, 206, 146, 177, 147, -1, - 68, 146, 206, 145, 204, 147, 146, 177, 147, -1, - 70, 146, 177, 147, -1, 76, 46, 146, 211, 147, - 49, 146, 204, 147, -1, 77, 146, 177, 147, -1, - 178, -1, 176, -1, -1, 178, 175, -1, 178, 43, - 146, 211, 147, 6, -1, 178, 46, 146, 211, 147, - 6, -1, 178, 49, 146, 211, 147, 6, -1, 178, - 51, 146, 211, 147, 6, -1, 74, 146, 178, 147, - -1, 74, 4, 141, 204, 142, 6, -1, 74, 4, - 6, -1, 74, 4, 4, 6, -1, 93, 212, 146, - 178, 147, -1, 110, 215, 6, -1, 111, 215, 6, - -1, 110, 146, 178, 147, -1, 111, 146, 178, 147, - -1, 4, 216, 6, -1, 4, 4, 141, 204, 142, - 215, 6, -1, 4, 4, 4, 141, 204, 142, 6, - -1, 4, 204, 6, -1, 64, 139, 4, 140, 143, - 4, 6, -1, 87, 4, 6, -1, 100, 6, -1, - 40, 6, -1, 40, 146, 204, 145, 204, 145, 204, - 145, 204, 145, 204, 145, 204, 147, 6, -1, 41, - 6, -1, 95, 139, 204, 8, 204, 140, -1, 95, - 139, 204, 8, 204, 8, 204, 140, -1, 95, 4, - 96, 146, 204, 8, 204, 147, -1, 95, 4, 96, - 146, 204, 8, 204, 8, 204, 147, -1, 97, -1, - 109, 4, -1, 107, -1, 108, 4, 6, -1, 98, - 139, 204, 140, -1, 99, -1, 69, 206, 146, 178, - 147, -1, 69, 146, 206, 145, 206, 145, 204, 147, - 146, 178, 147, -1, 69, 146, 206, 145, 206, 145, - 206, 145, 204, 147, 146, 178, 147, -1, -1, 69, - 206, 146, 178, 185, 199, 147, -1, -1, 69, 146, - 206, 145, 206, 145, 204, 147, 146, 178, 186, 199, - 147, -1, -1, 69, 146, 206, 145, 206, 145, 206, - 145, 204, 147, 146, 178, 187, 199, 147, -1, -1, - 69, 146, 178, 188, 199, 147, -1, -1, 69, 4, - 141, 204, 142, 146, 178, 189, 199, 147, -1, 69, - 43, 146, 204, 145, 206, 147, 6, -1, 69, 46, - 146, 204, 145, 206, 147, 6, -1, 69, 49, 146, - 204, 145, 206, 147, 6, -1, 69, 43, 146, 204, - 145, 206, 145, 206, 145, 204, 147, 6, -1, 69, - 46, 146, 204, 145, 206, 145, 206, 145, 204, 147, - 6, -1, 69, 49, 146, 204, 145, 206, 145, 206, - 145, 204, 147, 6, -1, 69, 43, 146, 204, 145, - 206, 145, 206, 145, 206, 145, 204, 147, 6, -1, - 69, 46, 146, 204, 145, 206, 145, 206, 145, 206, - 145, 204, 147, 6, -1, 69, 49, 146, 204, 145, - 206, 145, 206, 145, 206, 145, 204, 147, 6, -1, - -1, 69, 43, 146, 204, 145, 206, 147, 190, 146, - 199, 147, 6, -1, -1, 69, 46, 146, 204, 145, - 206, 147, 191, 146, 199, 147, 6, -1, -1, 69, - 49, 146, 204, 145, 206, 147, 192, 146, 199, 147, - 6, -1, -1, 69, 43, 146, 204, 145, 206, 145, - 206, 145, 204, 147, 193, 146, 199, 147, 6, -1, - -1, 69, 46, 146, 204, 145, 206, 145, 206, 145, - 204, 147, 194, 146, 199, 147, 6, -1, -1, 69, - 49, 146, 204, 145, 206, 145, 206, 145, 204, 147, - 195, 146, 199, 147, 6, -1, -1, 69, 43, 146, - 204, 145, 206, 145, 206, 145, 206, 145, 204, 147, - 196, 146, 199, 147, 6, -1, -1, 69, 46, 146, - 204, 145, 206, 145, 206, 145, 206, 145, 204, 147, - 197, 146, 199, 147, 6, -1, -1, 69, 49, 146, - 204, 145, 206, 145, 206, 145, 206, 145, 204, 147, - 198, 146, 199, 147, 6, -1, 200, -1, 199, 200, - -1, 79, 146, 204, 147, 6, -1, 79, 146, 209, - 145, 209, 147, 6, -1, 79, 146, 209, 145, 209, - 145, 209, 147, 6, -1, 72, 6, -1, 80, 139, - 204, 140, 7, 209, 61, 204, 6, -1, 58, 46, - 209, 7, 204, 6, -1, 58, 46, 209, 7, 204, - 61, 63, 204, 6, -1, 58, 46, 209, 7, 204, - 61, 62, 204, 6, -1, 58, 49, 146, 204, 147, - 7, 209, 6, -1, 58, 49, 146, 204, 147, 7, - 209, 4, 6, -1, 55, 49, 146, 204, 147, 7, - 209, 6, -1, 58, 51, 146, 204, 147, 7, 209, - 6, -1, 72, 49, 209, 7, 204, 6, -1, 72, - 49, 209, 6, -1, 73, 49, 209, 7, 204, 6, - -1, 43, 146, 211, 147, 96, 49, 146, 204, 147, - 6, -1, 46, 146, 211, 147, 96, 49, 146, 204, - 147, 6, -1, 46, 146, 211, 147, 96, 51, 146, - 204, 147, 6, -1, 49, 146, 211, 147, 96, 51, - 146, 204, 147, 6, -1, 75, 6, -1, 205, -1, - 139, 204, 140, -1, 130, 204, -1, 129, 204, -1, - 134, 204, -1, 204, 130, 204, -1, 204, 129, 204, - -1, 204, 131, 204, -1, 204, 132, 204, -1, 204, - 133, 204, -1, 204, 138, 204, -1, 204, 125, 204, - -1, 204, 126, 204, -1, 204, 128, 204, -1, 204, - 127, 204, -1, 204, 124, 204, -1, 204, 123, 204, - -1, 204, 122, 204, -1, 204, 121, 204, -1, 204, - 120, 204, 8, 204, -1, 14, 139, 204, 140, -1, - 15, 139, 204, 140, -1, 16, 139, 204, 140, -1, - 17, 139, 204, 140, -1, 18, 139, 204, 140, -1, - 19, 139, 204, 140, -1, 20, 139, 204, 140, -1, - 21, 139, 204, 140, -1, 22, 139, 204, 140, -1, - 24, 139, 204, 140, -1, 25, 139, 204, 145, 204, - 140, -1, 26, 139, 204, 140, -1, 27, 139, 204, - 140, -1, 28, 139, 204, 140, -1, 29, 139, 204, - 140, -1, 30, 139, 204, 140, -1, 31, 139, 204, - 140, -1, 32, 139, 204, 145, 204, 140, -1, 33, - 139, 204, 145, 204, 140, -1, 34, 139, 204, 145, - 204, 140, -1, 23, 139, 204, 140, -1, 14, 141, - 204, 142, -1, 15, 141, 204, 142, -1, 16, 141, - 204, 142, -1, 17, 141, 204, 142, -1, 18, 141, - 204, 142, -1, 19, 141, 204, 142, -1, 20, 141, - 204, 142, -1, 21, 141, 204, 142, -1, 22, 141, - 204, 142, -1, 24, 141, 204, 142, -1, 25, 141, - 204, 145, 204, 142, -1, 26, 141, 204, 142, -1, - 27, 141, 204, 142, -1, 28, 141, 204, 142, -1, - 29, 141, 204, 142, -1, 30, 141, 204, 142, -1, - 31, 141, 204, 142, -1, 32, 141, 204, 145, 204, - 142, -1, 33, 141, 204, 145, 204, 142, -1, 34, - 141, 204, 145, 204, 142, -1, 23, 141, 204, 142, - -1, 3, -1, 9, -1, 10, -1, 11, -1, 113, - -1, 114, -1, 115, -1, 4, -1, 4, 148, 146, - 204, 147, -1, 4, 141, 204, 142, -1, 144, 4, - 141, 142, -1, 4, 172, -1, 4, 141, 204, 142, - 172, -1, 4, 143, 4, -1, 4, 141, 204, 142, - 143, 4, -1, 4, 143, 4, 172, -1, 4, 141, - 204, 142, 143, 4, 172, -1, 112, 139, 5, 145, - 204, 140, -1, 207, -1, 130, 206, -1, 129, 206, - -1, 206, 130, 206, -1, 206, 129, 206, -1, 146, - 204, 145, 204, 145, 204, 145, 204, 145, 204, 147, - -1, 146, 204, 145, 204, 145, 204, 145, 204, 147, - -1, 146, 204, 145, 204, 145, 204, 147, -1, 139, - 204, 145, 204, 145, 204, 140, -1, 209, -1, 208, - 145, 209, -1, 204, -1, 210, -1, 146, 147, -1, - 146, 211, 147, -1, 130, 146, 211, 147, -1, 204, - 131, 146, 211, 147, -1, 130, 210, -1, 204, 131, - 210, -1, 204, 8, 204, -1, 204, 8, 204, 8, - 204, -1, 43, 146, 204, 147, -1, 176, -1, 184, - -1, 4, 141, 142, -1, 4, 141, 146, 211, 147, - 142, -1, 204, -1, 210, -1, 211, 145, 204, -1, - 211, 145, 210, -1, 146, 204, 145, 204, 145, 204, - 145, 204, 147, -1, 146, 204, 145, 204, 145, 204, - 147, -1, 4, -1, 4, 143, 93, 143, 4, -1, - 146, 214, 147, -1, 4, 141, 204, 142, 143, 94, - -1, 212, -1, 214, 145, 212, -1, 216, -1, 4, - -1, 5, -1, 42, -1, 37, 139, 215, 145, 215, - 140, -1, 38, 139, 215, 140, -1, 39, 139, 215, - 140, -1, 36, 139, 215, 140, -1, 36, 139, 215, - 145, 211, 140, -1, 36, 139, 4, 143, 4, 140, - -1, 36, 139, 4, 141, 204, 142, 143, 4, 140, - -1 + 144, 0, -1, 145, -1, 1, 6, -1, -1, 145, + 146, -1, 149, -1, 148, -1, 167, -1, 169, -1, + 170, -1, 173, -1, 174, -1, 175, -1, 178, -1, + 195, -1, 196, -1, 197, -1, 177, -1, 176, -1, + 120, -1, 120, 120, -1, 35, 133, 5, 134, 6, + -1, 35, 133, 5, 134, 147, 209, 6, -1, 35, + 133, 5, 139, 205, 134, 6, -1, 35, 133, 5, + 139, 205, 134, 147, 209, 6, -1, 4, 5, 140, + 150, 141, 6, -1, 80, 4, 135, 198, 136, 6, + -1, 81, 4, 135, 198, 136, 6, -1, -1, 150, + 153, -1, 150, 157, -1, 150, 160, -1, 150, 162, + -1, 150, 163, -1, 198, -1, 151, 139, 198, -1, + 198, -1, 152, 139, 198, -1, -1, -1, 4, 154, + 133, 151, 134, 155, 140, 152, 141, 6, -1, 209, + -1, 156, 139, 209, -1, -1, 82, 133, 198, 139, + 198, 139, 198, 134, 158, 140, 156, 141, 6, -1, + 209, -1, 159, 139, 209, -1, -1, 83, 133, 198, + 139, 198, 139, 198, 139, 198, 134, 161, 140, 159, + 141, 6, -1, 84, 140, 202, 141, 140, 202, 141, + 6, -1, 84, 140, 202, 141, 140, 202, 141, 140, + 202, 141, 140, 202, 141, 6, -1, -1, 85, 164, + 140, 152, 141, 6, -1, 7, -1, 113, -1, 112, + -1, 111, -1, 110, -1, 131, -1, 130, -1, 4, + 165, 198, 6, -1, 4, 135, 198, 136, 165, 198, + 6, -1, 4, 135, 140, 205, 141, 136, 165, 203, + 6, -1, 4, 135, 136, 7, 203, 6, -1, 4, + 135, 136, 113, 203, 6, -1, 4, 166, 6, -1, + 4, 135, 198, 136, 166, 6, -1, 4, 7, 210, + 6, -1, 4, 137, 4, 7, 210, 6, -1, 4, + 135, 198, 136, 137, 4, 7, 210, 6, -1, 4, + 137, 4, 165, 198, 6, -1, 4, 135, 198, 136, + 137, 4, 165, 198, 6, -1, 4, 137, 4, 166, + 6, -1, 4, 135, 198, 136, 137, 4, 166, 6, + -1, 4, 137, 92, 137, 4, 7, 206, 6, -1, + 4, 135, 198, 136, 137, 92, 137, 4, 7, 206, + 6, -1, 4, 137, 93, 7, 207, 6, -1, 4, + 135, 198, 136, 137, 93, 7, 207, 6, -1, 4, + 100, 7, 198, 6, -1, 100, 135, 198, 136, 7, + 4, 6, -1, 100, 135, 198, 136, 137, 4, 7, + 198, 6, -1, 100, 135, 198, 136, 137, 4, 7, + 210, 6, -1, 100, 135, 198, 136, 137, 4, 7, + 203, 6, -1, 64, 133, 4, 134, 137, 4, 7, + 198, 6, -1, 64, 133, 4, 134, 137, 4, 7, + 210, 6, -1, 198, -1, 210, -1, 43, 133, 198, + 134, 7, 200, 6, -1, 60, 43, 133, 168, 134, + 7, 203, 6, -1, 52, 53, 203, 7, 198, 6, + -1, 46, 133, 198, 134, 7, 203, 6, -1, 50, + 133, 198, 134, 7, 203, 6, -1, 44, 133, 198, + 134, 7, 203, 6, -1, 44, 133, 198, 134, 7, + 203, 56, 200, 6, -1, 45, 133, 198, 134, 7, + 203, 6, -1, 45, 133, 198, 134, 7, 203, 56, + 200, 6, -1, 54, 133, 198, 134, 7, 140, 198, + 139, 198, 139, 5, 139, 5, 139, 5, 141, 6, + -1, 87, 133, 198, 134, 7, 203, 6, -1, 88, + 133, 198, 134, 7, 203, 6, -1, 89, 133, 198, + 134, 7, 203, 91, 203, 90, 198, 6, -1, 46, + 71, 133, 198, 134, 7, 203, 6, -1, 60, 46, + 133, 168, 134, 7, 203, 6, -1, 56, 49, 133, + 198, 134, 7, 203, 6, -1, 57, 49, 133, 198, + 134, 7, 203, 6, -1, 12, 13, 6, -1, 13, + 49, 198, 6, -1, 54, 49, 133, 198, 134, 7, + 5, 5, 5, 6, -1, 47, 133, 198, 134, 7, + 203, 6, -1, 48, 133, 198, 134, 7, 203, 6, + -1, 49, 71, 133, 198, 134, 7, 203, 6, -1, + 60, 49, 133, 168, 134, 7, 203, 6, -1, 59, + 51, 133, 198, 134, 7, 203, 6, -1, 51, 133, + 198, 134, 7, 203, 6, -1, 60, 51, 133, 168, + 134, 7, 203, 6, -1, 66, 200, 140, 171, 141, + -1, 65, 140, 200, 139, 200, 139, 198, 141, 140, + 171, 141, -1, 67, 200, 140, 171, 141, -1, 68, + 140, 200, 139, 198, 141, 140, 171, 141, -1, 70, + 140, 171, 141, -1, 76, 46, 140, 205, 141, 49, + 140, 198, 141, -1, 77, 140, 171, 141, -1, 172, + -1, 170, -1, -1, 172, 169, -1, 172, 43, 140, + 205, 141, 6, -1, 172, 46, 140, 205, 141, 6, + -1, 172, 49, 140, 205, 141, 6, -1, 172, 51, + 140, 205, 141, 6, -1, 74, 140, 172, 141, -1, + 74, 100, 135, 198, 136, 6, -1, 74, 4, 135, + 198, 136, 6, -1, 74, 4, 6, -1, 74, 4, + 4, 6, -1, 92, 206, 140, 172, 141, -1, 104, + 209, 6, -1, 105, 209, 6, -1, 104, 140, 172, + 141, -1, 105, 140, 172, 141, -1, 4, 210, 6, + -1, 4, 4, 135, 198, 136, 209, 6, -1, 4, + 4, 4, 135, 198, 136, 6, -1, 4, 198, 6, + -1, 64, 133, 4, 134, 137, 4, 6, -1, 86, + 4, 6, -1, 99, 6, -1, 40, 6, -1, 40, + 140, 198, 139, 198, 139, 198, 139, 198, 139, 198, + 139, 198, 141, 6, -1, 41, 6, -1, 94, 133, + 198, 8, 198, 134, -1, 94, 133, 198, 8, 198, + 8, 198, 134, -1, 94, 4, 95, 140, 198, 8, + 198, 141, -1, 94, 4, 95, 140, 198, 8, 198, + 8, 198, 141, -1, 96, -1, 103, 4, -1, 101, + -1, 102, 4, 6, -1, 97, 133, 198, 134, -1, + 98, -1, 69, 200, 140, 172, 141, -1, 69, 140, + 200, 139, 200, 139, 198, 141, 140, 172, 141, -1, + 69, 140, 200, 139, 200, 139, 200, 139, 198, 141, + 140, 172, 141, -1, -1, 69, 200, 140, 172, 179, + 193, 141, -1, -1, 69, 140, 200, 139, 200, 139, + 198, 141, 140, 172, 180, 193, 141, -1, -1, 69, + 140, 200, 139, 200, 139, 200, 139, 198, 141, 140, + 172, 181, 193, 141, -1, -1, 69, 140, 172, 182, + 193, 141, -1, -1, 69, 4, 135, 198, 136, 140, + 172, 183, 193, 141, -1, 69, 43, 140, 198, 139, + 200, 141, 6, -1, 69, 46, 140, 198, 139, 200, + 141, 6, -1, 69, 49, 140, 198, 139, 200, 141, + 6, -1, 69, 43, 140, 198, 139, 200, 139, 200, + 139, 198, 141, 6, -1, 69, 46, 140, 198, 139, + 200, 139, 200, 139, 198, 141, 6, -1, 69, 49, + 140, 198, 139, 200, 139, 200, 139, 198, 141, 6, + -1, 69, 43, 140, 198, 139, 200, 139, 200, 139, + 200, 139, 198, 141, 6, -1, 69, 46, 140, 198, + 139, 200, 139, 200, 139, 200, 139, 198, 141, 6, + -1, 69, 49, 140, 198, 139, 200, 139, 200, 139, + 200, 139, 198, 141, 6, -1, -1, 69, 43, 140, + 198, 139, 200, 141, 184, 140, 193, 141, 6, -1, + -1, 69, 46, 140, 198, 139, 200, 141, 185, 140, + 193, 141, 6, -1, -1, 69, 49, 140, 198, 139, + 200, 141, 186, 140, 193, 141, 6, -1, -1, 69, + 43, 140, 198, 139, 200, 139, 200, 139, 198, 141, + 187, 140, 193, 141, 6, -1, -1, 69, 46, 140, + 198, 139, 200, 139, 200, 139, 198, 141, 188, 140, + 193, 141, 6, -1, -1, 69, 49, 140, 198, 139, + 200, 139, 200, 139, 198, 141, 189, 140, 193, 141, + 6, -1, -1, 69, 43, 140, 198, 139, 200, 139, + 200, 139, 200, 139, 198, 141, 190, 140, 193, 141, + 6, -1, -1, 69, 46, 140, 198, 139, 200, 139, + 200, 139, 200, 139, 198, 141, 191, 140, 193, 141, + 6, -1, -1, 69, 49, 140, 198, 139, 200, 139, + 200, 139, 200, 139, 198, 141, 192, 140, 193, 141, + 6, -1, 194, -1, 193, 194, -1, 78, 140, 198, + 141, 6, -1, 78, 140, 203, 139, 203, 141, 6, + -1, 78, 140, 203, 139, 203, 139, 203, 141, 6, + -1, 72, 6, -1, 79, 133, 198, 134, 7, 203, + 61, 198, 6, -1, 58, 46, 203, 7, 198, 6, + -1, 58, 46, 203, 7, 198, 61, 63, 198, 6, + -1, 58, 46, 203, 7, 198, 61, 62, 198, 6, + -1, 58, 49, 140, 198, 141, 7, 203, 6, -1, + 58, 49, 140, 198, 141, 7, 203, 4, 6, -1, + 55, 49, 140, 198, 141, 7, 203, 6, -1, 58, + 51, 140, 198, 141, 7, 203, 6, -1, 72, 49, + 203, 7, 198, 6, -1, 72, 49, 203, 6, -1, + 73, 49, 203, 7, 198, 6, -1, 43, 140, 205, + 141, 95, 49, 140, 198, 141, 6, -1, 46, 140, + 205, 141, 95, 49, 140, 198, 141, 6, -1, 46, + 140, 205, 141, 95, 51, 140, 198, 141, 6, -1, + 49, 140, 205, 141, 95, 51, 140, 198, 141, 6, + -1, 75, 6, -1, 199, -1, 133, 198, 134, -1, + 124, 198, -1, 123, 198, -1, 128, 198, -1, 198, + 124, 198, -1, 198, 123, 198, -1, 198, 125, 198, + -1, 198, 126, 198, -1, 198, 127, 198, -1, 198, + 132, 198, -1, 198, 119, 198, -1, 198, 120, 198, + -1, 198, 122, 198, -1, 198, 121, 198, -1, 198, + 118, 198, -1, 198, 117, 198, -1, 198, 116, 198, + -1, 198, 115, 198, -1, 198, 114, 198, 8, 198, + -1, 14, 133, 198, 134, -1, 15, 133, 198, 134, + -1, 16, 133, 198, 134, -1, 17, 133, 198, 134, + -1, 18, 133, 198, 134, -1, 19, 133, 198, 134, + -1, 20, 133, 198, 134, -1, 21, 133, 198, 134, + -1, 22, 133, 198, 134, -1, 24, 133, 198, 134, + -1, 25, 133, 198, 139, 198, 134, -1, 26, 133, + 198, 134, -1, 27, 133, 198, 134, -1, 28, 133, + 198, 134, -1, 29, 133, 198, 134, -1, 30, 133, + 198, 134, -1, 31, 133, 198, 134, -1, 32, 133, + 198, 139, 198, 134, -1, 33, 133, 198, 139, 198, + 134, -1, 34, 133, 198, 139, 198, 134, -1, 23, + 133, 198, 134, -1, 14, 135, 198, 136, -1, 15, + 135, 198, 136, -1, 16, 135, 198, 136, -1, 17, + 135, 198, 136, -1, 18, 135, 198, 136, -1, 19, + 135, 198, 136, -1, 20, 135, 198, 136, -1, 21, + 135, 198, 136, -1, 22, 135, 198, 136, -1, 24, + 135, 198, 136, -1, 25, 135, 198, 139, 198, 136, + -1, 26, 135, 198, 136, -1, 27, 135, 198, 136, + -1, 28, 135, 198, 136, -1, 29, 135, 198, 136, + -1, 30, 135, 198, 136, -1, 31, 135, 198, 136, + -1, 32, 135, 198, 139, 198, 136, -1, 33, 135, + 198, 139, 198, 136, -1, 34, 135, 198, 139, 198, + 136, -1, 23, 135, 198, 136, -1, 3, -1, 9, + -1, 10, -1, 11, -1, 107, -1, 108, -1, 109, + -1, 4, -1, 4, 142, 140, 198, 141, -1, 4, + 135, 198, 136, -1, 138, 4, 135, 136, -1, 4, + 166, -1, 4, 135, 198, 136, 166, -1, 4, 137, + 4, -1, 4, 135, 198, 136, 137, 4, -1, 4, + 137, 4, 166, -1, 4, 135, 198, 136, 137, 4, + 166, -1, 106, 133, 5, 139, 198, 134, -1, 201, + -1, 124, 200, -1, 123, 200, -1, 200, 124, 200, + -1, 200, 123, 200, -1, 140, 198, 139, 198, 139, + 198, 139, 198, 139, 198, 141, -1, 140, 198, 139, + 198, 139, 198, 139, 198, 141, -1, 140, 198, 139, + 198, 139, 198, 141, -1, 133, 198, 139, 198, 139, + 198, 134, -1, 203, -1, 202, 139, 203, -1, 198, + -1, 204, -1, 140, 141, -1, 140, 205, 141, -1, + 124, 140, 205, 141, -1, 198, 125, 140, 205, 141, + -1, 124, 204, -1, 198, 125, 204, -1, 198, 8, + 198, -1, 198, 8, 198, 8, 198, -1, 43, 140, + 198, 141, -1, 170, -1, 178, -1, 4, 135, 136, + -1, 4, 135, 140, 205, 141, 136, -1, 198, -1, + 204, -1, 205, 139, 198, -1, 205, 139, 204, -1, + 140, 198, 139, 198, 139, 198, 139, 198, 141, -1, + 140, 198, 139, 198, 139, 198, 141, -1, 4, -1, + 4, 137, 92, 137, 4, -1, 140, 208, 141, -1, + 4, 135, 198, 136, 137, 93, -1, 206, -1, 208, + 139, 206, -1, 210, -1, 4, -1, 5, -1, 42, + -1, 37, 133, 209, 139, 209, 134, -1, 38, 133, + 209, 134, -1, 39, 133, 209, 134, -1, 36, 133, + 209, 134, -1, 36, 133, 209, 139, 205, 134, -1, + 36, 133, 4, 137, 4, 134, -1, 36, 133, 4, + 135, 198, 136, 137, 4, 134, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -1003,35 +986,35 @@ static const yytype_uint16 yyrline[] = 457, 312, 471, 476, 485, 484, 499, 504, 513, 512, 526, 531, 542, 541, 553, 554, 555, 556, 557, 561, 562, 569, 600, 639, 693, 710, 728, 739, 756, 763, - 778, 796, 822, 849, 863, 880, 895, 913, 933, 956, - 966, 981, 985, 998, 1020, 1036, 1057, 1064, 1075, 1090, - 1098, 1113, 1120, 1132, 1166, 1202, 1224, 1242, 1260, 1278, - 1304, 1322, 1348, 1368, 1386, 1404, 1430, 1447, 1466, 1484, - 1522, 1528, 1534, 1541, 1565, 1589, 1605, 1625, 1642, 1659, - 1680, 1685, 1690, 1695, 1700, 1711, 1717, 1726, 1727, 1732, - 1735, 1739, 1762, 1785, 1808, 1836, 1845, 1858, 1874, 1889, - 1903, 1909, 1915, 1924, 1938, 1986, 2002, 2018, 2037, 2047, - 2069, 2073, 2078, 2083, 2095, 2112, 2129, 2156, 2183, 2214, - 2222, 2228, 2235, 2239, 2248, 2256, 2264, 2273, 2272, 2285, - 2284, 2297, 2296, 2309, 2308, 2320, 2319, 2335, 2342, 2349, - 2356, 2363, 2370, 2377, 2384, 2391, 2399, 2398, 2410, 2409, - 2421, 2420, 2432, 2431, 2443, 2442, 2454, 2453, 2465, 2464, - 2476, 2475, 2487, 2486, 2501, 2504, 2510, 2519, 2539, 2562, - 2566, 2590, 2608, 2626, 2644, 2673, 2708, 2713, 2740, 2754, - 2767, 2784, 2790, 2796, 2799, 2808, 2818, 2819, 2820, 2821, - 2822, 2823, 2824, 2825, 2826, 2833, 2834, 2835, 2836, 2837, - 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, - 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, - 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2866, 2867, 2868, - 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, - 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2895, 2896, - 2897, 2898, 2899, 2900, 2901, 2905, 2921, 2936, 2956, 2969, - 2982, 3005, 3023, 3041, 3059, 3077, 3085, 3089, 3093, 3097, - 3101, 3108, 3112, 3116, 3120, 3127, 3132, 3140, 3145, 3149, - 3154, 3158, 3166, 3177, 3185, 3193, 3199, 3210, 3230, 3240, - 3250, 3267, 3294, 3299, 3303, 3307, 3320, 3324, 3336, 3343, - 3364, 3368, 3383, 3388, 3395, 3399, 3406, 3410, 3418, 3426, - 3440, 3454, 3458, 3477, 3500 + 778, 796, 822, 849, 863, 880, 895, 913, 933, 953, + 961, 966, 980, 993, 1011, 1021, 1036, 1040, 1053, 1075, + 1091, 1113, 1131, 1149, 1167, 1193, 1211, 1237, 1257, 1275, + 1293, 1319, 1336, 1355, 1373, 1411, 1417, 1423, 1430, 1454, + 1478, 1494, 1514, 1531, 1548, 1569, 1574, 1579, 1584, 1589, + 1600, 1606, 1615, 1616, 1621, 1624, 1628, 1651, 1674, 1697, + 1725, 1734, 1737, 1750, 1766, 1781, 1795, 1801, 1807, 1816, + 1830, 1878, 1894, 1910, 1929, 1939, 1961, 1965, 1970, 1975, + 1987, 2004, 2021, 2048, 2075, 2106, 2114, 2120, 2127, 2131, + 2140, 2148, 2156, 2165, 2164, 2177, 2176, 2189, 2188, 2201, + 2200, 2212, 2211, 2227, 2234, 2241, 2248, 2255, 2262, 2269, + 2276, 2283, 2291, 2290, 2302, 2301, 2313, 2312, 2324, 2323, + 2335, 2334, 2346, 2345, 2357, 2356, 2368, 2367, 2379, 2378, + 2393, 2396, 2402, 2411, 2431, 2454, 2458, 2482, 2500, 2518, + 2536, 2565, 2600, 2605, 2632, 2646, 2659, 2676, 2682, 2688, + 2691, 2700, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, + 2718, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, + 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, + 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, + 2754, 2755, 2756, 2758, 2759, 2760, 2761, 2762, 2763, 2764, + 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, + 2775, 2776, 2777, 2778, 2787, 2788, 2789, 2790, 2791, 2792, + 2793, 2797, 2813, 2828, 2848, 2861, 2874, 2897, 2915, 2933, + 2951, 2969, 2977, 2981, 2985, 2989, 2993, 3000, 3004, 3008, + 3012, 3019, 3024, 3032, 3037, 3041, 3046, 3050, 3058, 3069, + 3077, 3085, 3091, 3102, 3122, 3132, 3142, 3159, 3186, 3191, + 3195, 3199, 3212, 3216, 3228, 3235, 3256, 3260, 3275, 3280, + 3287, 3291, 3298, 3302, 3310, 3318, 3332, 3346, 3350, 3369, + 3392 }; #endif @@ -1052,12 +1035,11 @@ static const char *const yytname[] = "tRuled", "tTransfinite", "tComplex", "tPhysical", "tUsing", "tBump", "tProgression", "tPlugin", "tRotate", "tTranslate", "tSymmetry", "tDilate", "tExtrude", "tDuplicata", "tLoop", "tRecombine", "tSmoother", - "tDelete", "tCoherence", "tIntersect", "tBoundary", "tAttractor", - "tLayers", "tHole", "tAlias", "tAliasWithOptions", "tText2D", "tText3D", + "tDelete", "tCoherence", "tIntersect", "tBoundary", "tLayers", "tHole", + "tAlias", "tAliasWithOptions", "tText2D", "tText3D", "tInterpolationScheme", "tTime", "tCombine", "tBSpline", "tBezier", "tNurbs", "tOrder", "tKnots", "tColor", "tColorTable", "tFor", "tIn", - "tEndFor", "tIf", "tEndIf", "tExit", "tField", "tThreshold", - "tStructured", "tLatLon", "tGrad", "tPostView", "tReturn", "tCall", + "tEndFor", "tIf", "tEndIf", "tExit", "tField", "tReturn", "tCall", "tFunction", "tShow", "tHide", "tGetValue", "tGMSH_MAJOR_VERSION", "tGMSH_MINOR_VERSION", "tGMSH_PATCH_VERSION", "tAFFECTDIVIDE", "tAFFECTTIMES", "tAFFECTMINUS", "tAFFECTPLUS", "'?'", "tOR", "tAND", @@ -1096,52 +1078,52 @@ static const yytype_uint16 yytoknum[] = 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 63, 375, 376, 377, 378, 60, 62, 379, 380, 43, - 45, 42, 47, 37, 33, 381, 382, 383, 94, 40, - 41, 91, 93, 46, 35, 44, 123, 125, 126 + 365, 366, 367, 368, 63, 369, 370, 371, 372, 60, + 62, 373, 374, 43, 45, 42, 47, 37, 33, 375, + 376, 377, 94, 40, 41, 91, 93, 46, 35, 44, + 123, 125, 126 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 149, 150, 150, 151, 151, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, - 156, 156, 156, 156, 156, 157, 157, 158, 158, 160, - 161, 159, 162, 162, 164, 163, 165, 165, 167, 166, - 168, 168, 170, 169, 171, 171, 171, 171, 171, 172, - 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 174, 174, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 176, 176, 176, 176, 176, 176, 176, 177, 177, 178, - 178, 178, 178, 178, 178, 179, 179, 179, 179, 180, - 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 184, 184, 184, 185, 184, 186, - 184, 187, 184, 188, 184, 189, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 190, 184, 191, 184, - 192, 184, 193, 184, 194, 184, 195, 184, 196, 184, - 197, 184, 198, 184, 199, 199, 200, 200, 200, 200, - 200, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 202, 202, 202, 202, 203, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 0, 143, 144, 144, 145, 145, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, + 150, 150, 150, 150, 150, 151, 151, 152, 152, 154, + 155, 153, 156, 156, 158, 157, 159, 159, 161, 160, + 162, 162, 164, 163, 165, 165, 165, 165, 165, 166, + 166, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 168, 168, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, + 170, 170, 171, 171, 172, 172, 172, 172, 172, 172, + 173, 173, 173, 173, 173, 174, 175, 175, 175, 175, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 178, 178, 178, 179, 178, 180, 178, 181, 178, 182, + 178, 183, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 184, 178, 185, 178, 186, 178, 187, 178, + 188, 178, 189, 178, 190, 178, 191, 178, 192, 178, + 193, 193, 194, 194, 194, 194, 194, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 196, 196, 196, + 196, 197, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 200, 200, 200, 200, 200, 201, 201, 201, + 201, 202, 202, 203, 203, 203, 203, 203, 203, 204, 204, 204, 204, 204, 204, 204, 204, 204, 205, 205, - 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, - 205, 205, 205, 205, 205, 205, 206, 206, 206, 206, - 206, 207, 207, 207, 207, 208, 208, 209, 209, 209, - 209, 209, 209, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 211, 211, 211, 211, 212, 212, 212, 212, - 213, 213, 214, 214, 215, 215, 216, 216, 216, 216, - 216, 216, 216, 216, 216 + 205, 205, 206, 206, 206, 206, 207, 207, 208, 208, + 209, 209, 210, 210, 210, 210, 210, 210, 210, 210, + 210 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1154,35 +1136,35 @@ static const yytype_uint8 yyr2[] = 0, 10, 1, 3, 0, 13, 1, 3, 0, 15, 8, 14, 0, 6, 1, 1, 1, 1, 1, 1, 1, 4, 7, 9, 6, 6, 3, 6, 4, 6, - 9, 6, 9, 5, 8, 8, 11, 6, 9, 9, - 9, 1, 1, 7, 8, 9, 8, 8, 8, 8, - 9, 8, 5, 6, 6, 6, 7, 7, 7, 9, - 7, 9, 17, 7, 7, 11, 8, 8, 8, 8, - 3, 4, 10, 7, 7, 8, 8, 8, 7, 8, - 5, 11, 5, 9, 4, 9, 4, 1, 1, 0, - 2, 6, 6, 6, 6, 4, 6, 3, 4, 5, - 3, 3, 4, 4, 3, 7, 7, 3, 7, 3, - 2, 2, 15, 2, 6, 8, 8, 10, 1, 2, - 1, 3, 4, 1, 5, 11, 13, 0, 7, 0, - 13, 0, 15, 0, 6, 0, 10, 8, 8, 8, - 12, 12, 12, 14, 14, 14, 0, 12, 0, 12, - 0, 12, 0, 16, 0, 16, 0, 16, 0, 18, - 0, 18, 0, 18, 1, 2, 5, 7, 9, 2, - 9, 6, 9, 9, 8, 9, 8, 8, 6, 4, - 6, 10, 10, 10, 10, 2, 1, 3, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 5, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, - 4, 4, 4, 6, 6, 6, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, - 4, 4, 4, 4, 6, 6, 6, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 5, 4, 4, 2, - 5, 3, 6, 4, 7, 6, 1, 2, 2, 3, - 3, 11, 9, 7, 7, 1, 3, 1, 1, 2, - 3, 4, 5, 2, 3, 3, 5, 4, 1, 1, - 3, 6, 1, 1, 3, 3, 9, 7, 1, 5, - 3, 6, 1, 3, 1, 1, 1, 1, 6, 4, - 4, 4, 6, 6, 9 + 9, 6, 9, 5, 8, 8, 11, 6, 9, 5, + 7, 9, 9, 9, 9, 9, 1, 1, 7, 8, + 6, 7, 7, 7, 9, 7, 9, 17, 7, 7, + 11, 8, 8, 8, 8, 3, 4, 10, 7, 7, + 8, 8, 8, 7, 8, 5, 11, 5, 9, 4, + 9, 4, 1, 1, 0, 2, 6, 6, 6, 6, + 4, 6, 6, 3, 4, 5, 3, 3, 4, 4, + 3, 7, 7, 3, 7, 3, 2, 2, 15, 2, + 6, 8, 8, 10, 1, 2, 1, 3, 4, 1, + 5, 11, 13, 0, 7, 0, 13, 0, 15, 0, + 6, 0, 10, 8, 8, 8, 12, 12, 12, 14, + 14, 14, 0, 12, 0, 12, 0, 12, 0, 16, + 0, 16, 0, 16, 0, 18, 0, 18, 0, 18, + 1, 2, 5, 7, 9, 2, 9, 6, 9, 9, + 8, 9, 8, 8, 6, 4, 6, 10, 10, 10, + 10, 2, 1, 3, 2, 2, 2, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 5, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 6, 4, 4, 4, 4, 4, 4, 6, + 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 6, 4, 4, 4, 4, 4, 4, + 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 5, 4, 4, 2, 5, 3, 6, 4, + 7, 6, 1, 2, 2, 3, 3, 11, 9, 7, + 7, 1, 3, 1, 1, 2, 3, 4, 5, 2, + 3, 3, 5, 4, 1, 1, 3, 6, 1, 1, + 3, 3, 9, 7, 1, 5, 3, 6, 1, 3, + 1, 1, 1, 1, 6, 4, 4, 4, 6, 6, + 9 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1195,288 +1177,282 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 158, 0, 163, 0, 0, 0, 0, 0, 160, - 0, 0, 0, 0, 5, 7, 6, 8, 9, 10, - 11, 12, 13, 19, 18, 14, 15, 16, 17, 288, - 295, 346, 54, 289, 290, 291, 0, 0, 0, 0, + 154, 0, 159, 0, 0, 156, 0, 0, 0, 0, + 5, 7, 6, 8, 9, 10, 11, 12, 13, 19, + 18, 14, 15, 16, 17, 284, 291, 342, 54, 285, + 286, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 343, 0, 0, + 288, 289, 290, 58, 57, 56, 55, 0, 0, 0, + 60, 59, 0, 0, 0, 0, 0, 0, 0, 222, + 0, 0, 0, 0, 147, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 347, 0, 292, 293, 294, 58, 57, 56, 55, - 0, 0, 0, 60, 59, 0, 0, 0, 0, 0, - 0, 0, 226, 0, 0, 0, 0, 151, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 302, 0, 0, 0, 0, 0, 0, 124, 0, + 124, 0, 0, 0, 0, 124, 221, 0, 124, 0, + 0, 0, 0, 0, 0, 334, 0, 0, 0, 0, + 0, 146, 0, 0, 155, 341, 342, 124, 0, 340, + 124, 0, 0, 0, 0, 0, 295, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 306, 0, 0, 0, 0, 0, - 0, 129, 0, 129, 0, 0, 0, 129, 225, 0, - 129, 0, 0, 0, 0, 0, 0, 0, 0, 338, - 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, - 0, 159, 0, 345, 346, 129, 0, 344, 129, 0, - 0, 0, 0, 0, 299, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 291, 225, 224, + 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 143, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 140, 105, 0, + 0, 0, 0, 291, 0, 0, 324, 325, 328, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 295, 229, 228, 230, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 66, 147, 0, + 0, 0, 0, 0, 313, 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 144, 110, 0, 0, 0, 0, - 295, 0, 0, 328, 329, 332, 333, 0, 0, 0, + 0, 0, 304, 303, 0, 0, 0, 0, 124, 124, + 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, + 124, 123, 0, 122, 0, 0, 0, 133, 0, 0, + 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, + 0, 124, 0, 0, 0, 0, 157, 0, 136, 0, + 137, 0, 0, 297, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 317, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 308, 307, 0, 0, 0, 0, 129, 129, 0, 0, - 0, 0, 0, 0, 0, 0, 173, 0, 129, 128, - 0, 127, 0, 0, 0, 137, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, - 0, 129, 0, 0, 0, 0, 0, 0, 0, 161, - 0, 0, 140, 0, 141, 0, 0, 301, 0, 0, - 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 0, 0, 54, 0, 0, 0, 0, 0, 61, 0, + 240, 239, 238, 237, 233, 234, 236, 235, 228, 227, + 229, 230, 231, 232, 106, 0, 0, 0, 0, 0, + 0, 224, 319, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 87, 0, 0, 0, 0, 0, + 0, 0, 306, 305, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 125, 0, 0, 163, + 119, 215, 0, 0, 134, 0, 0, 130, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, - 227, 0, 0, 0, 0, 54, 0, 0, 0, 0, - 0, 61, 0, 244, 243, 242, 241, 237, 238, 240, - 239, 232, 231, 233, 234, 235, 236, 111, 0, 0, - 0, 0, 0, 0, 228, 323, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 81, 82, 0, - 0, 0, 0, 0, 0, 0, 310, 309, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 130, 0, 0, 167, 124, 219, 0, 0, 138, - 0, 135, 0, 126, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, - 0, 0, 0, 142, 143, 0, 297, 303, 0, 39, - 0, 0, 0, 52, 0, 30, 31, 32, 33, 34, - 246, 267, 247, 268, 248, 269, 249, 270, 250, 271, - 251, 272, 252, 273, 253, 274, 254, 275, 266, 287, - 255, 276, 0, 0, 257, 278, 258, 279, 259, 280, - 260, 281, 261, 282, 262, 283, 0, 0, 0, 0, - 0, 0, 0, 0, 351, 0, 0, 349, 350, 0, + 158, 0, 138, 139, 0, 293, 299, 0, 39, 0, + 0, 0, 52, 0, 30, 31, 32, 33, 34, 242, + 263, 243, 264, 244, 265, 245, 266, 246, 267, 247, + 268, 248, 269, 249, 270, 250, 271, 262, 283, 251, + 272, 0, 0, 253, 274, 254, 275, 255, 276, 256, + 277, 257, 278, 258, 279, 0, 0, 0, 0, 0, + 0, 0, 0, 347, 0, 0, 345, 346, 79, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, - 73, 0, 0, 0, 0, 298, 0, 22, 20, 0, - 0, 0, 0, 330, 0, 0, 325, 233, 324, 334, - 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 92, 0, 320, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 120, 122, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 204, 0, 164, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 139, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, - 296, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 73, 0, 0, 0, 0, 294, 0, 22, 20, 0, + 0, 0, 0, 326, 0, 0, 321, 229, 320, 330, + 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 297, 64, 65, 0, 0, 0, 0, 0, 67, 69, - 71, 0, 0, 342, 0, 77, 245, 21, 0, 0, - 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 321, 0, - 95, 0, 0, 0, 0, 0, 211, 0, 0, 0, + 0, 0, 0, 0, 115, 117, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, + 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, + 0, 0, 296, 0, 292, 0, 0, 0, 0, 0, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 293, 64, 65, 0, 0, 0, + 0, 0, 67, 69, 71, 0, 0, 338, 0, 77, + 241, 21, 0, 0, 0, 0, 0, 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 129, 0, 0, 0, 0, 0, 0, 0, 209, 0, - 0, 174, 205, 0, 0, 218, 220, 136, 0, 0, - 93, 94, 27, 28, 0, 0, 0, 339, 0, 0, - 0, 154, 0, 0, 0, 0, 0, 146, 302, 145, - 0, 0, 0, 0, 315, 0, 256, 277, 263, 284, - 264, 285, 265, 286, 0, 353, 352, 348, 305, 0, - 54, 0, 0, 0, 0, 62, 0, 0, 0, 340, - 23, 24, 0, 0, 83, 0, 326, 0, 98, 0, - 100, 0, 0, 96, 0, 0, 113, 114, 0, 0, - 97, 118, 322, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, - 0, 0, 129, 175, 0, 186, 0, 188, 0, 190, - 0, 0, 0, 0, 317, 0, 0, 0, 0, 168, - 0, 0, 103, 104, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 304, 0, 35, 0, 0, 0, 0, - 0, 37, 0, 0, 0, 0, 74, 0, 0, 75, - 0, 343, 0, 0, 331, 0, 0, 0, 106, 0, - 0, 115, 0, 0, 0, 216, 108, 109, 0, 0, - 0, 214, 217, 117, 84, 107, 116, 119, 0, 0, - 0, 314, 0, 313, 0, 0, 0, 177, 0, 0, - 178, 0, 0, 179, 0, 131, 132, 133, 134, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, - 156, 155, 88, 91, 86, 87, 89, 0, 40, 0, - 0, 0, 316, 0, 0, 0, 0, 63, 70, 72, - 0, 78, 0, 25, 0, 0, 99, 101, 0, 0, - 0, 0, 0, 213, 212, 215, 79, 80, 129, 0, - 123, 0, 0, 0, 0, 0, 0, 0, 206, 0, - 0, 129, 0, 125, 85, 0, 0, 0, 90, 0, - 36, 0, 0, 0, 38, 53, 354, 0, 341, 0, - 221, 222, 223, 224, 112, 0, 0, 0, 312, 176, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 169, 0, 0, 336, 157, 0, 0, 0, - 0, 76, 0, 0, 121, 0, 192, 0, 0, 194, - 0, 0, 196, 0, 0, 0, 207, 0, 165, 0, - 129, 105, 0, 44, 0, 50, 0, 0, 0, 311, - 180, 0, 0, 187, 181, 0, 0, 189, 182, 0, - 0, 191, 0, 0, 0, 171, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 200, 0, 202, 208, 210, - 170, 166, 0, 41, 0, 48, 0, 0, 0, 0, - 183, 0, 0, 184, 0, 0, 185, 0, 0, 0, - 42, 0, 0, 152, 0, 0, 0, 0, 0, 0, - 0, 172, 0, 0, 0, 0, 0, 193, 0, 195, - 0, 197, 0, 43, 45, 0, 46, 0, 102, 0, - 0, 0, 0, 0, 51, 199, 201, 203, 47, 49 + 0, 0, 317, 0, 90, 0, 0, 0, 0, 0, + 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, + 0, 0, 205, 0, 0, 170, 201, 0, 0, 214, + 216, 132, 131, 0, 27, 28, 0, 0, 0, 335, + 0, 0, 0, 150, 0, 0, 142, 298, 141, 0, + 0, 0, 0, 311, 0, 252, 273, 259, 280, 260, + 281, 261, 282, 0, 349, 348, 344, 301, 0, 54, + 0, 0, 0, 0, 62, 0, 0, 0, 336, 23, + 24, 0, 0, 88, 0, 322, 0, 93, 0, 95, + 0, 0, 91, 0, 0, 108, 109, 0, 0, 92, + 113, 318, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, + 0, 124, 171, 0, 182, 0, 184, 0, 186, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 164, 0, + 98, 99, 0, 0, 0, 0, 80, 0, 300, 0, + 35, 0, 0, 0, 0, 0, 37, 0, 0, 0, + 0, 74, 0, 0, 75, 0, 339, 0, 0, 327, + 0, 0, 0, 101, 0, 0, 110, 0, 0, 0, + 212, 103, 104, 0, 0, 0, 210, 213, 112, 89, + 102, 111, 114, 0, 0, 0, 310, 0, 309, 0, + 0, 0, 173, 0, 0, 174, 0, 0, 175, 0, + 126, 127, 128, 129, 0, 0, 0, 0, 0, 0, + 0, 0, 333, 0, 152, 151, 0, 0, 0, 40, + 0, 0, 0, 312, 0, 0, 0, 0, 63, 70, + 72, 0, 78, 0, 25, 0, 0, 94, 96, 0, + 0, 0, 0, 0, 209, 208, 211, 84, 85, 124, + 0, 118, 0, 0, 0, 0, 0, 0, 0, 202, + 0, 0, 124, 0, 120, 0, 0, 0, 81, 83, + 82, 0, 36, 0, 0, 0, 38, 53, 350, 0, + 337, 0, 217, 218, 219, 220, 107, 0, 0, 0, + 308, 172, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 165, 0, 0, 332, 153, 0, + 0, 0, 0, 76, 0, 0, 116, 0, 188, 0, + 0, 190, 0, 0, 192, 0, 0, 0, 203, 0, + 161, 0, 124, 100, 0, 44, 0, 50, 0, 0, + 0, 307, 176, 0, 0, 183, 177, 0, 0, 185, + 178, 0, 0, 187, 0, 0, 0, 167, 0, 0, + 0, 0, 0, 0, 0, 194, 0, 196, 0, 198, + 204, 206, 166, 162, 0, 41, 0, 48, 0, 0, + 0, 0, 179, 0, 0, 180, 0, 0, 181, 0, + 0, 0, 42, 0, 0, 148, 0, 0, 0, 0, + 0, 0, 0, 168, 0, 0, 0, 0, 0, 189, + 0, 191, 0, 193, 0, 43, 45, 0, 46, 0, + 97, 0, 0, 0, 0, 0, 51, 195, 197, 199, + 47, 49 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 64, 669, 65, 66, 409, 984, 990, - 595, 761, 1119, 1239, 596, 1207, 1265, 597, 1241, 598, - 599, 765, 129, 224, 67, 526, 551, 313, 370, 371, - 70, 71, 72, 73, 74, 314, 733, 1179, 1222, 552, - 1035, 1038, 1041, 1044, 1191, 1195, 1199, 1231, 1234, 1237, - 729, 730, 76, 77, 78, 332, 132, 350, 174, 883, - 884, 334, 317, 201, 664, 794, 216, 217 + -1, 2, 3, 60, 649, 61, 62, 395, 949, 955, + 574, 735, 1081, 1201, 575, 1169, 1227, 576, 1203, 577, + 578, 739, 126, 216, 63, 512, 536, 306, 362, 363, + 66, 67, 68, 69, 70, 307, 712, 1141, 1184, 537, + 1000, 1003, 1006, 1009, 1153, 1157, 1161, 1193, 1196, 1199, + 708, 709, 72, 73, 74, 324, 129, 342, 171, 852, + 853, 326, 310, 197, 644, 768, 208, 209 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -1068 +#define YYPACT_NINF -1029 static const yytype_int16 yypact[] = { - 3203, 70, 109, 3282, -1068, -1068, 2341, 126, 95, 16, - 26, 180, -94, 127, 137, -45, 166, 169, -46, 173, - 179, 161, -12, 274, 286, 304, 336, 310, 638, 209, - 240, -57, -57, 258, 31, 264, 334, 362, 13, 410, - 371, 288, -3, 416, 439, 449, 324, 329, 333, 18, - 14, -1068, 350, -1068, 469, 385, 394, 395, 400, -1068, - 498, 17, 11, 25, -1068, -1068, -1068, -1068, -1068, -1068, - -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, - 15, 360, 560, -1068, -1068, -1068, -53, 165, 231, 282, - 299, 342, 379, 383, 489, 502, 533, 553, 556, 562, - 571, 574, 592, 620, 621, 647, 651, 386, 389, 392, - 397, -1068, 412, -1068, -1068, -1068, -1068, -1068, -1068, -1068, - 2615, 2615, 2615, -1068, -1068, 2615, 2128, 20, 554, 2615, - 563, 962, -1068, 567, 579, 2615, 587, -1068, 2615, -1068, - 2615, 2483, 2615, 2615, 461, 2615, 2483, 2615, 2615, 464, - 2483, 2615, 2615, 1360, 486, 2615, 496, 511, 515, 1783, - 516, 517, 529, 534, 543, 546, 557, 635, -57, -57, - -57, 2615, 2615, -71, -1068, -18, -57, 558, 561, 575, - 591, 2272, 51, 759, 1783, 1783, 8, -1068, -1068, 606, - 759, 1506, 1783, 573, 622, 774, 2615, 2615, 2615, 640, - 2615, 652, 697, 2615, 2615, -1068, 655, 676, 695, 703, - 816, -1068, 707, -1068, -1068, -1068, 841, -1068, -1068, 844, - 731, 2615, 858, 739, -1068, -1068, 861, 2615, 2615, 2615, - 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, - 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, - 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, - 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, 577, - 641, 641, 641, 873, 568, 756, 756, 756, 5459, 3, - 2483, 2738, 361, 754, 891, 763, 1284, -1068, -1068, 2615, - 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, - 2615, 2615, 2615, 2615, -1068, -1068, 1432, -89, 4015, 5480, - 648, 770, 2483, -1068, -1068, 1708, -1068, 132, 5501, 5522, - 2615, 5543, 632, 5564, 5585, 2615, 669, 5606, 5627, 1783, - 1921, 1218, 1846, 907, -1068, 2615, 5648, 2615, 2615, 2615, - 910, 2615, 2615, 2615, 2552, 2552, 2552, 2552, 778, -22, - -1068, -1068, 4041, 4067, -57, -57, 759, 759, 138, 2615, - 2615, 2615, 2615, 2272, 2272, 2615, 3353, 221, -1068, -1068, - 775, 3353, 194, 914, 917, -1068, 2615, 972, 2483, 779, - 786, 920, 921, 2615, 2615, -1068, 5669, 5690, 5711, 838, - 4093, -1068, 789, 1984, 5732, 2615, 2615, 2615, 2615, -1068, - 2615, 2658, -1068, 2725, -1068, 2615, 4769, 84, 2615, 7, - -1068, 5753, 4792, 5774, 4815, 5795, 4838, 5816, 4861, 5837, - 4884, 5858, 4907, 5879, 4930, 5900, 4953, 5921, 4976, 5942, - 4999, 5963, 5022, 4119, 4145, 5984, 5045, 6005, 5068, 6026, - 5091, 6047, 5114, 6068, 5137, 6089, 5160, 4171, 4197, 4223, - 4249, 4275, 4301, 678, -35, 787, 796, 798, 794, 2615, - -1068, 1783, 1783, 683, 314, 560, 2615, 934, 937, 19, - 800, -1068, 3029, 913, 643, 597, 597, 140, 140, 140, - 140, -34, -34, 756, 756, 756, 756, -1068, 36, 2483, - 2615, 938, 2197, 2615, 756, -1068, 2615, 2483, 2483, 848, - 939, 941, 6110, 942, 854, 944, 945, 6131, 860, 947, - 950, 953, 2483, -1068, 692, 2059, 2615, 6152, 954, 3098, - 6173, 6194, 2615, 3297, 3399, 6215, 820, 2989, -1068, 822, - 823, 824, 826, -57, 2615, 2615, -1068, -1068, 819, 825, - 2615, 5183, 4327, 4353, 4379, 1183, -68, -44, -43, 164, - 866, -1068, 482, -57, 2795, -1068, -1068, 2615, 2615, -1068, - 5206, -1068, 693, -1068, 2615, 1783, 1783, 5229, 5252, 963, - 964, 966, 831, 2615, 2862, 2615, 2615, -1068, 6236, 6257, - 6278, 6299, 6320, -1068, -1068, 5275, 376, -1068, 3427, -1068, - 836, 837, 832, -1068, 971, -1068, -1068, -1068, -1068, -1068, - -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, - -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, - -1068, -1068, 2615, 2615, -1068, -1068, -1068, -1068, -1068, -1068, - -1068, -1068, -1068, -1068, -1068, -1068, 2615, 2615, 2615, 2615, - 2615, 2615, 2615, 975, -1068, 2483, 641, -1068, -1068, 2615, - 5298, 974, 977, 845, -1068, 32, 2615, 980, 983, 1464, - -1068, 984, 852, 18, 988, -1068, 2615, -1068, 869, 641, - -11, 4405, -57, -1068, 2483, 3455, 3049, 756, -1068, 1708, - -1068, 948, 1783, 1783, 989, 1783, 792, 1783, 1783, 992, - 949, 1783, 1783, -1068, 706, -1068, 2483, 1571, 994, 856, - 996, 997, 998, 1142, 1000, 1001, 1003, 1004, 1005, 1006, - 1007, 1021, 279, 4431, 4457, -1068, -1068, 3483, 884, -57, - -57, -57, 2483, 2483, 2483, 2483, 1041, 903, 916, -41, - -1068, 326, -1068, 482, 1603, 1623, 1047, 1008, 6341, 1050, - 1052, 1053, 1057, 1783, 1783, 1783, 1061, 4483, -1068, 3068, - 680, 1059, 1060, 1063, 1064, 1065, 1062, 1069, -1068, 1071, - -1068, 940, 2615, 2615, 1783, 952, -1068, 6362, 5321, 6383, - 5344, 6404, 5367, 6425, 5390, 5413, 956, 182, 965, 6446, - 75, -1068, -1068, 183, 458, 959, 1073, 1756, -1068, -1068, - -1068, 18, 2615, -1068, 709, -1068, 2989, -1068, 1097, 48, - 2615, 2, 710, -1068, 2615, 960, 28, 40, 1783, 1101, - 967, 968, 1102, 1103, 1783, 969, 1105, 1106, -1068, 713, - -1068, 1113, 2615, 1783, 1783, 1783, -1068, 302, 1783, 1783, - 1783, 1783, 1783, 1783, 1783, 390, 2615, 2615, 2615, 976, - -1068, -60, 58, 184, 714, 721, 726, 732, -1068, 1783, - 2615, -1068, -1068, 2272, 202, -1068, -1068, -1068, 979, 1114, - -1068, -1068, -1068, -1068, 1117, 1120, 1028, -1068, 2615, 2615, - 2615, -1068, 1783, 1122, 2615, 2615, 1123, -1068, 84, -1068, - 2615, 4509, 4535, 736, -1068, 2615, -1068, -1068, -1068, -1068, - -1068, -1068, -1068, -1068, 986, -1068, -1068, -1068, -1068, 1783, - 560, 2615, 1124, 1127, 19, -1068, 1128, 5436, 18, -1068, - -1068, -1068, 641, 4561, -1068, 991, 2989, 2615, -1068, -57, - -1068, -57, 1129, -1068, 2615, 2615, -1068, -1068, 1131, 2615, - -1068, -1068, -1068, 1134, 4587, 1135, 1136, 1137, 2615, 2615, - 878, 1138, 1139, 1140, 1141, 1143, 1148, -1068, 2552, 3511, - 6467, 2530, 759, 3353, -57, 1151, -57, 1152, -57, 1157, - 1158, 1160, 1161, 1163, 417, 1025, 6488, 3539, 337, -1068, - 2615, 1783, -1068, -1068, 1783, 3343, 618, 6509, 1165, 1167, - 1884, 2301, 1645, -1068, 207, 2989, 2615, 2615, 1783, 1029, - 741, 2989, 1170, 1171, 1172, 2407, -1068, 1169, 1174, -1068, - 1038, -1068, 1177, 2615, -1068, 3567, 49, 54, -1068, 3595, - 3623, -1068, 3651, 1179, 2615, -1068, -1068, -1068, 2666, 2803, - 1180, -1068, -1068, -1068, -1068, -1068, -1068, -1068, 2875, 1181, - 1039, -1068, 2615, -1068, 1043, 482, 370, -1068, 1042, 475, - -1068, 1046, 479, -1068, 1048, -1068, -1068, -1068, -1068, 1187, - 1783, 1188, 1051, 2615, 3679, 1190, 1107, 2615, -1068, 2615, - -1068, -1068, -1068, -1068, -1068, -1068, -1068, 1193, -1068, 2615, - 4613, 4639, -1068, 1783, 2615, 1194, 1066, -1068, -1068, -1068, - 18, -1068, 1108, -1068, 4665, 1195, -1068, -1068, 1198, 1199, - 1201, 1202, 4691, -1068, -1068, -1068, -1068, -1068, 759, 3371, - -1068, 237, 2272, 482, 2272, 482, 2272, 482, -1068, 744, - 1783, -1068, 3707, -1068, -1068, 2615, 3735, 3763, -1068, 1068, - 2989, 2615, 2615, 745, 2989, -1068, -1068, 1204, -1068, 2615, - -1068, -1068, -1068, -1068, -1068, 1210, 1070, 2615, -1068, -1068, - 3791, 493, 295, 3819, 519, 297, 3847, 541, 322, 1783, - 1212, 1155, 2932, 1074, 2940, -1068, -1068, 2615, 6530, 4717, - 27, -1068, 4743, 1078, -1068, 3875, 1213, 2615, 1219, 1220, - 2615, 1224, 1225, 2615, 1247, 1077, -1068, 2615, -1068, 482, - -1068, -1068, 748, -1068, 2615, -1068, 1783, 2615, 1249, -1068, - -1068, 1109, 3903, -1068, -1068, 1110, 3931, -1068, -1068, 1111, - 3959, -1068, 1252, 3009, 327, 2999, 1253, 1132, 6551, 760, - 3987, 1115, 482, 1271, 482, 1273, 482, 1275, -1068, -1068, - -1068, -1068, 482, -1068, 641, -1068, 1173, 1283, 1313, 347, - -1068, 1176, 356, -1068, 1178, 367, -1068, 1189, 369, 761, - -1068, 1191, 1783, -1068, 1182, 1314, 482, 1319, 482, 1320, - 482, -1068, 641, 1321, 641, 764, 1328, -1068, 380, -1068, - 454, -1068, 500, -1068, -1068, 768, -1068, 1330, -1068, 1332, - 1333, 1335, 641, 1336, -1068, -1068, -1068, -1068, -1068, -1068 + 2852, 30, 42, 2930, -1029, -1029, 2002, 75, 67, -7, + 20, 124, -74, 38, 51, -46, 77, 81, -42, 142, + 160, 122, -28, 138, 253, 256, 502, 265, 78, 204, + 231, -38, -38, 249, 33, 261, 313, 353, 23, 414, + 359, 291, 456, 470, 481, 363, 366, 369, 14, 9, + -1029, 382, -1029, 486, 392, -1029, 528, 532, 12, 19, + -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, + -1029, -1029, -1029, -1029, -1029, -1029, 16, 391, 599, -1029, + -1029, -1029, -55, 64, 189, 225, 323, 335, 442, 448, + 458, 489, 519, 540, 551, 559, 568, 569, 573, 595, + 604, 608, 609, 411, 416, 425, 432, -1029, 555, 455, + -1029, -1029, -1029, -1029, -1029, -1029, -1029, 2207, 2207, 2207, + -1029, -1029, 2207, 1766, 11, 597, 2207, 601, 1933, -1029, + 612, 617, 2207, 621, -1029, 2207, -1029, 2207, 2138, 2207, + 2207, 498, 2207, 2138, 2207, 2207, 514, 2138, 2207, 2207, + 1433, 515, 2207, 513, 525, 534, 1433, 530, 543, 541, + 547, 558, 562, 563, 683, -38, -38, -38, 2207, 2207, + -51, -1029, -23, -38, 553, 570, 577, 580, 1967, 175, + 748, 1433, 1433, 37, 592, -1029, -1029, 610, 748, 616, + 620, 753, 2207, 2207, 2207, 628, 2207, 664, 677, 2207, + 2207, -1029, 2207, 784, -1029, -1029, -1029, -1029, 803, -1029, + -1029, 811, 686, 2207, 826, 694, -1029, -1029, 829, 2207, + 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, + 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, + 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, + 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, + 2207, 710, 790, 790, 790, 2207, 839, 581, 738, 738, + 738, 5242, 55, 2138, 4483, 333, 734, 869, 752, 2311, + -1029, -1029, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, + 2207, 2207, 2207, 2207, 2207, 2207, 2207, -1029, -1029, 2338, + 129, 3729, 5263, 594, 762, 2138, -1029, -1029, 2069, -1029, + 72, 5284, 5305, 2207, 5326, 227, 5347, 5368, 2207, 354, + 5389, 5410, 1565, 1162, 2653, 873, -1029, 2207, 5431, 2207, + 2207, 2207, 881, 2207, 2207, 2207, 2264, 2264, 2264, 2264, + 758, 197, -1029, -1029, 3755, 3781, -38, -38, 748, 748, + 298, 2207, 2207, 2207, 2207, 1967, 1967, 2207, 2996, 328, + -1029, -1029, 759, 2996, 61, 898, 900, -1029, 2207, 2207, + 953, 2138, 766, 2207, 2207, -1029, 5452, 5473, 5494, 816, + 3807, -1029, 769, 2675, 5515, 4506, -1029, 1339, -1029, 1471, + -1029, 2207, 4529, 264, 2207, 8, -1029, 5536, 4552, 5557, + 4575, 5578, 4598, 5599, 4621, 5620, 4644, 5641, 4667, 5662, + 4690, 5683, 4713, 5704, 4736, 5725, 4759, 5746, 4782, 3833, + 3859, 5767, 4805, 5788, 4828, 5809, 4851, 5830, 4874, 5851, + 4897, 5872, 4920, 3885, 3911, 3937, 3963, 3989, 4015, 459, + 133, 771, 777, 780, 2358, 776, 2207, -1029, 1433, 1433, + 429, 266, 599, 2207, 910, 913, 15, 782, -1029, 2702, + 985, 836, 732, 732, 716, 716, 716, 716, 303, 303, + 738, 738, 738, 738, -1029, 59, 2138, 2207, 912, 1829, + 2207, 738, -1029, 2207, 2138, 2138, 825, 914, 921, 5893, + 923, 837, 924, 926, 5914, 841, 927, 930, 2138, -1029, + 615, 1697, 2207, 5935, 935, 3031, 5956, 5977, 2207, 3059, + 3087, 5998, 810, 6229, -1029, 812, 815, 817, 808, -38, + 2207, 2207, -1029, -1029, 809, 830, 2207, 4943, 4041, 4067, + 4093, 3703, -63, -8, -41, 131, -1029, -34, -38, 1603, + -1029, -1029, 2207, 2207, -1029, 4966, 4989, -1029, 619, -1029, + 5012, 5035, 963, 965, 966, 853, 2207, 1867, 2207, 2207, + -1029, 0, -1029, -1029, 5058, 70, -1029, 3115, -1029, 858, + 875, 834, -1029, 986, -1029, -1029, -1029, -1029, -1029, -1029, + -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, + -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, + -1029, 2207, 2207, -1029, -1029, -1029, -1029, -1029, -1029, -1029, + -1029, -1029, -1029, -1029, -1029, 2207, 2207, 2207, 2207, 2207, + 2207, 2207, 991, -1029, 2138, 790, -1029, -1029, -1029, 2207, + 5081, 1000, 1005, 879, -1029, 18, 2207, 1010, 1012, 2390, + -1029, 1013, 886, 14, 1016, -1029, 2207, -1029, 903, 790, + 169, 4119, -38, -1029, 2138, 3143, 2722, 738, -1029, 2069, + -1029, 975, 1433, 1433, 1018, 1433, 712, 1433, 1433, 1020, + 977, 1433, 1433, 632, -1029, 2138, 2409, 1022, 890, 1025, + 1026, 1027, 862, 1028, 1029, 1030, 1031, 1032, 1036, 1037, + 1041, 330, 4145, 4171, -1029, -1029, 3171, 906, -38, -38, + -38, 2138, 2138, 2138, 2138, 1042, 907, 916, 187, -1029, + 395, -1029, -34, 2433, 2460, 1044, 1045, 1003, 1048, 1049, + 1433, 1433, 1433, 1052, 4197, -1029, 2754, 1092, 1053, 1054, + 1056, 1060, -1029, 1061, -1029, 933, 2207, 2207, 1433, 920, + -1029, 6019, 5104, 6040, 5127, 6061, 5150, 6082, 5173, 5196, + 934, 178, 936, 6103, -84, -1029, -1029, 184, 378, 932, + 1065, 2480, -1029, -1029, -1029, 14, 2207, -1029, 650, -1029, + 6229, -1029, 1067, 63, 2207, 46, 657, -1029, 2207, 937, + 25, 28, 1433, 1068, 938, 941, 1069, 1070, 1433, 942, + 1077, 1078, -1029, 658, -1029, 1080, 2207, 1433, 1433, 1433, + -1029, 34, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 441, + 2207, 2207, 2207, 946, -1029, 222, 233, 259, 662, 671, + 692, 708, -1029, 1433, 2207, -1029, -1029, 1967, 198, -1029, + -1029, -1029, -1029, 948, -1029, -1029, 1083, 1084, 1001, -1029, + 2207, 2207, 2207, -1029, 1085, 1086, -1029, 264, -1029, 2207, + 4223, 4249, 721, -1029, 2207, -1029, -1029, -1029, -1029, -1029, + -1029, -1029, -1029, 959, -1029, -1029, -1029, -1029, 1433, 599, + 2207, 1091, 1094, 15, -1029, 1093, 5219, 14, -1029, -1029, + -1029, 790, 4275, -1029, 982, 6229, 2207, -1029, -38, -1029, + -38, 1107, -1029, 2207, 2207, -1029, -1029, 1113, 2207, -1029, + -1029, -1029, 1115, 4301, 1116, 1117, 1118, 2207, 2207, 859, + 1120, 1123, 1124, 1127, 1130, 1131, -1029, 2264, 3199, 6124, + 2947, 748, 2996, -38, 1132, -38, 1133, -38, 1134, 1135, + 1137, 1138, 1140, 292, 1008, 6145, 3227, 422, -1029, 2207, + -1029, -1029, 1433, 2975, 661, 6166, -1029, 1301, -1029, 247, + 6229, 2207, 2207, 1433, 981, 728, 6229, 1144, 1146, 1148, + 2512, -1029, 1143, 1150, -1029, 1021, -1029, 1153, 2207, -1029, + 3255, 54, 58, -1029, 3283, 3311, -1029, 3339, 1155, 2207, + -1029, -1029, -1029, 2531, 2555, 1156, -1029, -1029, -1029, -1029, + -1029, -1029, -1029, 2582, 1157, 1024, -1029, 2207, -1029, 1033, + -34, 461, -1029, 1057, 463, -1029, 1058, 506, -1029, 1059, + -1029, -1029, -1029, -1029, 1161, 1433, 1154, 1062, 2207, 3367, + 1079, 2207, -1029, 2207, -1029, -1029, 1126, 1164, 1194, -1029, + 2207, 4327, 4353, -1029, 1433, 2207, 1195, 1034, -1029, -1029, + -1029, 14, -1029, 1110, -1029, 4379, 1198, -1029, -1029, 1214, + 1215, 1216, 1217, 4405, -1029, -1029, -1029, -1029, -1029, 748, + 3003, -1029, 232, 1967, -34, 1967, -34, 1967, -34, -1029, + 736, 1433, -1029, 3395, -1029, 2207, 3423, 3451, -1029, -1029, + -1029, 1095, 6229, 2207, 2207, 740, 6229, -1029, -1029, 1219, + -1029, 2207, -1029, -1029, -1029, -1029, -1029, 1228, 1096, 2207, + -1029, -1029, 3479, 510, 360, 3507, 520, 362, 3535, 554, + 383, 1433, 1230, 1173, 2306, 1114, 2602, -1029, -1029, 2207, + 6187, 4431, 27, -1029, 4457, 1121, -1029, 3563, 1249, 2207, + 1250, 1251, 2207, 1253, 1255, 2207, 1256, 1122, -1029, 2207, + -1029, -34, -1029, -1029, 744, -1029, 2207, -1029, 1433, 2207, + 1259, -1029, -1029, 1125, 3591, -1029, -1029, 1136, 3619, -1029, + -1029, 1139, 3647, -1029, 1260, 2634, 387, 2362, 1261, 1141, + 6208, 745, 3675, 1145, -34, 1266, -34, 1267, -34, 1268, + -1029, -1029, -1029, -1029, -34, -1029, 790, -1029, 1142, 1269, + 1272, 399, -1029, 1147, 433, -1029, 1152, 435, -1029, 1158, + 478, 754, -1029, 1159, 1433, -1029, 1160, 1274, -34, 1277, + -34, 1282, -34, -1029, 790, 1288, 790, 757, 1290, -1029, + 527, -1029, 531, -1029, 549, -1029, -1029, 760, -1029, 1291, + -1029, 1296, 1302, 1303, 790, 1307, -1029, -1029, -1029, -1029, + -1029, -1029 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1068, -1068, -1068, -1068, 544, -1068, -1068, -1068, -1068, 187, - -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, - -1068, -1068, -279, -2, -1068, 265, 1342, 6, -188, -174, - -1068, -1068, -1068, -1068, -1068, 1343, -1068, -1068, -1068, -1068, - -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, -1068, - -514, -672, -1068, -1068, -1068, -5, -1068, 34, -1068, -1067, - 468, 178, -67, -643, 445, -1068, -63, -1 + -1029, -1029, -1029, -1029, 505, -1029, -1029, -1029, -1029, 188, + -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, + -1029, -1029, -271, -1, -1029, 145, 1311, 6, -187, -175, + -1029, -1029, -1029, -1029, -1029, 1333, -1029, -1029, -1029, -1029, + -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, + -641, -515, -1029, -1029, -1029, -4, -1029, 226, -1029, -1028, + -142, 237, 65, -615, 468, -1029, -59, 5 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1486,1484 +1462,1415 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -5 static const yytype_int16 yytable[] = { - 219, 131, 379, 466, 130, 133, 1123, 366, 914, 69, - 461, 589, 374, 377, 375, 213, 214, 186, 202, 220, - 793, 211, 199, 662, 282, 149, 144, 144, 149, 213, - 214, 726, 137, 1185, 918, 177, 784, 154, 727, 728, - 191, 401, 667, 192, 403, 140, 920, 107, 108, 109, - 110, 488, 141, 111, 911, 1086, 489, 852, 354, 355, - 1087, 107, 108, 109, 110, 173, 175, 111, 182, 354, - 355, 140, 169, 170, 178, 356, 4, 179, 722, 322, - 180, 226, 171, 326, 919, 954, 227, 955, 228, 172, - 590, 591, 592, 593, 145, 145, 921, 300, 301, 302, - 150, 146, 723, 724, 303, 644, 851, 354, 355, 5, - 645, 354, 355, 283, 284, 275, 276, 277, 212, 1209, - 278, 281, 462, 533, 286, 785, 786, 155, 357, 799, - 306, 354, 355, 308, 498, 309, 315, 318, 319, 134, - 321, 315, 323, 324, 135, 315, 327, 328, 906, 376, - 336, 123, 124, 203, 594, 136, 221, 215, 222, 187, - 169, 170, 668, 223, 200, 663, 352, 353, 538, 539, - 171, 218, 138, 1186, 668, 1255, 353, 181, 354, 355, - 354, 355, 852, 354, 355, 656, 139, 354, 355, 369, - 654, 386, 387, 388, 554, 390, 369, 368, 393, 394, - 556, 557, 349, 956, 351, 957, 454, 455, 456, 457, - 358, 123, 124, 463, 153, 367, 406, 574, 757, 854, - 123, 124, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 514, 1001, 142, 354, 355, 298, - 299, 300, 301, 302, 726, 315, 143, 498, 303, 499, - 467, 727, 728, 540, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 116, - 117, 118, 119, 152, 229, 147, 230, 494, 148, 726, - 725, 562, 151, 354, 355, 502, 727, 728, 152, 316, - 507, 654, 896, 156, 316, 494, 315, 498, 316, 958, - 517, 959, 519, 520, 521, 157, 523, 524, 525, 527, - 527, 527, 527, 528, 528, 528, 528, 1068, 167, 969, - 354, 355, 1069, 158, 541, 542, 543, 544, 275, 276, - 545, 162, 369, 369, 938, 939, 553, 726, 465, 726, - 231, 560, 232, 315, 727, 728, 727, 728, 567, 568, - 213, 214, 159, 184, 1139, 160, 168, 161, 536, 537, - 578, 579, 580, 581, 726, 582, 947, 948, 351, 726, - 585, 727, 728, 588, 176, 587, 727, 728, 354, 355, - 183, 185, 107, 108, 109, 110, 188, 189, 111, 726, - 193, 233, 670, 234, 836, 496, 727, 728, 726, 852, - 116, 117, 118, 119, 190, 727, 728, 1127, 235, 726, - 236, 726, 1168, 194, 1171, 694, 727, 728, 727, 728, - 123, 124, 726, 195, 650, 354, 355, 655, 316, 727, - 728, 659, 657, 196, 658, 900, 354, 355, 197, 1174, - 852, 853, 198, 852, 1220, 205, 852, 116, 117, 118, - 119, 237, 1053, 238, 315, 671, 206, 650, 675, 204, - 495, 676, 677, 679, 1245, 207, 208, 123, 124, 354, - 355, 209, 210, 1247, 899, 901, 225, 315, 495, 316, - 677, 697, 123, 124, 1249, 1102, 1251, 703, 239, 757, - 240, 1101, 241, 759, 242, 269, 726, 1269, 270, 713, - 714, 271, 852, 727, 728, 717, 272, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 515, 301, - 302, 273, 734, 735, 726, 303, 316, 852, 285, 738, - 852, 727, 728, 852, 1049, 214, 852, 712, 747, 287, - 749, 750, 726, 304, 116, 117, 118, 119, 777, 727, - 728, 453, 214, 778, 758, 305, 852, 731, 852, 1142, - 852, 1145, 307, 1148, 123, 124, 107, 108, 109, 110, - 320, 1270, 111, 325, 354, 355, 798, 802, 354, 355, - 529, 530, 531, 107, 108, 109, 110, 767, 768, 111, - 1104, 333, 354, 355, 1106, 335, 1059, 340, 243, 819, - 244, 769, 770, 771, 772, 773, 774, 775, 1167, 348, - 315, 245, 337, 246, 779, 213, 214, 1271, 354, 355, - 338, 787, 372, 373, 339, 844, 845, 846, 847, 381, - 382, 796, 341, 342, 1170, 1204, 953, 316, 343, 315, - 354, 355, 247, 344, 248, 678, 680, 107, 108, 109, - 110, 163, 345, 111, 164, 346, 1173, 165, 870, 166, - 316, 315, 249, 678, 250, 251, 347, 252, 1229, 359, - 1232, 253, 1235, 254, 123, 124, 801, 360, 1238, 459, - 255, 222, 256, 257, 383, 258, 223, 315, 315, 315, - 315, 361, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 259, 1258, 260, 1260, 303, 1262, 362, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 378, 841, 842, 843, 303, 881, 882, 261, - 263, 262, 264, 384, 1034, 1060, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 498, 758, 504, - 385, 303, 902, 389, 123, 124, 265, 907, 266, 492, - 267, 222, 268, 392, 395, 913, 223, 511, 391, 916, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 498, 396, 508, 934, 303, 642, - 871, 643, 399, 316, 30, 31, 32, 33, 498, 35, - 653, 949, 950, 951, 397, 40, 41, 498, 498, 695, - 737, 810, 398, 811, 964, 966, 400, 402, 967, 1002, - 404, 498, 316, 818, 908, 498, 909, 915, 498, 498, - 932, 960, 407, 975, 976, 977, 498, 410, 961, 980, - 981, 498, 405, 962, 316, 985, 983, 498, 458, 963, - 991, 988, 1020, 989, 1021, 408, 1074, 968, 1075, 1149, - 988, 1150, 1160, 1074, 303, 1206, 995, 468, 469, 994, - 316, 316, 316, 316, 470, 988, 1252, 1226, 1253, 988, - 1136, 1267, 1005, 1272, 516, 1273, 493, 522, 532, 1009, - 1010, 558, 555, 559, 1012, 564, 563, 565, 566, 651, - 652, 572, 646, 1018, 1019, 575, 647, 1152, 648, 649, - 660, 661, 665, 1028, 681, 672, 682, 1029, 683, 685, - 686, 687, 688, 1006, 691, 1007, 690, 692, 369, 693, - 707, 699, 708, 709, 710, 1054, 715, 212, 288, 711, - 743, 744, 716, 745, 746, 762, 763, 766, 764, 776, - 781, 1070, 1071, 782, 7, 8, 788, 783, 1036, 789, - 1039, 791, 1042, 792, 795, 797, 808, 805, 1084, 814, - 815, 821, 822, 823, 824, 825, 1205, 828, 829, 1092, - 830, 831, 832, 833, 834, 546, 13, 14, 547, 16, - 17, 548, 19, 549, 21, 835, 22, 1099, 24, 25, - 840, 27, 28, 739, 740, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 848, 1112, 849, - 42, 303, 1116, 857, 1117, 850, 860, 858, 861, 862, - 46, 47, 48, 863, 1120, 867, 872, 873, 877, 1124, - 874, 875, 876, 878, 55, 56, 57, 879, 58, 880, - 904, 550, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 895, 1140, 885, 1143, - 303, 1146, 903, 910, 369, 897, 917, 923, 926, 927, - 1154, 930, 931, 924, 925, 929, 1158, 1159, 933, 561, - 974, 971, 952, 972, 1162, 970, 973, 979, 982, 992, - 996, 997, 1165, 1004, 999, 1008, 1141, 1011, 1144, 1013, - 1147, 1015, 1016, 1017, 1022, 1023, 1024, 1025, 826, 1026, - 806, 807, 991, 809, 1027, 812, 813, 1037, 1040, 816, - 817, 1240, 1192, 1043, 1045, 1196, 1046, 1047, 1200, 1048, - 1050, 1062, 1203, 1063, 1076, 1073, 1080, 1077, 1078, 1208, - 1081, 1082, 1210, 1083, 1091, 1098, 1095, 1097, 1103, 1263, - 1100, 1266, 1105, 1108, 1107, 1110, 1114, 1111, 1115, 1118, - 1125, 1130, 1128, 827, 1131, 1132, 1126, 1133, 1134, 1278, - 1161, 864, 865, 866, 1157, 1163, 1177, 1164, 1176, 1190, - 1180, 79, 310, 1188, 1202, 1193, 1194, 83, 84, 85, - 1197, 1198, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 1201, 1211, 1212, 1214, 1216, 1218, 1223, - 1228, 311, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 922, 1230, 1224, 1233, - 303, 1236, 928, 30, 31, 32, 33, 34, 35, 1243, - 471, 935, 936, 937, 40, 41, 940, 941, 942, 943, - 944, 945, 946, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 965, 1244, 1242, - 1257, 303, 1246, 460, 1248, 1259, 1261, 1264, 534, 1256, - 112, 113, 114, 115, 1268, 1250, 1274, 1254, 1275, 1276, - 978, 1277, 1279, 912, 1182, 68, 75, 120, 312, 998, - 0, 0, 122, 0, 0, 0, 0, 125, 0, 0, - 0, 0, 128, 79, 310, 513, 0, 993, 0, 83, - 84, 85, 0, 0, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 0, 0, 0, 0, 0, - 0, 0, 0, 311, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, - 0, 0, 303, 0, 0, 30, 31, 32, 33, 34, - 35, 0, 0, 0, 0, 0, 40, 41, 487, 1055, - 0, 0, 1056, 0, 0, 0, 0, 0, 0, 0, - 1067, 0, 0, 0, 0, 0, 1072, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, - 790, 0, 112, 113, 114, 115, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, - 330, 0, 0, 0, 122, 0, 0, 0, 0, 125, - 0, 0, 0, 0, 128, 0, 331, 0, 0, 79, - 310, 0, 0, 0, 0, 83, 84, 85, 1109, 0, + 211, 372, 128, 358, 453, 127, 1085, 728, 325, 65, + 370, 130, 568, 198, 332, 275, 205, 206, 195, 642, + 212, 151, 758, 205, 206, 141, 134, 183, 767, 146, + 146, 887, 387, 1147, 889, 389, 4, 174, 705, 364, + 365, 366, 5, 367, 706, 707, 120, 121, 103, 104, + 105, 106, 883, 731, 107, 103, 104, 105, 106, 137, + 1047, 107, 448, 141, 1048, 647, 138, 541, 542, 880, + 137, 828, 346, 347, 205, 206, 175, 701, 219, 176, + 220, 888, 177, 218, 890, 166, 167, 142, 131, 348, + 569, 570, 571, 572, 143, 168, 907, 908, 147, 703, + 346, 347, 169, 276, 277, 152, 103, 104, 105, 106, + 759, 760, 107, 268, 269, 270, 132, 349, 271, 274, + 1171, 160, 279, 184, 161, 142, 133, 162, 299, 163, + 136, 301, 702, 302, 308, 311, 312, 729, 314, 308, + 316, 317, 199, 308, 320, 321, 120, 121, 328, 573, + 875, 213, 207, 214, 196, 643, 166, 167, 215, 210, + 135, 524, 525, 185, 344, 345, 168, 1148, 449, 346, + 347, 139, 368, 178, 345, 150, 1217, 346, 347, 648, + 636, 346, 347, 648, 140, 539, 361, 153, 376, 377, + 378, 634, 380, 826, 361, 383, 384, 221, 385, 222, + 120, 121, 440, 441, 442, 443, 557, 731, 315, 392, + 144, 485, 319, 486, 145, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 170, 172, 705, + 179, 444, 966, 475, 149, 706, 707, 623, 476, 308, + 705, 704, 624, 634, 454, 148, 706, 707, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 149, 113, 114, 115, 116, 346, 347, + 483, 481, 154, 773, 705, 155, 631, 632, 485, 489, + 706, 707, 865, 826, 494, 360, 159, 485, 481, 308, + 346, 347, 223, 503, 224, 505, 506, 507, 825, 509, + 510, 511, 513, 513, 513, 513, 519, 164, 450, 938, + 452, 514, 514, 514, 514, 346, 347, 527, 528, 529, + 530, 268, 269, 531, 361, 361, 346, 347, 225, 1062, + 226, 923, 181, 924, 545, 546, 485, 308, 491, 550, + 551, 165, 925, 1101, 926, 309, 113, 114, 115, 116, + 309, 1029, 346, 347, 309, 869, 1030, 564, 500, 173, + 567, 341, 566, 343, 120, 121, 120, 121, 927, 350, + 928, 180, 182, 635, 359, 187, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 501, 294, 295, + 186, 346, 347, 1104, 296, 1107, 1089, 1110, 293, 294, + 295, 188, 705, 1014, 705, 296, 548, 526, 706, 707, + 706, 707, 630, 113, 114, 115, 116, 916, 917, 639, + 637, 346, 347, 346, 347, 705, 227, 638, 228, 705, + 189, 706, 707, 120, 121, 706, 707, 538, 229, 810, + 230, 705, 308, 651, 190, 630, 655, 706, 707, 656, + 657, 659, 515, 516, 517, 191, 868, 870, 113, 114, + 115, 116, 201, 485, 308, 495, 192, 657, 676, 193, + 1166, 1130, 194, 1133, 682, 705, 733, 705, 120, 121, + 309, 706, 707, 706, 707, 200, 692, 693, 346, 347, + 780, 781, 696, 783, 1136, 786, 787, 202, 1182, 790, + 791, 217, 203, 1191, 827, 1194, 204, 1197, 713, 714, + 1207, 650, 482, 1200, 261, 346, 347, 826, 156, 262, + 705, 157, 724, 158, 726, 727, 706, 707, 263, 482, + 309, 1018, 265, 673, 732, 264, 752, 1220, 485, 1222, + 633, 1224, 522, 523, 1209, 231, 1211, 232, 836, 837, + 838, 233, 343, 234, 346, 347, 346, 347, 266, 826, + 772, 235, 826, 236, 621, 826, 622, 741, 742, 705, + 1063, 278, 1065, 705, 206, 706, 707, 280, 309, 706, + 707, 743, 744, 745, 746, 747, 748, 749, 297, 1213, + 308, 705, 237, 298, 238, 753, 300, 706, 707, 346, + 347, 313, 761, 346, 347, 103, 104, 105, 106, 922, + 891, 107, 770, 346, 347, 1067, 897, 318, 327, 1129, + 308, 826, 239, 329, 240, 904, 905, 906, 330, 1132, + 909, 910, 911, 912, 913, 914, 915, 331, 1231, 1023, + 333, 308, 1232, 241, 335, 242, 826, 346, 347, 826, + 336, 934, 826, 334, 243, 826, 244, 340, 351, 751, + 1233, 337, 245, 1135, 246, 338, 339, 308, 308, 308, + 308, 247, 249, 248, 250, 826, 251, 826, 252, 826, + 352, 120, 121, 309, 439, 206, 446, 353, 214, 776, + 354, 658, 660, 215, 120, 121, 958, 369, 253, 479, + 254, 214, 850, 851, 999, 309, 215, 255, 658, 256, + 793, 257, 259, 258, 260, 691, 103, 104, 105, 106, + 371, 373, 107, 732, 485, 374, 674, 871, 485, 375, + 717, 784, 876, 785, 710, 379, 818, 819, 820, 821, + 882, 485, 382, 792, 885, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 877, + 386, 878, 903, 296, 205, 206, 485, 485, 884, 901, + 1020, 485, 1024, 929, 381, 1027, 918, 919, 920, 388, + 485, 1033, 930, 30, 31, 32, 33, 390, 35, 933, + 935, 391, 967, 936, 40, 41, 103, 104, 105, 106, + 393, 485, 107, 931, 394, 396, 943, 944, 945, 291, + 292, 293, 294, 295, 445, 950, 948, 485, 296, 932, + 956, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 953, 309, 954, 985, 296, 986, 960, 1035, 800, 1036, + 296, 455, 1098, 1070, 959, 1111, 456, 1112, 775, 953, + 502, 1122, 970, 1035, 953, 1168, 1188, 457, 508, 974, + 975, 309, 518, 1214, 977, 1215, 953, 1114, 1229, 1234, + 540, 1235, 480, 983, 984, 543, 544, 549, 555, 558, + 625, 626, 309, 993, 627, 629, 640, 641, 645, 652, + 661, 662, 994, 801, 815, 816, 817, 361, 663, 1113, + 665, 667, 666, 668, 671, 1019, 670, 672, 309, 309, + 309, 309, 678, 1026, 686, 690, 687, 1031, 1032, 688, + 694, 689, 1028, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 1045, 7, 8, 1167, 296, 1137, + 720, 695, 721, 722, 738, 1053, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 723, 736, 740, 1060, 296, 750, 532, 13, 14, 533, + 16, 17, 534, 19, 535, 21, 755, 22, 737, 24, + 25, 756, 27, 28, 1073, 757, 762, 1076, 763, 1077, + 765, 766, 769, 771, 779, 782, 1082, 788, 789, 795, + 796, 1086, 797, 798, 799, 802, 803, 804, 805, 806, + 45, 46, 47, 807, 808, 809, 814, 823, 822, 824, + 831, 832, 833, 937, 834, 835, 839, 844, 845, 1102, + 854, 1105, 846, 1108, 847, 361, 849, 848, 864, 872, + 866, 1116, 873, 879, 892, 895, 896, 886, 893, 1120, + 1121, 894, 898, 899, 900, 902, 921, 1124, 939, 940, + 941, 946, 942, 947, 547, 1127, 957, 961, 962, 964, + 842, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 973, 971, 956, 972, 296, 969, 976, + 978, 1034, 980, 981, 982, 1154, 987, 1202, 1158, 988, + 989, 1162, 1078, 990, 483, 1165, 991, 992, 1002, 1005, + 1008, 1010, 1170, 1011, 1012, 1172, 1013, 1015, 1037, 1001, + 1041, 1004, 1038, 1007, 1039, 1225, 1042, 1228, 1043, 1044, + 1052, 1071, 1056, 1058, 1059, 75, 303, 1069, 1088, 1075, + 1079, 79, 80, 81, 1061, 1240, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 0, 0, 0, 0, 0, 0, 0, 0, 311, - 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, - 303, 30, 31, 32, 33, 34, 35, 820, 1151, 0, - 0, 0, 40, 41, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, - 0, 0, 303, 0, 0, 0, 0, 380, 0, 855, - 0, 0, 0, 0, 0, 0, 0, 1175, 112, 113, - 114, 115, 0, 0, 0, 0, 0, 0, 0, 856, - 0, 0, 0, 0, 0, 120, 330, 0, 0, 0, - 122, 0, 0, 0, 0, 125, 0, 0, 79, 310, - 128, 1066, 331, 0, 83, 84, 85, 0, 0, 86, + 96, 97, 98, 99, 100, 101, 102, 1064, 1066, 1068, + 1080, 1087, 1072, 1090, 1092, 304, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 1093, 1094, 1095, 1096, 296, 1123, 843, 30, 31, 32, + 33, 34, 35, 1125, 1139, 1119, 1138, 1126, 40, 41, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 501, 294, 295, 1142, 1152, 1155, 1156, 296, 1159, + 1150, 1160, 1163, 1164, 1173, 1174, 1180, 1185, 109, 110, + 111, 112, 1192, 1195, 1198, 1205, 1176, 1206, 881, 1178, + 1219, 1186, 1204, 1221, 1190, 117, 305, 1208, 1223, 1103, + 119, 1106, 1210, 1109, 1226, 122, 1230, 1236, 1212, 1216, + 125, 1218, 1237, 499, 75, 303, 206, 1144, 1238, 1239, + 79, 80, 81, 1241, 64, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, - 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 30, 31, 32, 33, 34, 35, 496, 0, 0, 0, - 0, 40, 41, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 112, 113, 114, - 115, 303, 905, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 120, 330, 0, 0, 0, 122, - 0, 0, 0, 0, 125, 0, 79, 310, 0, 128, - 0, 331, 83, 84, 85, 0, 0, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 0, 0, - 0, 0, 0, 0, 0, 0, 311, 0, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 497, - 301, 302, 0, 0, 0, 0, 303, 0, 30, 31, - 32, 33, 34, 35, 496, 0, 0, 0, 0, 40, - 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 1064, 0, 0, 0, 303, 112, 113, 114, 115, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 120, 330, 0, 0, 0, 122, 0, 0, - 0, 0, 125, 0, 79, 310, 0, 128, 0, 331, - 83, 84, 85, 0, 0, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 0, 0, 0, 0, - 0, 0, 0, 0, 311, 0, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 515, 301, 302, - 0, 0, 0, 0, 303, 0, 30, 31, 32, 33, - 34, 35, 576, 0, 0, 0, 0, 40, 41, 0, - 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, - 0, 0, 303, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 112, 113, 114, 115, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 120, 312, 0, 0, 0, 122, 0, 0, 0, 0, - 125, 0, 79, 310, 0, 128, 0, 512, 83, 84, - 85, 0, 0, 86, 87, 88, 89, 90, 91, 92, + 97, 98, 99, 100, 101, 102, 71, 103, 104, 105, + 106, 963, 0, 107, 304, 0, 0, 0, 0, 0, + 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, + 34, 35, 0, 0, 0, 0, 0, 40, 41, 0, + 0, 0, 532, 13, 14, 533, 16, 17, 534, 19, + 535, 21, 0, 22, 0, 24, 25, 0, 27, 28, + 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, + 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 117, 322, 45, 46, 47, 119, + 0, 0, 0, 0, 122, 0, 75, 303, 0, 125, + 0, 323, 79, 80, 81, 0, 0, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 0, 0, + 0, 0, 0, 0, 0, 0, 304, 0, 0, 0, + 562, 0, 0, 7, 8, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 32, 33, 34, 35, 0, 0, 0, 0, 0, 40, + 41, 0, 0, 0, 532, 13, 14, 533, 16, 17, + 534, 19, 535, 21, 0, 22, 0, 24, 25, 0, + 27, 28, 0, 0, 0, 0, 0, 0, 0, 109, + 110, 111, 112, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 117, 322, 45, 46, + 47, 119, 0, 0, 0, 0, 122, 0, 75, 303, + 0, 125, 0, 323, 79, 80, 81, 0, 0, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 0, 0, 0, 0, 0, 0, - 0, 0, 311, 0, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, - 0, 0, 303, 0, 30, 31, 32, 33, 34, 35, - 0, 79, 274, 0, 0, 40, 41, 83, 84, 85, - 0, 0, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 0, 0, 0, 0, 0, 0, 0, - 0, 112, 113, 114, 115, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 120, 312, - 0, 0, 0, 122, 0, 0, 0, 0, 125, 0, - 79, 274, 0, 128, 0, 696, 83, 84, 85, 0, - 0, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 0, 0, 0, 0, 0, 0, 0, 0, - 112, 113, 114, 115, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 120, 121, 0, - 0, 0, 122, 0, 0, 0, 0, 125, 0, 0, - 279, 0, 128, 0, 280, 79, 274, 0, 0, 0, - 0, 83, 84, 85, 0, 0, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 1065, 0, 112, - 113, 114, 115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 120, 121, 0, 0, - 0, 122, 0, 0, 0, 0, 125, 0, 0, 673, - 0, 128, 0, 674, 79, 80, 81, 0, 82, 0, - 83, 84, 85, 0, 0, 86, 87, 88, 89, 90, + 0, 0, 0, 0, 0, 0, 0, 0, 304, 0, + 0, 0, 563, 0, 0, 7, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 31, 32, 33, 34, 35, 0, 0, 0, 0, + 0, 40, 41, 0, 0, 0, 532, 13, 14, 533, + 16, 17, 534, 19, 535, 21, 0, 22, 0, 24, + 25, 0, 27, 28, 0, 0, 0, 0, 0, 0, + 0, 109, 110, 111, 112, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 117, 305, + 45, 46, 47, 119, 0, 0, 0, 0, 122, 0, + 75, 303, 0, 125, 0, 498, 79, 80, 81, 0, + 0, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 0, 107, 108, 109, - 110, 0, 0, 111, 112, 113, 114, 115, 0, 0, + 101, 102, 0, 0, 0, 0, 0, 0, 0, 0, + 304, 0, 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 363, 364, 0, 0, 0, 122, 0, 0, 0, - 0, 365, 0, 1079, 0, 0, 128, 0, 172, 0, - 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 30, 31, 32, 33, 34, 35, 0, 75, + 267, 0, 0, 40, 41, 79, 80, 81, 0, 0, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 0, 0, 109, 110, 111, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 112, 113, 114, 115, 116, 117, 118, - 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 120, 121, 0, 0, 0, 122, 0, 123, 124, 0, - 125, 0, 126, 0, 127, 128, 79, 310, 0, 0, - 0, 0, 83, 84, 85, 0, 0, 86, 87, 88, + 117, 305, 0, 0, 0, 119, 0, 0, 0, 0, + 122, 0, 75, 267, 0, 125, 0, 675, 79, 80, + 81, 0, 0, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 0, 0, - 0, 0, 0, 0, 0, 0, 311, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 30, 31, - 32, 33, 34, 35, 0, 79, 274, 214, 0, 40, - 41, 83, 84, 85, 0, 0, 86, 87, 88, 89, + 99, 100, 101, 102, 0, 0, 0, 0, 0, 0, + 0, 0, 109, 110, 111, 112, 0, 0, 0, 7, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 117, + 118, 0, 0, 0, 119, 0, 0, 0, 0, 122, + 0, 0, 272, 0, 125, 0, 273, 0, 0, 0, + 532, 13, 14, 533, 16, 17, 534, 19, 535, 21, + 0, 22, 0, 24, 25, 0, 27, 28, 0, 0, + 0, 0, 0, 0, 0, 109, 110, 111, 112, 281, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 117, 118, 45, 46, 47, 119, 0, 0, + 0, 0, 122, 0, 0, 653, 0, 125, 0, 654, + 75, 267, 0, 0, 0, 0, 79, 80, 81, 0, + 0, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 0, 0, 0, 75, 76, 77, 725, 78, + 0, 79, 80, 81, 0, 0, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 0, 103, 104, + 105, 106, 0, 0, 107, 0, 0, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 0, + 0, 0, 0, 109, 110, 111, 112, 483, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 355, 356, 0, 0, 0, 119, 0, 0, 0, 0, + 357, 0, 108, 0, 0, 125, 0, 169, 109, 110, + 111, 112, 113, 114, 115, 116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 117, 118, 0, 0, 0, + 119, 0, 120, 121, 0, 122, 0, 123, 0, 124, + 125, 75, 303, 0, 0, 0, 0, 79, 80, 81, + 0, 0, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 0, 107, 108, - 109, 110, 0, 0, 111, 112, 113, 114, 115, 0, + 100, 101, 102, 0, 0, 0, 0, 0, 0, 0, + 0, 304, 0, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 484, 294, 295, 0, 0, 0, + 0, 296, 0, 30, 31, 32, 33, 34, 35, 0, + 75, 267, 0, 0, 40, 41, 79, 80, 81, 0, + 0, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 0, 0, 109, 110, 111, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 120, 312, 0, 0, 0, 122, 79, 274, - 0, 0, 125, 0, 83, 84, 85, 128, 0, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 112, 113, 114, 115, 303, 0, - 7, 8, 1093, 0, 0, 1032, 0, 1033, 0, 0, - 0, 120, 121, 0, 0, 0, 122, 0, 0, 0, - 0, 125, 0, 0, 0, 0, 128, 0, 0, 0, - 0, 546, 13, 14, 547, 16, 17, 548, 19, 549, - 21, 0, 22, 0, 24, 25, 0, 27, 28, 0, - 0, 0, 0, 0, 0, 0, 0, 112, 113, 114, - 115, 0, 0, 0, 0, 0, 42, 7, 8, 0, - 0, 0, 0, 0, 120, 121, 46, 47, 48, 122, - 0, 0, 0, 0, 125, 0, 0, 0, 0, 128, - 55, 56, 57, 0, 58, 0, 0, 550, 546, 13, - 14, 547, 16, 17, 548, 19, 549, 21, 0, 22, - 0, 24, 25, 0, 27, 28, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 0, 0, 0, 42, 303, 583, 0, 7, 8, 1094, - 0, 0, 0, 46, 47, 48, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 55, 56, 57, - 0, 58, 0, 0, 550, 0, 0, 0, 546, 13, - 14, 547, 16, 17, 548, 19, 549, 21, 0, 22, - 0, 24, 25, 0, 27, 28, 0, 0, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 584, 42, 7, 8, 303, 0, 0, 0, - 464, 1096, 0, 46, 47, 48, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 55, 56, 57, - 0, 58, 0, 0, 550, 546, 13, 14, 547, 16, - 17, 548, 19, 549, 21, 0, 22, 0, 24, 25, - 0, 27, 28, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 42, 303, 732, 0, 7, 8, 1181, 0, 0, 0, - 46, 47, 48, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 57, 0, 58, 0, - 0, 550, 0, 0, 0, 546, 13, 14, 547, 16, - 17, 548, 19, 549, 21, 0, 22, 0, 24, 25, - 0, 27, 28, 0, 0, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 748, - 42, 7, 8, 303, 0, 1219, 0, 0, 0, 0, - 46, 47, 48, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 57, 666, 58, 0, - 0, 550, 546, 13, 14, 547, 16, 17, 548, 19, - 549, 21, 0, 22, 0, 24, 25, 804, 27, 28, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 0, 0, 869, 42, 303, 1178, - 0, 0, 0, 0, 0, 0, 0, 46, 47, 48, + 0, 117, 305, 0, 0, 0, 119, 75, 267, 206, + 0, 122, 0, 79, 80, 81, 125, 0, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 0, + 103, 104, 105, 106, 0, 0, 107, 0, 0, 0, + 0, 0, 0, 109, 110, 111, 112, 458, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 56, 57, 0, 58, 0, 0, 550, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 1221, 303, 0, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 0, -4, 1, 0, 303, -4, 0, 0, - 0, 0, 0, 0, 0, -4, -4, 0, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 0, 0, 0, 0, 303, 0, -4, 0, - 0, 0, 0, -4, -4, 700, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, 0, -4, -4, -4, - -4, -4, -4, -4, 0, 0, 0, -4, -4, -4, - -4, -4, -4, -4, 0, -4, -4, -4, -4, -4, - -4, -4, 0, 0, -4, -4, 6, 0, 0, 0, - -4, -4, -4, -4, 7, 8, -4, 0, -4, 0, - -4, -4, -4, -4, 0, -4, -4, -4, 0, -4, - -4, -4, -4, -4, -4, 0, 0, 9, 0, 0, - 0, 0, 10, 11, 0, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 0, 22, 23, 24, 25, - 26, 27, 28, 0, 0, 0, 29, 30, 31, 32, - 33, 34, 35, 0, 36, 37, 38, 39, 40, 41, - 42, 0, 0, 43, 44, 7, 8, 0, 0, 45, - 46, 47, 48, 0, 0, 49, 0, 50, 0, 51, - 52, 53, 54, 0, 55, 56, 57, 0, 58, 59, - 60, 61, 62, 63, 0, 0, 546, 13, 14, 547, - 16, 17, 548, 19, 549, 21, 0, 22, 0, 24, - 25, 0, 27, 28, 0, 0, 0, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 42, 0, 0, 0, 303, 0, 0, 0, 0, - 0, 46, 47, 48, 704, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 56, 57, 0, 58, - 0, 0, 550, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 0, 0, 0, 1057, 0, - 1058, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 0, 0, 0, 1137, 0, 1138, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, - 0, 0, 0, 0, 0, 0, 705, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, - 0, 0, 0, 0, 760, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 803, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, - 839, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 0, 0, 0, 0, 0, 1030, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, - 0, 0, 0, 0, 0, 0, 1052, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, - 0, 0, 0, 0, 1085, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 1088, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, - 1089, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 0, 0, 0, 0, 0, 1090, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, - 0, 0, 0, 0, 0, 0, 1113, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, - 0, 0, 0, 0, 1153, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 1155, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, - 1156, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 0, 0, 0, 0, 0, 1166, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, - 0, 0, 0, 0, 0, 0, 1169, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, - 0, 0, 0, 0, 1172, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 1189, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, - 1213, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 0, 0, 0, 0, 0, 1215, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, - 0, 0, 0, 0, 0, 0, 1217, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, - 0, 0, 0, 0, 1227, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, - 490, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 0, 0, 0, 534, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, - 0, 0, 535, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 0, 0, 0, 573, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, - 0, 0, 0, 0, 622, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, - 623, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 0, 0, 0, 636, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, - 0, 0, 637, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 0, 0, 0, 638, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, - 0, 0, 0, 0, 639, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, - 640, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 0, 0, 0, 641, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, - 0, 0, 719, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 0, 0, 0, 720, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, - 0, 0, 0, 0, 721, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, - 800, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 0, 0, 0, 837, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, - 0, 0, 838, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 0, 0, 0, 868, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, - 0, 0, 0, 0, 986, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, - 987, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 0, 0, 0, 1003, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, - 0, 0, 1014, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 0, 0, 0, 1121, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, - 0, 0, 0, 0, 1122, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, - 1129, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 0, 0, 0, 1135, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, - 0, 0, 1184, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 0, 0, 0, 1187, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, - 0, 586, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, - 303, 0, 0, 0, 601, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 0, 0, 603, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 0, 0, 0, 0, 303, 0, 0, 0, - 605, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 607, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, - 0, 0, 303, 0, 0, 0, 609, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 611, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, - 0, 0, 613, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 615, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 0, 0, 0, 0, 303, 0, 0, 0, 617, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, - 0, 619, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, - 303, 0, 0, 0, 621, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 0, 0, 625, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 0, 0, 0, 0, 303, 0, 0, 0, - 627, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 629, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, - 0, 0, 303, 0, 0, 0, 631, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 633, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, - 0, 0, 635, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 718, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 0, 0, 0, 0, 303, 0, 0, 0, 736, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, - 0, 741, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, - 303, 0, 0, 0, 742, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 0, 0, 756, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 0, 0, 0, 0, 303, 0, 0, 0, - 780, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 0, 0, 887, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, - 0, 0, 303, 0, 0, 0, 889, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 0, 0, 891, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, - 0, 0, 893, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 0, 0, 894, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 0, 0, 0, 0, 303, 0, 0, 0, 1000, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 460, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, - 491, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 500, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, - 303, 0, 501, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 503, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, - 0, 0, 303, 0, 505, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 506, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 0, 0, 0, 0, 303, 0, 509, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 510, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 0, 0, 0, 0, 303, 0, 518, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 569, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, - 570, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 571, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, - 303, 0, 577, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 600, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, - 0, 0, 303, 0, 602, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 604, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 0, 0, 0, 0, 303, 0, 606, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 608, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 0, 0, 0, 0, 303, 0, 610, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 612, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, - 614, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 616, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, - 303, 0, 618, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 620, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, - 0, 0, 303, 0, 624, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 626, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 0, 0, 0, 0, 303, 0, 628, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 630, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 0, 0, 0, 0, 303, 0, 632, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 634, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, - 684, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 689, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, - 303, 0, 698, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 701, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, - 0, 0, 303, 0, 702, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 706, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 0, 0, 0, 0, 303, 0, 751, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 752, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 0, 0, 0, 0, 303, 0, 753, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 754, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, - 755, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 859, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, - 303, 0, 886, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, - 0, 303, 0, 888, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, - 0, 0, 303, 0, 890, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, - 0, 0, 0, 303, 0, 892, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 0, 0, 0, 0, 303, 0, 898, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 0, 0, 0, 0, 303, 0, 1031, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 0, 0, 0, 0, 303, 0, 1051, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 0, 0, 0, 0, 303, 0, 1061, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, - 1183, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, - 0, 1225 + 117, 118, 0, 0, 0, 119, 0, 0, 0, 0, + 122, 0, 0, 0, 474, 125, 0, 0, 0, 532, + 13, 14, 533, 16, 17, 534, 19, 535, 21, 0, + 22, 0, 24, 25, 628, 27, 28, 0, 0, 0, + 109, 110, 111, 112, 7, 8, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 117, 118, 0, + 0, 0, 119, 45, 46, 47, 764, 122, 0, 0, + 0, 0, 125, 0, 0, 532, 13, 14, 533, 16, + 17, 534, 19, 535, 21, 794, 22, 0, 24, 25, + 0, 27, 28, 0, 0, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 829, + 0, 0, 0, 296, 0, 0, 0, 1140, 0, 45, + 46, 47, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 830, 0, 0, 0, + 296, 0, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 874, 0, 0, 0, + 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1183, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 1040, 0, + 0, 0, 296, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 1054, 0, 0, + 0, 296, 0, 0, 0, 0, 0, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 1055, 0, 0, 0, 296, 0, 0, 0, 0, + 0, 0, 0, 0, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 1057, 0, + 0, 0, 296, 0, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 1143, 0, + 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 1181, 0, 0, 0, 296, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 483, 0, 296, 0, 0, 0, 0, 0, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 559, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 0, 0, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 646, 0, 0, 0, 296, 0, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 778, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 841, 0, 0, 0, 296, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 501, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 0, 0, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 0, 0, 0, 296, 0, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 0, -4, 1, 296, 0, -4, 0, 0, 0, + 0, 0, 0, 0, -4, -4, 0, 0, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 0, 0, 0, 0, 296, -4, 0, 0, + 0, 0, -4, -4, 0, -4, -4, -4, -4, -4, + -4, -4, -4, -4, -4, 0, -4, -4, -4, -4, + -4, -4, -4, 0, 0, 0, -4, -4, -4, -4, + -4, -4, -4, 0, -4, -4, -4, -4, -4, -4, + 0, 0, -4, -4, 6, 0, 0, 0, -4, -4, + -4, -4, 7, 8, -4, 0, -4, 0, -4, -4, + -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, + 10, 11, 0, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 0, 22, 23, 24, 25, 26, 27, + 28, 0, 0, 0, 29, 30, 31, 32, 33, 34, + 35, 0, 36, 37, 38, 39, 40, 41, 7, 8, + 42, 43, 0, 0, 0, 0, 44, 45, 46, 47, + 0, 0, 48, 0, 49, 0, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 0, 0, 0, 532, + 13, 14, 533, 16, 17, 534, 19, 535, 21, 0, + 22, 0, 24, 25, 0, 27, 28, 0, 0, 0, + 0, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 45, 46, 47, 997, 0, 998, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 1021, 0, 1022, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 0, + 0, 0, 1099, 0, 1100, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 679, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, + 683, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 0, 0, 684, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 0, 0, 734, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 0, + 0, 0, 0, 0, 777, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 813, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, + 995, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 0, 0, 1017, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 0, 0, 1046, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 0, + 0, 0, 0, 0, 1049, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 1050, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, + 1051, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 0, 0, 1074, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 0, 0, 1115, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 0, + 0, 0, 0, 0, 1117, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 1118, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, + 1128, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 0, 0, 1131, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 0, 0, 1134, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 0, + 0, 0, 0, 0, 1151, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 1175, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, + 1177, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 0, 0, 1179, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 0, 0, 1189, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 447, 0, 0, + 0, 0, 520, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 0, 0, 0, 477, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 520, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 521, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 556, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 0, + 0, 0, 601, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 0, 0, 0, 602, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 615, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 616, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 617, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 0, + 0, 0, 618, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 0, 0, 0, 619, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 620, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 698, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 699, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 0, + 0, 0, 700, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 0, 0, 0, 774, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 811, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 812, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 840, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 0, + 0, 0, 951, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 0, 0, 0, 952, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 968, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 979, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 1083, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 0, + 0, 0, 1084, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 0, 0, 0, 1091, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 1097, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 1146, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 1149, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 451, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 0, 0, 0, 0, 296, 0, + 0, 0, 561, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 565, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 0, 0, 0, 296, 0, 0, 0, 580, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 582, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 0, 0, 0, 0, + 296, 0, 0, 0, 584, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 586, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 0, 0, 0, 0, 296, 0, 0, 0, + 588, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 590, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 0, 0, + 0, 0, 296, 0, 0, 0, 592, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 594, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 0, 0, 0, 0, 296, 0, + 0, 0, 596, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 598, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 0, 0, 0, 296, 0, 0, 0, 600, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 604, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 0, 0, 0, 0, + 296, 0, 0, 0, 606, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 608, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 0, 0, 0, 0, 296, 0, 0, 0, + 610, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 612, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 0, 0, + 0, 0, 296, 0, 0, 0, 614, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 697, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 0, 0, 0, 0, 296, 0, + 0, 0, 715, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 716, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 0, 0, 0, 296, 0, 0, 0, 718, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 0, + 0, 719, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 0, 0, 0, 0, + 296, 0, 0, 0, 730, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 0, 0, 754, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 0, 0, 0, 0, 296, 0, 0, 0, + 856, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 0, 0, 858, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 0, 0, + 0, 0, 296, 0, 0, 0, 860, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 0, 0, 862, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 0, 0, 0, 0, 296, 0, + 0, 0, 863, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 0, 0, 965, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 0, 0, 0, 296, 0, 447, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 478, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 0, 0, 0, 0, 296, 0, 487, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 488, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 0, 0, 0, 0, 296, 0, + 490, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 492, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 0, 0, 0, 0, + 296, 0, 493, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 496, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 0, 0, + 0, 0, 296, 0, 497, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 504, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 0, 0, 0, 296, 0, 552, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 553, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 0, 0, 0, 0, 296, 0, 554, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 560, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 0, 0, 0, 0, 296, 0, + 579, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 581, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 0, 0, 0, 0, + 296, 0, 583, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 585, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 0, 0, + 0, 0, 296, 0, 587, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 589, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 0, 0, 0, 296, 0, 591, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 593, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 0, 0, 0, 0, 296, 0, 595, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 597, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 0, 0, 0, 0, 296, 0, + 599, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 603, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 0, 0, 0, 0, + 296, 0, 605, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 607, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 0, 0, + 0, 0, 296, 0, 609, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 611, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 0, 0, 0, 296, 0, 613, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 664, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 0, 0, 0, 0, 296, 0, 669, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 677, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 0, 0, 0, 0, 296, 0, + 680, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 681, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 0, 0, 0, 0, + 296, 0, 685, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296, 0, 855, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 0, 0, + 0, 0, 296, 0, 857, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 0, + 0, 0, 0, 296, 0, 859, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 0, 0, 0, 0, 296, 0, 861, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 0, 0, 0, 0, 296, 0, 867, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 0, 0, 0, 0, 296, 0, 996, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 0, 0, 0, 0, 296, 0, 1016, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 0, 0, 0, 0, 296, 0, + 1025, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 0, 0, 0, 0, 296, + 0, 1145, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 0, 0, 0, 0, + 296, 0, 1187, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 0, 0, 0, + 0, 296 }; static const yytype_int16 yycheck[] = { - 63, 6, 190, 282, 6, 6, 1073, 181, 6, 3, - 7, 4, 4, 187, 6, 4, 5, 4, 4, 4, - 663, 4, 4, 4, 4, 71, 71, 71, 71, 4, - 5, 72, 6, 6, 6, 4, 4, 49, 79, 80, - 43, 215, 6, 46, 218, 139, 6, 36, 37, 38, - 39, 140, 146, 42, 6, 6, 145, 729, 129, 130, - 6, 36, 37, 38, 39, 31, 32, 42, 34, 129, - 130, 139, 129, 130, 43, 146, 6, 46, 146, 146, - 49, 82, 139, 150, 56, 145, 139, 147, 141, 146, - 83, 84, 85, 86, 139, 139, 56, 131, 132, 133, - 146, 146, 146, 146, 138, 140, 147, 129, 130, 0, - 145, 129, 130, 93, 94, 120, 121, 122, 101, 1186, - 125, 126, 119, 145, 129, 93, 94, 139, 146, 140, - 135, 129, 130, 138, 145, 140, 141, 142, 143, 13, - 145, 146, 147, 148, 49, 150, 151, 152, 791, 141, - 155, 136, 137, 139, 147, 139, 141, 146, 143, 146, - 129, 130, 126, 148, 146, 146, 171, 172, 356, 357, - 139, 146, 146, 146, 126, 1242, 181, 146, 129, 130, - 129, 130, 854, 129, 130, 464, 6, 129, 130, 183, - 7, 196, 197, 198, 368, 200, 190, 146, 203, 204, - 6, 7, 168, 145, 170, 147, 269, 270, 271, 272, - 176, 136, 137, 280, 53, 181, 221, 391, 143, 733, - 136, 137, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 331, 908, 139, 129, 130, 129, - 130, 131, 132, 133, 72, 280, 139, 145, 138, 147, - 282, 79, 80, 145, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 116, - 117, 118, 119, 139, 139, 139, 141, 312, 139, 72, - 146, 378, 139, 129, 130, 320, 79, 80, 139, 141, - 325, 7, 140, 49, 146, 330, 331, 145, 150, 145, - 335, 147, 337, 338, 339, 49, 341, 342, 343, 344, - 345, 346, 347, 344, 345, 346, 347, 140, 139, 147, - 129, 130, 145, 49, 359, 360, 361, 362, 363, 364, - 365, 51, 356, 357, 62, 63, 145, 72, 7, 72, - 139, 376, 141, 378, 79, 80, 79, 80, 383, 384, - 4, 5, 46, 49, 147, 49, 146, 51, 354, 355, - 395, 396, 397, 398, 72, 400, 6, 7, 364, 72, - 405, 79, 80, 408, 146, 407, 79, 80, 129, 130, - 146, 49, 36, 37, 38, 39, 6, 46, 42, 72, - 4, 139, 489, 141, 145, 8, 79, 80, 72, 1101, - 116, 117, 118, 119, 146, 79, 80, 1080, 139, 72, - 141, 72, 147, 4, 147, 512, 79, 80, 79, 80, - 136, 137, 72, 4, 459, 129, 130, 143, 280, 79, - 80, 466, 464, 139, 465, 7, 129, 130, 139, 147, - 1142, 145, 139, 1145, 147, 6, 1148, 116, 117, 118, - 119, 139, 145, 141, 489, 490, 101, 492, 493, 139, - 312, 496, 497, 498, 147, 101, 101, 136, 137, 129, - 130, 101, 4, 147, 783, 784, 146, 512, 330, 331, - 515, 516, 136, 137, 147, 145, 147, 522, 139, 143, - 141, 1035, 139, 586, 141, 139, 72, 147, 139, 534, - 535, 139, 1204, 79, 80, 540, 139, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 139, 557, 558, 72, 138, 378, 1229, 4, 564, - 1232, 79, 80, 1235, 147, 5, 1238, 533, 573, 6, - 575, 576, 72, 6, 116, 117, 118, 119, 645, 79, - 80, 4, 5, 646, 586, 6, 1258, 553, 1260, 1103, - 1262, 1105, 5, 1107, 136, 137, 36, 37, 38, 39, - 139, 147, 42, 139, 129, 130, 669, 674, 129, 130, - 345, 346, 347, 36, 37, 38, 39, 622, 623, 42, - 145, 153, 129, 130, 145, 139, 8, 159, 139, 696, - 141, 636, 637, 638, 639, 640, 641, 642, 145, 4, - 645, 139, 146, 141, 649, 4, 5, 147, 129, 130, - 139, 656, 184, 185, 139, 722, 723, 724, 725, 191, - 192, 666, 146, 146, 145, 1179, 840, 489, 139, 674, - 129, 130, 139, 139, 141, 497, 498, 36, 37, 38, - 39, 43, 139, 42, 46, 139, 145, 49, 8, 51, - 512, 696, 139, 515, 141, 139, 139, 141, 1212, 141, - 1214, 139, 1216, 141, 136, 137, 672, 146, 1222, 141, - 139, 143, 141, 139, 141, 141, 148, 722, 723, 724, - 725, 146, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 139, 1246, 141, 1248, 138, 1250, 146, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 146, 719, 720, 721, 138, 762, 763, 139, - 139, 141, 141, 141, 952, 147, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 145, 780, 147, - 6, 138, 784, 143, 136, 137, 139, 792, 141, 141, - 139, 143, 141, 96, 139, 800, 148, 329, 146, 804, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 145, 139, 147, 822, 138, 141, - 140, 143, 6, 645, 65, 66, 67, 68, 145, 70, - 147, 836, 837, 838, 139, 76, 77, 145, 145, 147, - 147, 49, 139, 51, 849, 850, 139, 6, 853, 912, - 6, 145, 674, 147, 145, 145, 147, 147, 145, 145, - 147, 147, 4, 868, 869, 870, 145, 6, 147, 874, - 875, 145, 141, 147, 696, 880, 878, 145, 5, 147, - 885, 145, 4, 147, 6, 146, 145, 853, 147, 145, - 145, 147, 147, 145, 138, 147, 901, 143, 7, 900, - 722, 723, 724, 725, 141, 145, 145, 147, 147, 145, - 1098, 147, 917, 145, 7, 147, 146, 7, 140, 924, - 925, 7, 147, 6, 929, 139, 147, 7, 7, 461, - 462, 93, 145, 938, 939, 146, 140, 1111, 140, 145, - 6, 4, 142, 948, 96, 7, 7, 948, 7, 7, - 96, 7, 7, 919, 7, 921, 96, 7, 952, 6, - 140, 7, 140, 140, 140, 970, 147, 101, 6, 143, - 7, 7, 147, 7, 143, 139, 139, 6, 146, 4, - 6, 986, 987, 6, 12, 13, 6, 142, 954, 6, - 956, 7, 958, 141, 6, 126, 7, 49, 1003, 7, - 51, 7, 146, 7, 7, 7, 1180, 7, 7, 1014, - 7, 7, 7, 7, 7, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 4, 54, 1032, 56, 57, - 146, 59, 60, 565, 566, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 6, 1053, 146, - 78, 138, 1057, 6, 1059, 139, 6, 49, 6, 6, - 88, 89, 90, 6, 1069, 4, 7, 7, 6, 1074, - 7, 7, 7, 4, 102, 103, 104, 6, 106, 139, - 7, 109, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 140, 1102, 146, 1104, - 138, 1106, 143, 6, 1098, 140, 146, 6, 6, 6, - 1115, 6, 6, 146, 146, 146, 1121, 1122, 5, 147, - 92, 7, 146, 6, 1129, 146, 6, 5, 5, 143, - 6, 4, 1137, 142, 6, 6, 1102, 6, 1104, 5, - 1106, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 682, 683, 1157, 685, 6, 687, 688, 6, 6, 691, - 692, 1224, 1167, 6, 6, 1170, 6, 6, 1173, 6, - 145, 6, 1177, 6, 4, 146, 7, 6, 6, 1184, - 6, 143, 1187, 6, 5, 146, 6, 6, 146, 1252, - 147, 1254, 146, 6, 146, 7, 6, 146, 91, 6, - 6, 6, 94, 61, 6, 6, 140, 6, 6, 1272, - 6, 743, 744, 745, 146, 5, 61, 147, 6, 6, - 146, 3, 4, 145, 147, 6, 6, 9, 10, 11, - 6, 6, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 6, 5, 146, 146, 146, 6, 6, - 145, 43, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 808, 6, 146, 6, - 138, 6, 814, 65, 66, 67, 68, 69, 70, 6, - 6, 823, 824, 825, 76, 77, 828, 829, 830, 831, - 832, 833, 834, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 849, 5, 146, - 6, 138, 146, 140, 146, 6, 6, 6, 145, 147, - 112, 113, 114, 115, 6, 146, 6, 146, 6, 6, - 872, 6, 6, 799, 1157, 3, 3, 129, 130, 904, - -1, -1, 134, -1, -1, -1, -1, 139, -1, -1, - -1, -1, 144, 3, 4, 147, -1, 899, -1, 9, - 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, - -1, -1, -1, 43, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, -1, -1, 65, 66, 67, 68, 69, - 70, -1, -1, -1, -1, -1, 76, 77, 6, 971, - -1, -1, 974, -1, -1, -1, -1, -1, -1, -1, - 982, -1, -1, -1, -1, -1, 988, -1, -1, -1, - -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, - 6, -1, 112, 113, 114, 115, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, - 130, -1, -1, -1, 134, -1, -1, -1, -1, 139, - -1, -1, -1, -1, 144, -1, 146, -1, -1, 3, - 4, -1, -1, -1, -1, 9, 10, 11, 1050, -1, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, -1, -1, -1, -1, -1, -1, -1, -1, 43, - -1, -1, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, - 138, 65, 66, 67, 68, 69, 70, 6, 1110, -1, - -1, -1, 76, 77, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, -1, -1, -1, -1, 101, -1, 6, - -1, -1, -1, -1, -1, -1, -1, 1149, 112, 113, - 114, 115, -1, -1, -1, -1, -1, -1, -1, 6, - -1, -1, -1, -1, -1, 129, 130, -1, -1, -1, - 134, -1, -1, -1, -1, 139, -1, -1, 3, 4, - 144, 6, 146, -1, 9, 10, 11, -1, -1, 14, + 59, 188, 6, 178, 275, 6, 1034, 7, 150, 3, + 185, 6, 4, 4, 156, 4, 4, 5, 4, 4, + 4, 49, 4, 4, 5, 71, 6, 4, 643, 71, + 71, 6, 207, 6, 6, 210, 6, 4, 72, 181, + 182, 4, 0, 6, 78, 79, 130, 131, 36, 37, + 38, 39, 6, 137, 42, 36, 37, 38, 39, 133, + 6, 42, 7, 71, 6, 6, 140, 6, 7, 6, + 133, 712, 123, 124, 4, 5, 43, 140, 133, 46, + 135, 56, 49, 78, 56, 123, 124, 133, 13, 140, + 82, 83, 84, 85, 140, 133, 62, 63, 140, 140, + 123, 124, 140, 92, 93, 133, 36, 37, 38, 39, + 92, 93, 42, 117, 118, 119, 49, 140, 122, 123, + 1148, 43, 126, 100, 46, 133, 133, 49, 132, 51, + 6, 135, 140, 137, 138, 139, 140, 137, 142, 143, + 144, 145, 133, 147, 148, 149, 130, 131, 152, 141, + 765, 135, 140, 137, 140, 140, 123, 124, 142, 140, + 140, 348, 349, 140, 168, 169, 133, 140, 113, 123, + 124, 133, 135, 140, 178, 53, 1204, 123, 124, 120, + 451, 123, 124, 120, 133, 360, 180, 49, 192, 193, + 194, 7, 196, 708, 188, 199, 200, 133, 202, 135, + 130, 131, 261, 262, 263, 264, 381, 137, 143, 213, + 133, 139, 147, 141, 133, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 31, 32, 72, + 34, 265, 877, 134, 133, 78, 79, 134, 139, 273, + 72, 140, 139, 7, 275, 133, 78, 79, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 133, 110, 111, 112, 113, 123, 124, + 8, 305, 49, 134, 72, 49, 448, 449, 139, 313, + 78, 79, 134, 828, 318, 140, 51, 139, 322, 323, + 123, 124, 133, 327, 135, 329, 330, 331, 141, 333, + 334, 335, 336, 337, 338, 339, 139, 133, 273, 141, + 7, 336, 337, 338, 339, 123, 124, 351, 352, 353, + 354, 355, 356, 357, 348, 349, 123, 124, 133, 1000, + 135, 139, 49, 141, 368, 369, 139, 371, 141, 373, + 374, 140, 139, 141, 141, 138, 110, 111, 112, 113, + 143, 134, 123, 124, 147, 7, 139, 391, 323, 140, + 394, 165, 393, 167, 130, 131, 130, 131, 139, 173, + 141, 140, 49, 137, 178, 46, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 6, 123, 124, 1064, 132, 1066, 1041, 1068, 125, 126, + 127, 140, 72, 141, 72, 132, 371, 139, 78, 79, + 78, 79, 446, 110, 111, 112, 113, 6, 7, 453, + 451, 123, 124, 123, 124, 72, 133, 452, 135, 72, + 4, 78, 79, 130, 131, 78, 79, 139, 133, 139, + 135, 72, 476, 477, 4, 479, 480, 78, 79, 483, + 484, 485, 337, 338, 339, 4, 757, 758, 110, 111, + 112, 113, 6, 139, 498, 141, 133, 501, 502, 133, + 1141, 141, 133, 141, 508, 72, 565, 72, 130, 131, + 273, 78, 79, 78, 79, 133, 520, 521, 123, 124, + 662, 663, 526, 665, 141, 667, 668, 135, 141, 671, + 672, 140, 4, 1174, 139, 1176, 4, 1178, 542, 543, + 141, 476, 305, 1184, 133, 123, 124, 1062, 46, 133, + 72, 49, 556, 51, 558, 559, 78, 79, 133, 322, + 323, 139, 7, 498, 565, 133, 625, 1208, 139, 1210, + 141, 1212, 346, 347, 141, 133, 141, 135, 720, 721, + 722, 133, 356, 135, 123, 124, 123, 124, 133, 1104, + 649, 133, 1107, 135, 135, 1110, 137, 601, 602, 72, + 139, 4, 139, 72, 5, 78, 79, 6, 371, 78, + 79, 615, 616, 617, 618, 619, 620, 621, 6, 141, + 624, 72, 133, 6, 135, 629, 5, 78, 79, 123, + 124, 133, 636, 123, 124, 36, 37, 38, 39, 814, + 782, 42, 646, 123, 124, 139, 788, 133, 133, 139, + 654, 1166, 133, 140, 135, 797, 798, 799, 133, 139, + 802, 803, 804, 805, 806, 807, 808, 133, 141, 8, + 140, 675, 141, 133, 133, 135, 1191, 123, 124, 1194, + 133, 823, 1197, 140, 133, 1200, 135, 4, 135, 624, + 141, 133, 133, 139, 135, 133, 133, 701, 702, 703, + 704, 133, 133, 135, 135, 1220, 133, 1222, 135, 1224, + 140, 130, 131, 476, 4, 5, 135, 140, 137, 654, + 140, 484, 485, 142, 130, 131, 868, 135, 133, 135, + 135, 137, 736, 737, 921, 498, 142, 133, 501, 135, + 675, 133, 133, 135, 135, 519, 36, 37, 38, 39, + 140, 135, 42, 754, 139, 135, 141, 758, 139, 6, + 141, 49, 766, 51, 538, 137, 701, 702, 703, 704, + 774, 139, 95, 141, 778, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 139, + 6, 141, 796, 132, 4, 5, 139, 139, 141, 141, + 942, 139, 141, 141, 140, 947, 810, 811, 812, 6, + 139, 953, 141, 65, 66, 67, 68, 6, 70, 823, + 824, 135, 881, 827, 76, 77, 36, 37, 38, 39, + 4, 139, 42, 141, 140, 6, 840, 841, 842, 123, + 124, 125, 126, 127, 5, 849, 847, 139, 132, 141, + 854, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 139, 624, 141, 4, 132, 6, 870, 139, 6, 141, + 132, 137, 1059, 1015, 869, 139, 7, 141, 652, 139, + 7, 141, 886, 139, 139, 141, 141, 135, 7, 893, + 894, 654, 134, 139, 898, 141, 139, 1072, 141, 139, + 141, 141, 140, 907, 908, 7, 6, 141, 92, 140, + 139, 134, 675, 917, 134, 139, 6, 4, 136, 7, + 95, 7, 917, 61, 698, 699, 700, 921, 7, 1071, + 7, 7, 95, 7, 7, 939, 95, 7, 701, 702, + 703, 704, 7, 947, 134, 137, 134, 951, 952, 134, + 141, 134, 947, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 968, 12, 13, 1142, 132, 1111, + 7, 141, 7, 7, 140, 979, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 137, 133, 6, 997, 132, 4, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 6, 54, 133, 56, + 57, 6, 59, 60, 1018, 136, 6, 1021, 6, 1023, + 7, 135, 6, 120, 49, 7, 1030, 7, 51, 7, + 140, 1035, 7, 7, 7, 7, 7, 7, 7, 7, + 87, 88, 89, 7, 7, 4, 140, 140, 6, 133, + 6, 6, 49, 827, 6, 6, 4, 4, 4, 1063, + 140, 1065, 6, 1067, 4, 1059, 133, 6, 134, 137, + 134, 1075, 7, 6, 6, 6, 6, 140, 140, 1083, + 1084, 140, 140, 6, 6, 5, 140, 1091, 140, 6, + 6, 6, 91, 7, 141, 1099, 137, 6, 4, 6, + 8, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 6, 888, 1119, 890, 132, 136, 6, + 5, 140, 6, 6, 6, 1129, 6, 1186, 1132, 6, + 6, 1135, 6, 6, 8, 1139, 6, 6, 6, 6, + 6, 6, 1146, 6, 6, 1149, 6, 139, 4, 923, + 7, 925, 6, 927, 6, 1214, 6, 1216, 137, 6, + 5, 7, 6, 6, 140, 3, 4, 6, 134, 90, + 6, 9, 10, 11, 141, 1234, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 140, 140, 140, + 6, 6, 140, 93, 6, 43, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 6, 6, 6, 6, 132, 6, 134, 65, 66, 67, + 68, 69, 70, 5, 61, 140, 6, 141, 76, 77, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 140, 6, 6, 6, 132, 6, + 139, 6, 6, 141, 5, 140, 6, 6, 106, 107, + 108, 109, 6, 6, 6, 6, 140, 5, 773, 140, + 6, 140, 140, 6, 139, 123, 124, 140, 6, 1063, + 128, 1065, 140, 1067, 6, 133, 6, 6, 140, 140, + 138, 141, 6, 141, 3, 4, 5, 1119, 6, 6, + 9, 10, 11, 6, 3, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 3, 36, 37, 38, + 39, 873, -1, 42, 43, -1, -1, -1, -1, -1, + -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 65, 66, 67, 68, + 69, 70, -1, -1, -1, -1, -1, 76, 77, -1, + -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, -1, 54, -1, 56, 57, -1, 59, 60, + -1, -1, -1, -1, -1, -1, -1, 106, 107, 108, + 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, 124, 87, 88, 89, 128, + -1, -1, -1, -1, 133, -1, 3, 4, -1, 138, + -1, 140, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, + -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, + 141, -1, -1, 12, 13, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, + 67, 68, 69, 70, -1, -1, -1, -1, -1, 76, + 77, -1, -1, -1, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, -1, 54, -1, 56, 57, -1, + 59, 60, -1, -1, -1, -1, -1, -1, -1, 106, + 107, 108, 109, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, 124, 87, 88, + 89, 128, -1, -1, -1, -1, 133, -1, 3, 4, + -1, 138, -1, 140, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, - -1, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - 65, 66, 67, 68, 69, 70, 8, -1, -1, -1, - -1, 76, 77, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 112, 113, 114, - 115, 138, 6, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 129, 130, -1, -1, -1, 134, - -1, -1, -1, -1, 139, -1, 3, 4, -1, 144, - -1, 146, 9, 10, 11, -1, -1, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, - -1, -1, -1, -1, -1, -1, 43, -1, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, -1, -1, -1, 138, -1, 65, 66, - 67, 68, 69, 70, 8, -1, -1, -1, -1, 76, - 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 6, -1, -1, -1, 138, 112, 113, 114, 115, -1, + -1, -1, 141, -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 129, 130, -1, -1, -1, 134, -1, -1, - -1, -1, 139, -1, 3, 4, -1, 144, -1, 146, - 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - -1, -1, -1, -1, 43, -1, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, 138, -1, 65, 66, 67, 68, - 69, 70, 8, -1, -1, -1, -1, 76, 77, -1, - -1, -1, -1, -1, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 112, 113, 114, 115, -1, -1, -1, + 65, 66, 67, 68, 69, 70, -1, -1, -1, -1, + -1, 76, 77, -1, -1, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, -1, 54, -1, 56, + 57, -1, 59, 60, -1, -1, -1, -1, -1, -1, + -1, 106, 107, 108, 109, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, 124, + 87, 88, 89, 128, -1, -1, -1, -1, 133, -1, + 3, 4, -1, 138, -1, 140, 9, 10, 11, -1, + -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, + 43, -1, -1, -1, 141, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 65, 66, 67, 68, 69, 70, -1, 3, + 4, -1, -1, 76, 77, 9, 10, 11, -1, -1, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, -1, -1, 106, 107, 108, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 129, 130, -1, -1, -1, 134, -1, -1, -1, -1, - 139, -1, 3, 4, -1, 144, -1, 146, 9, 10, + 123, 124, -1, -1, -1, 128, -1, -1, -1, -1, + 133, -1, 3, 4, -1, 138, -1, 140, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, - -1, -1, 43, -1, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, -1, 65, 66, 67, 68, 69, 70, - -1, 3, 4, -1, -1, 76, 77, 9, 10, 11, - -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, - -1, 112, 113, 114, 115, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 129, 130, - -1, -1, -1, 134, -1, -1, -1, -1, 139, -1, - 3, 4, -1, 144, -1, 146, 9, 10, 11, -1, + -1, -1, 106, 107, 108, 109, -1, -1, -1, 12, + 13, -1, -1, -1, -1, -1, -1, -1, -1, 123, + 124, -1, -1, -1, 128, -1, -1, -1, -1, 133, + -1, -1, 136, -1, 138, -1, 140, -1, -1, -1, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + -1, 54, -1, 56, 57, -1, 59, 60, -1, -1, + -1, -1, -1, -1, -1, 106, 107, 108, 109, 6, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, 124, 87, 88, 89, 128, -1, -1, + -1, -1, 133, -1, -1, 136, -1, 138, -1, 140, + 3, 4, -1, -1, -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, - 112, 113, 114, 115, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 129, 130, -1, - -1, -1, 134, -1, -1, -1, -1, 139, -1, -1, - 142, -1, 144, -1, 146, 3, 4, -1, -1, -1, + 33, 34, -1, -1, -1, 3, 4, 5, 141, 7, -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 6, -1, 112, - 113, 114, 115, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 129, 130, -1, -1, - -1, 134, -1, -1, -1, -1, 139, -1, -1, 142, - -1, 144, -1, 146, 3, 4, 5, -1, 7, -1, - 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, -1, 36, 37, 38, - 39, -1, -1, 42, 112, 113, 114, 115, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 129, 130, -1, -1, -1, 134, -1, -1, -1, - -1, 139, -1, 6, -1, -1, 144, -1, 146, -1, - -1, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, - 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 129, 130, -1, -1, -1, 134, -1, 136, 137, -1, - 139, -1, 141, -1, 143, 144, 3, 4, -1, -1, - -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, - -1, -1, -1, -1, -1, -1, 43, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, 65, 66, - 67, 68, 69, 70, -1, 3, 4, 5, -1, 76, - 77, 9, 10, 11, -1, -1, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, 36, 37, - 38, 39, -1, -1, 42, 112, 113, 114, 115, -1, + 38, 39, -1, -1, 42, -1, -1, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 129, 130, -1, -1, -1, 134, 3, 4, - -1, -1, 139, -1, 9, 10, 11, 144, -1, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 112, 113, 114, 115, 138, -1, - 12, 13, 6, -1, -1, 145, -1, 147, -1, -1, - -1, 129, 130, -1, -1, -1, 134, -1, -1, -1, - -1, 139, -1, -1, -1, -1, 144, -1, -1, -1, - -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, -1, 54, -1, 56, 57, -1, 59, 60, -1, - -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, - 115, -1, -1, -1, -1, -1, 78, 12, 13, -1, - -1, -1, -1, -1, 129, 130, 88, 89, 90, 134, - -1, -1, -1, -1, 139, -1, -1, -1, -1, 144, - 102, 103, 104, -1, 106, -1, -1, 109, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, - -1, 56, 57, -1, 59, 60, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, 78, 138, 147, -1, 12, 13, 6, - -1, -1, -1, 88, 89, 90, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - -1, 106, -1, -1, 109, -1, -1, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, - -1, 56, 57, -1, 59, 60, -1, -1, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 147, 78, 12, 13, 138, -1, -1, -1, - 142, 6, -1, 88, 89, 90, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - -1, 106, -1, -1, 109, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, -1, 54, -1, 56, 57, - -1, 59, 60, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - 78, 138, 147, -1, 12, 13, 6, -1, -1, -1, - 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, -1, 106, -1, - -1, 109, -1, -1, -1, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, -1, 54, -1, 56, 57, - -1, 59, 60, -1, -1, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 147, - 78, 12, 13, 138, -1, 6, -1, -1, -1, -1, - 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 8, 106, -1, - -1, 109, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, -1, 54, -1, 56, 57, 8, 59, 60, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, 8, 78, 138, 147, - -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 123, 124, -1, -1, -1, 128, -1, -1, -1, -1, + 133, -1, 100, -1, -1, 138, -1, 140, 106, 107, + 108, 109, 110, 111, 112, 113, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, 124, -1, -1, -1, + 128, -1, 130, 131, -1, 133, -1, 135, -1, 137, + 138, 3, 4, -1, -1, -1, -1, 9, 10, 11, + -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, + -1, 43, -1, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, 65, 66, 67, 68, 69, 70, -1, + 3, 4, -1, -1, 76, 77, 9, 10, 11, -1, + -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, -1, -1, 106, 107, 108, 109, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, 124, -1, -1, -1, 128, 3, 4, 5, + -1, 133, -1, 9, 10, 11, 138, -1, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, + 36, 37, 38, 39, -1, -1, 42, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 6, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, -1, 106, -1, -1, 109, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, 147, 138, -1, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, 0, 1, -1, 138, 4, -1, -1, - -1, -1, -1, -1, -1, 12, 13, -1, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, -1, -1, -1, 138, -1, 35, -1, - -1, -1, -1, 40, 41, 147, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, - 57, 58, 59, 60, -1, -1, -1, 64, 65, 66, - 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, - 77, 78, -1, -1, 81, 82, 4, -1, -1, -1, - 87, 88, 89, 90, 12, 13, 93, -1, 95, -1, - 97, 98, 99, 100, -1, 102, 103, 104, -1, 106, - 107, 108, 109, 110, 111, -1, -1, 35, -1, -1, + 123, 124, -1, -1, -1, 128, -1, -1, -1, -1, + 133, -1, -1, -1, 6, 138, -1, -1, -1, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, + 54, -1, 56, 57, 6, 59, 60, -1, -1, -1, + 106, 107, 108, 109, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, 124, -1, + -1, -1, 128, 87, 88, 89, 6, 133, -1, -1, + -1, -1, 138, -1, -1, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 6, 54, -1, 56, 57, + -1, 59, 60, -1, -1, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 6, + -1, -1, -1, 132, -1, -1, -1, 141, -1, 87, + 88, 89, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 6, -1, -1, -1, + 132, -1, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 6, -1, -1, -1, + 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 141, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 6, -1, + -1, -1, 132, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 6, -1, -1, + -1, 132, -1, -1, -1, -1, -1, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 6, -1, -1, -1, 132, -1, -1, -1, -1, + -1, -1, -1, -1, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 6, -1, + -1, -1, 132, -1, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 6, -1, + -1, -1, 132, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 6, -1, -1, -1, 132, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, 8, -1, 132, -1, -1, -1, -1, -1, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 8, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, -1, -1, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 8, -1, -1, -1, 132, -1, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 8, -1, -1, -1, 132, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 8, -1, -1, -1, 132, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, -1, -1, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + -1, -1, -1, -1, 132, -1, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + -1, -1, 0, 1, 132, -1, 4, -1, -1, -1, + -1, -1, -1, -1, 12, 13, -1, -1, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, -1, -1, -1, -1, 132, 35, -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, - 78, -1, -1, 81, 82, 12, 13, -1, -1, 87, - 88, 89, 90, -1, -1, 93, -1, 95, -1, 97, - 98, 99, 100, -1, 102, 103, 104, -1, 106, 107, - 108, 109, 110, 111, -1, -1, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, -1, 54, -1, 56, - 57, -1, 59, 60, -1, -1, -1, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 78, -1, -1, -1, 138, -1, -1, -1, -1, - -1, 88, 89, 90, 147, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, -1, 106, - -1, -1, 109, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, -1, -1, -1, 145, -1, - 147, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, -1, -1, -1, 145, -1, 147, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, -1, -1, -1, -1, -1, 147, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, -1, - -1, -1, -1, -1, 147, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, - -1, -1, 147, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, - 147, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, -1, -1, -1, -1, -1, 147, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, -1, -1, -1, -1, -1, 147, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, -1, - -1, -1, -1, -1, 147, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, - -1, -1, 147, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, - 147, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, -1, -1, -1, -1, -1, 147, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, -1, -1, -1, -1, -1, 147, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, -1, - -1, -1, -1, -1, 147, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, - -1, -1, 147, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, - 147, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, -1, -1, -1, -1, -1, 147, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, -1, -1, -1, -1, -1, 147, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, -1, - -1, -1, -1, -1, 147, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, - -1, -1, 147, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, - 147, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, -1, -1, -1, -1, -1, 147, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, -1, -1, -1, -1, -1, 147, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, -1, - -1, -1, -1, -1, 147, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, - 145, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, -1, -1, -1, 145, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, -1, - -1, -1, 145, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, -1, -1, -1, 145, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, -1, -1, -1, 145, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, - 145, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, -1, -1, -1, 145, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, -1, - -1, -1, 145, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, -1, -1, -1, 145, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, -1, -1, -1, 145, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, - 145, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, -1, -1, -1, 145, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, -1, - -1, -1, 145, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, -1, -1, -1, 145, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, -1, -1, -1, 145, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, - 145, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, -1, -1, -1, 145, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, -1, - -1, -1, 145, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, -1, -1, -1, 145, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, -1, -1, -1, 145, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, - 145, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, -1, -1, -1, 145, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, -1, - -1, -1, 145, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, -1, -1, -1, 145, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, -1, -1, -1, 145, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, - 145, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, -1, -1, -1, 145, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, -1, - -1, -1, 145, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, -1, -1, -1, 145, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, 142, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, - 138, -1, -1, -1, 142, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, 142, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, -1, -1, -1, 138, -1, -1, -1, - 142, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, 142, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, -1, -1, -1, 142, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, 142, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, 138, -1, - -1, -1, 142, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, 142, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, 138, -1, -1, -1, 142, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, 142, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, - 138, -1, -1, -1, 142, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, 142, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, -1, -1, -1, 138, -1, -1, -1, - 142, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, 142, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, -1, -1, -1, 142, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, 142, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, 138, -1, - -1, -1, 142, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, 142, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, 138, -1, -1, -1, 142, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, 142, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, - 138, -1, -1, -1, 142, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, 142, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, -1, -1, -1, 138, -1, -1, -1, - 142, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, 142, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, -1, -1, -1, 142, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, 142, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, 138, -1, - -1, -1, 142, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, -1, -1, 142, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, 138, -1, -1, -1, 142, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, 140, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, 138, -1, - 140, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, 140, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, - 138, -1, 140, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, 140, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, -1, 140, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, 140, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, 138, -1, 140, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, 140, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, -1, -1, -1, 138, -1, 140, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, 140, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, 138, -1, - 140, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, 140, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, - 138, -1, 140, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, 140, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, -1, 140, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, 140, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, 138, -1, 140, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, 140, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, -1, -1, -1, 138, -1, 140, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, 140, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, 138, -1, - 140, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, 140, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, - 138, -1, 140, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, 140, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, -1, 140, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, 140, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, 138, -1, 140, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, 140, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, -1, -1, -1, 138, -1, 140, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, 140, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, 138, -1, - 140, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, 140, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, - 138, -1, 140, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, 140, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, -1, 140, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, 140, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, 138, -1, 140, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, 140, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, -1, -1, -1, 138, -1, 140, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, 140, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, 138, -1, - 140, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, 140, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, - 138, -1, 140, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, - -1, 138, -1, 140, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, -1, 140, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, 140, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, 138, -1, 140, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, 140, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, -1, -1, -1, 138, -1, 140, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, 140, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, 138, -1, - 140, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, 140 + -1, -1, 80, 81, 4, -1, -1, -1, 86, 87, + 88, 89, 12, 13, 92, -1, 94, -1, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, -1, -1, + -1, -1, -1, -1, -1, 35, -1, -1, -1, -1, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, + 60, -1, -1, -1, 64, 65, 66, 67, 68, 69, + 70, -1, 72, 73, 74, 75, 76, 77, 12, 13, + 80, 81, -1, -1, -1, -1, 86, 87, 88, 89, + -1, -1, 92, -1, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, -1, -1, -1, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, + 54, -1, 56, 57, -1, 59, 60, -1, -1, -1, + -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, 87, 88, 89, 139, -1, 141, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, 139, -1, 141, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, -1, + -1, -1, 139, -1, 141, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, + -1, -1, 141, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, -1, -1, -1, -1, -1, + 141, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, -1, -1, -1, -1, -1, 141, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, -1, -1, 141, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, -1, + -1, -1, -1, -1, 141, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, + -1, -1, 141, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, -1, -1, -1, -1, -1, + 141, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, -1, -1, -1, -1, -1, 141, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, -1, -1, 141, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, -1, + -1, -1, -1, -1, 141, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, + -1, -1, 141, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, -1, -1, -1, -1, -1, + 141, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, -1, -1, -1, -1, -1, 141, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, -1, -1, 141, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, -1, + -1, -1, -1, -1, 141, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, + -1, -1, 141, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, -1, -1, -1, -1, -1, + 141, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, -1, -1, -1, -1, -1, 141, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, -1, -1, 141, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, -1, + -1, -1, -1, -1, 141, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, + -1, -1, 141, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, -1, -1, -1, -1, -1, + 141, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, -1, -1, -1, -1, -1, 141, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, -1, -1, 141, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, 134, -1, -1, + -1, -1, 139, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, -1, -1, -1, 139, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, 139, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, + 139, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, -1, -1, -1, 139, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, -1, + -1, -1, 139, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, -1, -1, -1, 139, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, 139, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, + 139, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, -1, -1, -1, 139, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, -1, + -1, -1, 139, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, -1, -1, -1, 139, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, 139, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, + 139, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, -1, -1, -1, 139, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, -1, + -1, -1, 139, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, -1, -1, -1, 139, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, 139, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, + 139, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, -1, -1, -1, 139, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, -1, + -1, -1, 139, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, -1, -1, -1, 139, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, 139, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, + 139, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, -1, -1, -1, 139, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, -1, + -1, -1, 139, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, -1, -1, -1, 139, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, -1, -1, -1, 139, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, + 139, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, -1, -1, -1, 139, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, 136, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, -1, -1, -1, -1, 132, -1, + -1, -1, 136, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, 136, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + -1, -1, -1, -1, 132, -1, -1, -1, 136, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, 136, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, + 132, -1, -1, -1, 136, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, 136, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, -1, -1, -1, -1, 132, -1, -1, -1, + 136, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, 136, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, -1, -1, + -1, -1, 132, -1, -1, -1, 136, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, 136, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, -1, -1, -1, -1, 132, -1, + -1, -1, 136, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, 136, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + -1, -1, -1, -1, 132, -1, -1, -1, 136, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, 136, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, + 132, -1, -1, -1, 136, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, 136, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, -1, -1, -1, -1, 132, -1, -1, -1, + 136, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, 136, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, -1, -1, + -1, -1, 132, -1, -1, -1, 136, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, 136, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, -1, -1, -1, -1, 132, -1, + -1, -1, 136, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, 136, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + -1, -1, -1, -1, 132, -1, -1, -1, 136, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, -1, + -1, 136, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, + 132, -1, -1, -1, 136, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, -1, -1, 136, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, -1, -1, -1, -1, 132, -1, -1, -1, + 136, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, -1, -1, 136, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, -1, -1, + -1, -1, 132, -1, -1, -1, 136, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, -1, -1, 136, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, -1, -1, -1, -1, 132, -1, + -1, -1, 136, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, -1, -1, 136, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + -1, -1, -1, -1, 132, -1, 134, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, 134, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, -1, -1, -1, -1, 132, -1, 134, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, 134, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, -1, -1, -1, -1, 132, -1, + 134, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, 134, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, + 132, -1, 134, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, 134, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, -1, -1, + -1, -1, 132, -1, 134, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, 134, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + -1, -1, -1, -1, 132, -1, 134, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, 134, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, -1, -1, -1, -1, 132, -1, 134, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, 134, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, -1, -1, -1, -1, 132, -1, + 134, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, 134, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, + 132, -1, 134, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, 134, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, -1, -1, + -1, -1, 132, -1, 134, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, 134, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + -1, -1, -1, -1, 132, -1, 134, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, 134, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, -1, -1, -1, -1, 132, -1, 134, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, 134, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, -1, -1, -1, -1, 132, -1, + 134, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, 134, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, + 132, -1, 134, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, 134, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, -1, -1, + -1, -1, 132, -1, 134, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, 134, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + -1, -1, -1, -1, 132, -1, 134, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, 134, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, -1, -1, -1, -1, 132, -1, 134, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, 134, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, -1, -1, -1, -1, 132, -1, + 134, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, 134, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, + 132, -1, 134, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132, -1, 134, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, -1, -1, + -1, -1, 132, -1, 134, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, 132, -1, 134, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + -1, -1, -1, -1, 132, -1, 134, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, -1, -1, -1, -1, 132, -1, 134, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, -1, -1, -1, -1, 132, -1, 134, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, -1, -1, -1, -1, 132, -1, 134, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, -1, -1, -1, -1, 132, -1, + 134, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, + -1, 134, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, + 132, -1, 134, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, -1, -1, -1, + -1, 132 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 1, 150, 151, 6, 0, 4, 12, 13, 35, + 0, 1, 144, 145, 6, 0, 4, 12, 13, 35, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 64, 65, 66, 67, 68, 69, 70, 72, 73, 74, 75, - 76, 77, 78, 81, 82, 87, 88, 89, 90, 93, - 95, 97, 98, 99, 100, 102, 103, 104, 106, 107, - 108, 109, 110, 111, 152, 154, 155, 173, 175, 176, - 179, 180, 181, 182, 183, 184, 201, 202, 203, 3, - 4, 5, 7, 9, 10, 11, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, - 39, 42, 112, 113, 114, 115, 116, 117, 118, 119, - 129, 130, 134, 136, 137, 139, 141, 143, 144, 171, - 172, 204, 205, 216, 13, 49, 139, 6, 146, 6, - 139, 146, 139, 139, 71, 139, 146, 139, 139, 71, - 146, 139, 139, 53, 49, 139, 49, 49, 49, 46, - 49, 51, 51, 43, 46, 49, 51, 139, 146, 129, - 130, 139, 146, 206, 207, 206, 146, 4, 43, 46, - 49, 146, 206, 146, 49, 49, 4, 146, 6, 46, - 146, 43, 46, 4, 4, 4, 139, 139, 139, 4, - 146, 212, 4, 139, 139, 6, 101, 101, 101, 101, - 4, 4, 101, 4, 5, 146, 215, 216, 146, 215, - 4, 141, 143, 148, 172, 146, 216, 139, 141, 139, - 141, 139, 141, 139, 141, 139, 141, 139, 141, 139, - 141, 139, 141, 139, 141, 139, 141, 139, 141, 139, - 141, 139, 141, 139, 141, 139, 141, 139, 141, 139, - 141, 139, 141, 139, 141, 139, 141, 139, 141, 139, - 139, 139, 139, 139, 4, 204, 204, 204, 204, 142, - 146, 204, 4, 93, 94, 4, 204, 6, 6, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 138, 6, 6, 204, 5, 204, 204, - 4, 43, 130, 176, 184, 204, 210, 211, 204, 204, - 139, 204, 211, 204, 204, 139, 211, 204, 204, 101, - 130, 146, 204, 209, 210, 139, 204, 146, 139, 139, - 209, 146, 146, 139, 139, 139, 139, 139, 4, 206, - 206, 206, 204, 204, 129, 130, 146, 146, 206, 141, - 146, 146, 146, 129, 130, 139, 178, 206, 146, 176, - 177, 178, 209, 209, 4, 6, 141, 178, 146, 177, - 101, 209, 209, 141, 141, 6, 204, 204, 204, 143, - 204, 146, 96, 204, 204, 139, 139, 139, 139, 6, - 139, 178, 6, 178, 6, 141, 204, 4, 146, 156, - 6, 204, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 4, 215, 215, 215, 215, 5, 141, - 140, 7, 119, 211, 142, 7, 171, 172, 143, 7, - 141, 6, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 6, 140, 145, - 145, 140, 141, 146, 204, 210, 8, 131, 145, 147, - 140, 140, 204, 140, 147, 140, 140, 204, 147, 140, - 140, 209, 146, 147, 211, 131, 7, 204, 140, 204, - 204, 204, 7, 204, 204, 204, 174, 204, 216, 174, - 174, 174, 140, 145, 145, 145, 206, 206, 177, 177, - 145, 204, 204, 204, 204, 204, 43, 46, 49, 51, - 109, 175, 188, 145, 178, 147, 6, 7, 7, 6, - 204, 147, 211, 147, 139, 7, 7, 204, 204, 140, - 140, 140, 93, 145, 178, 146, 8, 140, 204, 204, - 204, 204, 204, 147, 147, 204, 142, 172, 204, 4, - 83, 84, 85, 86, 147, 159, 163, 166, 168, 169, - 140, 142, 140, 142, 140, 142, 140, 142, 140, 142, - 140, 142, 140, 142, 140, 142, 140, 142, 140, 142, - 140, 142, 145, 145, 140, 142, 140, 142, 140, 142, - 140, 142, 140, 142, 140, 142, 145, 145, 145, 145, - 145, 145, 141, 143, 140, 145, 145, 140, 140, 145, - 204, 209, 209, 147, 7, 143, 171, 172, 216, 204, - 6, 4, 4, 146, 213, 142, 8, 6, 126, 153, - 211, 204, 7, 142, 146, 204, 204, 204, 210, 204, - 210, 96, 7, 7, 140, 7, 96, 7, 7, 140, - 96, 7, 7, 6, 211, 147, 146, 204, 140, 7, - 147, 140, 140, 204, 147, 147, 140, 140, 140, 140, - 140, 143, 206, 204, 204, 147, 147, 204, 142, 145, - 145, 145, 146, 146, 146, 146, 72, 79, 80, 199, - 200, 206, 147, 185, 204, 204, 142, 147, 204, 209, - 209, 142, 142, 7, 7, 7, 143, 204, 147, 204, - 204, 140, 140, 140, 140, 140, 142, 143, 172, 215, - 147, 160, 139, 139, 146, 170, 6, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 4, 211, 215, 204, - 142, 6, 6, 142, 4, 93, 94, 204, 6, 6, - 6, 7, 141, 212, 214, 6, 204, 126, 215, 140, - 145, 206, 211, 147, 8, 49, 209, 209, 7, 209, - 49, 51, 209, 209, 7, 51, 209, 209, 147, 211, - 6, 7, 146, 7, 7, 7, 6, 61, 7, 7, - 7, 7, 7, 7, 7, 4, 145, 145, 145, 147, - 146, 206, 206, 206, 211, 211, 211, 211, 6, 146, - 139, 147, 200, 145, 199, 6, 6, 6, 49, 140, - 6, 6, 6, 6, 209, 209, 209, 4, 145, 8, - 8, 140, 7, 7, 7, 7, 7, 6, 4, 6, - 139, 204, 204, 208, 209, 146, 140, 142, 140, 142, - 140, 142, 140, 142, 142, 140, 140, 140, 140, 171, - 7, 171, 172, 143, 7, 6, 212, 204, 145, 147, - 6, 6, 153, 204, 6, 147, 204, 146, 6, 56, - 6, 56, 209, 6, 146, 146, 6, 6, 209, 146, - 6, 6, 147, 5, 204, 209, 209, 209, 62, 63, - 209, 209, 209, 209, 209, 209, 209, 6, 7, 204, - 204, 204, 146, 178, 145, 147, 145, 147, 145, 147, - 147, 147, 147, 147, 204, 209, 204, 204, 206, 147, - 146, 7, 6, 6, 92, 204, 204, 204, 209, 5, - 204, 204, 5, 172, 157, 204, 145, 145, 145, 147, - 158, 204, 143, 209, 216, 204, 6, 4, 213, 6, - 142, 212, 215, 145, 142, 204, 206, 206, 6, 204, - 204, 6, 204, 5, 145, 6, 6, 6, 204, 204, - 4, 6, 6, 6, 6, 6, 6, 6, 204, 216, - 147, 140, 145, 147, 177, 189, 206, 6, 190, 206, - 6, 191, 206, 6, 192, 6, 6, 6, 6, 147, - 145, 140, 147, 145, 204, 209, 209, 145, 147, 8, - 147, 140, 6, 6, 6, 6, 6, 209, 140, 145, - 204, 204, 209, 146, 145, 147, 4, 6, 6, 6, - 7, 6, 143, 6, 204, 147, 6, 6, 147, 147, - 147, 5, 204, 6, 6, 6, 6, 6, 146, 204, - 147, 199, 145, 146, 145, 146, 145, 146, 6, 209, - 7, 146, 204, 147, 6, 91, 204, 204, 6, 161, - 204, 145, 145, 208, 204, 6, 140, 212, 94, 145, - 6, 6, 6, 6, 6, 145, 177, 145, 147, 147, - 204, 206, 199, 204, 206, 199, 204, 206, 199, 145, - 147, 209, 178, 147, 204, 147, 147, 146, 204, 204, - 147, 6, 204, 5, 147, 204, 147, 145, 147, 147, - 145, 147, 147, 145, 147, 209, 6, 61, 147, 186, - 146, 6, 158, 140, 145, 6, 146, 145, 145, 147, - 6, 193, 204, 6, 6, 194, 204, 6, 6, 195, - 204, 6, 147, 204, 199, 178, 147, 164, 204, 208, - 204, 5, 146, 147, 146, 147, 146, 147, 6, 6, - 147, 147, 187, 6, 146, 140, 147, 147, 145, 199, - 6, 196, 199, 6, 197, 199, 6, 198, 199, 162, - 215, 167, 146, 6, 5, 147, 146, 147, 146, 147, - 146, 147, 145, 147, 146, 208, 147, 6, 199, 6, - 199, 6, 199, 215, 6, 165, 215, 147, 6, 147, - 147, 147, 145, 147, 6, 6, 6, 6, 215, 6 + 76, 77, 80, 81, 86, 87, 88, 89, 92, 94, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 146, 148, 149, 167, 169, 170, 173, 174, 175, 176, + 177, 178, 195, 196, 197, 3, 4, 5, 7, 9, + 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 36, 37, 38, 39, 42, 100, 106, + 107, 108, 109, 110, 111, 112, 113, 123, 124, 128, + 130, 131, 133, 135, 137, 138, 165, 166, 198, 199, + 210, 13, 49, 133, 6, 140, 6, 133, 140, 133, + 133, 71, 133, 140, 133, 133, 71, 140, 133, 133, + 53, 49, 133, 49, 49, 49, 46, 49, 51, 51, + 43, 46, 49, 51, 133, 140, 123, 124, 133, 140, + 200, 201, 200, 140, 4, 43, 46, 49, 140, 200, + 140, 49, 49, 4, 100, 140, 6, 46, 140, 4, + 4, 4, 133, 133, 133, 4, 140, 206, 4, 133, + 133, 6, 135, 4, 4, 4, 5, 140, 209, 210, + 140, 209, 4, 135, 137, 142, 166, 140, 210, 133, + 135, 133, 135, 133, 135, 133, 135, 133, 135, 133, + 135, 133, 135, 133, 135, 133, 135, 133, 135, 133, + 135, 133, 135, 133, 135, 133, 135, 133, 135, 133, + 135, 133, 135, 133, 135, 133, 135, 133, 135, 133, + 135, 133, 133, 133, 133, 7, 133, 4, 198, 198, + 198, 198, 136, 140, 198, 4, 92, 93, 4, 198, + 6, 6, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 132, 6, 6, 198, + 5, 198, 198, 4, 43, 124, 170, 178, 198, 204, + 205, 198, 198, 133, 198, 205, 198, 198, 133, 205, + 198, 198, 124, 140, 198, 203, 204, 133, 198, 140, + 133, 133, 203, 140, 140, 133, 133, 133, 133, 133, + 4, 200, 200, 200, 198, 198, 123, 124, 140, 140, + 200, 135, 140, 140, 140, 123, 124, 133, 172, 200, + 140, 170, 171, 172, 203, 203, 4, 6, 135, 135, + 172, 140, 171, 135, 135, 6, 198, 198, 198, 137, + 198, 140, 95, 198, 198, 198, 6, 172, 6, 172, + 6, 135, 198, 4, 140, 150, 6, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 4, + 209, 209, 209, 209, 198, 5, 135, 134, 7, 113, + 205, 136, 7, 165, 166, 137, 7, 135, 6, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 6, 134, 139, 139, 134, 135, + 140, 198, 204, 8, 125, 139, 141, 134, 134, 198, + 134, 141, 134, 134, 198, 141, 134, 134, 140, 141, + 205, 125, 7, 198, 134, 198, 198, 198, 7, 198, + 198, 198, 168, 198, 210, 168, 168, 168, 134, 139, + 139, 139, 200, 200, 171, 171, 139, 198, 198, 198, + 198, 198, 43, 46, 49, 51, 169, 182, 139, 172, + 141, 6, 7, 7, 6, 198, 198, 141, 205, 141, + 198, 198, 134, 134, 134, 92, 139, 172, 140, 8, + 134, 136, 141, 141, 198, 136, 166, 198, 4, 82, + 83, 84, 85, 141, 153, 157, 160, 162, 163, 134, + 136, 134, 136, 134, 136, 134, 136, 134, 136, 134, + 136, 134, 136, 134, 136, 134, 136, 134, 136, 134, + 136, 139, 139, 134, 136, 134, 136, 134, 136, 134, + 136, 134, 136, 134, 136, 139, 139, 139, 139, 139, + 139, 135, 137, 134, 139, 139, 134, 134, 6, 139, + 198, 203, 203, 141, 7, 137, 165, 166, 210, 198, + 6, 4, 4, 140, 207, 136, 8, 6, 120, 147, + 205, 198, 7, 136, 140, 198, 198, 198, 204, 198, + 204, 95, 7, 7, 134, 7, 95, 7, 7, 134, + 95, 7, 7, 205, 141, 140, 198, 134, 7, 141, + 134, 134, 198, 141, 141, 134, 134, 134, 134, 134, + 137, 200, 198, 198, 141, 141, 198, 136, 139, 139, + 139, 140, 140, 140, 140, 72, 78, 79, 193, 194, + 200, 141, 179, 198, 198, 136, 136, 141, 136, 136, + 7, 7, 7, 137, 198, 141, 198, 198, 7, 137, + 136, 137, 166, 209, 141, 154, 133, 133, 140, 164, + 6, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 4, 205, 209, 198, 136, 6, 6, 136, 4, 92, + 93, 198, 6, 6, 6, 7, 135, 206, 208, 6, + 198, 120, 209, 134, 139, 200, 205, 141, 8, 49, + 203, 203, 7, 203, 49, 51, 203, 203, 7, 51, + 203, 203, 141, 205, 6, 7, 140, 7, 7, 7, + 6, 61, 7, 7, 7, 7, 7, 7, 7, 4, + 139, 139, 139, 141, 140, 200, 200, 200, 205, 205, + 205, 205, 6, 140, 133, 141, 194, 139, 193, 6, + 6, 6, 6, 49, 6, 6, 203, 203, 203, 4, + 139, 8, 8, 134, 4, 4, 6, 4, 6, 133, + 198, 198, 202, 203, 140, 134, 136, 134, 136, 134, + 136, 134, 136, 136, 134, 134, 134, 134, 165, 7, + 165, 166, 137, 7, 6, 206, 198, 139, 141, 6, + 6, 147, 198, 6, 141, 198, 140, 6, 56, 6, + 56, 203, 6, 140, 140, 6, 6, 203, 140, 6, + 6, 141, 5, 198, 203, 203, 203, 62, 63, 203, + 203, 203, 203, 203, 203, 203, 6, 7, 198, 198, + 198, 140, 172, 139, 141, 139, 141, 139, 141, 141, + 141, 141, 141, 198, 203, 198, 198, 200, 141, 140, + 6, 6, 91, 198, 198, 198, 6, 7, 166, 151, + 198, 139, 139, 139, 141, 152, 198, 137, 203, 210, + 198, 6, 4, 207, 6, 136, 206, 209, 139, 136, + 198, 200, 200, 6, 198, 198, 6, 198, 5, 139, + 6, 6, 6, 198, 198, 4, 6, 6, 6, 6, + 6, 6, 6, 198, 210, 141, 134, 139, 141, 171, + 183, 200, 6, 184, 200, 6, 185, 200, 6, 186, + 6, 6, 6, 6, 141, 139, 134, 141, 139, 198, + 203, 139, 141, 8, 141, 134, 198, 203, 210, 134, + 139, 198, 198, 203, 140, 139, 141, 4, 6, 6, + 6, 7, 6, 137, 6, 198, 141, 6, 6, 141, + 141, 141, 5, 198, 6, 6, 6, 6, 6, 140, + 198, 141, 193, 139, 140, 139, 140, 139, 140, 6, + 203, 7, 140, 198, 141, 90, 198, 198, 6, 6, + 6, 155, 198, 139, 139, 202, 198, 6, 134, 206, + 93, 139, 6, 6, 6, 6, 6, 139, 171, 139, + 141, 141, 198, 200, 193, 198, 200, 193, 198, 200, + 193, 139, 141, 203, 172, 141, 198, 141, 141, 140, + 198, 198, 141, 6, 198, 5, 141, 198, 141, 139, + 141, 141, 139, 141, 141, 139, 141, 203, 6, 61, + 141, 180, 140, 6, 152, 134, 139, 6, 140, 139, + 139, 141, 6, 187, 198, 6, 6, 188, 198, 6, + 6, 189, 198, 6, 141, 198, 193, 172, 141, 158, + 198, 202, 198, 5, 140, 141, 140, 141, 140, 141, + 6, 6, 141, 141, 181, 6, 140, 134, 141, 141, + 139, 193, 6, 190, 193, 6, 191, 193, 6, 192, + 193, 156, 209, 161, 140, 6, 5, 141, 140, 141, + 140, 141, 140, 141, 139, 141, 140, 202, 141, 6, + 193, 6, 193, 6, 193, 209, 6, 159, 209, 141, + 6, 141, 141, 141, 139, 141, 6, 6, 6, 6, + 209, 6 }; #define yyerrok (yyerrstatus = 0) @@ -3037,7 +2944,7 @@ while (YYID (0)) we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# if YYLTYPE_IS_TRIVIAL # define YY_LOCATION_PRINT(File, Loc) \ fprintf (File, "%d.%d-%d.%d", \ (Loc).first_line, (Loc).first_column, \ @@ -4726,7 +4633,78 @@ yyreduce: break; case 79: -#line 957 "Gmsh.y" +#line 954 "Gmsh.y" + { + if(!strcmp((yyvsp[(1) - (5)].c),"Background")){ + GModel::current()->fields.background_field=(int)(yyvsp[(4) - (5)].d); + }else{ + yymsg(GERROR, "Unknown command %s Field.",(yyvsp[(1) - (5)].c)); + } + ;} + break; + + case 80: +#line 962 "Gmsh.y" + { + if(!GModel::current()->fields.new_field((int)(yyvsp[(3) - (7)].d),(yyvsp[(6) - (7)].c))) + yymsg(GERROR, "Cannot create field %i of type '%s'.", (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c)); + ;} + break; + + case 81: +#line 967 "Gmsh.y" + { + Field *field=GModel::current()->fields.get((int)(yyvsp[(3) - (9)].d)); + if(field){ + FieldOption *option=field->options[(yyvsp[(6) - (9)].c)]; + if(option){ + try {option->numerical_value((yyvsp[(8) - (9)].d));} + catch(...){ + yymsg(GERROR, "Cannot assign a numerical value to option '%s' in field %i of type '%s'", (yyvsp[(6) - (9)].c),(int)(yyvsp[(3) - (9)].d),field->get_name()); + } + }else yymsg(GERROR, "Unknown option '%s' in field %i of type '%s'", (yyvsp[(6) - (9)].c),(int)(yyvsp[(3) - (9)].d),field->get_name()); + }else yymsg(GERROR, "No field with id %i",(int)(yyvsp[(3) - (9)].d)); + + ;} + break; + + case 82: +#line 981 "Gmsh.y" + { + Field *field=GModel::current()->fields.get((int)(yyvsp[(3) - (9)].d)); + if(field){ + FieldOption *option=field->options[(yyvsp[(6) - (9)].c)]; + if(option){ + try {option->string()=(yyvsp[(8) - (9)].c);} + catch (...){ + yymsg(GERROR, "Cannot assign a string value to option '%s' in field %i of type '%s'", (yyvsp[(6) - (9)].c),(int)(yyvsp[(3) - (9)].d),field->get_name()); + } + }else yymsg(GERROR, "Unknown option '%s' in field %i of type '%s'", (yyvsp[(6) - (9)].c),(int)(yyvsp[(3) - (9)].d),field->get_name()); + }else yymsg(GERROR, "No field with id %i",(int)(yyvsp[(3) - (9)].d)); + ;} + break; + + case 83: +#line 994 "Gmsh.y" + { + Field *field=GModel::current()->fields.get((int)(yyvsp[(3) - (9)].d)); + if(field){ + FieldOption *option=field->options[(yyvsp[(6) - (9)].c)]; + if(option){ + std::list<int> &vl=option->list(); + vl.clear(); + for(int i=0;i<List_Nbr((yyvsp[(8) - (9)].l));i++){ + double id; + List_Read((yyvsp[(8) - (9)].l),i,&id); + vl.push_back(id); + } + }else yymsg(GERROR, "Unknown option '%s' in field %i of type '%s'", (yyvsp[(6) - (9)].c),(int)(yyvsp[(3) - (9)].d),field->get_name()); + }else yymsg(GERROR, "No field with id %i",(int)(yyvsp[(3) - (9)].d)); + ;} + break; + + case 84: +#line 1012 "Gmsh.y" { try { GMSH_PluginManager::instance()->setPluginOption((yyvsp[(3) - (9)].c), (yyvsp[(6) - (9)].c), (yyvsp[(8) - (9)].d)); @@ -4738,8 +4716,8 @@ yyreduce: ;} break; - case 80: -#line 967 "Gmsh.y" + case 85: +#line 1022 "Gmsh.y" { try { GMSH_PluginManager::instance()->setPluginOption((yyvsp[(3) - (9)].c), (yyvsp[(6) - (9)].c), (yyvsp[(8) - (9)].c)); @@ -4751,15 +4729,15 @@ yyreduce: ;} break; - case 81: -#line 982 "Gmsh.y" + case 86: +#line 1037 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; - case 82: -#line 986 "Gmsh.y" + case 87: +#line 1041 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -4767,8 +4745,8 @@ yyreduce: ;} break; - case 83: -#line 999 "Gmsh.y" + case 88: +#line 1054 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindPoint(num)){ @@ -4792,8 +4770,8 @@ yyreduce: ;} break; - case 84: -#line 1021 "Gmsh.y" + case 89: +#line 1076 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_POINT)){ @@ -4811,203 +4789,8 @@ yyreduce: ;} break; - case 85: -#line 1037 "Gmsh.y" - { - AttractorField *att = new AttractorField(); - for(int i = 0; i < List_Nbr((yyvsp[(8) - (9)].l)); i++){ - double d; - List_Read((yyvsp[(8) - (9)].l), i, &d); - Vertex *v = FindPoint((int)d); - if(v) - att->addPoint(v->Pos.X, v->Pos.Y, v->Pos.Z); - else{ - GVertex *gv = GModel::current()->getVertexByTag((int)d); - if(gv) - att->addPoint(gv->x(), gv->y(), gv->z()); - } - } - att->buildFastSearchStructures(); - fields.insert(att, (int)(yyvsp[(5) - (9)].d)); - // dummy values - (yyval.s).Type = 0; - (yyval.s).Num = 0; - ;} - break; - - case 86: -#line 1058 "Gmsh.y" - { - fields.insert(new LatLonField(fields.get((int)(yyvsp[(7) - (8)].d))), (int)(yyvsp[(4) - (8)].d)); - // dummy values - (yyval.s).Type = 0; - (yyval.s).Num = 0; - ;} - break; - - case 87: -#line 1065 "Gmsh.y" - { - int index = (int)(yyvsp[(7) - (8)].d); - if(index >= 0 && index < (int)PView::list.size()) - fields.insert(new PostViewField(PView::list[index]), (int)(yyvsp[(4) - (8)].d)); - else - yymsg(GERROR, "Field %i error, view %i does not exist", (int)(yyvsp[(4) - (8)].d), (int)(yyvsp[(7) - (8)].d)); - // dummy values - (yyval.s).Type = 0; - (yyval.s).Num = 0; - ;} - break; - - case 88: -#line 1076 "Gmsh.y" - { - double pars[] = {0, CTX.lc/10, CTX.lc, CTX.lc/100, CTX.lc/20}; - for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ - if(i > 4) - yymsg(GERROR, "Too many parameters for Thresold Field (max=5)"); - else - List_Read((yyvsp[(7) - (8)].l), i, &pars[i]); - } - fields.insert(new ThresholdField(fields.get((int)pars[0]), pars[1], - pars[2], pars[3], pars[4]), (int)(yyvsp[(4) - (8)].d)); - // dummy values - (yyval.s).Type = 0; - (yyval.s).Num = 0; - ;} - break; - - case 89: -#line 1091 "Gmsh.y" - { - std::list<Field*> *flist = new std::list<Field*>; - fields.insert(new FunctionField(flist,(yyvsp[(7) - (8)].c)), (int)(yyvsp[(4) - (8)].d)); - // dummy values - (yyval.s).Type = 0; - (yyval.s).Num = 0; - ;} - break; - case 90: -#line 1099 "Gmsh.y" - { - std::list<Field*> *flist = new std::list<Field*>; - flist->resize(0); - for(int i = 0; i < List_Nbr((yyvsp[(8) - (9)].l)); i++){ - double id; - List_Read((yyvsp[(8) - (9)].l), i, &id); - Field *pfield = fields.get((int)id); - if(pfield) flist->push_front(pfield); - } - fields.insert(new FunctionField(flist,(yyvsp[(7) - (9)].c)), (int)(yyvsp[(4) - (9)].d)); - // dummy values - (yyval.s).Type = 0; - (yyval.s).Num = 0; - ;} - break; - - case 91: -#line 1114 "Gmsh.y" - { - fields.insert(new StructuredField((yyvsp[(7) - (8)].c)), (int)(yyvsp[(4) - (8)].d)); - // dummy values - (yyval.s).Type = 0; - (yyval.s).Num = 0; - ;} - break; - - case 92: -#line 1121 "Gmsh.y" - { - for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ - double id; - List_Read((yyvsp[(4) - (5)].l), i, &id); - BGMAddField(fields.get((int)id)); - } - // dummy values - (yyval.s).Type = 0; - (yyval.s).Num = 0; - ;} - break; - - case 93: -#line 1133 "Gmsh.y" - { - double pars[] = { CTX.lc/10, CTX.lc/100., CTX.lc/20, 1, 3 }; - for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++){ - if(i > 4) - yymsg(GERROR, "Too many paramaters for attractor line (max = 5)"); - else - List_Read((yyvsp[(5) - (6)].l), i, &pars[i]); - } - // treshold attractor: first parameter is the treshold, next two - // are the in and out size fields, last is transition factor - AttractorField *attractor = new AttractorField(); - fields.insert(attractor); - Field *threshold = new ThresholdField(attractor, pars[0], pars[0] * pars[4], - pars[1], pars[2]); - fields.insert(threshold); - BGMAddField(threshold); - for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ - double d; - List_Read((yyvsp[(3) - (6)].l), i, &d); - Vertex *v = FindPoint((int)d); - if(v) - attractor->addPoint(v->Pos.X, v->Pos.Y, v->Pos.Z); - else{ - GVertex *gv = GModel::current()->getVertexByTag((int)d); - if(gv) - attractor->addPoint(gv->x(), gv->y(), gv->z()); - } - } - attractor->buildFastSearchStructures(); - // dummy values - (yyval.s).Type = 0; - (yyval.s).Num = 0; - ;} - break; - - case 94: -#line 1167 "Gmsh.y" - { - double pars[] = { CTX.lc/10, CTX.lc/100., CTX.lc/20, 10, 3 }; - for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++){ - if(i > 4) - yymsg(GERROR, "Too many paramaters for attractor line (max = 5)"); - else - List_Read((yyvsp[(5) - (6)].l), i, &pars[i]); - } - // treshold attractor: first parameter is the treshold, next two - // are the in and out size fields, last is transition factor - AttractorField *att = new AttractorField(); - fields.insert(att); - Field *threshold = new ThresholdField(att, pars[0], pars[0] * pars[4], - pars[1], pars[2]); - fields.insert(threshold); - BGMAddField(threshold); - for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ - double d; - List_Read((yyvsp[(3) - (6)].l), i, &d); - Curve *c = FindCurve((int)d); - if(c){ - att->addCurve(c, (int)pars[3]); - } - else{ - GEdge *ge = GModel::current()->getEdgeByTag((int)d); - if(ge){ - att->addGEdge(ge, (int)pars[3]); - } - } - } - att->buildFastSearchStructures(); - // dummy values - (yyval.s).Type = 0; - (yyval.s).Num = 0; - ;} - break; - - case 95: -#line 1203 "Gmsh.y" +#line 1092 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -5028,8 +4811,8 @@ yyreduce: ;} break; - case 96: -#line 1225 "Gmsh.y" + case 91: +#line 1114 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -5049,8 +4832,8 @@ yyreduce: ;} break; - case 97: -#line 1243 "Gmsh.y" + case 92: +#line 1132 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -5070,8 +4853,8 @@ yyreduce: ;} break; - case 98: -#line 1261 "Gmsh.y" + case 93: +#line 1150 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -5091,8 +4874,8 @@ yyreduce: ;} break; - case 99: -#line 1279 "Gmsh.y" + case 94: +#line 1168 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindCurve(num)){ @@ -5120,8 +4903,8 @@ yyreduce: ;} break; - case 100: -#line 1305 "Gmsh.y" + case 95: +#line 1194 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -5141,8 +4924,8 @@ yyreduce: ;} break; - case 101: -#line 1323 "Gmsh.y" + case 96: +#line 1212 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindCurve(num)){ @@ -5170,8 +4953,8 @@ yyreduce: ;} break; - case 102: -#line 1350 "Gmsh.y" + case 97: +#line 1239 "Gmsh.y" { int num = (int)(yyvsp[(3) - (17)].d); if(FindCurve(num)){ @@ -5192,8 +4975,8 @@ yyreduce: ;} break; - case 103: -#line 1369 "Gmsh.y" + case 98: +#line 1258 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -5213,8 +4996,8 @@ yyreduce: ;} break; - case 104: -#line 1387 "Gmsh.y" + case 99: +#line 1276 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -5234,8 +5017,8 @@ yyreduce: ;} break; - case 105: -#line 1405 "Gmsh.y" + case 100: +#line 1294 "Gmsh.y" { int num = (int)(yyvsp[(3) - (11)].d); if(List_Nbr((yyvsp[(6) - (11)].l)) + (int)(yyvsp[(10) - (11)].d) + 1 != List_Nbr((yyvsp[(8) - (11)].l))){ @@ -5263,8 +5046,8 @@ yyreduce: ;} break; - case 106: -#line 1431 "Gmsh.y" + case 101: +#line 1320 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindEdgeLoop(num)){ @@ -5283,8 +5066,8 @@ yyreduce: ;} break; - case 107: -#line 1448 "Gmsh.y" + case 102: +#line 1337 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){ @@ -5302,8 +5085,8 @@ yyreduce: ;} break; - case 108: -#line 1467 "Gmsh.y" + case 103: +#line 1356 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurface(num)){ @@ -5323,8 +5106,8 @@ yyreduce: ;} break; - case 109: -#line 1485 "Gmsh.y" + case 104: +#line 1374 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d), type = 0; if(FindSurface(num)){ @@ -5364,8 +5147,8 @@ yyreduce: ;} break; - case 110: -#line 1523 "Gmsh.y" + case 105: +#line 1412 "Gmsh.y" { myGmshSurface = 0; (yyval.s).Type = 0; @@ -5373,8 +5156,8 @@ yyreduce: ;} break; - case 111: -#line 1529 "Gmsh.y" + case 106: +#line 1418 "Gmsh.y" { myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d)); (yyval.s).Type = 0; @@ -5382,8 +5165,8 @@ yyreduce: ;} break; - case 112: -#line 1535 "Gmsh.y" + case 107: +#line 1424 "Gmsh.y" { int num = (int)(yyvsp[(4) - (10)].d); myGmshSurface = gmshParametricSurface::NewParametricSurface(num, (yyvsp[(7) - (10)].c), (yyvsp[(8) - (10)].c), (yyvsp[(9) - (10)].c)); @@ -5392,8 +5175,8 @@ yyreduce: ;} break; - case 113: -#line 1542 "Gmsh.y" + case 108: +#line 1431 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -5419,8 +5202,8 @@ yyreduce: ;} break; - case 114: -#line 1566 "Gmsh.y" + case 109: +#line 1455 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -5446,8 +5229,8 @@ yyreduce: ;} break; - case 115: -#line 1590 "Gmsh.y" + case 110: +#line 1479 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurfaceLoop(num)){ @@ -5465,8 +5248,8 @@ yyreduce: ;} break; - case 116: -#line 1606 "Gmsh.y" + case 111: +#line 1495 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -5484,8 +5267,8 @@ yyreduce: ;} break; - case 117: -#line 1626 "Gmsh.y" + case 112: +#line 1515 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindVolume(num)){ @@ -5504,8 +5287,8 @@ yyreduce: ;} break; - case 118: -#line 1643 "Gmsh.y" + case 113: +#line 1532 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindVolume(num)){ @@ -5524,8 +5307,8 @@ yyreduce: ;} break; - case 119: -#line 1660 "Gmsh.y" + case 114: +#line 1549 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ @@ -5543,40 +5326,40 @@ yyreduce: ;} break; - case 120: -#line 1681 "Gmsh.y" + case 115: +#line 1570 "Gmsh.y" { TranslateShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(4) - (5)].l)); (yyval.l) = (yyvsp[(4) - (5)].l); ;} break; - case 121: -#line 1686 "Gmsh.y" + case 116: +#line 1575 "Gmsh.y" { RotateShapes((yyvsp[(3) - (11)].v)[0], (yyvsp[(3) - (11)].v)[1], (yyvsp[(3) - (11)].v)[2], (yyvsp[(5) - (11)].v)[0], (yyvsp[(5) - (11)].v)[1], (yyvsp[(5) - (11)].v)[2], (yyvsp[(7) - (11)].d), (yyvsp[(10) - (11)].l)); (yyval.l) = (yyvsp[(10) - (11)].l); ;} break; - case 122: -#line 1691 "Gmsh.y" + case 117: +#line 1580 "Gmsh.y" { SymmetryShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(2) - (5)].v)[3], (yyvsp[(4) - (5)].l)); (yyval.l) = (yyvsp[(4) - (5)].l); ;} break; - case 123: -#line 1696 "Gmsh.y" + case 118: +#line 1585 "Gmsh.y" { DilatShapes((yyvsp[(3) - (9)].v)[0], (yyvsp[(3) - (9)].v)[1], (yyvsp[(3) - (9)].v)[2], (yyvsp[(5) - (9)].d), (yyvsp[(8) - (9)].l)); (yyval.l) = (yyvsp[(8) - (9)].l); ;} break; - case 124: -#line 1701 "Gmsh.y" + case 119: +#line 1590 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ @@ -5589,8 +5372,8 @@ yyreduce: ;} break; - case 125: -#line 1712 "Gmsh.y" + case 120: +#line 1601 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); IntersectCurvesWithSurface((yyvsp[(4) - (9)].l), (int)(yyvsp[(8) - (9)].d), (yyval.l)); @@ -5598,8 +5381,8 @@ yyreduce: ;} break; - case 126: -#line 1718 "Gmsh.y" + case 121: +#line 1607 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); BoundaryShapes((yyvsp[(3) - (4)].l), (yyval.l)); @@ -5607,32 +5390,32 @@ yyreduce: ;} break; - case 127: -#line 1726 "Gmsh.y" + case 122: +#line 1615 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 128: -#line 1727 "Gmsh.y" + case 123: +#line 1616 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 129: -#line 1732 "Gmsh.y" + case 124: +#line 1621 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); ;} break; - case 130: -#line 1736 "Gmsh.y" + case 125: +#line 1625 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); ;} break; - case 131: -#line 1740 "Gmsh.y" + case 126: +#line 1629 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5657,8 +5440,8 @@ yyreduce: ;} break; - case 132: -#line 1763 "Gmsh.y" + case 127: +#line 1652 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5683,8 +5466,8 @@ yyreduce: ;} break; - case 133: -#line 1786 "Gmsh.y" + case 128: +#line 1675 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5709,8 +5492,8 @@ yyreduce: ;} break; - case 134: -#line 1809 "Gmsh.y" + case 129: +#line 1698 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5735,8 +5518,8 @@ yyreduce: ;} break; - case 135: -#line 1837 "Gmsh.y" + case 130: +#line 1726 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5747,8 +5530,15 @@ yyreduce: ;} break; - case 136: -#line 1846 "Gmsh.y" + case 131: +#line 1734 "Gmsh.y" + { + GModel::current()->fields.delete_field((int)(yyvsp[(4) - (6)].d)); + ;} + break; + + case 132: +#line 1738 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (6)].c), "View")){ int index = (int)(yyvsp[(4) - (6)].d); @@ -5763,8 +5553,8 @@ yyreduce: ;} break; - case 137: -#line 1859 "Gmsh.y" + case 133: +#line 1751 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ GModel::current()->destroy(); @@ -5782,8 +5572,8 @@ yyreduce: ;} break; - case 138: -#line 1875 "Gmsh.y" + case 134: +#line 1767 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ for(int i = PView::list.size() - 1; i >= 0; i--) @@ -5795,8 +5585,8 @@ yyreduce: ;} break; - case 139: -#line 1890 "Gmsh.y" + case 135: +#line 1782 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -5807,8 +5597,8 @@ yyreduce: ;} break; - case 140: -#line 1904 "Gmsh.y" + case 136: +#line 1796 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 1); @@ -5816,8 +5606,8 @@ yyreduce: ;} break; - case 141: -#line 1910 "Gmsh.y" + case 137: +#line 1802 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 0); @@ -5825,8 +5615,8 @@ yyreduce: ;} break; - case 142: -#line 1916 "Gmsh.y" + case 138: +#line 1808 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5837,8 +5627,8 @@ yyreduce: ;} break; - case 143: -#line 1925 "Gmsh.y" + case 139: +#line 1817 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5849,8 +5639,8 @@ yyreduce: ;} break; - case 144: -#line 1939 "Gmsh.y" + case 140: +#line 1831 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ char tmpstring[1024]; @@ -5900,8 +5690,8 @@ yyreduce: ;} break; - case 145: -#line 1987 "Gmsh.y" + case 141: +#line 1879 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ int index = (int)(yyvsp[(4) - (7)].d); @@ -5919,27 +5709,27 @@ yyreduce: ;} break; - case 146: -#line 2003 "Gmsh.y" + case 142: +#line 1895 "Gmsh.y" { - if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ - int index = (int)(yyvsp[(5) - (7)].d); + /* if(!strcmp($1, "Background") && !strcmp($2, "Mesh") && !strcmp($3, "View")){ + int index = (int)$5; if(index >= 0 && index < (int)PView::list.size()){ Field *field = new PostViewField(PView::list[index]); - fields.insert(field); + GModel::current()->fields.insert(field); BGMAddField(field); } else yymsg(GERROR, "Unknown view %d", index); } - else + else*/ yymsg(GERROR, "Unknown command '%s'", (yyvsp[(1) - (7)].c)); Free((yyvsp[(1) - (7)].c)); Free((yyvsp[(2) - (7)].c)); Free((yyvsp[(3) - (7)].c)); ;} break; - case 147: -#line 2019 "Gmsh.y" + case 143: +#line 1911 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -5960,8 +5750,8 @@ yyreduce: ;} break; - case 148: -#line 2038 "Gmsh.y" + case 144: +#line 1930 "Gmsh.y" { try { GMSH_PluginManager::instance()->action((yyvsp[(3) - (7)].c), (yyvsp[(6) - (7)].c), 0); @@ -5973,8 +5763,8 @@ yyreduce: ;} break; - case 149: -#line 2048 "Gmsh.y" + case 145: +#line 1940 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) PView::combine(false, 1, CTX.post.combine_remove_orig); @@ -5998,31 +5788,31 @@ yyreduce: ;} break; - case 150: -#line 2070 "Gmsh.y" + case 146: +#line 1962 "Gmsh.y" { exit(0); ;} break; - case 151: -#line 2074 "Gmsh.y" + case 147: +#line 1966 "Gmsh.y" { CTX.forced_bbox = 0; SetBoundingBox(); ;} break; - case 152: -#line 2079 "Gmsh.y" + case 148: +#line 1971 "Gmsh.y" { CTX.forced_bbox = 1; SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d)); ;} break; - case 153: -#line 2084 "Gmsh.y" + case 149: +#line 1976 "Gmsh.y" { #if defined(HAVE_FLTK) Draw(); @@ -6030,8 +5820,8 @@ yyreduce: ;} break; - case 154: -#line 2096 "Gmsh.y" + case 150: +#line 1988 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -6050,8 +5840,8 @@ yyreduce: ;} break; - case 155: -#line 2113 "Gmsh.y" + case 151: +#line 2005 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -6070,8 +5860,8 @@ yyreduce: ;} break; - case 156: -#line 2130 "Gmsh.y" + case 152: +#line 2022 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -6100,8 +5890,8 @@ yyreduce: ;} break; - case 157: -#line 2157 "Gmsh.y" + case 153: +#line 2049 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -6130,8 +5920,8 @@ yyreduce: ;} break; - case 158: -#line 2184 "Gmsh.y" + case 154: +#line 2076 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(GERROR, "Invalid For/EndFor loop"); @@ -6164,8 +5954,8 @@ yyreduce: ;} break; - case 159: -#line 2215 "Gmsh.y" + case 155: +#line 2107 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction((yyvsp[(2) - (2)].c), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6175,8 +5965,8 @@ yyreduce: ;} break; - case 160: -#line 2223 "Gmsh.y" + case 156: +#line 2115 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction(&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6184,8 +5974,8 @@ yyreduce: ;} break; - case 161: -#line 2229 "Gmsh.y" + case 157: +#line 2121 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction((yyvsp[(2) - (3)].c), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6194,21 +5984,21 @@ yyreduce: ;} break; - case 162: -#line 2236 "Gmsh.y" + case 158: +#line 2128 "Gmsh.y" { if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf"); ;} break; - case 163: -#line 2240 "Gmsh.y" + case 159: +#line 2132 "Gmsh.y" { ;} break; - case 164: -#line 2249 "Gmsh.y" + case 160: +#line 2141 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -6218,8 +6008,8 @@ yyreduce: ;} break; - case 165: -#line 2257 "Gmsh.y" + case 161: +#line 2149 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -6229,8 +6019,8 @@ yyreduce: ;} break; - case 166: -#line 2265 "Gmsh.y" + case 162: +#line 2157 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -6240,15 +6030,15 @@ yyreduce: ;} break; - case 167: -#line 2273 "Gmsh.y" + case 163: +#line 2165 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 168: -#line 2277 "Gmsh.y" + case 164: +#line 2169 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -6258,15 +6048,15 @@ yyreduce: ;} break; - case 169: -#line 2285 "Gmsh.y" + case 165: +#line 2177 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 170: -#line 2289 "Gmsh.y" + case 166: +#line 2181 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -6276,15 +6066,15 @@ yyreduce: ;} break; - case 171: -#line 2297 "Gmsh.y" + case 167: +#line 2189 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 172: -#line 2301 "Gmsh.y" + case 168: +#line 2193 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -6294,15 +6084,15 @@ yyreduce: ;} break; - case 173: -#line 2309 "Gmsh.y" + case 169: +#line 2201 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 174: -#line 2313 "Gmsh.y" + case 170: +#line 2205 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -6311,15 +6101,15 @@ yyreduce: ;} break; - case 175: -#line 2320 "Gmsh.y" + case 171: +#line 2212 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 176: -#line 2324 "Gmsh.y" + case 172: +#line 2216 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); extr.mesh.ViewIndex = (int)(yyvsp[(4) - (10)].d); @@ -6331,8 +6121,8 @@ yyreduce: ;} break; - case 177: -#line 2336 "Gmsh.y" + case 173: +#line 2228 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -6341,8 +6131,8 @@ yyreduce: ;} break; - case 178: -#line 2343 "Gmsh.y" + case 174: +#line 2235 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -6351,8 +6141,8 @@ yyreduce: ;} break; - case 179: -#line 2350 "Gmsh.y" + case 175: +#line 2242 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -6361,8 +6151,8 @@ yyreduce: ;} break; - case 180: -#line 2357 "Gmsh.y" + case 176: +#line 2249 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6371,8 +6161,8 @@ yyreduce: ;} break; - case 181: -#line 2364 "Gmsh.y" + case 177: +#line 2256 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6381,8 +6171,8 @@ yyreduce: ;} break; - case 182: -#line 2371 "Gmsh.y" + case 178: +#line 2263 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6391,8 +6181,8 @@ yyreduce: ;} break; - case 183: -#line 2378 "Gmsh.y" + case 179: +#line 2270 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -6401,8 +6191,8 @@ yyreduce: ;} break; - case 184: -#line 2385 "Gmsh.y" + case 180: +#line 2277 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -6411,8 +6201,8 @@ yyreduce: ;} break; - case 185: -#line 2392 "Gmsh.y" + case 181: +#line 2284 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -6421,15 +6211,15 @@ yyreduce: ;} break; - case 186: -#line 2399 "Gmsh.y" + case 182: +#line 2291 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 187: -#line 2403 "Gmsh.y" + case 183: +#line 2295 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6438,15 +6228,15 @@ yyreduce: ;} break; - case 188: -#line 2410 "Gmsh.y" + case 184: +#line 2302 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 189: -#line 2414 "Gmsh.y" + case 185: +#line 2306 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6455,15 +6245,15 @@ yyreduce: ;} break; - case 190: -#line 2421 "Gmsh.y" + case 186: +#line 2313 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 191: -#line 2425 "Gmsh.y" + case 187: +#line 2317 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6472,15 +6262,15 @@ yyreduce: ;} break; - case 192: -#line 2432 "Gmsh.y" + case 188: +#line 2324 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 193: -#line 2436 "Gmsh.y" + case 189: +#line 2328 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -6489,15 +6279,15 @@ yyreduce: ;} break; - case 194: -#line 2443 "Gmsh.y" + case 190: +#line 2335 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 195: -#line 2447 "Gmsh.y" + case 191: +#line 2339 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -6506,15 +6296,15 @@ yyreduce: ;} break; - case 196: -#line 2454 "Gmsh.y" + case 192: +#line 2346 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 197: -#line 2458 "Gmsh.y" + case 193: +#line 2350 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -6523,15 +6313,15 @@ yyreduce: ;} break; - case 198: -#line 2465 "Gmsh.y" + case 194: +#line 2357 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 199: -#line 2469 "Gmsh.y" + case 195: +#line 2361 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -6540,15 +6330,15 @@ yyreduce: ;} break; - case 200: -#line 2476 "Gmsh.y" + case 196: +#line 2368 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 201: -#line 2480 "Gmsh.y" + case 197: +#line 2372 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -6557,15 +6347,15 @@ yyreduce: ;} break; - case 202: -#line 2487 "Gmsh.y" + case 198: +#line 2379 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 203: -#line 2491 "Gmsh.y" + case 199: +#line 2383 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -6574,20 +6364,20 @@ yyreduce: ;} break; - case 204: -#line 2502 "Gmsh.y" + case 200: +#line 2394 "Gmsh.y" { ;} break; - case 205: -#line 2505 "Gmsh.y" + case 201: +#line 2397 "Gmsh.y" { ;} break; - case 206: -#line 2511 "Gmsh.y" + case 202: +#line 2403 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -6598,8 +6388,8 @@ yyreduce: ;} break; - case 207: -#line 2520 "Gmsh.y" + case 203: +#line 2412 "Gmsh.y" { double d; extr.mesh.ExtrudeMesh = true; @@ -6621,8 +6411,8 @@ yyreduce: ;} break; - case 208: -#line 2540 "Gmsh.y" + case 204: +#line 2432 "Gmsh.y" { yymsg(GERROR, "Explicit region numbers in layers are deprecated"); double d; @@ -6647,15 +6437,15 @@ yyreduce: ;} break; - case 209: -#line 2563 "Gmsh.y" + case 205: +#line 2455 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; - case 210: -#line 2567 "Gmsh.y" + case 206: +#line 2459 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -6676,8 +6466,8 @@ yyreduce: ;} break; - case 211: -#line 2591 "Gmsh.y" + case 207: +#line 2483 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -6697,8 +6487,8 @@ yyreduce: ;} break; - case 212: -#line 2609 "Gmsh.y" + case 208: +#line 2501 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (9)].l)); i++){ double d; @@ -6718,8 +6508,8 @@ yyreduce: ;} break; - case 213: -#line 2627 "Gmsh.y" + case 209: +#line 2519 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (9)].l)); i++){ double d; @@ -6739,8 +6529,8 @@ yyreduce: ;} break; - case 214: -#line 2645 "Gmsh.y" + case 210: +#line 2537 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(4) - (8)].d)); if(!s) @@ -6771,8 +6561,8 @@ yyreduce: ;} break; - case 215: -#line 2674 "Gmsh.y" + case 211: +#line 2566 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(4) - (9)].d)); if(!s) @@ -6809,16 +6599,16 @@ yyreduce: ;} break; - case 216: -#line 2709 "Gmsh.y" + case 212: +#line 2601 "Gmsh.y" { yymsg(WARNING, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); ;} break; - case 217: -#line 2714 "Gmsh.y" + case 213: +#line 2606 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(4) - (8)].d)); if(!v) @@ -6847,8 +6637,8 @@ yyreduce: ;} break; - case 218: -#line 2741 "Gmsh.y" + case 214: +#line 2633 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -6864,8 +6654,8 @@ yyreduce: ;} break; - case 219: -#line 2755 "Gmsh.y" + case 215: +#line 2647 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ double d; @@ -6880,8 +6670,8 @@ yyreduce: ;} break; - case 220: -#line 2768 "Gmsh.y" + case 216: +#line 2660 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -6894,8 +6684,8 @@ yyreduce: ;} break; - case 221: -#line 2785 "Gmsh.y" + case 217: +#line 2677 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s) @@ -6903,8 +6693,8 @@ yyreduce: ;} break; - case 222: -#line 2791 "Gmsh.y" + case 218: +#line 2683 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s) @@ -6912,67 +6702,67 @@ yyreduce: ;} break; - case 223: -#line 2797 "Gmsh.y" + case 219: +#line 2689 "Gmsh.y" { ;} break; - case 224: -#line 2800 "Gmsh.y" + case 220: +#line 2692 "Gmsh.y" { ;} break; - case 225: -#line 2809 "Gmsh.y" + case 221: +#line 2701 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; - case 226: -#line 2818 "Gmsh.y" + case 222: +#line 2710 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 227: -#line 2819 "Gmsh.y" + case 223: +#line 2711 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; - case 228: -#line 2820 "Gmsh.y" + case 224: +#line 2712 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; - case 229: -#line 2821 "Gmsh.y" + case 225: +#line 2713 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; - case 230: -#line 2822 "Gmsh.y" + case 226: +#line 2714 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; - case 231: -#line 2823 "Gmsh.y" + case 227: +#line 2715 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; - case 232: -#line 2824 "Gmsh.y" + case 228: +#line 2716 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; - case 233: -#line 2825 "Gmsh.y" + case 229: +#line 2717 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; - case 234: -#line 2827 "Gmsh.y" + case 230: +#line 2719 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(GERROR, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -6981,308 +6771,308 @@ yyreduce: ;} break; - case 235: -#line 2833 "Gmsh.y" + case 231: +#line 2725 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; - case 236: -#line 2834 "Gmsh.y" + case 232: +#line 2726 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; - case 237: -#line 2835 "Gmsh.y" + case 233: +#line 2727 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; - case 238: -#line 2836 "Gmsh.y" + case 234: +#line 2728 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; - case 239: -#line 2837 "Gmsh.y" + case 235: +#line 2729 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; - case 240: -#line 2838 "Gmsh.y" + case 236: +#line 2730 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; - case 241: -#line 2839 "Gmsh.y" + case 237: +#line 2731 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; - case 242: -#line 2840 "Gmsh.y" + case 238: +#line 2732 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; - case 243: -#line 2841 "Gmsh.y" + case 239: +#line 2733 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; - case 244: -#line 2842 "Gmsh.y" + case 240: +#line 2734 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; - case 245: -#line 2843 "Gmsh.y" + case 241: +#line 2735 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d)? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; - case 246: -#line 2844 "Gmsh.y" + case 242: +#line 2736 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 247: -#line 2845 "Gmsh.y" + case 243: +#line 2737 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 248: -#line 2846 "Gmsh.y" + case 244: +#line 2738 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 249: -#line 2847 "Gmsh.y" + case 245: +#line 2739 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 250: -#line 2848 "Gmsh.y" + case 246: +#line 2740 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 251: -#line 2849 "Gmsh.y" + case 247: +#line 2741 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 252: -#line 2850 "Gmsh.y" + case 248: +#line 2742 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 253: -#line 2851 "Gmsh.y" + case 249: +#line 2743 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 254: -#line 2852 "Gmsh.y" + case 250: +#line 2744 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 255: -#line 2853 "Gmsh.y" + case 251: +#line 2745 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 256: -#line 2854 "Gmsh.y" + case 252: +#line 2746 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 257: -#line 2855 "Gmsh.y" + case 253: +#line 2747 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - case 258: -#line 2856 "Gmsh.y" + case 254: +#line 2748 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - case 259: -#line 2857 "Gmsh.y" + case 255: +#line 2749 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 260: -#line 2858 "Gmsh.y" + case 256: +#line 2750 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 261: -#line 2859 "Gmsh.y" + case 257: +#line 2751 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 262: -#line 2860 "Gmsh.y" + case 258: +#line 2752 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 263: -#line 2861 "Gmsh.y" + case 259: +#line 2753 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 264: -#line 2862 "Gmsh.y" + case 260: +#line 2754 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 265: -#line 2863 "Gmsh.y" + case 261: +#line 2755 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d)*(yyvsp[(3) - (6)].d)+(yyvsp[(5) - (6)].d)*(yyvsp[(5) - (6)].d)); ;} break; - case 266: -#line 2864 "Gmsh.y" + case 262: +#line 2756 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d)*(double)rand()/(double)RAND_MAX; ;} break; - case 267: -#line 2866 "Gmsh.y" + case 263: +#line 2758 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 268: -#line 2867 "Gmsh.y" + case 264: +#line 2759 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 269: -#line 2868 "Gmsh.y" + case 265: +#line 2760 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 270: -#line 2869 "Gmsh.y" + case 266: +#line 2761 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 271: -#line 2870 "Gmsh.y" + case 267: +#line 2762 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 272: -#line 2871 "Gmsh.y" + case 268: +#line 2763 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 273: -#line 2872 "Gmsh.y" + case 269: +#line 2764 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 274: -#line 2873 "Gmsh.y" + case 270: +#line 2765 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 275: -#line 2874 "Gmsh.y" + case 271: +#line 2766 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 276: -#line 2875 "Gmsh.y" + case 272: +#line 2767 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 277: -#line 2876 "Gmsh.y" + case 273: +#line 2768 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 278: -#line 2877 "Gmsh.y" + case 274: +#line 2769 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - case 279: -#line 2878 "Gmsh.y" + case 275: +#line 2770 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - case 280: -#line 2879 "Gmsh.y" + case 276: +#line 2771 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 281: -#line 2880 "Gmsh.y" + case 277: +#line 2772 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 282: -#line 2881 "Gmsh.y" + case 278: +#line 2773 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 283: -#line 2882 "Gmsh.y" + case 279: +#line 2774 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 284: -#line 2883 "Gmsh.y" + case 280: +#line 2775 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 285: -#line 2884 "Gmsh.y" + case 281: +#line 2776 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 286: -#line 2885 "Gmsh.y" + case 282: +#line 2777 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d)*(yyvsp[(3) - (6)].d)+(yyvsp[(5) - (6)].d)*(yyvsp[(5) - (6)].d)); ;} break; - case 287: -#line 2886 "Gmsh.y" + case 283: +#line 2778 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d)*(double)rand()/(double)RAND_MAX; ;} break; - case 288: -#line 2895 "Gmsh.y" + case 284: +#line 2787 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 289: -#line 2896 "Gmsh.y" + case 285: +#line 2788 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; - case 290: -#line 2897 "Gmsh.y" + case 286: +#line 2789 "Gmsh.y" { (yyval.d) = ParUtil::Instance()->rank(); ;} break; - case 291: -#line 2898 "Gmsh.y" + case 287: +#line 2790 "Gmsh.y" { (yyval.d) = ParUtil::Instance()->size(); ;} break; - case 292: -#line 2899 "Gmsh.y" + case 288: +#line 2791 "Gmsh.y" { (yyval.d) = Get_GmshMajorVersion(); ;} break; - case 293: -#line 2900 "Gmsh.y" + case 289: +#line 2792 "Gmsh.y" { (yyval.d) = Get_GmshMinorVersion(); ;} break; - case 294: -#line 2901 "Gmsh.y" + case 290: +#line 2793 "Gmsh.y" { (yyval.d) = Get_GmshPatchVersion(); ;} break; - case 295: -#line 2906 "Gmsh.y" + case 291: +#line 2798 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = (yyvsp[(1) - (1)].c); @@ -7297,8 +7087,8 @@ yyreduce: ;} break; - case 296: -#line 2922 "Gmsh.y" + case 292: +#line 2814 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ; @@ -7315,8 +7105,8 @@ yyreduce: ;} break; - case 297: -#line 2937 "Gmsh.y" + case 293: +#line 2829 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = (yyvsp[(1) - (4)].c); @@ -7338,8 +7128,8 @@ yyreduce: ;} break; - case 298: -#line 2957 "Gmsh.y" + case 294: +#line 2849 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = (yyvsp[(2) - (4)].c); @@ -7354,8 +7144,8 @@ yyreduce: ;} break; - case 299: -#line 2970 "Gmsh.y" + case 295: +#line 2862 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = (yyvsp[(1) - (2)].c); @@ -7370,8 +7160,8 @@ yyreduce: ;} break; - case 300: -#line 2983 "Gmsh.y" + case 296: +#line 2875 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = (yyvsp[(1) - (5)].c); @@ -7393,8 +7183,8 @@ yyreduce: ;} break; - case 301: -#line 3006 "Gmsh.y" + case 297: +#line 2898 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -7414,8 +7204,8 @@ yyreduce: ;} break; - case 302: -#line 3024 "Gmsh.y" + case 298: +#line 2916 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -7435,8 +7225,8 @@ yyreduce: ;} break; - case 303: -#line 3042 "Gmsh.y" + case 299: +#line 2934 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -7456,8 +7246,8 @@ yyreduce: ;} break; - case 304: -#line 3060 "Gmsh.y" + case 300: +#line 2952 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -7477,124 +7267,124 @@ yyreduce: ;} break; - case 305: -#line 3078 "Gmsh.y" + case 301: +#line 2970 "Gmsh.y" { (yyval.d) = GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); ;} break; - case 306: -#line 3086 "Gmsh.y" + case 302: +#line 2978 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; - case 307: -#line 3090 "Gmsh.y" + case 303: +#line 2982 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; - case 308: -#line 3094 "Gmsh.y" + case 304: +#line 2986 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; - case 309: -#line 3098 "Gmsh.y" + case 305: +#line 2990 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; - case 310: -#line 3102 "Gmsh.y" + case 306: +#line 2994 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; - case 311: -#line 3109 "Gmsh.y" + case 307: +#line 3001 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (11)].d); (yyval.v)[1] = (yyvsp[(4) - (11)].d); (yyval.v)[2] = (yyvsp[(6) - (11)].d); (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d); ;} break; - case 312: -#line 3113 "Gmsh.y" + case 308: +#line 3005 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (9)].d); (yyval.v)[1] = (yyvsp[(4) - (9)].d); (yyval.v)[2] = (yyvsp[(6) - (9)].d); (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0; ;} break; - case 313: -#line 3117 "Gmsh.y" + case 309: +#line 3009 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; - case 314: -#line 3121 "Gmsh.y" + case 310: +#line 3013 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; - case 315: -#line 3128 "Gmsh.y" + case 311: +#line 3020 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); ;} break; - case 316: -#line 3133 "Gmsh.y" + case 312: +#line 3025 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; - case 317: -#line 3141 "Gmsh.y" + case 313: +#line 3033 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 318: -#line 3146 "Gmsh.y" + case 314: +#line 3038 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 319: -#line 3150 "Gmsh.y" + case 315: +#line 3042 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); ;} break; - case 320: -#line 3155 "Gmsh.y" + case 316: +#line 3047 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 321: -#line 3159 "Gmsh.y" + case 317: +#line 3051 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7604,8 +7394,8 @@ yyreduce: ;} break; - case 322: -#line 3167 "Gmsh.y" + case 318: +#line 3059 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7615,8 +7405,8 @@ yyreduce: ;} break; - case 323: -#line 3178 "Gmsh.y" + case 319: +#line 3070 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7626,8 +7416,8 @@ yyreduce: ;} break; - case 324: -#line 3186 "Gmsh.y" + case 320: +#line 3078 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7637,8 +7427,8 @@ yyreduce: ;} break; - case 325: -#line 3194 "Gmsh.y" + case 321: +#line 3086 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d += 1.) : (d -= 1.)) @@ -7646,8 +7436,8 @@ yyreduce: ;} break; - case 326: -#line 3200 "Gmsh.y" + case 322: +#line 3092 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d) || ((yyvsp[(1) - (5)].d) < (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) < 0) || ((yyvsp[(1) - (5)].d) > (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) > 0)){ @@ -7660,8 +7450,8 @@ yyreduce: ;} break; - case 327: -#line 3211 "Gmsh.y" + case 323: +#line 3103 "Gmsh.y" { // Returns the coordinates of a point and fills a list with it. // This allows to ensure e.g. that relative point positions are @@ -7683,8 +7473,8 @@ yyreduce: ;} break; - case 328: -#line 3231 "Gmsh.y" + case 324: +#line 3123 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -7696,8 +7486,8 @@ yyreduce: ;} break; - case 329: -#line 3241 "Gmsh.y" + case 325: +#line 3133 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -7709,8 +7499,8 @@ yyreduce: ;} break; - case 330: -#line 3251 "Gmsh.y" + case 326: +#line 3143 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -7729,8 +7519,8 @@ yyreduce: ;} break; - case 331: -#line 3268 "Gmsh.y" + case 327: +#line 3160 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -7756,30 +7546,30 @@ yyreduce: ;} break; - case 332: -#line 3295 "Gmsh.y" + case 328: +#line 3187 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 333: -#line 3300 "Gmsh.y" + case 329: +#line 3192 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 334: -#line 3304 "Gmsh.y" + case 330: +#line 3196 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; - case 335: -#line 3308 "Gmsh.y" + case 331: +#line 3200 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -7790,22 +7580,22 @@ yyreduce: ;} break; - case 336: -#line 3321 "Gmsh.y" + case 332: +#line 3213 "Gmsh.y" { (yyval.u) = CTX.PACK_COLOR((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; - case 337: -#line 3325 "Gmsh.y" + case 333: +#line 3217 "Gmsh.y" { (yyval.u) = CTX.PACK_COLOR((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; - case 338: -#line 3337 "Gmsh.y" + case 334: +#line 3229 "Gmsh.y" { int flag; (yyval.u) = Get_ColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag); @@ -7814,8 +7604,8 @@ yyreduce: ;} break; - case 339: -#line 3344 "Gmsh.y" + case 335: +#line 3236 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -7835,15 +7625,15 @@ yyreduce: ;} break; - case 340: -#line 3365 "Gmsh.y" + case 336: +#line 3257 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 341: -#line 3369 "Gmsh.y" + case 337: +#line 3261 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = Get_ColorTable((int)(yyvsp[(3) - (6)].d)); @@ -7857,44 +7647,44 @@ yyreduce: ;} break; - case 342: -#line 3384 "Gmsh.y" + case 338: +#line 3276 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); ;} break; - case 343: -#line 3389 "Gmsh.y" + case 339: +#line 3281 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; - case 344: -#line 3396 "Gmsh.y" + case 340: +#line 3288 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 345: -#line 3400 "Gmsh.y" + case 341: +#line 3292 "Gmsh.y" { Msg(WARNING, "Named string expressions not implemented yet"); ;} break; - case 346: -#line 3407 "Gmsh.y" + case 342: +#line 3299 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 347: -#line 3411 "Gmsh.y" + case 343: +#line 3303 "Gmsh.y" { (yyval.c) = (char *)Malloc(32*sizeof(char)); time_t now; @@ -7904,8 +7694,8 @@ yyreduce: ;} break; - case 348: -#line 3419 "Gmsh.y" + case 344: +#line 3311 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (6)].c))+strlen((yyvsp[(5) - (6)].c))+1)*sizeof(char)); strcpy((yyval.c), (yyvsp[(3) - (6)].c)); @@ -7915,8 +7705,8 @@ yyreduce: ;} break; - case 349: -#line 3427 "Gmsh.y" + case 345: +#line 3319 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c))+1)*sizeof(char)); int i; @@ -7932,8 +7722,8 @@ yyreduce: ;} break; - case 350: -#line 3441 "Gmsh.y" + case 346: +#line 3333 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c))+1)*sizeof(char)); int i; @@ -7949,15 +7739,15 @@ yyreduce: ;} break; - case 351: -#line 3455 "Gmsh.y" + case 347: +#line 3347 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; - case 352: -#line 3459 "Gmsh.y" + case 348: +#line 3351 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -7978,8 +7768,8 @@ yyreduce: ;} break; - case 353: -#line 3478 "Gmsh.y" + case 349: +#line 3370 "Gmsh.y" { const char* (*pStrOpt)(int num, int action, const char *value); StringXString *pStrCat; @@ -8004,8 +7794,8 @@ yyreduce: ;} break; - case 354: -#line 3501 "Gmsh.y" + case 350: +#line 3393 "Gmsh.y" { const char* (*pStrOpt)(int num, int action, const char *value); StringXString *pStrCat; @@ -8032,7 +7822,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 8036 "Gmsh.tab.cpp" +#line 7826 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -8246,7 +8036,7 @@ yyreturn: } -#line 3525 "Gmsh.y" +#line 3417 "Gmsh.y" void DeleteSymbol(void *a, void *b) diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp index 5d7f03da049da01c0d7a8b13a0c864a9bf139c21..0ae3dd8d10b82fb01a68d5f1376cc5c0b9a01371 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -114,57 +114,51 @@ tCoherence = 330, tIntersect = 331, tBoundary = 332, - tAttractor = 333, - tLayers = 334, - tHole = 335, - tAlias = 336, - tAliasWithOptions = 337, - tText2D = 338, - tText3D = 339, - tInterpolationScheme = 340, - tTime = 341, - tCombine = 342, - tBSpline = 343, - tBezier = 344, - tNurbs = 345, - tOrder = 346, - tKnots = 347, - tColor = 348, - tColorTable = 349, - tFor = 350, - tIn = 351, - tEndFor = 352, - tIf = 353, - tEndIf = 354, - tExit = 355, - tField = 356, - tThreshold = 357, - tStructured = 358, - tLatLon = 359, - tGrad = 360, - tPostView = 361, - tReturn = 362, - tCall = 363, - tFunction = 364, - tShow = 365, - tHide = 366, - tGetValue = 367, - tGMSH_MAJOR_VERSION = 368, - tGMSH_MINOR_VERSION = 369, - tGMSH_PATCH_VERSION = 370, - tAFFECTDIVIDE = 371, - tAFFECTTIMES = 372, - tAFFECTMINUS = 373, - tAFFECTPLUS = 374, - tOR = 375, - tAND = 376, - tNOTEQUAL = 377, - tEQUAL = 378, - tGREATEROREQUAL = 379, - tLESSOREQUAL = 380, - UNARYPREC = 381, - tMINUSMINUS = 382, - tPLUSPLUS = 383 + tLayers = 333, + tHole = 334, + tAlias = 335, + tAliasWithOptions = 336, + tText2D = 337, + tText3D = 338, + tInterpolationScheme = 339, + tTime = 340, + tCombine = 341, + tBSpline = 342, + tBezier = 343, + tNurbs = 344, + tOrder = 345, + tKnots = 346, + tColor = 347, + tColorTable = 348, + tFor = 349, + tIn = 350, + tEndFor = 351, + tIf = 352, + tEndIf = 353, + tExit = 354, + tField = 355, + tReturn = 356, + tCall = 357, + tFunction = 358, + tShow = 359, + tHide = 360, + tGetValue = 361, + tGMSH_MAJOR_VERSION = 362, + tGMSH_MINOR_VERSION = 363, + tGMSH_PATCH_VERSION = 364, + tAFFECTDIVIDE = 365, + tAFFECTTIMES = 366, + tAFFECTMINUS = 367, + tAFFECTPLUS = 368, + tOR = 369, + tAND = 370, + tNOTEQUAL = 371, + tEQUAL = 372, + tGREATEROREQUAL = 373, + tLESSOREQUAL = 374, + UNARYPREC = 375, + tMINUSMINUS = 376, + tPLUSPLUS = 377 }; #endif /* Tokens. */ @@ -243,57 +237,51 @@ #define tCoherence 330 #define tIntersect 331 #define tBoundary 332 -#define tAttractor 333 -#define tLayers 334 -#define tHole 335 -#define tAlias 336 -#define tAliasWithOptions 337 -#define tText2D 338 -#define tText3D 339 -#define tInterpolationScheme 340 -#define tTime 341 -#define tCombine 342 -#define tBSpline 343 -#define tBezier 344 -#define tNurbs 345 -#define tOrder 346 -#define tKnots 347 -#define tColor 348 -#define tColorTable 349 -#define tFor 350 -#define tIn 351 -#define tEndFor 352 -#define tIf 353 -#define tEndIf 354 -#define tExit 355 -#define tField 356 -#define tThreshold 357 -#define tStructured 358 -#define tLatLon 359 -#define tGrad 360 -#define tPostView 361 -#define tReturn 362 -#define tCall 363 -#define tFunction 364 -#define tShow 365 -#define tHide 366 -#define tGetValue 367 -#define tGMSH_MAJOR_VERSION 368 -#define tGMSH_MINOR_VERSION 369 -#define tGMSH_PATCH_VERSION 370 -#define tAFFECTDIVIDE 371 -#define tAFFECTTIMES 372 -#define tAFFECTMINUS 373 -#define tAFFECTPLUS 374 -#define tOR 375 -#define tAND 376 -#define tNOTEQUAL 377 -#define tEQUAL 378 -#define tGREATEROREQUAL 379 -#define tLESSOREQUAL 380 -#define UNARYPREC 381 -#define tMINUSMINUS 382 -#define tPLUSPLUS 383 +#define tLayers 333 +#define tHole 334 +#define tAlias 335 +#define tAliasWithOptions 336 +#define tText2D 337 +#define tText3D 338 +#define tInterpolationScheme 339 +#define tTime 340 +#define tCombine 341 +#define tBSpline 342 +#define tBezier 343 +#define tNurbs 344 +#define tOrder 345 +#define tKnots 346 +#define tColor 347 +#define tColorTable 348 +#define tFor 349 +#define tIn 350 +#define tEndFor 351 +#define tIf 352 +#define tEndIf 353 +#define tExit 354 +#define tField 355 +#define tReturn 356 +#define tCall 357 +#define tFunction 358 +#define tShow 359 +#define tHide 360 +#define tGetValue 361 +#define tGMSH_MAJOR_VERSION 362 +#define tGMSH_MINOR_VERSION 363 +#define tGMSH_PATCH_VERSION 364 +#define tAFFECTDIVIDE 365 +#define tAFFECTTIMES 366 +#define tAFFECTMINUS 367 +#define tAFFECTPLUS 368 +#define tOR 369 +#define tAND 370 +#define tNOTEQUAL 371 +#define tEQUAL 372 +#define tGREATEROREQUAL 373 +#define tLESSOREQUAL 374 +#define UNARYPREC 375 +#define tMINUSMINUS 376 +#define tPLUSPLUS 377 @@ -310,8 +298,8 @@ typedef union YYSTYPE Shape s; List_T *l; } -/* Line 1529 of yacc.c. */ -#line 315 "Gmsh.tab.hpp" +/* Line 1489 of yacc.c. */ +#line 303 "Gmsh.tab.hpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index fd2985ce60791f243fedfc709fd7630303a81017..3d36ba4aeedd2bdfc5b96ae00807b29e80abfe16 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.y,v 1.302 2008-02-23 15:30:09 geuzaine Exp $ +// $Id: Gmsh.y,v 1.303 2008-03-18 08:41:25 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -101,11 +101,11 @@ int PrintListOfDouble(char *format, List_T *list, char *buffer); %token tUsing tBump tProgression tPlugin %token tRotate tTranslate tSymmetry tDilate tExtrude tDuplicata %token tLoop tRecombine tSmoother tDelete tCoherence tIntersect tBoundary -%token tAttractor tLayers tHole tAlias tAliasWithOptions +%token tLayers tHole tAlias tAliasWithOptions %token tText2D tText3D tInterpolationScheme tTime tCombine %token tBSpline tBezier tNurbs tOrder tKnots %token tColor tColorTable tFor tIn tEndFor tIf tEndIf tExit -%token tField tThreshold tStructured tLatLon tGrad tPostView +%token tField %token tReturn tCall tFunction tShow tHide tGetValue %token tGMSH_MAJOR_VERSION tGMSH_MINOR_VERSION tGMSH_PATCH_VERSION @@ -950,7 +950,62 @@ Affectation : Free($1); List_Delete($8); } - + | tSTRING tField tAFFECT FExpr tEND + { + if(!strcmp($1,"Background")){ + GModel::current()->fields.background_field=(int)$4; + }else{ + yymsg(GERROR, "Unknown command %s Field.",$1); + } + } + | tField '[' FExpr ']' tAFFECT tSTRING tEND + { + if(!GModel::current()->fields.new_field((int)$3,$6)) + yymsg(GERROR, "Cannot create field %i of type '%s'.", (int)$3, $6); + } + | tField '[' FExpr ']' '.' tSTRING tAFFECT FExpr tEND + { + Field *field=GModel::current()->fields.get((int)$3); + if(field){ + FieldOption *option=field->options[$6]; + if(option){ + try {option->numerical_value($8);} + catch(...){ + yymsg(GERROR, "Cannot assign a numerical value to option '%s' in field %i of type '%s'", $6,(int)$3,field->get_name()); + } + }else yymsg(GERROR, "Unknown option '%s' in field %i of type '%s'", $6,(int)$3,field->get_name()); + }else yymsg(GERROR, "No field with id %i",(int)$3); + + } + | tField '['FExpr ']' '.' tSTRING tAFFECT StringExpr tEND + { + Field *field=GModel::current()->fields.get((int)$3); + if(field){ + FieldOption *option=field->options[$6]; + if(option){ + try {option->string()=$8;} + catch (...){ + yymsg(GERROR, "Cannot assign a string value to option '%s' in field %i of type '%s'", $6,(int)$3,field->get_name()); + } + }else yymsg(GERROR, "Unknown option '%s' in field %i of type '%s'", $6,(int)$3,field->get_name()); + }else yymsg(GERROR, "No field with id %i",(int)$3); + } + | tField '['FExpr ']' '.' tSTRING tAFFECT ListOfDouble tEND + { + Field *field=GModel::current()->fields.get((int)$3); + if(field){ + FieldOption *option=field->options[$6]; + if(option){ + std::list<int> &vl=option->list(); + vl.clear(); + for(int i=0;i<List_Nbr($8);i++){ + double id; + List_Read($8,i,&id); + vl.push_back(id); + } + }else yymsg(GERROR, "Unknown option '%s' in field %i of type '%s'", $6,(int)$3,field->get_name()); + }else yymsg(GERROR, "No field with id %i",(int)$3); + } // Plugins | tPlugin '(' tSTRING ')' '.' tSTRING tAFFECT FExpr tEND @@ -1033,172 +1088,6 @@ Shape : $$.Type = MSH_PHYSICAL_POINT; $$.Num = num; } - | tAttractor tPoint tField '(' FExpr ')' tAFFECT ListOfDouble tEND - { - AttractorField *att = new AttractorField(); - for(int i = 0; i < List_Nbr($8); i++){ - double d; - List_Read($8, i, &d); - Vertex *v = FindPoint((int)d); - if(v) - att->addPoint(v->Pos.X, v->Pos.Y, v->Pos.Z); - else{ - GVertex *gv = GModel::current()->getVertexByTag((int)d); - if(gv) - att->addPoint(gv->x(), gv->y(), gv->z()); - } - } - att->buildFastSearchStructures(); - fields.insert(att, (int)$5); - // dummy values - $$.Type = 0; - $$.Num = 0; - } - | tLatLon tField '(' FExpr ')' tAFFECT FExpr tEND - { - fields.insert(new LatLonField(fields.get((int)$7)), (int)$4); - // dummy values - $$.Type = 0; - $$.Num = 0; - } - | tPostView tField '(' FExpr ')' tAFFECT FExpr tEND - { - int index = (int)$7; - if(index >= 0 && index < (int)PView::list.size()) - fields.insert(new PostViewField(PView::list[index]), (int)$4); - else - yymsg(GERROR, "Field %i error, view %i does not exist", (int)$4, (int)$7); - // dummy values - $$.Type = 0; - $$.Num = 0; - } - | tThreshold tField '(' FExpr ')' tAFFECT ListOfDouble tEND - { - double pars[] = {0, CTX.lc/10, CTX.lc, CTX.lc/100, CTX.lc/20}; - for(int i = 0; i < List_Nbr($7); i++){ - if(i > 4) - yymsg(GERROR, "Too many parameters for Thresold Field (max=5)"); - else - List_Read($7, i, &pars[i]); - } - fields.insert(new ThresholdField(fields.get((int)pars[0]), pars[1], - pars[2], pars[3], pars[4]), (int)$4); - // dummy values - $$.Type = 0; - $$.Num = 0; - } - | tFunction tField '(' FExpr ')' tAFFECT tBIGSTR tEND - { - std::list<Field*> *flist = new std::list<Field*>; - fields.insert(new FunctionField(flist,$7), (int)$4); - // dummy values - $$.Type = 0; - $$.Num = 0; - } - | tFunction tField '(' FExpr ')' tAFFECT tBIGSTR ListOfDouble tEND - { - std::list<Field*> *flist = new std::list<Field*>; - flist->resize(0); - for(int i = 0; i < List_Nbr($8); i++){ - double id; - List_Read($8, i, &id); - Field *pfield = fields.get((int)id); - if(pfield) flist->push_front(pfield); - } - fields.insert(new FunctionField(flist,$7), (int)$4); - // dummy values - $$.Type = 0; - $$.Num = 0; - } - | tStructured tField '(' FExpr ')' tAFFECT tBIGSTR tEND - { - fields.insert(new StructuredField($7), (int)$4); - // dummy values - $$.Type = 0; - $$.Num = 0; - } - | tCharacteristic tLength tField ListOfDouble tEND - { - for(int i = 0; i < List_Nbr($4); i++){ - double id; - List_Read($4, i, &id); - BGMAddField(fields.get((int)id)); - } - // dummy values - $$.Type = 0; - $$.Num = 0; - } - // backward compatibility - | tAttractor tPoint ListOfDouble tAFFECT ListOfDouble tEND - { - double pars[] = { CTX.lc/10, CTX.lc/100., CTX.lc/20, 1, 3 }; - for(int i = 0; i < List_Nbr($5); i++){ - if(i > 4) - yymsg(GERROR, "Too many paramaters for attractor line (max = 5)"); - else - List_Read($5, i, &pars[i]); - } - // treshold attractor: first parameter is the treshold, next two - // are the in and out size fields, last is transition factor - AttractorField *attractor = new AttractorField(); - fields.insert(attractor); - Field *threshold = new ThresholdField(attractor, pars[0], pars[0] * pars[4], - pars[1], pars[2]); - fields.insert(threshold); - BGMAddField(threshold); - for(int i = 0; i < List_Nbr($3); i++){ - double d; - List_Read($3, i, &d); - Vertex *v = FindPoint((int)d); - if(v) - attractor->addPoint(v->Pos.X, v->Pos.Y, v->Pos.Z); - else{ - GVertex *gv = GModel::current()->getVertexByTag((int)d); - if(gv) - attractor->addPoint(gv->x(), gv->y(), gv->z()); - } - } - attractor->buildFastSearchStructures(); - // dummy values - $$.Type = 0; - $$.Num = 0; - } - | tAttractor tLine ListOfDouble tAFFECT ListOfDouble tEND - { - double pars[] = { CTX.lc/10, CTX.lc/100., CTX.lc/20, 10, 3 }; - for(int i = 0; i < List_Nbr($5); i++){ - if(i > 4) - yymsg(GERROR, "Too many paramaters for attractor line (max = 5)"); - else - List_Read($5, i, &pars[i]); - } - // treshold attractor: first parameter is the treshold, next two - // are the in and out size fields, last is transition factor - AttractorField *att = new AttractorField(); - fields.insert(att); - Field *threshold = new ThresholdField(att, pars[0], pars[0] * pars[4], - pars[1], pars[2]); - fields.insert(threshold); - BGMAddField(threshold); - for(int i = 0; i < List_Nbr($3); i++){ - double d; - List_Read($3, i, &d); - Curve *c = FindCurve((int)d); - if(c){ - att->addCurve(c, (int)pars[3]); - } - else{ - GEdge *ge = GModel::current()->getEdgeByTag((int)d); - if(ge){ - att->addGEdge(ge, (int)pars[3]); - } - } - } - att->buildFastSearchStructures(); - // dummy values - $$.Type = 0; - $$.Num = 0; - } | tCharacteristic tLength ListOfDouble tAFFECT FExpr tEND { for(int i = 0; i < List_Nbr($3); i++){ @@ -1842,6 +1731,9 @@ Delete : } List_Delete($3); } + | tDelete tField '[' FExpr ']' tEND{ + GModel::current()->fields.delete_field((int)$4); + } | tDelete tSTRING '[' FExpr ']' tEND { if(!strcmp($2, "View")){ @@ -2001,17 +1893,17 @@ Command : } | tSTRING tSTRING tSTRING '[' FExpr ']' tEND { - if(!strcmp($1, "Background") && !strcmp($2, "Mesh") && !strcmp($3, "View")){ + /* if(!strcmp($1, "Background") && !strcmp($2, "Mesh") && !strcmp($3, "View")){ int index = (int)$5; if(index >= 0 && index < (int)PView::list.size()){ Field *field = new PostViewField(PView::list[index]); - fields.insert(field); + GModel::current()->fields.insert(field); BGMAddField(field); } else yymsg(GERROR, "Unknown view %d", index); } - else + else*/ yymsg(GERROR, "Unknown command '%s'", $1); Free($1); Free($2); Free($3); } diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index ae7f8bb723ab4013c824de973d9a609c9592c65d..ce6d5ec520a082d48dad30724f96ca566115e023 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -6,10 +6,29 @@ /* A lexical scanner generated by flex */ +#define yy_create_buffer gmsh_yy_create_buffer +#define yy_delete_buffer gmsh_yy_delete_buffer +#define yy_flex_debug gmsh_yy_flex_debug +#define yy_init_buffer gmsh_yy_init_buffer +#define yy_flush_buffer gmsh_yy_flush_buffer +#define yy_load_buffer_state gmsh_yy_load_buffer_state +#define yy_switch_to_buffer gmsh_yy_switch_to_buffer +#define yyin gmsh_yyin +#define yyleng gmsh_yyleng +#define yylex gmsh_yylex +#define yylineno gmsh_yylineno +#define yyout gmsh_yyout +#define yyrestart gmsh_yyrestart +#define yytext gmsh_yytext +#define yywrap gmsh_yywrap +#define yyalloc gmsh_yyalloc +#define yyrealloc gmsh_yyrealloc +#define yyfree gmsh_yyfree + #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 33 +#define YY_FLEX_SUBMINOR_VERSION 34 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -31,7 +50,7 @@ /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ -#if __STDC_VERSION__ >= 199901L +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. @@ -94,11 +113,12 @@ typedef unsigned int flex_uint32_t; #else /* ! __cplusplus */ -#if __STDC__ +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) #define YY_USE_CONST -#endif /* __STDC__ */ +#endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST @@ -181,11 +201,13 @@ extern FILE *gmsh_yyin, *gmsh_yyout; /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). + * Given that the standard has decreed that size_t exists since 1989, + * I guess we can afford to depend on it. Manoj. */ #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T -typedef unsigned int yy_size_t; +typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -364,8 +386,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 150 -#define YY_END_OF_BUFFER 151 +#define YY_NUM_RULES 145 +#define YY_END_OF_BUFFER 146 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -373,79 +395,76 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[647] = +static yyconst flex_int16_t yy_accept[613] = { 0, - 0, 0, 151, 149, 1, 1, 149, 5, 149, 6, - 149, 149, 149, 149, 149, 144, 20, 2, 149, 15, - 149, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 149, 27, 23, 18, 24, 16, 25, - 17, 0, 146, 3, 4, 19, 145, 144, 0, 28, - 26, 29, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 87, 86, - - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 103, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 140, 141, 148, - 148, 148, 148, 148, 148, 148, 148, 22, 21, 0, - 145, 0, 0, 147, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 51, 148, 148, 148, 148, 148, 148, - 148, 148, 63, 148, 148, 148, 148, 148, 76, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 94, 148, 148, 148, 148, 148, 148, - - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 119, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 134, 148, 148, 148, 148, - 148, 148, 0, 146, 0, 0, 145, 30, 148, 148, - 148, 148, 34, 36, 148, 148, 148, 148, 43, 58, - 148, 46, 148, 148, 148, 148, 148, 148, 148, 50, - 148, 148, 62, 148, 148, 148, 148, 148, 71, 148, - 72, 148, 148, 75, 148, 148, 148, 79, 83, 84, - 148, 148, 148, 148, 148, 148, 148, 92, 148, 93, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - - 148, 148, 148, 148, 115, 148, 148, 148, 148, 130, - 120, 148, 148, 148, 148, 118, 148, 148, 148, 148, - 148, 148, 143, 133, 148, 148, 148, 148, 148, 10, - 9, 8, 148, 12, 14, 0, 145, 32, 148, 148, - 148, 38, 148, 148, 148, 148, 148, 148, 148, 148, - 54, 148, 148, 148, 148, 148, 148, 148, 148, 69, - 148, 148, 73, 74, 148, 148, 148, 85, 148, 148, - 89, 148, 148, 148, 95, 148, 148, 148, 100, 101, - 148, 148, 104, 148, 105, 148, 148, 106, 148, 148, - 148, 148, 148, 114, 148, 148, 148, 148, 148, 148, - - 148, 148, 148, 148, 148, 136, 148, 137, 148, 11, - 148, 13, 148, 31, 35, 37, 148, 148, 41, 148, - 148, 148, 148, 47, 148, 148, 148, 148, 148, 59, - 60, 148, 148, 148, 68, 148, 148, 148, 148, 148, - 148, 148, 148, 90, 96, 91, 148, 148, 97, 148, - 148, 111, 148, 148, 110, 148, 148, 116, 113, 148, - 121, 122, 148, 126, 148, 148, 148, 148, 148, 148, - 148, 148, 138, 7, 148, 39, 148, 44, 148, 148, - 148, 148, 148, 148, 49, 53, 148, 148, 65, 148, - 148, 148, 66, 148, 148, 148, 148, 148, 148, 148, - - 148, 148, 148, 148, 148, 148, 148, 148, 148, 125, - 148, 148, 148, 123, 148, 148, 148, 148, 148, 148, - 42, 148, 148, 148, 148, 148, 148, 148, 64, 67, - 148, 77, 148, 148, 148, 78, 148, 148, 98, 99, - 148, 102, 148, 139, 148, 148, 117, 148, 148, 148, - 124, 148, 148, 148, 148, 40, 148, 148, 148, 48, - 148, 148, 61, 70, 148, 148, 148, 148, 88, 148, - 148, 148, 112, 127, 148, 148, 135, 148, 132, 148, - 148, 57, 148, 55, 148, 148, 148, 148, 148, 108, - 148, 148, 148, 129, 148, 148, 45, 148, 56, 148, - - 148, 148, 148, 109, 107, 128, 131, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 52, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 33, 148, 148, 148, 148, 148, 148, 148, 148, 80, - 81, 82, 148, 148, 142, 0 + 0, 0, 146, 144, 1, 1, 144, 5, 144, 6, + 144, 144, 144, 144, 144, 139, 21, 2, 144, 16, + 144, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 144, 28, 24, 19, 25, 17, 26, + 18, 0, 141, 3, 4, 20, 140, 139, 0, 29, + 27, 30, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 86, 85, 143, + + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 101, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 135, 136, 143, 143, + 143, 143, 143, 143, 143, 23, 22, 0, 140, 0, + 0, 142, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 51, 143, 143, 143, 143, 143, 143, 143, 143, 63, + 143, 143, 143, 143, 143, 76, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 143, 92, 143, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + + 143, 143, 143, 143, 143, 143, 143, 143, 143, 117, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 131, + 143, 143, 143, 143, 143, 0, 141, 0, 0, 140, + 31, 143, 143, 143, 143, 35, 37, 143, 143, 143, + 43, 58, 143, 46, 143, 143, 143, 143, 143, 143, + 143, 50, 143, 143, 62, 143, 143, 143, 143, 143, + 71, 143, 72, 143, 143, 75, 143, 143, 143, 82, + 83, 143, 143, 143, 143, 143, 143, 90, 143, 91, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 113, 143, 143, 143, 143, 127, 118, + + 143, 143, 143, 143, 116, 143, 143, 143, 143, 143, + 138, 130, 143, 143, 143, 143, 10, 15, 9, 8, + 143, 12, 14, 0, 140, 33, 143, 143, 143, 39, + 143, 143, 143, 143, 143, 143, 143, 54, 143, 143, + 143, 143, 143, 143, 143, 143, 69, 143, 143, 73, + 74, 143, 143, 143, 84, 143, 143, 88, 143, 143, + 93, 143, 143, 143, 98, 99, 143, 143, 102, 143, + 103, 143, 104, 143, 143, 143, 143, 143, 112, 143, + 143, 143, 143, 143, 143, 143, 143, 143, 132, 143, + 133, 143, 11, 143, 13, 143, 32, 36, 38, 143, + + 41, 143, 143, 143, 143, 47, 143, 143, 143, 143, + 143, 59, 60, 143, 143, 143, 68, 143, 143, 143, + 143, 143, 143, 143, 143, 94, 89, 143, 143, 95, + 143, 143, 109, 143, 108, 143, 143, 114, 111, 143, + 119, 120, 143, 124, 143, 143, 143, 143, 143, 143, + 134, 7, 143, 40, 44, 143, 143, 143, 143, 143, + 143, 49, 53, 143, 143, 65, 143, 143, 143, 66, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 123, 143, 143, 121, 143, + 143, 143, 143, 42, 143, 143, 143, 143, 143, 143, + + 143, 64, 67, 143, 77, 143, 143, 143, 78, 143, + 143, 96, 97, 143, 100, 143, 143, 143, 115, 143, + 143, 122, 143, 143, 143, 143, 143, 143, 48, 143, + 143, 61, 70, 143, 143, 143, 143, 87, 143, 143, + 143, 110, 125, 143, 143, 129, 143, 143, 57, 143, + 55, 143, 143, 143, 143, 143, 106, 143, 143, 143, + 143, 143, 45, 143, 56, 143, 143, 143, 143, 107, + 105, 126, 128, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 52, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 34, 143, 143, 143, + + 143, 143, 143, 143, 143, 79, 80, 81, 143, 143, + 137, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -492,157 +511,151 @@ static yyconst flex_int32_t yy_meta[73] = 2, 1 } ; -static yyconst flex_int16_t yy_base[648] = +static yyconst flex_int16_t yy_base[614] = { 0, - 0, 0, 768, 769, 769, 769, 746, 769, 760, 769, - 744, 64, 65, 63, 75, 77, 769, 769, 743, 742, - 741, 46, 48, 65, 66, 65, 80, 67, 45, 90, - 0, 702, 92, 46, 694, 696, 101, 94, 108, 152, - 694, 697, 705, 683, 769, 769, 769, 769, 769, 769, - 769, 743, 171, 769, 769, 769, 176, 194, 215, 769, - 769, 769, 0, 693, 697, 702, 695, 86, 688, 677, - 681, 688, 79, 690, 697, 680, 159, 685, 684, 693, - 678, 681, 687, 687, 110, 687, 683, 673, 672, 668, - 671, 688, 663, 680, 676, 668, 663, 681, 0, 657, - - 661, 107, 661, 660, 97, 687, 667, 653, 665, 651, - 643, 0, 35, 178, 121, 653, 32, 646, 653, 649, - 649, 647, 180, 643, 642, 641, 645, 0, 0, 667, - 642, 637, 649, 651, 642, 639, 627, 769, 769, 238, - 243, 252, 258, 263, 630, 646, 154, 633, 632, 627, - 632, 633, 628, 625, 628, 626, 626, 619, 632, 629, - 619, 153, 615, 623, 625, 628, 606, 616, 617, 166, - 614, 605, 0, 606, 604, 610, 606, 615, 0, 615, - 633, 618, 611, 609, 608, 598, 630, 605, 590, 620, - 602, 599, 600, 636, 588, 602, 581, 598, 594, 597, - - 579, 583, 588, 581, 592, 573, 586, 577, 582, 584, - 573, 566, 584, 579, 561, 574, 567, 575, 570, 569, - 558, 257, 570, 563, 593, 565, 567, 570, 557, 556, - 548, 235, 272, 290, 299, 304, 311, 0, 549, 552, - 556, 563, 0, 594, 561, 552, 555, 555, 0, 0, - 538, 0, 556, 545, 538, 537, 544, 541, 547, 0, - 531, 530, 0, 539, 532, 532, 539, 535, 0, 523, - 0, 538, 524, 0, 521, 539, 537, 0, 0, 0, - 518, 542, 518, 516, 519, 515, 512, 0, 563, 0, - 198, 518, 510, 510, 514, 516, 519, 514, 503, 504, - - 522, 502, 499, 500, 0, 504, 498, 495, 509, 0, - 0, 493, 494, 497, 496, 0, 507, 490, 501, 502, - 503, 498, 0, 0, 484, 477, 482, 492, 486, 0, - 486, 0, 491, 484, 0, 316, 321, 495, 475, 479, - 478, 0, 487, 476, 471, 171, 476, 483, 480, 479, - 487, 469, 476, 471, 474, 473, 474, 176, 459, 0, - 471, 470, 0, 0, 464, 255, 461, 0, 479, 452, - 0, 456, 450, 459, 0, 465, 456, 450, 0, 0, - 458, 459, 0, 448, 0, 465, 450, 0, 452, 452, - 454, 442, 449, 0, 445, 447, 446, 431, 430, 443, - - 436, 427, 442, 425, 435, 0, 192, 0, 437, 0, - 434, 0, 431, 0, 0, 470, 419, 432, 0, 419, - 422, 423, 414, 0, 419, 430, 425, 406, 415, 0, - 0, 426, 149, 417, 0, 416, 419, 409, 260, 445, - 401, 429, 414, 0, 0, 0, 405, 392, 0, 397, - 414, 0, 399, 408, 0, 394, 402, 0, 0, 405, - 0, 0, 403, 0, 402, 406, 386, 400, 387, 389, - 393, 400, 0, 0, 381, 0, 385, 0, 374, 390, - 402, 390, 391, 391, 0, 0, 391, 372, 0, 372, - 386, 387, 0, 374, 400, 395, 388, 378, 394, 378, - - 370, 374, 361, 366, 368, 353, 356, 360, 355, 0, - 362, 351, 352, 0, 344, 356, 353, 346, 356, 346, - 0, 384, 347, 343, 354, 347, 338, 355, 0, 0, - 342, 0, 363, 362, 373, 0, 374, 331, 0, 0, - 340, 0, 343, 0, 338, 341, 0, 322, 335, 338, - 0, 338, 332, 335, 348, 0, 324, 325, 327, 0, - 330, 329, 0, 0, 339, 338, 347, 334, 0, 326, - 311, 313, 0, 0, 305, 321, 0, 305, 0, 308, - 299, 0, 303, 0, 302, 319, 318, 317, 331, 0, - 310, 301, 308, 0, 307, 292, 0, 291, 0, 311, - - 310, 309, 315, 0, 0, 0, 0, 296, 295, 322, - 321, 320, 310, 285, 295, 303, 302, 301, 294, 280, - 0, 281, 270, 269, 260, 236, 250, 233, 232, 225, - 0, 199, 183, 165, 152, 144, 123, 117, 96, 0, - 0, 0, 78, 80, 0, 769, 96 + 0, 0, 734, 735, 735, 735, 712, 735, 726, 735, + 710, 64, 65, 63, 75, 77, 735, 735, 709, 708, + 707, 46, 48, 65, 66, 65, 80, 46, 45, 71, + 0, 668, 92, 46, 660, 662, 94, 108, 111, 147, + 660, 663, 671, 649, 735, 735, 735, 735, 735, 735, + 735, 709, 169, 735, 735, 735, 174, 189, 213, 735, + 735, 735, 0, 659, 663, 668, 661, 668, 653, 642, + 646, 653, 61, 655, 662, 645, 154, 650, 649, 658, + 643, 646, 652, 652, 95, 652, 648, 638, 637, 633, + 636, 653, 628, 642, 634, 629, 647, 0, 623, 627, + + 616, 626, 625, 111, 652, 632, 618, 630, 616, 608, + 0, 35, 164, 98, 618, 96, 611, 618, 614, 614, + 612, 79, 608, 607, 606, 610, 0, 0, 632, 607, + 615, 617, 608, 605, 593, 735, 735, 228, 233, 242, + 248, 253, 596, 612, 192, 599, 598, 599, 600, 595, + 592, 595, 593, 593, 586, 599, 596, 586, 119, 582, + 590, 592, 595, 573, 583, 584, 164, 581, 572, 0, + 573, 571, 577, 573, 582, 0, 582, 600, 585, 577, + 576, 566, 598, 573, 558, 571, 568, 569, 605, 557, + 571, 550, 567, 563, 566, 548, 552, 557, 550, 561, + + 556, 547, 552, 554, 543, 536, 554, 549, 531, 544, + 537, 545, 540, 539, 528, 247, 540, 533, 563, 535, + 541, 528, 527, 519, 225, 280, 285, 294, 299, 304, + 0, 520, 523, 527, 534, 0, 565, 524, 527, 527, + 0, 0, 510, 0, 528, 517, 510, 509, 516, 513, + 519, 0, 503, 502, 0, 511, 504, 504, 511, 507, + 0, 495, 0, 510, 496, 0, 493, 511, 509, 0, + 0, 490, 514, 490, 488, 488, 485, 0, 536, 0, + 157, 491, 483, 483, 487, 489, 492, 487, 476, 477, + 476, 473, 474, 0, 478, 472, 469, 483, 0, 0, + + 467, 468, 471, 470, 0, 481, 464, 475, 478, 473, + 0, 0, 453, 458, 468, 462, 0, 0, 462, 0, + 467, 460, 0, 309, 314, 471, 451, 455, 454, 0, + 453, 448, 184, 453, 460, 457, 456, 464, 446, 453, + 448, 451, 450, 451, 171, 436, 0, 448, 447, 0, + 0, 441, 238, 438, 0, 456, 429, 0, 428, 437, + 0, 443, 434, 428, 0, 0, 436, 437, 0, 426, + 0, 443, 0, 431, 431, 433, 421, 428, 0, 424, + 426, 425, 410, 409, 422, 415, 422, 405, 0, 118, + 0, 418, 0, 415, 0, 412, 0, 0, 451, 414, + + 0, 401, 404, 405, 396, 0, 401, 412, 407, 388, + 397, 0, 0, 408, 47, 399, 0, 398, 401, 391, + 248, 427, 383, 411, 396, 0, 0, 387, 374, 0, + 379, 396, 0, 381, 0, 377, 385, 0, 0, 388, + 0, 0, 386, 0, 385, 389, 384, 371, 378, 385, + 0, 0, 366, 0, 0, 360, 376, 388, 376, 377, + 377, 0, 0, 377, 358, 0, 358, 372, 373, 0, + 360, 386, 381, 374, 364, 380, 364, 356, 360, 347, + 352, 354, 343, 347, 342, 0, 349, 338, 0, 332, + 342, 335, 345, 0, 374, 337, 333, 344, 337, 328, + + 345, 0, 0, 332, 0, 353, 352, 363, 0, 364, + 321, 0, 0, 330, 0, 333, 328, 331, 0, 312, + 325, 0, 324, 327, 340, 316, 317, 319, 0, 322, + 321, 0, 0, 331, 330, 339, 326, 0, 318, 303, + 305, 0, 0, 297, 298, 0, 301, 292, 0, 296, + 0, 295, 312, 311, 310, 324, 0, 303, 294, 301, + 300, 285, 0, 284, 0, 304, 303, 302, 308, 0, + 0, 0, 0, 289, 288, 315, 314, 313, 303, 278, + 288, 296, 295, 294, 287, 273, 0, 265, 264, 250, + 249, 219, 250, 249, 247, 250, 0, 217, 216, 187, + + 185, 177, 173, 163, 166, 0, 0, 0, 144, 117, + 0, 735, 111 } ; -static yyconst flex_int16_t yy_def[648] = +static yyconst flex_int16_t yy_def[614] = { 0, - 646, 1, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 646, 646, 646, - 646, 646, 646, 646, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 646, 646, 646, 646, 646, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 646, 646, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 647, 0, 646 + 612, 1, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 612, 612, 612, 612, 612, + 612, 612, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 612, 612, 612, 612, 612, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 612, 612, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + + 613, 613, 613, 613, 613, 613, 613, 613, 613, 613, + 613, 0, 612 } ; -static yyconst flex_int16_t yy_nxt[842] = +static yyconst flex_int16_t yy_nxt[808] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 17, 18, 19, @@ -652,94 +665,90 @@ static yyconst flex_int16_t yy_nxt[842] = 31, 31, 31, 31, 31, 31, 31, 31, 43, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 44, 48, 52, 50, 53, 53, 53, 53, 53, - 211, 202, 54, 106, 49, 51, 55, 57, 69, 58, - 58, 58, 58, 58, 64, 56, 212, 63, 70, 95, - - 203, 92, 65, 59, 96, 107, 645, 71, 66, 67, - 68, 73, 644, 72, 97, 74, 78, 93, 75, 76, - 79, 82, 643, 83, 77, 98, 86, 59, 80, 94, - 84, 81, 149, 85, 87, 155, 88, 89, 102, 90, - 116, 99, 103, 156, 117, 91, 104, 110, 100, 194, - 150, 105, 642, 118, 111, 112, 195, 113, 641, 119, - 114, 120, 121, 115, 172, 122, 128, 129, 123, 124, - 173, 190, 125, 126, 174, 208, 191, 127, 240, 640, - 209, 639, 130, 53, 53, 53, 53, 53, 141, 141, - 141, 141, 141, 266, 241, 242, 267, 140, 131, 489, - - 257, 638, 142, 490, 57, 132, 58, 58, 58, 58, - 58, 133, 160, 258, 134, 161, 162, 420, 163, 637, - 59, 140, 164, 143, 143, 421, 142, 144, 144, 144, - 144, 144, 204, 218, 205, 636, 219, 376, 377, 433, - 434, 206, 220, 471, 59, 207, 233, 233, 472, 635, - 234, 234, 234, 234, 234, 141, 141, 141, 141, 141, - 236, 236, 634, 633, 237, 237, 237, 237, 237, 235, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 632, 317, 495, 330, 234, 234, 234, 234, 234, 439, - 496, 331, 440, 235, 318, 332, 319, 333, 334, 631, - - 630, 335, 234, 234, 234, 234, 234, 336, 336, 629, - 628, 337, 337, 337, 337, 337, 237, 237, 237, 237, - 237, 627, 320, 237, 237, 237, 237, 237, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 626, 625, - 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, - 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, - 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, - 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, - 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, - 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, - - 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, - 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, - 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, - 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, - 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, - 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, - 504, 503, 502, 501, 500, 499, 498, 497, 494, 493, - 492, 491, 488, 487, 486, 485, 484, 483, 482, 481, - 480, 479, 478, 477, 476, 475, 474, 473, 470, 469, - 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, - - 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, - 448, 447, 446, 445, 444, 443, 442, 441, 438, 437, - 436, 435, 432, 431, 430, 429, 428, 427, 426, 425, - 424, 423, 422, 419, 418, 417, 416, 415, 414, 413, - 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, - 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, - 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, - 382, 381, 380, 379, 378, 375, 374, 373, 372, 371, - 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, - 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, - - 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, - 340, 339, 338, 329, 328, 327, 326, 325, 324, 323, - 322, 321, 316, 315, 314, 313, 312, 311, 310, 309, - 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, - 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, - 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, - 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, - 268, 265, 264, 263, 262, 261, 260, 259, 256, 255, - 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, - 244, 243, 239, 238, 232, 231, 230, 229, 228, 227, - - 226, 225, 224, 223, 222, 221, 217, 216, 215, 214, - 213, 210, 201, 200, 199, 198, 197, 196, 193, 192, - 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, - 179, 178, 177, 176, 175, 171, 170, 169, 168, 167, - 166, 165, 159, 158, 157, 154, 153, 152, 151, 148, - 147, 146, 145, 139, 138, 137, 136, 135, 109, 108, - 101, 62, 61, 60, 47, 46, 45, 646, 3, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646 + 92, 197, 54, 105, 49, 51, 55, 57, 69, 58, + 58, 58, 58, 58, 64, 56, 93, 466, 70, 94, + + 198, 467, 65, 59, 95, 106, 97, 71, 66, 67, + 68, 73, 63, 72, 96, 74, 78, 152, 75, 76, + 79, 82, 98, 83, 77, 153, 86, 59, 80, 99, + 84, 81, 212, 85, 87, 213, 88, 89, 101, 90, + 109, 214, 102, 611, 205, 91, 103, 110, 111, 169, + 112, 104, 202, 113, 115, 170, 114, 203, 116, 171, + 206, 127, 128, 189, 119, 120, 249, 117, 121, 449, + 190, 122, 123, 118, 450, 124, 125, 129, 610, 250, + 126, 53, 53, 53, 53, 53, 139, 139, 139, 139, + 139, 258, 609, 130, 259, 138, 362, 363, 608, 57, + + 140, 58, 58, 58, 58, 58, 131, 157, 607, 132, + 158, 159, 606, 160, 605, 59, 233, 161, 199, 138, + 200, 141, 141, 604, 140, 142, 142, 142, 142, 142, + 402, 201, 234, 235, 415, 416, 226, 226, 403, 59, + 227, 227, 227, 227, 227, 139, 139, 139, 139, 139, + 229, 229, 603, 602, 230, 230, 230, 230, 230, 228, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 472, 306, 421, 317, 601, 422, 318, 600, 473, 599, + 598, 319, 597, 228, 307, 320, 308, 321, 322, 596, + 595, 323, 227, 227, 227, 227, 227, 227, 227, 227, + + 227, 227, 324, 324, 594, 593, 325, 325, 325, 325, + 325, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 325, 325, 325, 325, 325, 325, 325, 325, 325, + 325, 592, 591, 590, 589, 588, 587, 586, 585, 584, + 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, + 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, + 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, + 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, + 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, + 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, + + 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, + 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, + 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, + 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, + 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, + 471, 470, 469, 468, 465, 464, 463, 462, 461, 460, + 459, 458, 457, 456, 455, 454, 453, 452, 451, 448, + 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, + 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, + 427, 426, 425, 424, 423, 420, 419, 418, 417, 414, + + 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, + 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, + 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, + 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, + 371, 370, 369, 368, 367, 366, 365, 364, 361, 360, + 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, + 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, + 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, + 329, 328, 327, 326, 316, 315, 314, 313, 312, 311, + 310, 309, 305, 304, 303, 302, 301, 300, 299, 298, + + 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, + 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, + 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, + 267, 266, 265, 264, 263, 262, 261, 260, 257, 256, + 255, 254, 253, 252, 251, 248, 247, 246, 245, 244, + 243, 242, 241, 240, 239, 238, 237, 236, 232, 231, + 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, + 215, 211, 210, 209, 208, 207, 204, 196, 195, 194, + 193, 192, 191, 188, 187, 186, 185, 184, 183, 182, + 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, + + 168, 167, 166, 165, 164, 163, 162, 156, 155, 154, + 151, 150, 149, 148, 147, 146, 145, 144, 143, 137, + 136, 135, 134, 133, 108, 107, 100, 62, 61, 60, + 47, 46, 45, 612, 3, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + + 612, 612, 612, 612, 612, 612, 612 } ; -static yyconst flex_int16_t yy_chk[842] = +static yyconst flex_int16_t yy_chk[808] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -749,91 +758,87 @@ static yyconst flex_int16_t yy_chk[842] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 14, 13, 14, 14, 14, 14, 14, - 117, 113, 15, 34, 12, 13, 15, 16, 23, 16, - 16, 16, 16, 16, 22, 15, 117, 647, 23, 29, - - 113, 28, 22, 16, 29, 34, 644, 23, 22, 22, - 22, 24, 643, 23, 29, 24, 25, 28, 24, 24, - 25, 26, 639, 26, 24, 30, 27, 16, 25, 28, - 26, 25, 68, 26, 27, 73, 27, 27, 33, 27, - 38, 30, 33, 73, 38, 27, 33, 37, 30, 105, - 68, 33, 638, 38, 37, 37, 105, 37, 637, 38, - 37, 39, 39, 37, 85, 39, 40, 40, 39, 39, - 85, 102, 39, 39, 85, 115, 102, 39, 147, 636, - 115, 635, 40, 53, 53, 53, 53, 53, 57, 57, - 57, 57, 57, 170, 147, 147, 170, 53, 40, 433, - - 162, 634, 57, 433, 58, 40, 58, 58, 58, 58, - 58, 40, 77, 162, 40, 77, 77, 346, 77, 633, - 58, 53, 77, 59, 59, 346, 57, 59, 59, 59, - 59, 59, 114, 123, 114, 632, 123, 291, 291, 358, - 358, 114, 123, 407, 58, 114, 140, 140, 407, 630, - 140, 140, 140, 140, 140, 141, 141, 141, 141, 141, - 142, 142, 629, 628, 142, 142, 142, 142, 142, 141, - 143, 143, 143, 143, 143, 144, 144, 144, 144, 144, - 627, 222, 439, 232, 233, 233, 233, 233, 233, 366, - 439, 232, 366, 141, 222, 232, 222, 232, 232, 626, - - 625, 232, 234, 234, 234, 234, 234, 235, 235, 624, - 623, 235, 235, 235, 235, 235, 236, 236, 236, 236, - 236, 622, 222, 237, 237, 237, 237, 237, 336, 336, - 336, 336, 336, 337, 337, 337, 337, 337, 620, 619, - 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, - 608, 603, 602, 601, 600, 598, 596, 595, 593, 592, - 591, 589, 588, 587, 586, 585, 583, 581, 580, 578, - 576, 575, 572, 571, 570, 568, 567, 566, 565, 562, - 561, 559, 558, 557, 555, 554, 553, 552, 550, 549, - 548, 546, 545, 543, 541, 538, 537, 535, 534, 533, - - 531, 528, 527, 526, 525, 524, 523, 522, 520, 519, - 518, 517, 516, 515, 513, 512, 511, 509, 508, 507, - 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, - 496, 495, 494, 492, 491, 490, 488, 487, 484, 483, - 482, 481, 480, 479, 477, 475, 472, 471, 470, 469, - 468, 467, 466, 465, 463, 460, 457, 456, 454, 453, - 451, 450, 448, 447, 443, 442, 441, 440, 438, 437, - 436, 434, 432, 429, 428, 427, 426, 425, 423, 422, - 421, 420, 418, 417, 416, 413, 411, 409, 405, 404, - 403, 402, 401, 400, 399, 398, 397, 396, 395, 393, - - 392, 391, 390, 389, 387, 386, 384, 382, 381, 378, - 377, 376, 374, 373, 372, 370, 369, 367, 365, 362, - 361, 359, 357, 356, 355, 354, 353, 352, 351, 350, - 349, 348, 347, 345, 344, 343, 341, 340, 339, 338, - 334, 333, 331, 329, 328, 327, 326, 325, 322, 321, - 320, 319, 318, 317, 315, 314, 313, 312, 309, 308, - 307, 306, 304, 303, 302, 301, 300, 299, 298, 297, - 296, 295, 294, 293, 292, 289, 287, 286, 285, 284, - 283, 282, 281, 277, 276, 275, 273, 272, 270, 268, - 267, 266, 265, 264, 262, 261, 259, 258, 257, 256, - - 255, 254, 253, 251, 248, 247, 246, 245, 244, 242, - 241, 240, 239, 231, 230, 229, 228, 227, 226, 225, - 224, 223, 221, 220, 219, 218, 217, 216, 215, 214, - 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, - 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, - 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, - 183, 182, 181, 180, 178, 177, 176, 175, 174, 172, - 171, 169, 168, 167, 166, 165, 164, 163, 161, 160, - 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, - 149, 148, 146, 145, 137, 136, 135, 134, 133, 132, - - 131, 130, 127, 126, 125, 124, 122, 121, 120, 119, - 118, 116, 111, 110, 109, 108, 107, 106, 104, 103, - 101, 100, 98, 97, 96, 95, 94, 93, 92, 91, - 90, 89, 88, 87, 86, 84, 83, 82, 81, 80, - 79, 78, 76, 75, 74, 72, 71, 70, 69, 67, - 66, 65, 64, 52, 44, 43, 42, 41, 36, 35, - 32, 21, 20, 19, 11, 9, 7, 3, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646 + 28, 112, 15, 34, 12, 13, 15, 16, 23, 16, + 16, 16, 16, 16, 22, 15, 28, 415, 23, 29, + + 112, 415, 22, 16, 29, 34, 30, 23, 22, 22, + 22, 24, 613, 23, 29, 24, 25, 73, 24, 24, + 25, 26, 30, 26, 24, 73, 27, 16, 25, 30, + 26, 25, 122, 26, 27, 122, 27, 27, 33, 27, + 37, 122, 33, 610, 116, 27, 33, 37, 37, 85, + 37, 33, 114, 37, 38, 85, 37, 114, 38, 85, + 116, 40, 40, 104, 39, 39, 159, 38, 39, 390, + 104, 39, 39, 38, 390, 39, 39, 40, 609, 159, + 39, 53, 53, 53, 53, 53, 57, 57, 57, 57, + 57, 167, 605, 40, 167, 53, 281, 281, 604, 58, + + 57, 58, 58, 58, 58, 58, 40, 77, 603, 40, + 77, 77, 602, 77, 601, 58, 145, 77, 113, 53, + 113, 59, 59, 600, 57, 59, 59, 59, 59, 59, + 333, 113, 145, 145, 345, 345, 138, 138, 333, 58, + 138, 138, 138, 138, 138, 139, 139, 139, 139, 139, + 140, 140, 599, 598, 140, 140, 140, 140, 140, 139, + 141, 141, 141, 141, 141, 142, 142, 142, 142, 142, + 421, 216, 353, 225, 596, 353, 225, 595, 421, 594, + 593, 225, 592, 139, 216, 225, 216, 225, 225, 591, + 590, 225, 226, 226, 226, 226, 226, 227, 227, 227, + + 227, 227, 228, 228, 589, 588, 228, 228, 228, 228, + 228, 229, 229, 229, 229, 229, 230, 230, 230, 230, + 230, 324, 324, 324, 324, 324, 325, 325, 325, 325, + 325, 586, 585, 584, 583, 582, 581, 580, 579, 578, + 577, 576, 575, 574, 569, 568, 567, 566, 564, 562, + 561, 560, 559, 558, 556, 555, 554, 553, 552, 550, + 548, 547, 545, 544, 541, 540, 539, 537, 536, 535, + 534, 531, 530, 528, 527, 526, 525, 524, 523, 521, + 520, 518, 517, 516, 514, 511, 510, 508, 507, 506, + 504, 501, 500, 499, 498, 497, 496, 495, 493, 492, + + 491, 490, 488, 487, 485, 484, 483, 482, 481, 480, + 479, 478, 477, 476, 475, 474, 473, 472, 471, 469, + 468, 467, 465, 464, 461, 460, 459, 458, 457, 456, + 453, 450, 449, 448, 447, 446, 445, 443, 440, 437, + 436, 434, 432, 431, 429, 428, 425, 424, 423, 422, + 420, 419, 418, 416, 414, 411, 410, 409, 408, 407, + 405, 404, 403, 402, 400, 399, 396, 394, 392, 388, + 387, 386, 385, 384, 383, 382, 381, 380, 378, 377, + 376, 375, 374, 372, 370, 368, 367, 364, 363, 362, + 360, 359, 357, 356, 354, 352, 349, 348, 346, 344, + + 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, + 332, 331, 329, 328, 327, 326, 322, 321, 319, 316, + 315, 314, 313, 310, 309, 308, 307, 306, 304, 303, + 302, 301, 298, 297, 296, 295, 293, 292, 291, 290, + 289, 288, 287, 286, 285, 284, 283, 282, 279, 277, + 276, 275, 274, 273, 272, 269, 268, 267, 265, 264, + 262, 260, 259, 258, 257, 256, 254, 253, 251, 250, + 249, 248, 247, 246, 245, 243, 240, 239, 238, 237, + 235, 234, 233, 232, 224, 223, 222, 221, 220, 219, + 218, 217, 215, 214, 213, 212, 211, 210, 209, 208, + + 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, + 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, + 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, + 177, 175, 174, 173, 172, 171, 169, 168, 166, 165, + 164, 163, 162, 161, 160, 158, 157, 156, 155, 154, + 153, 152, 151, 150, 149, 148, 147, 146, 144, 143, + 135, 134, 133, 132, 131, 130, 129, 126, 125, 124, + 123, 121, 120, 119, 118, 117, 115, 110, 109, 108, + 107, 106, 105, 103, 102, 101, 100, 99, 97, 96, + 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, + + 84, 83, 82, 81, 80, 79, 78, 76, 75, 74, + 72, 71, 70, 69, 68, 67, 66, 65, 64, 52, + 44, 43, 42, 41, 36, 35, 32, 21, 20, 19, + 11, 9, 7, 3, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + + 612, 612, 612, 612, 612, 612, 612 } ; static yy_state_type yy_last_accepting_state; @@ -852,7 +857,7 @@ int gmsh_yy_flex_debug = 0; char *gmsh_yytext; #line 1 "Gmsh.l" #line 2 "Gmsh.l" -// $Id: Gmsh.yy.cpp,v 1.349 2008-02-23 15:30:10 geuzaine Exp $ +// $Id: Gmsh.yy.cpp,v 1.350 2008-03-18 08:41:26 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -912,7 +917,7 @@ void skipline(void); #define YY_NO_UNISTD_H #endif -#line 916 "Gmsh.yy.cpp" +#line 921 "Gmsh.yy.cpp" #define INITIAL 0 @@ -972,7 +977,7 @@ static int input (void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO (void) fwrite( gmsh_yytext, gmsh_yyleng, 1, gmsh_yyout ) +#define ECHO fwrite( gmsh_yytext, gmsh_yyleng, 1, gmsh_yyout ) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -983,7 +988,7 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + int n; \ for ( n = 0; n < max_size && \ (c = getc( gmsh_yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -1068,7 +1073,7 @@ YY_DECL #line 71 "Gmsh.l" -#line 1072 "Gmsh.yy.cpp" +#line 1077 "Gmsh.yy.cpp" if ( !(yy_init) ) { @@ -1121,13 +1126,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 647 ) + if ( yy_current_state >= 613 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 769 ); + while ( yy_base[yy_current_state] != 735 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1225,32 +1230,32 @@ YY_RULE_SETUP case 15: YY_RULE_SETUP #line 87 "Gmsh.l" -return tAFFECT; +{ gmsh_yylval.d = NEWFIELD(); return tDOUBLE; } YY_BREAK case 16: YY_RULE_SETUP #line 88 "Gmsh.l" -return tAFFECTPLUS; +return tAFFECT; YY_BREAK case 17: YY_RULE_SETUP #line 89 "Gmsh.l" -return tAFFECTMINUS; +return tAFFECTPLUS; YY_BREAK case 18: YY_RULE_SETUP #line 90 "Gmsh.l" -return tAFFECTTIMES; +return tAFFECTMINUS; YY_BREAK case 19: YY_RULE_SETUP #line 91 "Gmsh.l" -return tAFFECTDIVIDE; +return tAFFECTTIMES; YY_BREAK case 20: YY_RULE_SETUP #line 92 "Gmsh.l" -return tDOTS; +return tAFFECTDIVIDE; YY_BREAK case 21: YY_RULE_SETUP @@ -1260,47 +1265,47 @@ return tDOTS; case 22: YY_RULE_SETUP #line 94 "Gmsh.l" -return tOR; +return tDOTS; YY_BREAK case 23: YY_RULE_SETUP #line 95 "Gmsh.l" -return tAND; +return tOR; YY_BREAK case 24: YY_RULE_SETUP #line 96 "Gmsh.l" -return tPLUSPLUS; +return tAND; YY_BREAK case 25: YY_RULE_SETUP #line 97 "Gmsh.l" -return tMINUSMINUS; +return tPLUSPLUS; YY_BREAK case 26: YY_RULE_SETUP #line 98 "Gmsh.l" -return tEQUAL; +return tMINUSMINUS; YY_BREAK case 27: YY_RULE_SETUP #line 99 "Gmsh.l" -return tNOTEQUAL; +return tEQUAL; YY_BREAK case 28: YY_RULE_SETUP #line 100 "Gmsh.l" -return tLESSOREQUAL; +return tNOTEQUAL; YY_BREAK case 29: YY_RULE_SETUP #line 101 "Gmsh.l" -return tGREATEROREQUAL; +return tLESSOREQUAL; YY_BREAK case 30: YY_RULE_SETUP -#line 103 "Gmsh.l" -return tAcos; +#line 102 "Gmsh.l" +return tGREATEROREQUAL; YY_BREAK case 31: YY_RULE_SETUP @@ -1310,17 +1315,17 @@ return tAcos; case 32: YY_RULE_SETUP #line 105 "Gmsh.l" -return tAlias; +return tAcos; YY_BREAK case 33: YY_RULE_SETUP #line 106 "Gmsh.l" -return tAliasWithOptions; +return tAlias; YY_BREAK case 34: YY_RULE_SETUP #line 107 "Gmsh.l" -return tAsin; +return tAliasWithOptions; YY_BREAK case 35: YY_RULE_SETUP @@ -1330,7 +1335,7 @@ return tAsin; case 36: YY_RULE_SETUP #line 109 "Gmsh.l" -return tAtan; +return tAsin; YY_BREAK case 37: YY_RULE_SETUP @@ -1340,7 +1345,7 @@ return tAtan; case 38: YY_RULE_SETUP #line 111 "Gmsh.l" -return tAtan2; +return tAtan; YY_BREAK case 39: YY_RULE_SETUP @@ -1350,7 +1355,7 @@ return tAtan2; case 40: YY_RULE_SETUP #line 113 "Gmsh.l" -return tAttractor; +return tAtan2; YY_BREAK case 41: YY_RULE_SETUP @@ -1545,355 +1550,330 @@ return tGetValue; case 79: YY_RULE_SETUP #line 158 "Gmsh.l" -return tGrad; +return tGMSH_MAJOR_VERSION; YY_BREAK case 80: YY_RULE_SETUP #line 159 "Gmsh.l" -return tGMSH_MAJOR_VERSION; +return tGMSH_MINOR_VERSION; YY_BREAK case 81: YY_RULE_SETUP #line 160 "Gmsh.l" -return tGMSH_MINOR_VERSION; +return tGMSH_PATCH_VERSION; YY_BREAK case 82: YY_RULE_SETUP -#line 161 "Gmsh.l" -return tGMSH_PATCH_VERSION; +#line 162 "Gmsh.l" +return tHide; YY_BREAK case 83: YY_RULE_SETUP #line 163 "Gmsh.l" -return tHide; +return tHole; YY_BREAK case 84: YY_RULE_SETUP #line 164 "Gmsh.l" -return tHole; +return tHypot; YY_BREAK case 85: YY_RULE_SETUP -#line 165 "Gmsh.l" -return tHypot; +#line 166 "Gmsh.l" +return tIn; YY_BREAK case 86: YY_RULE_SETUP #line 167 "Gmsh.l" -return tIn; +return tIf; YY_BREAK case 87: YY_RULE_SETUP #line 168 "Gmsh.l" -return tIf; +return tIntersect; YY_BREAK case 88: YY_RULE_SETUP -#line 169 "Gmsh.l" -return tIntersect; +#line 170 "Gmsh.l" +return tKnots; YY_BREAK case 89: YY_RULE_SETUP -#line 171 "Gmsh.l" -return tKnots; +#line 172 "Gmsh.l" +return tLength; YY_BREAK case 90: YY_RULE_SETUP #line 173 "Gmsh.l" -return tLatLon; +return tLine; YY_BREAK case 91: YY_RULE_SETUP #line 174 "Gmsh.l" -return tLength; +return tLoop; YY_BREAK case 92: YY_RULE_SETUP #line 175 "Gmsh.l" -return tLine; +return tLog; YY_BREAK case 93: YY_RULE_SETUP #line 176 "Gmsh.l" -return tLoop; +return tLog10; YY_BREAK case 94: YY_RULE_SETUP #line 177 "Gmsh.l" -return tLog; +return tLayers; YY_BREAK case 95: YY_RULE_SETUP -#line 178 "Gmsh.l" -return tLog10; +#line 179 "Gmsh.l" +return tModulo; YY_BREAK case 96: YY_RULE_SETUP -#line 179 "Gmsh.l" -return tLayers; +#line 180 "Gmsh.l" +return tMPI_Rank; YY_BREAK case 97: YY_RULE_SETUP #line 181 "Gmsh.l" -return tModulo; +return tMPI_Size; YY_BREAK case 98: YY_RULE_SETUP -#line 182 "Gmsh.l" -return tMPI_Rank; +#line 183 "Gmsh.l" +return tNurbs; YY_BREAK case 99: YY_RULE_SETUP -#line 183 "Gmsh.l" -return tMPI_Size; +#line 185 "Gmsh.l" +return tOrder; YY_BREAK case 100: YY_RULE_SETUP -#line 185 "Gmsh.l" -return tNurbs; +#line 187 "Gmsh.l" +return tPhysical; YY_BREAK case 101: YY_RULE_SETUP -#line 187 "Gmsh.l" -return tOrder; +#line 188 "Gmsh.l" +return tPi; YY_BREAK case 102: YY_RULE_SETUP #line 189 "Gmsh.l" -return tPhysical; +return tPlane; YY_BREAK case 103: YY_RULE_SETUP #line 190 "Gmsh.l" -return tPi; +return tPoint; YY_BREAK case 104: YY_RULE_SETUP #line 191 "Gmsh.l" -return tPlane; +return tProgression; YY_BREAK case 105: YY_RULE_SETUP #line 192 "Gmsh.l" -return tPoint; +return tProgression; YY_BREAK case 106: YY_RULE_SETUP #line 193 "Gmsh.l" -return tProgression; +return tParametric; YY_BREAK case 107: YY_RULE_SETUP #line 194 "Gmsh.l" -return tProgression; +return tPolarSphere; YY_BREAK case 108: YY_RULE_SETUP #line 195 "Gmsh.l" -return tParametric; +return tPrintf; YY_BREAK case 109: YY_RULE_SETUP #line 196 "Gmsh.l" -return tPolarSphere; +return tPlugin; YY_BREAK case 110: YY_RULE_SETUP -#line 197 "Gmsh.l" -return tPrintf; +#line 198 "Gmsh.l" +return tRecombine; YY_BREAK case 111: YY_RULE_SETUP -#line 198 "Gmsh.l" -return tPlugin; +#line 199 "Gmsh.l" +return tRotate; YY_BREAK case 112: YY_RULE_SETUP #line 200 "Gmsh.l" -return tRecombine; +return tRuled; YY_BREAK case 113: YY_RULE_SETUP #line 201 "Gmsh.l" -return tRotate; +return tRand; YY_BREAK case 114: YY_RULE_SETUP #line 202 "Gmsh.l" -return tRuled; +return tReturn; YY_BREAK case 115: YY_RULE_SETUP -#line 203 "Gmsh.l" -return tRand; +#line 204 "Gmsh.l" +return tSmoother; YY_BREAK case 116: YY_RULE_SETUP -#line 204 "Gmsh.l" -return tReturn; +#line 205 "Gmsh.l" +return tSqrt; YY_BREAK case 117: YY_RULE_SETUP #line 206 "Gmsh.l" -return tSmoother; +return tSin; YY_BREAK case 118: YY_RULE_SETUP #line 207 "Gmsh.l" -return tSqrt; +return tSinh; YY_BREAK case 119: YY_RULE_SETUP #line 208 "Gmsh.l" -return tSin; +return tSphere; YY_BREAK case 120: YY_RULE_SETUP #line 209 "Gmsh.l" -return tSinh; +return tSpline; YY_BREAK case 121: YY_RULE_SETUP #line 210 "Gmsh.l" -return tSphere; +return tSurface; YY_BREAK case 122: YY_RULE_SETUP #line 211 "Gmsh.l" -return tSpline; +return tSymmetry; YY_BREAK case 123: YY_RULE_SETUP #line 212 "Gmsh.l" -return tSurface; +return tSprintf; YY_BREAK case 124: YY_RULE_SETUP #line 213 "Gmsh.l" -return tSymmetry; +return tStrCat; YY_BREAK case 125: YY_RULE_SETUP #line 214 "Gmsh.l" -return tSprintf; +return tStrPrefix; YY_BREAK case 126: YY_RULE_SETUP #line 215 "Gmsh.l" -return tStrCat; +return tStrRelative; YY_BREAK case 127: YY_RULE_SETUP #line 216 "Gmsh.l" -return tStrPrefix; +return tShow; YY_BREAK case 128: YY_RULE_SETUP -#line 217 "Gmsh.l" -return tStrRelative; +#line 218 "Gmsh.l" +return tTransfinite; YY_BREAK case 129: YY_RULE_SETUP -#line 218 "Gmsh.l" -return tStructured; +#line 219 "Gmsh.l" +return tTranslate; YY_BREAK case 130: YY_RULE_SETUP -#line 219 "Gmsh.l" -return tShow; +#line 220 "Gmsh.l" +return tTanh; YY_BREAK case 131: YY_RULE_SETUP #line 221 "Gmsh.l" -return tTransfinite; +return tTan; YY_BREAK case 132: YY_RULE_SETUP #line 222 "Gmsh.l" -return tTranslate; +return tToday; YY_BREAK case 133: YY_RULE_SETUP -#line 223 "Gmsh.l" -return tTanh; +#line 224 "Gmsh.l" +return tUsing; YY_BREAK case 134: YY_RULE_SETUP -#line 224 "Gmsh.l" -return tTan; +#line 226 "Gmsh.l" +return tVolume; YY_BREAK case 135: YY_RULE_SETUP -#line 225 "Gmsh.l" -return tThreshold; +#line 228 "Gmsh.l" +return tText2D; YY_BREAK case 136: YY_RULE_SETUP -#line 226 "Gmsh.l" -return tToday; +#line 229 "Gmsh.l" +return tText3D; YY_BREAK case 137: YY_RULE_SETUP -#line 228 "Gmsh.l" -return tUsing; - YY_BREAK -case 138: -YY_RULE_SETUP #line 230 "Gmsh.l" -return tVolume; +return tInterpolationScheme; YY_BREAK -case 139: +case 138: YY_RULE_SETUP #line 231 "Gmsh.l" -return tPostView; +return tTime; YY_BREAK +case 139: +#line 234 "Gmsh.l" case 140: -YY_RULE_SETUP -#line 233 "Gmsh.l" -return tText2D; - YY_BREAK +#line 235 "Gmsh.l" case 141: -YY_RULE_SETUP -#line 234 "Gmsh.l" -return tText3D; - YY_BREAK +#line 236 "Gmsh.l" case 142: YY_RULE_SETUP -#line 235 "Gmsh.l" -return tInterpolationScheme; - YY_BREAK -case 143: -YY_RULE_SETUP #line 236 "Gmsh.l" -return tTime; - YY_BREAK -case 144: -#line 239 "Gmsh.l" -case 145: -#line 240 "Gmsh.l" -case 146: -#line 241 "Gmsh.l" -case 147: -YY_RULE_SETUP -#line 241 "Gmsh.l" { gmsh_yylval.d = atof((char *)gmsh_yytext); return tDOUBLE; } YY_BREAK -case 148: +case 143: YY_RULE_SETUP -#line 243 "Gmsh.l" +#line 238 "Gmsh.l" { gmsh_yylval.c = strsave((char*)gmsh_yytext); return tSTRING; } YY_BREAK -case 149: +case 144: YY_RULE_SETUP -#line 245 "Gmsh.l" +#line 240 "Gmsh.l" return gmsh_yytext[0]; YY_BREAK -case 150: +case 145: YY_RULE_SETUP -#line 247 "Gmsh.l" +#line 242 "Gmsh.l" ECHO; YY_BREAK -#line 1897 "Gmsh.yy.cpp" +#line 1877 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2124,7 +2104,7 @@ static int yy_get_next_buffer (void) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), num_to_read ); + (yy_n_chars), (size_t) num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } @@ -2148,6 +2128,14 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) gmsh_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; @@ -2177,7 +2165,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 647 ) + if ( yy_current_state >= 613 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2205,11 +2193,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 647 ) + if ( yy_current_state >= 613 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 646); + yy_is_jam = (yy_current_state == 612); return yy_is_jam ? 0 : yy_current_state; } @@ -2299,7 +2287,7 @@ static int yy_get_next_buffer (void) case EOB_ACT_END_OF_FILE: { if ( gmsh_yywrap( ) ) - return 0; + return EOF; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -2563,7 +2551,9 @@ static void gmsh_yyensure_buffer_stack (void) (yy_buffer_stack) = (struct yy_buffer_state**)gmsh_yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); - + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in gmsh_yyensure_buffer_stack()" ); + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; @@ -2581,6 +2571,8 @@ static void gmsh_yyensure_buffer_stack (void) ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in gmsh_yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); @@ -2625,7 +2617,7 @@ YY_BUFFER_STATE gmsh_yy_scan_buffer (char * base, yy_size_t size ) /** Setup the input buffer state to scan a string. The next call to gmsh_yylex() will * scan from a @e copy of @a str. - * @param str a NUL-terminated string to scan + * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use @@ -2879,7 +2871,7 @@ void gmsh_yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 247 "Gmsh.l" +#line 242 "Gmsh.l" diff --git a/Parser/Makefile b/Parser/Makefile index 64a25348ebaf0575af215cb361083ead240a5b73..e5d789ba9b27db58f3582076f25aa8c853cee510 100644 --- a/Parser/Makefile +++ b/Parser/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.143 2008-03-11 22:30:32 geuzaine Exp $ +# $Id: Makefile,v 1.144 2008-03-18 08:41:26 remacle Exp $ # # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle # @@ -71,68 +71,65 @@ depend: Gmsh.tab.o: Gmsh.tab.cpp ../Common/Message.h ../DataStr/Malloc.h \ ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ ../Plugin/PluginManager.h ../Plugin/Plugin.h ../Common/Options.h \ - ../Post/ColorTable.h ../Post/PView.h ../Post/PViewData.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \ - ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \ - ../Post/AdaptiveViews.h ../Common/GmshMatrix.h ../Parallel/ParUtil.h \ - ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Common/Context.h \ - ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \ - ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h ../Geo/Geo.h \ - ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ - ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \ - ../Common/SmoothData.h ../Geo/GeoInterpolation.h ../Geo/Geo.h \ - ../Mesh/Generator.h ../Graphics/Draw.h ../Common/Colors.h \ - ../Common/Options.h Parser.h OpenFile.h ../Common/CommandLine.h \ - FunctionManager.h ../Common/OS.h CreateFile.h ../Mesh/Field.h \ - ../Post/OctreePost.h ../Common/Octree.h ../Common/OctreeInternals.h \ - ../Mesh/BackgroundMesh.h + ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ + ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ + ../Common/GmshMatrix.h ../Parallel/ParUtil.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../Common/Context.h ../Geo/GModel.h \ + ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \ + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../DataStr/List.h \ + ../DataStr/Tree.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Geo/Geo.h ../Geo/GeoInterpolation.h ../Geo/Geo.h \ + ../Mesh/Generator.h ../Graphics/Draw.h ../Geo/SBoundingBox3d.h \ + ../Post/PView.h ../Post/PViewDataList.h ../Common/Options.h \ + ../Common/Colors.h ../Common/Options.h Parser.h ../DataStr/List.h \ + ../DataStr/Tree.h OpenFile.h ../Common/CommandLine.h FunctionManager.h \ + ../Post/ColorTable.h ../Common/OS.h CreateFile.h ../Geo/gmshSurface.h \ + ../Mesh/Field.h ../Mesh/BackgroundMesh.h Gmsh.yy.o: Gmsh.yy.cpp ../Common/Message.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h ../Geo/Geo.h ../Common/GmshDefines.h \ ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h \ - ../Geo/SPoint3.h ../Geo/SVector3.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../DataStr/List.h \ - ../DataStr/Tree.h ../DataStr/avl.h ../Geo/SPoint2.h \ - ../Geo/ExtrudeParams.h ../Common/SmoothData.h Gmsh.tab.hpp + ../Geo/SPoint3.h ../Geo/SVector3.h ../Geo/SBoundingBox3d.h \ + ../Numeric/Numeric.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + Gmsh.tab.hpp OpenFile.o: OpenFile.cpp ../Common/Message.h ../Geo/Geo.h \ ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ - ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ - ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../DataStr/List.h \ - ../DataStr/Tree.h ../DataStr/avl.h ../Geo/SPoint2.h \ - ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Geo/GModel.h \ - ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ - ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \ - ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h \ - ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h \ - ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Common/Context.h Parser.h OpenFile.h ../Common/CommandLine.h \ - ../Post/PView.h ../Post/PViewData.h ../Post/PViewOptions.h \ - ../Post/ColorTable.h ../Graphics/ReadImg.h ../Common/OS.h \ - ../Mesh/HighOrder.h ../Common/GmshUI.h ../Graphics/Draw.h \ - ../Graphics/SelectBuffer.h ../Fltk/GUI.h ../Fltk/Opengl_Window.h \ - ../Fltk/Colorbar_Window.h ../Fltk/Popup_Button.h \ - ../Fltk/SpherePosition_Widget.h + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/GPoint.h \ + ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/GRegion.h \ + ../Mesh/Field.h ../Geo/Geo.h ../Post/PView.h ../Post/PViewData.h \ + ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + ../Numeric/Numeric.h ../Common/Context.h Parser.h ../DataStr/List.h \ + ../DataStr/Tree.h OpenFile.h ../Common/CommandLine.h ../Post/PView.h \ + ../Graphics/ReadImg.h ../Common/OS.h ../Mesh/HighOrder.h \ + ../Geo/GModel.h ../Common/GmshUI.h ../Graphics/Draw.h \ + ../Geo/SBoundingBox3d.h ../Graphics/SelectBuffer.h ../Geo/GVertex.h \ + ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GRegion.h ../Fltk/GUI.h \ + ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h ../Common/GmshUI.h \ + ../Post/ColorTable.h ../Fltk/Popup_Button.h \ + ../Fltk/SpherePosition_Widget.h ../Mesh/Field.h CreateFile.o: CreateFile.cpp ../Common/Message.h ../Geo/GModel.h \ ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Common/GmshDefines.h OpenFile.h ../Common/Context.h \ - ../Common/Options.h ../Post/ColorTable.h ../Common/GmshUI.h \ - ../Graphics/gl2ps.h ../Graphics/gl2gif.h ../Graphics/PixelBuffer.h \ - ../DataStr/Malloc.h ../Graphics/Draw.h ../Graphics/gl2jpeg.h \ - ../Graphics/PixelBuffer.h ../Graphics/gl2png.h \ - ../Graphics/PixelBuffer.h ../Graphics/gl2ppm.h \ - ../Graphics/PixelBuffer.h ../Graphics/gl2yuv.h \ - ../Graphics/PixelBuffer.h + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/PView.h \ + ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h \ + ../Post/ColorTable.h ../Common/GmshDefines.h OpenFile.h \ + ../Common/Context.h ../Common/Options.h ../Post/ColorTable.h \ + ../Common/GmshUI.h ../Graphics/gl2ps.h ../Graphics/gl2gif.h \ + ../Graphics/PixelBuffer.h ../Common/GmshUI.h ../Common/Message.h \ + ../DataStr/Malloc.h ../Graphics/Draw.h ../Geo/SBoundingBox3d.h \ + ../Graphics/gl2jpeg.h ../Graphics/gl2png.h ../Graphics/gl2ppm.h \ + ../Graphics/gl2yuv.h FunctionManager.o: FunctionManager.cpp FunctionManager.h diff --git a/Plugin/FieldView.cpp b/Plugin/FieldView.cpp index d08fee38c688c0cc385472a16455eeb2a8247fdd..03b1f2f7924c7d64f4c5a6e04a911d24aab6785e 100644 --- a/Plugin/FieldView.cpp +++ b/Plugin/FieldView.cpp @@ -1,4 +1,4 @@ -// $Id: FieldView.cpp,v 1.5 2008-02-17 08:48:06 geuzaine Exp $ +// $Id: FieldView.cpp,v 1.6 2008-03-18 08:41:26 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -21,11 +21,12 @@ #include "FieldView.h" #include "Field.h" +#include "GModel.h" StringXNumber FieldViewOptions_Number[] = { {GMSH_FULLRC, "Component", NULL, -1.}, {GMSH_FULLRC, "iView", NULL, -1.}, - {GMSH_FULLRC, "Field", NULL, -1.} + {GMSH_FULLRC, "iField", NULL, -1.} }; extern "C" @@ -36,11 +37,6 @@ extern "C" } } -GMSH_FieldViewPlugin::GMSH_FieldViewPlugin() -{ - ; -} - void GMSH_FieldViewPlugin::getName(char *name) const { strcpy(name, "FieldView"); @@ -70,80 +66,18 @@ void GMSH_FieldViewPlugin::catchErrorMessage(char *errorMessage) const strcpy(errorMessage, "FieldView failed..."); } -static void evaluate(Field *field, List_T *list1, int nbElm1, int nbNod, - int nbComp, int comp ) -{ - if(!nbElm1) return; - int nb = List_Nbr(list1) / nbElm1; - for(int i = 0; i < List_Nbr(list1); i += nb) { - double *x = (double *)List_Pointer_Fast(list1, i); - double *y = (double *)List_Pointer_Fast(list1, i + nbNod); - double *z = (double *)List_Pointer_Fast(list1, i + 2 * nbNod); - for(int j = 0; j < nbNod; j++) { - // store data from the main view into v - double *val1 = (double *)List_Pointer_Fast(list1, - i + 3 * nbNod + - nbNod * nbComp * 0 + nbComp * j); - val1[comp] = (*field)(x[j],y[j],z[j]); - } - } -} - PView *GMSH_FieldViewPlugin::execute(PView *v) { int comp = (int)FieldViewOptions_Number[0].def; int iView = (int)FieldViewOptions_Number[1].def; int iField = (int)FieldViewOptions_Number[2].def; - - Field *field = fields.get(iField); + Field *field = GModel::current()->fields.get(iField); if(!field){ Msg(GERROR, "Field[%d] does not exist", iField); return v; } - PView *v1 = getView(iView, v); if(!v1) return v; - - PViewDataList *data1 = getDataList(v1); - if(!data1) return v; - - evaluate(field, data1->SP, data1->NbSP, 1, 1, 0); - evaluate(field, data1->SL, data1->NbSL, 2, 1, 0); - evaluate(field, data1->ST, data1->NbST, 3, 1, 0); - evaluate(field, data1->SQ, data1->NbSQ, 4, 1, 0); - evaluate(field, data1->SS, data1->NbSS, 4, 1, 0); - evaluate(field, data1->SH, data1->NbSH, 8, 1, 0); - evaluate(field, data1->SI, data1->NbSI, 6, 1, 0); - evaluate(field, data1->SY, data1->NbSY, 5, 1, 0); - - for(int cc = 0; cc < 3; cc++){ - if(comp < 0 || comp == cc){ - evaluate(field, data1->VP, data1->NbVP, 1, 3, cc); - evaluate(field, data1->VL, data1->NbVL, 2, 3, cc); - evaluate(field, data1->VT, data1->NbVT, 3, 3, cc); - evaluate(field, data1->VQ, data1->NbVQ, 4, 3, cc); - evaluate(field, data1->VS, data1->NbVS, 4, 3, cc); - evaluate(field, data1->VH, data1->NbVH, 8, 3, cc); - evaluate(field, data1->VI, data1->NbVI, 6, 3, cc); - evaluate(field, data1->VY, data1->NbVY, 5, 3, cc); - } - } - - for(int cc = 0; cc < 9; cc++){ - if(comp < 0 || comp == cc){ - evaluate(field, data1->TP, data1->NbTP, 1, 9, cc); - evaluate(field, data1->TL, data1->NbTL, 2, 9, cc); - evaluate(field, data1->TT, data1->NbTT, 3, 9, cc); - evaluate(field, data1->TQ, data1->NbTQ, 4, 9, cc); - evaluate(field, data1->TS, data1->NbTS, 4, 9, cc); - evaluate(field, data1->TH, data1->NbTH, 8, 9, cc); - evaluate(field, data1->TI, data1->NbTI, 6, 9, cc); - evaluate(field, data1->TY, data1->NbTY, 5, 9, cc); - } - } - - data1->finalize(); - v1->setChanged(true); - + field->put_on_view(v1); return v1; } diff --git a/Plugin/FieldView.h b/Plugin/FieldView.h index edee00236b830246cea07339121d7c772ea9bcf1..8c82f430e98601ecd312d61a8fc0bbd285120a2c 100644 --- a/Plugin/FieldView.h +++ b/Plugin/FieldView.h @@ -30,7 +30,6 @@ extern "C" class GMSH_FieldViewPlugin : public GMSH_Post_Plugin { public: - GMSH_FieldViewPlugin(); void getName(char *name) const; void getInfos(char *author, char *copyright, char *help_text) const; void catchErrorMessage(char *errorMessage) const; diff --git a/Plugin/Makefile b/Plugin/Makefile index 707ecca5c5bf90d802ccad94e096736e89f70a7d..84591661d845a582a4c8499581735ddef804c50c 100644 --- a/Plugin/Makefile +++ b/Plugin/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.152 2008-02-24 19:59:03 geuzaine Exp $ +# $Id: Makefile,v 1.153 2008-03-18 08:41:26 remacle Exp $ # # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle # @@ -76,267 +76,266 @@ depend: Plugin.o: Plugin.cpp Plugin.h ../Common/Options.h ../Post/ColorTable.h \ ../Common/Message.h ../Post/PView.h ../Post/PViewData.h \ ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \ - ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \ - ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h + ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \ + ../DataStr/List.h ../Common/GmshMatrix.h ../Common/GmshMatrix.h PluginManager.o: PluginManager.cpp Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h PluginManager.h CutMap.h Levelset.h CutGrid.h \ StreamLines.h CutPlane.h CutParametric.h CutSphere.h Skin.h \ - ../DataStr/Tree.h ../DataStr/avl.h Extract.h ExtractElements.h \ - ExtractEdges.h HarmonicToTime.h ModulusPhase.h Integrate.h Gradient.h \ - Curl.h Divergence.h Annotate.h Remove.h MakeSimplex.h Smooth.h \ - Transform.h TransformLatLon.h Triangulate.h Warp.h SphericalRaise.h \ - Eigenvectors.h Eigenvalues.h Lambda2.h Evaluate.h ../Post/OctreePost.h \ - ../Common/Octree.h ../Common/OctreeInternals.h Probe.h FieldView.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h Extract.h \ + ExtractElements.h ExtractEdges.h HarmonicToTime.h ModulusPhase.h \ + Integrate.h Gradient.h Curl.h Divergence.h Annotate.h Remove.h \ + MakeSimplex.h Smooth.h Transform.h TransformLatLon.h Triangulate.h \ + Warp.h SphericalRaise.h Eigenvectors.h Eigenvalues.h Lambda2.h \ + Evaluate.h ../Post/OctreePost.h ../Common/Octree.h \ + ../Common/OctreeInternals.h Probe.h FieldView.h GSHHS.h \ ../Common/Context.h Levelset.o: Levelset.cpp Levelset.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ - ../Common/GmshMatrix.h MakeSimplex.h ../Numeric/Numeric.h \ - ../Numeric/NumericEmbedded.h + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ + ../Common/GmshMatrix.h MakeSimplex.h ../DataStr/List.h \ + ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h CutPlane.o: CutPlane.cpp CutPlane.h Levelset.h Plugin.h \ ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \ ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../DataStr/List.h ../Common/GmshMatrix.h ../Common/Context.h \ - ../Common/GmshUI.h ../Graphics/Draw.h + ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Common/GmshMatrix.h ../Common/GmshMatrix.h ../DataStr/List.h \ + ../Common/Context.h ../Common/GmshUI.h ../Graphics/Draw.h \ + ../Geo/SBoundingBox3d.h CutSphere.o: CutSphere.cpp CutSphere.h Levelset.h Plugin.h \ ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \ ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../DataStr/List.h ../Common/GmshMatrix.h ../Common/Context.h \ - ../Common/GmshUI.h ../Graphics/Draw.h + ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Common/GmshMatrix.h ../Common/GmshMatrix.h ../DataStr/List.h \ + ../Common/Context.h ../Common/GmshUI.h ../Graphics/Draw.h \ + ../Geo/SBoundingBox3d.h CutMap.o: CutMap.cpp CutMap.h Levelset.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ../Common/Context.h Smooth.o: Smooth.cpp Smooth.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h CutParametric.o: CutParametric.cpp ../Post/OctreePost.h \ ../Common/Octree.h ../Common/OctreeInternals.h CutParametric.h Plugin.h \ ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \ ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../DataStr/List.h ../Common/GmshMatrix.h ../Common/Context.h \ - ../Common/GmshUI.h ../Graphics/Draw.h + ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Common/GmshMatrix.h ../Common/GmshMatrix.h ../Common/Context.h \ + ../Common/GmshUI.h ../Graphics/Draw.h ../Geo/SBoundingBox3d.h Lambda2.o: Lambda2.cpp Lambda2.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ../Common/ShapeFunctions.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h Eigenvectors.o: Eigenvectors.cpp Eigenvectors.h Plugin.h \ ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \ ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../DataStr/List.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \ + ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Common/GmshMatrix.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h ../Numeric/EigSolve.h Eigenvalues.o: Eigenvalues.cpp Eigenvalues.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h StreamLines.o: StreamLines.cpp StreamLines.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ../Post/OctreePost.h ../Common/Octree.h \ ../Common/OctreeInternals.h ../Common/Context.h ../Common/GmshUI.h \ - ../Graphics/Draw.h + ../Graphics/Draw.h ../Geo/SBoundingBox3d.h CutGrid.o: CutGrid.cpp ../Post/OctreePost.h ../Common/Octree.h \ ../Common/OctreeInternals.h CutGrid.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \ - ../Graphics/Draw.h + ../Graphics/Draw.h ../Geo/SBoundingBox3d.h Transform.o: Transform.cpp Transform.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h TransformLatLon.o: TransformLatLon.cpp TransformLatLon.h Plugin.h \ ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \ ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../DataStr/List.h ../Common/GmshMatrix.h + ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Common/GmshMatrix.h ../Common/GmshMatrix.h Triangulate.o: Triangulate.cpp ../Geo/GModel.h ../Geo/GVertex.h \ ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/discreteFace.h ../Geo/GModel.h ../Geo/GFace.h ../Geo/Geo.h \ - ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ - ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ - ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ - ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \ - ../Common/SmoothData.h ../Mesh/DivideAndConquer.h ../Common/Message.h \ - ../Geo/MVertex.h ../Geo/SPoint3.h Triangulate.h Plugin.h \ - ../Common/Options.h ../Post/ColorTable.h ../Post/PView.h \ - ../Post/PViewData.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../Common/GmshMatrix.h ../Common/Context.h + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/PView.h \ + ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h \ + ../Post/ColorTable.h ../Geo/discreteFace.h ../Geo/GModel.h ../Geo/Geo.h \ + ../Mesh/DivideAndConquer.h ../Common/Message.h ../Geo/MVertex.h \ + Triangulate.h Plugin.h ../Common/Options.h ../Post/ColorTable.h \ + ../Post/PView.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \ + ../DataStr/List.h ../Common/GmshMatrix.h ../Common/GmshMatrix.h \ + ../Common/Context.h Warp.o: Warp.cpp Warp.h Plugin.h ../Common/Options.h ../Post/ColorTable.h \ ../Common/Message.h ../Post/PView.h ../Post/PViewData.h \ ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \ - ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \ - ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ + ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \ + ../DataStr/List.h ../Common/GmshMatrix.h ../Common/GmshMatrix.h \ ../Common/SmoothData.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h SphericalRaise.o: SphericalRaise.cpp SphericalRaise.h Plugin.h \ ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \ ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../DataStr/List.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \ + ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Common/GmshMatrix.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h Skin.o: Skin.cpp Skin.h Plugin.h ../Common/Options.h ../Post/ColorTable.h \ ../Common/Message.h ../Post/PView.h ../Post/PViewData.h \ ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \ - ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \ - ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ - ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Malloc.h \ - ../Common/Context.h + ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \ + ../DataStr/List.h ../Common/GmshMatrix.h ../Common/GmshMatrix.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../DataStr/Malloc.h ../Common/Context.h Extract.o: Extract.cpp Extract.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ExtractElements.o: ExtractElements.cpp ExtractElements.h Plugin.h \ ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \ ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../DataStr/List.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \ + ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Common/GmshMatrix.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h ExtractEdges.o: ExtractEdges.cpp ExtractEdges.h Plugin.h \ ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \ ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../DataStr/List.h ../Common/GmshMatrix.h ../Mesh/BDS.h ../Geo/GFace.h \ - ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/GEntity.h \ - ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/SPoint3.h \ - ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h ../Geo/SVector3.h \ - ../Geo/Pair.h + ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Common/GmshMatrix.h ../Common/GmshMatrix.h ../Mesh/BDS.h \ + ../Geo/GFace.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SBoundingBox3d.h \ + ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GVertex.h \ + ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h ../Post/PView.h MakeSimplex.o: MakeSimplex.cpp MakeSimplex.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h Evaluate.o: Evaluate.cpp Evaluate.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ../Post/OctreePost.h ../Common/Octree.h \ ../Common/OctreeInternals.h FieldView.o: FieldView.cpp FieldView.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ../Mesh/Field.h ../Geo/Geo.h \ ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ - ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \ - ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ - ../Numeric/NumericEmbedded.h ../DataStr/Tree.h ../DataStr/avl.h \ - ../Geo/SPoint2.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ - ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/GVertex.h ../Geo/GEntity.h \ - ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/SPoint3.h \ - ../Geo/SPoint2.h ../Post/OctreePost.h ../Common/Octree.h \ - ../Common/OctreeInternals.h + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h \ + ../Geo/GPoint.h ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GEdgeLoop.h \ + ../Geo/GRegion.h ../Mesh/Field.h Integrate.o: Integrate.cpp Integrate.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ../Common/ShapeFunctions.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h Gradient.o: Gradient.cpp Gradient.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ../Common/ShapeFunctions.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h Curl.o: Curl.cpp Curl.h Plugin.h ../Common/Options.h ../Post/ColorTable.h \ ../Common/Message.h ../Post/PView.h ../Post/PViewData.h \ ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \ - ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \ - ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ + ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \ + ../DataStr/List.h ../Common/GmshMatrix.h ../Common/GmshMatrix.h \ ../Common/ShapeFunctions.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h Divergence.o: Divergence.cpp Divergence.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ../Common/ShapeFunctions.h ../Numeric/Numeric.h \ ../Numeric/NumericEmbedded.h Annotate.o: Annotate.cpp Annotate.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \ ../Fltk/GUI.h ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h \ - ../Fltk/Popup_Button.h ../Fltk/SpherePosition_Widget.h \ - ../Graphics/Draw.h + ../Common/GmshUI.h ../Post/ColorTable.h ../Fltk/Popup_Button.h \ + ../Fltk/SpherePosition_Widget.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \ + ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SVector3.h \ + ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Graphics/Draw.h ../Geo/SBoundingBox3d.h Remove.o: Remove.cpp Remove.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h Probe.o: Probe.cpp Probe.h Plugin.h ../Common/Options.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Common/GmshMatrix.h ../Common/Context.h ../Post/OctreePost.h \ ../Common/Octree.h ../Common/OctreeInternals.h ../Common/GmshUI.h \ - ../Graphics/Draw.h + ../Graphics/Draw.h ../Geo/SBoundingBox3d.h HarmonicToTime.o: HarmonicToTime.cpp HarmonicToTime.h Plugin.h \ ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \ ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../DataStr/List.h ../Common/GmshMatrix.h + ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Common/GmshMatrix.h ../Common/GmshMatrix.h ModulusPhase.o: ModulusPhase.cpp ModulusPhase.h Plugin.h \ ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \ ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \ - ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \ - ../DataStr/List.h ../Common/GmshMatrix.h + ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \ + ../Common/GmshMatrix.h ../Common/GmshMatrix.h diff --git a/Plugin/PluginManager.cpp b/Plugin/PluginManager.cpp index da6125f370f5d7a2ca8a1cb24c3e91eafcb0952d..63e12660b66e5177adae3ccc55711b2e05887842 100644 --- a/Plugin/PluginManager.cpp +++ b/Plugin/PluginManager.cpp @@ -1,4 +1,4 @@ -// $Id: PluginManager.cpp,v 1.5 2008-02-23 15:30:10 geuzaine Exp $ +// $Id: PluginManager.cpp,v 1.6 2008-03-18 08:41:26 remacle Exp $ // // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle // @@ -63,6 +63,7 @@ #include "Evaluate.h" #include "Probe.h" #include "FieldView.h" +#include "GSHHS.h" #include "Context.h" extern Context_T CTX; @@ -237,6 +238,8 @@ void GMSH_PluginManager::registerDefaultPlugins() ("Evaluate", GMSH_RegisterEvaluatePlugin())); allPlugins.insert(std::pair<const char*, GMSH_Plugin*> ("CutParametric", GMSH_RegisterCutParametricPlugin())); + allPlugins.insert(std::pair<const char*, GMSH_Plugin*> + ("GSHHS", GMSH_RegisterGSHHSPlugin())); #endif } diff --git a/Post/Makefile b/Post/Makefile index f0c171ed0aa32c2ebbb0b4acbc290cd114cda68a..bd4e30002f704fae491a250ad2a8915e9c580788 100644 --- a/Post/Makefile +++ b/Post/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.33 2008-03-11 22:30:32 geuzaine Exp $ +# $Id: Makefile,v 1.34 2008-03-18 08:41:27 remacle Exp $ # # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle # @@ -66,14 +66,15 @@ PView.o: PView.cpp PView.h PViewData.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h PViewOptions.h ColorTable.h PViewDataList.h \ AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ PViewDataGModel.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h \ - ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Common/VertexArray.h ../Common/Context.h ../Common/SmoothData.h \ - ../Common/StringUtils.h ../Common/Message.h + ../Geo/Range.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h \ + ../Geo/GEdge.h ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h \ + ../Geo/Pair.h ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h \ + ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Numeric/Numeric.h \ + ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \ + ../Post/PView.h ../Common/VertexArray.h ../Geo/SVector3.h \ + ../Common/Context.h ../Common/SmoothData.h ../Common/StringUtils.h \ + ../Common/Message.h PViewData.o: PViewData.cpp PViewData.h ../Geo/SBoundingBox3d.h \ ../Geo/SPoint3.h PViewDataIO.o: PViewDataIO.cpp ../Common/Message.h ../Numeric/Numeric.h \ @@ -92,28 +93,28 @@ PViewDataGModel.o: PViewDataGModel.cpp PViewDataGModel.h PViewData.h \ ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h PViewDataList.h \ AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \ ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \ - ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \ - ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \ - ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \ - ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \ - ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ - ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \ - ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \ - ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \ - ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h + ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ + ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \ + ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \ + ../Geo/gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \ + ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/PView.h \ + ../Post/PViewData.h ../Post/PViewOptions.h ../Post/ColorTable.h \ + ../Geo/SBoundingBox3d.h ../Geo/MElement.h ../Geo/MVertex.h \ + ../Geo/MEdge.h ../Geo/MFace.h PViewDataGModelIO.o: PViewDataGModelIO.cpp ../Common/Message.h \ PViewDataGModel.h PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ PViewDataList.h AdaptiveViews.h ../DataStr/List.h \ ../Common/GmshMatrix.h ../Geo/GModel.h ../Geo/GVertex.h \ - ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \ - ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \ - ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \ - ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h \ - ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h \ - ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h \ - ../Geo/SBoundingBox3d.h ../Geo/MVertex.h ../Geo/SPoint3.h \ - ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \ - ../Common/StringUtils.h + ../Geo/GEntity.h ../Geo/Range.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \ + ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/SVector3.h ../Geo/GFace.h \ + ../Geo/GEdgeLoop.h ../Geo/Pair.h ../Geo/GRegion.h ../Mesh/Field.h \ + ../Geo/Geo.h ../Common/GmshDefines.h ../Geo/gmshSurface.h \ + ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../DataStr/List.h \ + ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \ + ../Common/SmoothData.h ../Post/PView.h ../Post/PViewData.h \ + ../Post/PViewOptions.h ../Post/ColorTable.h ../Geo/SBoundingBox3d.h \ + ../Geo/MVertex.h ../Numeric/Numeric.h ../Common/StringUtils.h PViewOptions.o: PViewOptions.cpp PViewOptions.h ColorTable.h \ ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Common/Message.h AdaptiveViews.o: AdaptiveViews.cpp AdaptiveViews.h ../DataStr/List.h \ @@ -121,12 +122,12 @@ AdaptiveViews.o: AdaptiveViews.cpp AdaptiveViews.h ../DataStr/List.h \ ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \ ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \ - ../Post/PViewData.h ../Post/AdaptiveViews.h + ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h OctreePost.o: OctreePost.cpp ../Common/Octree.h \ ../Common/OctreeInternals.h OctreePost.h ../DataStr/List.h PView.h \ PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h PViewOptions.h \ ColorTable.h PViewDataList.h AdaptiveViews.h ../Common/GmshMatrix.h \ ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Common/Message.h \ - ../Common/ShapeFunctions.h + ../Common/ShapeFunctions.h ../Numeric/Numeric.h ColorTable.o: ColorTable.cpp ../Common/Message.h ColorTable.h \ ../Common/Context.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h diff --git a/contrib/MathEval/matheval.cpp b/contrib/MathEval/matheval.cpp index efc5e1b1cbe4347428b925f193de4e12ca8a858a..ef14c6d451d52e21417158dc95c23a9ad145e980 100644 --- a/contrib/MathEval/matheval.cpp +++ b/contrib/MathEval/matheval.cpp @@ -49,6 +49,8 @@ typedef struct { Node *root; /* Root of tree representation of * function. */ SymbolTable *symbol_table; /* Evalutor symbol table. */ + char **names; + int count; } Evaluator; void * @@ -107,6 +109,8 @@ evaluator_create(char *string) evaluator = XMALLOC(Evaluator, 1); evaluator->root = matheval_root; evaluator->symbol_table = matheval_symbol_table; + evaluator->count=0; + evaluator->names=NULL; return evaluator; } @@ -120,6 +124,7 @@ evaluator_destroy(void *evaluator) */ node_destroy(((Evaluator *) evaluator)->root); symbol_table_destroy(((Evaluator *) evaluator)->symbol_table); + XFREE(((Evaluator *) evaluator)->names); XFREE(evaluator); } @@ -177,6 +182,8 @@ evaluator_derivative(void *evaluator, char *name) derivative->root = node_simplify(node_derivative(((Evaluator *) evaluator)->root, name, ((Evaluator *) evaluator)->symbol_table)); derivative->symbol_table = symbol_table_assign(((Evaluator *) evaluator)->symbol_table); + derivative->count=0; + derivative->names=NULL; return derivative; } @@ -246,3 +253,38 @@ evaluator_derivative_z(void *evaluator) */ return evaluator_derivative(evaluator, "z"); } + +void +evaluator_get_variables(void *evaluator, char ***names, int *count) +{ + Record **records; /* Array of symbol table records + * containing evaluator variables. + */ + int i; /* Loop counter. */ + + /* If not already, find and remember evaluator variable names. */ + if (!((Evaluator *) evaluator)->names) { + symbol_table_clear_flags(((Evaluator *) evaluator)-> + symbol_table); + node_flag_variables(((Evaluator *) evaluator)->root); + ((Evaluator *) evaluator)->count = + symbol_table_get_flagged_count(((Evaluator *) + evaluator)-> + symbol_table); + records = + XMALLOC(Record *, ((Evaluator *) evaluator)->count); + symbol_table_get_flagged(((Evaluator *) evaluator)-> + symbol_table, records, + ((Evaluator *) evaluator)->count); + ((Evaluator *) evaluator)->names = + XMALLOC(char *, ((Evaluator *) evaluator)->count); + for (i = 0; i < ((Evaluator *) evaluator)->count; i++) + ((Evaluator *) evaluator)->names[i] = + records[i]->name; + XFREE(records); + } + + /* Return requested information. */ + *count = ((Evaluator *) evaluator)->count; + *names = ((Evaluator *) evaluator)->names; +} diff --git a/contrib/MathEval/matheval.h b/contrib/MathEval/matheval.h index b155f4003c3034bf07baf5fe9aa8ff27c68cf7dc..cb4a639423479369985472e4d21d37a11d8bbc28 100644 --- a/contrib/MathEval/matheval.h +++ b/contrib/MathEval/matheval.h @@ -86,4 +86,17 @@ void *evaluator_derivative_x(void *evaluator); void *evaluator_derivative_y(void *evaluator); void *evaluator_derivative_z(void *evaluator); +/* Get array of strings with names of variables appearing in + * function represented by given evaluator. Only variables + * referenced by evaluator after simplification are returned. + * Address of first string in array is stored into location + * pointed by function second argument. Number of array elements + * is stored into location pointed by third argument. Array is + * allocated, remembered and later destroyed by evaluator object, + * thus caller must not free any of string nor array itself. + * Returned information is valid until evaluator object destroyed. + */ +extern void evaluator_get_variables(void *evaluator, + char ***names, int *count); + #endif diff --git a/contrib/MathEval/node.cpp b/contrib/MathEval/node.cpp index 2698e2c29229c7989e6c025a14056ea763b2377a..7ced8e2c78be1768e9febc5c8a0366d77984afa3 100644 --- a/contrib/MathEval/node.cpp +++ b/contrib/MathEval/node.cpp @@ -657,3 +657,27 @@ node_write(Node * node, char *string) break; } } +void +node_flag_variables(Node * node) +{ + /* According to node type, flag variable in symbol table or + * proceed with calling function recursively on node children. */ + switch (node->type) { + case 'v': + node->data.variable->flag = true; + break; + + case 'f': + node_flag_variables(node->data.function.child); + break; + + case 'u': + node_flag_variables(node->data.un_op.child); + break; + + case 'b': + node_flag_variables(node->data.bin_op.left); + node_flag_variables(node->data.bin_op.right); + break; + } +} diff --git a/contrib/MathEval/node.h b/contrib/MathEval/node.h index c2744aae19c8e06de253d8ad1df272067ab9a71d..0aee3fd97c7c4eae42adc409406e486bc7f2fb38 100644 --- a/contrib/MathEval/node.h +++ b/contrib/MathEval/node.h @@ -108,4 +108,7 @@ int node_calculate_length(Node * node); */ void node_write(Node * node, char *string); +/* Flag each variable in symbol table that is used from subtree rooted at + * specified node. */ +void node_flag_variables(Node * node); #endif diff --git a/contrib/MathEval/symbol_table.cpp b/contrib/MathEval/symbol_table.cpp index 38fe2fb5d72a798c0ab4d72db763e809c8cf0bf9..dc7db03fcae3fd77849c2ff9edb87e0040a29538 100644 --- a/contrib/MathEval/symbol_table.cpp +++ b/contrib/MathEval/symbol_table.cpp @@ -211,3 +211,60 @@ hash(char *s, int n) return h % n; } + +void +symbol_table_clear_flags(SymbolTable * symbol_table) +{ + Record *curr; /* Pointer to current symbol table record + * while traversing hash table bucket. */ + int i; /* Loop counter. */ + + /* Clear flag for all records in symbol table. */ + for (i = 0; i < symbol_table->length; i++) + for (curr = symbol_table->records[i].next; curr; + curr = curr->next) + curr->flag = false; +} + +int +symbol_table_get_flagged_count(SymbolTable * symbol_table) +{ + int count; /* Number of flagged symbol table records. + */ + Record *curr; /* Pointer to current symbol table record + * while traversing hash table bucket. */ + int i; /* Loop counter. */ + + /* Calculate number of records in symbol table with flag set. */ + count = 0; + for (i = 0; i < symbol_table->length; i++) + for (curr = symbol_table->records[i].next; curr; + curr = curr->next) + if (curr->flag) + count++; + return count; +} + +int +symbol_table_get_flagged(SymbolTable * symbol_table, Record ** records, + int length) +{ + int count; /* Number of pointers to symbol table + * records put into given array. */ + Record *curr; /* Pointers to current symbol table record + * while traversing hash table bucket. */ + int i; /* Loop counter. */ + + /* Put pointers to records in symbol table with flag set into + * given array. */ + count = 0; + for (i = 0; i < symbol_table->length; i++) + for (curr = symbol_table->records[i].next; curr; + curr = curr->next) + if (curr->flag) { + records[count++] = curr; + if (count == length) + return count; + } + return count; +} diff --git a/contrib/MathEval/symbol_table.h b/contrib/MathEval/symbol_table.h index 0862c956efbd823a09bf79e7796f8d17ca1eab5a..d6d75b4f0eb528ba4ccf6f978824f9574c526569 100644 --- a/contrib/MathEval/symbol_table.h +++ b/contrib/MathEval/symbol_table.h @@ -33,6 +33,8 @@ typedef struct _Record { double (*function) (double); /* Pointer to function to calculate * its value. */ } data; + int flag; /* Record flag used for symbol table + * selective traversal. */ } Record; /* @@ -76,4 +78,16 @@ Record *symbol_table_lookup(SymbolTable * symbol_table, char *name); */ SymbolTable *symbol_table_assign(SymbolTable * symbol_table); +/* Clear flag for each symbol table record. */ +void symbol_table_clear_flags(SymbolTable * symbol_table); + +/* Count number of flagged records in symbol table. */ +int symbol_table_get_flagged_count(SymbolTable * symbol_table); + +/* Fill given array with pointers to records from given symbol table that + * have flag set. Further arguments are array to store pointers and array + * capacity. Number of records that are actually put into array is + * returned. */ +int symbol_table_get_flagged(SymbolTable * symbol_table, + Record ** records, int length); #endif diff --git a/contrib/NativeFileChooser/Makefile b/contrib/NativeFileChooser/Makefile index 140196aa87fb2f7e4526b54228d6e8ad74211075..c725b8f1a0e1e313ee5304bedc28fc2796e0ec0a 100644 --- a/contrib/NativeFileChooser/Makefile +++ b/contrib/NativeFileChooser/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.6 2008-02-17 08:48:10 geuzaine Exp $ +# $Id: Makefile,v 1.7 2008-03-18 08:41:27 remacle Exp $ # # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle # @@ -52,5 +52,5 @@ depend: # DO NOT DELETE THIS LINE Fl_Native_File_Chooser.o: Fl_Native_File_Chooser.cxx \ - Fl_Native_File_Chooser_MAC.cxx common.cxx FL/Fl_Native_File_Chooser.H \ - FL/Fl_Native_File_Chooser_MAC.H + Fl_Native_File_Chooser_FLTK.cxx FL/Fl_Native_File_Chooser.H \ + FL/Fl_Native_File_Chooser_FLTK.H common.cxx diff --git a/contrib/Netgen/Makefile b/contrib/Netgen/Makefile index 62c6c9eee21c1e295373eeb120661d3a4763da51..88a294d030b822c44d161a7a585000a2cf0be0d0 100644 --- a/contrib/Netgen/Makefile +++ b/contrib/Netgen/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.32 2008-02-24 19:59:04 geuzaine Exp $ +# $Id: Makefile,v 1.33 2008-03-18 08:41:27 remacle Exp $ # # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle # @@ -344,10 +344,9 @@ meshtool.o: libsrc/meshing/meshtool.cpp libsrc/include/mystdlib.h \ libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \ libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \ libsrc/meshing/specials.hpp libsrc/include/csg.hpp \ - libsrc/include/../csg/csg.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/meshing.hpp libsrc/include/../meshing/meshing.hpp \ - libsrc/include/../csg/surface.hpp libsrc/include/../csg/solid.hpp \ - libsrc/include/../csg/identify.hpp \ + libsrc/include/../csg/csg.hpp libsrc/include/meshing.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/../csg/surface.hpp \ + libsrc/include/../csg/solid.hpp libsrc/include/../csg/identify.hpp \ libsrc/include/../csg/singularref.hpp libsrc/include/../csg/csgeom.hpp \ libsrc/include/../csg/triapprox.hpp libsrc/include/../csg/algprim.hpp \ libsrc/include/../csg/brick.hpp libsrc/include/../csg/spline3d.hpp \ @@ -358,7 +357,7 @@ meshtool.o: libsrc/meshing/meshtool.cpp libsrc/include/mystdlib.h \ libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \ libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \ libsrc/include/geometry2d.hpp libsrc/include/../geom2d/geometry2d.hpp \ - libsrc/include/../gprim/gprim.hpp libsrc/include/../geom2d/spline2d.hpp \ + libsrc/include/../geom2d/spline2d.hpp \ libsrc/include/../geom2d/splinegeometry2.hpp \ libsrc/include/../geom2d/geom2dmesh.hpp refine.o: libsrc/meshing/refine.cpp libsrc/include/mystdlib.h \ @@ -486,7 +485,7 @@ improve3.o: libsrc/meshing/improve3.cpp libsrc/include/mystdlib.h \ libsrc/meshing/curvedelems.hpp libsrc/meshing/bisect.hpp \ libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \ libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \ - libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp + libsrc/meshing/specials.hpp smoothing3.o: libsrc/meshing/smoothing3.cpp libsrc/include/mystdlib.h \ libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \ libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \ @@ -528,7 +527,7 @@ smoothing3.o: libsrc/meshing/smoothing3.cpp libsrc/include/mystdlib.h \ libsrc/meshing/curvedelems.hpp libsrc/meshing/bisect.hpp \ libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \ libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \ - libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp + libsrc/meshing/specials.hpp adfront3.o: libsrc/meshing/adfront3.cpp libsrc/include/mystdlib.h \ libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \ libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \ @@ -742,7 +741,7 @@ improve2.o: libsrc/meshing/improve2.cpp libsrc/include/mystdlib.h \ libsrc/meshing/curvedelems.hpp libsrc/meshing/bisect.hpp \ libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \ libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \ - libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp + libsrc/meshing/specials.hpp smoothing2.o: libsrc/meshing/smoothing2.cpp libsrc/include/mystdlib.h \ libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \ libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \ @@ -784,7 +783,7 @@ smoothing2.o: libsrc/meshing/smoothing2.cpp libsrc/include/mystdlib.h \ libsrc/meshing/curvedelems.hpp libsrc/meshing/bisect.hpp \ libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \ libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \ - libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp + libsrc/meshing/specials.hpp adfront2.o: libsrc/meshing/adfront2.cpp libsrc/include/mystdlib.h \ libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \ libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \ @@ -1332,7 +1331,7 @@ improve2gen.o: libsrc/meshing/improve2gen.cpp libsrc/include/mystdlib.h \ libsrc/meshing/curvedelems.hpp libsrc/meshing/bisect.hpp \ libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \ libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \ - libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp + libsrc/meshing/specials.hpp delaunay.o: libsrc/meshing/delaunay.cpp libsrc/include/mystdlib.h \ libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \ libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \ @@ -1754,8 +1753,7 @@ nglib.o: libsrc/interface/nglib.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -1793,13 +1791,12 @@ nglib.o: libsrc/interface/nglib.cpp libsrc/include/mystdlib.h \ libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \ libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \ libsrc/include/stlgeom.hpp libsrc/include/../stlgeom/stlgeom.hpp \ - libsrc/include/../gprim/gprim.hpp \ libsrc/include/../stlgeom/stltopology.hpp \ libsrc/include/../stlgeom/stltool.hpp \ libsrc/include/../stlgeom/stlline.hpp \ libsrc/include/../stlgeom/meshstlsurface.hpp \ libsrc/include/geometry2d.hpp libsrc/include/../geom2d/geometry2d.hpp \ - libsrc/include/../gprim/gprim.hpp libsrc/include/../geom2d/spline2d.hpp \ + libsrc/include/../geom2d/spline2d.hpp \ libsrc/include/../geom2d/splinegeometry2.hpp \ libsrc/include/../geom2d/geom2dmesh.hpp libsrc/interface/nglib.h geomtest3d.o: libsrc/gprim/geomtest3d.cpp libsrc/include/mystdlib.h \ @@ -2031,8 +2028,7 @@ algprim.o: libsrc/csg/algprim.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -2099,8 +2095,7 @@ brick.o: libsrc/csg/brick.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -2163,9 +2158,8 @@ manifold.o: libsrc/csg/manifold.cpp libsrc/include/csg.hpp \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \ - libsrc/include/../linalg/vector.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \ + libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \ libsrc/include/../linalg/densemat.hpp \ libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ @@ -2230,9 +2224,8 @@ bspline2d.o: libsrc/csg/bspline2d.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \ - libsrc/include/../linalg/vector.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \ + libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \ libsrc/include/../linalg/densemat.hpp \ libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ @@ -2297,9 +2290,8 @@ meshsurf.o: libsrc/csg/meshsurf.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \ - libsrc/include/../linalg/vector.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \ + libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \ libsrc/include/../linalg/densemat.hpp \ libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ @@ -2367,8 +2359,7 @@ csgeom.o: libsrc/csg/csgeom.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -2435,8 +2426,7 @@ polyhedra.o: libsrc/csg/polyhedra.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -2499,9 +2489,8 @@ curve2d.o: libsrc/csg/curve2d.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \ - libsrc/include/../linalg/vector.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \ + libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \ libsrc/include/../linalg/densemat.hpp \ libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ @@ -2569,8 +2558,7 @@ singularref.o: libsrc/csg/singularref.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -2661,9 +2649,8 @@ edgeflw.o: libsrc/csg/edgeflw.cpp libsrc/include/mystdlib.h \ libsrc/include/../meshing/hprefinement.hpp \ libsrc/include/../meshing/boundarylayer.hpp \ libsrc/include/../meshing/specials.hpp libsrc/include/csg.hpp \ - libsrc/include/../csg/csg.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../csg/surface.hpp libsrc/include/../csg/solid.hpp \ - libsrc/include/../csg/identify.hpp \ + libsrc/include/../csg/csg.hpp libsrc/include/../csg/surface.hpp \ + libsrc/include/../csg/solid.hpp libsrc/include/../csg/identify.hpp \ libsrc/include/../csg/singularref.hpp libsrc/include/../csg/csgeom.hpp \ libsrc/include/../csg/triapprox.hpp libsrc/include/../csg/algprim.hpp \ libsrc/include/../csg/brick.hpp libsrc/include/../csg/spline3d.hpp \ @@ -2703,8 +2690,7 @@ solid.o: libsrc/csg/solid.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -2768,9 +2754,8 @@ explicitcurve2d.o: libsrc/csg/explicitcurve2d.cpp \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \ - libsrc/include/../linalg/vector.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \ + libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \ libsrc/include/../linalg/densemat.hpp \ libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ @@ -2863,9 +2848,8 @@ specpoin.o: libsrc/csg/specpoin.cpp libsrc/include/mystdlib.h \ libsrc/include/../meshing/hprefinement.hpp \ libsrc/include/../meshing/boundarylayer.hpp \ libsrc/include/../meshing/specials.hpp libsrc/include/csg.hpp \ - libsrc/include/../csg/csg.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../csg/surface.hpp libsrc/include/../csg/solid.hpp \ - libsrc/include/../csg/identify.hpp \ + libsrc/include/../csg/csg.hpp libsrc/include/../csg/surface.hpp \ + libsrc/include/../csg/solid.hpp libsrc/include/../csg/identify.hpp \ libsrc/include/../csg/singularref.hpp libsrc/include/../csg/csgeom.hpp \ libsrc/include/../csg/triapprox.hpp libsrc/include/../csg/algprim.hpp \ libsrc/include/../csg/brick.hpp libsrc/include/../csg/spline3d.hpp \ @@ -2905,8 +2889,7 @@ gencyl.o: libsrc/csg/gencyl.cpp libsrc/include/linalg.hpp \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -2973,8 +2956,7 @@ revolution.o: libsrc/csg/revolution.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -3040,8 +3022,7 @@ genmesh.o: libsrc/csg/genmesh.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -3107,8 +3088,7 @@ spline3d.o: libsrc/csg/spline3d.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -3171,9 +3151,8 @@ surface.o: libsrc/csg/surface.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \ - libsrc/include/../linalg/vector.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \ + libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \ libsrc/include/../linalg/densemat.hpp \ libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ @@ -3211,8 +3190,7 @@ surface.o: libsrc/csg/surface.cpp libsrc/include/mystdlib.h \ libsrc/include/../csg/gencyl.hpp libsrc/include/../csg/polyhedra.hpp \ libsrc/include/../csg/extrusion.hpp \ libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \ - libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \ - libsrc/include/../linalg/linalg.hpp + libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp identify.o: libsrc/csg/identify.cpp libsrc/include/mystdlib.h \ libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \ libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \ @@ -3242,8 +3220,7 @@ identify.o: libsrc/csg/identify.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -3309,8 +3286,7 @@ triapprox.o: libsrc/csg/triapprox.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -3373,9 +3349,8 @@ geom2dmesh.o: libsrc/geom2d/geom2dmesh.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \ - libsrc/include/../linalg/vector.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \ + libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \ libsrc/include/../linalg/densemat.hpp \ libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ @@ -3415,7 +3390,7 @@ geom2dmesh.o: libsrc/geom2d/geom2dmesh.cpp libsrc/include/mystdlib.h \ libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \ libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \ libsrc/include/geometry2d.hpp libsrc/include/../geom2d/geometry2d.hpp \ - libsrc/include/../gprim/gprim.hpp libsrc/include/../geom2d/spline2d.hpp \ + libsrc/include/../geom2d/spline2d.hpp \ libsrc/include/../geom2d/splinegeometry2.hpp \ libsrc/include/../geom2d/geom2dmesh.hpp spline2d.o: libsrc/geom2d/spline2d.cpp libsrc/include/mystdlib.h \ @@ -3444,9 +3419,8 @@ spline2d.o: libsrc/geom2d/spline2d.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \ - libsrc/include/../linalg/vector.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \ + libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \ libsrc/include/../linalg/densemat.hpp \ libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ @@ -3485,7 +3459,7 @@ spline2d.o: libsrc/geom2d/spline2d.cpp libsrc/include/mystdlib.h \ libsrc/include/../csg/extrusion.hpp \ libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \ libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/geom2d/spline2d.hpp + libsrc/geom2d/spline2d.hpp splinegeometry2.o: libsrc/geom2d/splinegeometry2.cpp \ libsrc/include/mystdlib.h libsrc/include/csg.hpp \ libsrc/include/../csg/csg.hpp libsrc/include/myadt.hpp \ @@ -3513,9 +3487,8 @@ splinegeometry2.o: libsrc/geom2d/splinegeometry2.cpp \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \ - libsrc/include/../linalg/vector.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \ + libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \ libsrc/include/../linalg/densemat.hpp \ libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ @@ -3554,8 +3527,7 @@ splinegeometry2.o: libsrc/geom2d/splinegeometry2.cpp \ libsrc/include/../csg/extrusion.hpp \ libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \ libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/geom2d/spline2d.hpp \ - libsrc/geom2d/splinegeometry2.hpp + libsrc/geom2d/spline2d.hpp libsrc/geom2d/splinegeometry2.hpp genmesh2d.o: libsrc/geom2d/genmesh2d.cpp libsrc/include/mystdlib.h \ libsrc/include/csg.hpp libsrc/include/../csg/csg.hpp \ libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \ @@ -3582,9 +3554,8 @@ genmesh2d.o: libsrc/geom2d/genmesh2d.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \ - libsrc/include/../linalg/vector.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \ + libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \ libsrc/include/../linalg/densemat.hpp \ libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ @@ -3624,7 +3595,7 @@ genmesh2d.o: libsrc/geom2d/genmesh2d.cpp libsrc/include/mystdlib.h \ libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \ libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \ libsrc/include/geometry2d.hpp libsrc/include/../geom2d/geometry2d.hpp \ - libsrc/include/../gprim/gprim.hpp libsrc/include/../geom2d/spline2d.hpp \ + libsrc/include/../geom2d/spline2d.hpp \ libsrc/include/../geom2d/splinegeometry2.hpp \ libsrc/include/../geom2d/geom2dmesh.hpp meshstlsurface.o: libsrc/stlgeom/meshstlsurface.cpp \ @@ -3656,8 +3627,7 @@ meshstlsurface.o: libsrc/stlgeom/meshstlsurface.cpp \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -3683,9 +3653,8 @@ meshstlsurface.o: libsrc/stlgeom/meshstlsurface.cpp \ libsrc/include/../meshing/hprefinement.hpp \ libsrc/include/../meshing/boundarylayer.hpp \ libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \ - libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \ - libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \ - libsrc/stlgeom/meshstlsurface.hpp + libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \ + libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp stlline.o: libsrc/stlgeom/stlline.cpp libsrc/include/mystdlib.h \ libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \ libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \ @@ -3714,8 +3683,7 @@ stlline.o: libsrc/stlgeom/stlline.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -3741,9 +3709,8 @@ stlline.o: libsrc/stlgeom/stlline.cpp libsrc/include/mystdlib.h \ libsrc/include/../meshing/hprefinement.hpp \ libsrc/include/../meshing/boundarylayer.hpp \ libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \ - libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \ - libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \ - libsrc/stlgeom/meshstlsurface.hpp + libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \ + libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp stltopology.o: libsrc/stlgeom/stltopology.cpp libsrc/include/mystdlib.h \ libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \ libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \ @@ -3772,8 +3739,7 @@ stltopology.o: libsrc/stlgeom/stltopology.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -3799,9 +3765,8 @@ stltopology.o: libsrc/stlgeom/stltopology.cpp libsrc/include/mystdlib.h \ libsrc/include/../meshing/hprefinement.hpp \ libsrc/include/../meshing/boundarylayer.hpp \ libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \ - libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \ - libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \ - libsrc/stlgeom/meshstlsurface.hpp + libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \ + libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp stltool.o: libsrc/stlgeom/stltool.cpp libsrc/include/mystdlib.h \ libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \ libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \ @@ -3830,8 +3795,7 @@ stltool.o: libsrc/stlgeom/stltool.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -3857,9 +3821,8 @@ stltool.o: libsrc/stlgeom/stltool.cpp libsrc/include/mystdlib.h \ libsrc/include/../meshing/hprefinement.hpp \ libsrc/include/../meshing/boundarylayer.hpp \ libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \ - libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \ - libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \ - libsrc/stlgeom/meshstlsurface.hpp + libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \ + libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp stlgeom.o: libsrc/stlgeom/stlgeom.cpp libsrc/include/mystdlib.h \ libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \ libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \ @@ -3888,8 +3851,7 @@ stlgeom.o: libsrc/stlgeom/stlgeom.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -3915,9 +3877,8 @@ stlgeom.o: libsrc/stlgeom/stlgeom.cpp libsrc/include/mystdlib.h \ libsrc/include/../meshing/hprefinement.hpp \ libsrc/include/../meshing/boundarylayer.hpp \ libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \ - libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \ - libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \ - libsrc/stlgeom/meshstlsurface.hpp + libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \ + libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp stlgeomchart.o: libsrc/stlgeom/stlgeomchart.cpp libsrc/include/mystdlib.h \ libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \ libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \ @@ -3946,8 +3907,7 @@ stlgeomchart.o: libsrc/stlgeom/stlgeomchart.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -3973,9 +3933,8 @@ stlgeomchart.o: libsrc/stlgeom/stlgeomchart.cpp libsrc/include/mystdlib.h \ libsrc/include/../meshing/hprefinement.hpp \ libsrc/include/../meshing/boundarylayer.hpp \ libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \ - libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \ - libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \ - libsrc/stlgeom/meshstlsurface.hpp + libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \ + libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp stlgeommesh.o: libsrc/stlgeom/stlgeommesh.cpp libsrc/include/mystdlib.h \ libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \ libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \ @@ -4004,8 +3963,7 @@ stlgeommesh.o: libsrc/stlgeom/stlgeommesh.cpp libsrc/include/mystdlib.h \ libsrc/include/../gprim/geomtest3d.hpp \ libsrc/include/../gprim/transform3d.hpp \ libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \ - libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \ - libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \ + libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \ libsrc/include/../opti/opti.hpp \ libsrc/include/../meshing/msghandler.hpp \ libsrc/include/../meshing/meshtype.hpp \ @@ -4031,9 +3989,8 @@ stlgeommesh.o: libsrc/stlgeom/stlgeommesh.cpp libsrc/include/mystdlib.h \ libsrc/include/../meshing/hprefinement.hpp \ libsrc/include/../meshing/boundarylayer.hpp \ libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \ - libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \ - libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \ - libsrc/stlgeom/meshstlsurface.hpp + libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \ + libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp moveablemem.o: libsrc/general/moveablemem.cpp libsrc/include/myadt.hpp \ libsrc/include/../general/myadt.hpp libsrc/include/mystdlib.h \ libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \