#define iint(x) floor((x)+0.5)
wchar_t *mgl_str_copy(const char *s);
//-----------------------------------------------------------------------------
-int mgls_addlegend(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_addlegend(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==2 && k[1]==2) gr->AddLegend(a[0].w.c_str(),a[1].s.c_str());
- else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"ss")) gr->AddLegend(a[0].w.c_str(),a[1].s.c_str());
+ else res = 1; return res;
}
-void mglc_addlegend(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ if(k[0]==2 && k[1]==2) mglprintf(out,1024,L"gr->AddLegend(L\"%ls\", \"%s\");",a[0].w.c_str(),a[1].s.c_str()); }
//-----------------------------------------------------------------------------
-int mgls_addto(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_addto(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1) *(a[0].d) += *(a[1].d);
- else if(k[0]==1 && k[1]==3) *(a[0].d) += a[1].v;
- else return 1;
- return 0;
-}
-void mglc_addto(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1) mglprintf(out,1024,L"%s += %s;",a[0].s.c_str(), a[1].s.c_str());
- else if(k[0]==1 && k[1]==3) mglprintf(out,1024,L"%s += %g;",a[0].s.c_str(), a[1].v);
+ int res=0;
+ if(!strcmp(k,"dd")) *(a[0].d) += *(a[1].d);
+ else if(!strcmp(k,"dn"))*(a[0].d) += a[1].v;
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_sort(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==3) a[0].d->Sort(a[1].v, k[2]==3?a[2].v:-1);
- else return 1;
- return 0;
-}
-void mglc_sort(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_sort(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==3) mglprintf(out,1024,L"%s.Sort(%d,%d);",a[0].s.c_str(), a[1].v, k[2]==3?a[2].v:-1);
+ int res=0;
+ if(!strcmp(k,"dn")) a[0].d->Sort(a[1].v, -1);
+ else if(!strcmp(k,"dnn")) a[0].d->Sort(a[1].v, a[2].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_alpha(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_alpha(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- gr->Alpha(k[0]==3 ? a[0].v!=0 : true); return 0;
-}
-void mglc_alpha(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- mglprintf(out,1024,L"gr->Alpha(%s);",(k[0]==3&&a[0].v!=0)?"true":"false");
+ int res=0;
+ if(!strcmp(k,"")) gr->Alpha(true);
+ else if(!strcmp(k,"n")) gr->Alpha(a[0].v!=0);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_plotid(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==2) gr->SetPlotId(a[1].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_plotid(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_plotid(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==2) mglprintf(out,1024,L"gr->SetPlotId(\"%s\");",a[0].s.c_str());
+ int res=0;
+ if(!strcmp(k,"s")) gr->SetPlotId(a[1].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_alphadef(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_alphadef(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3) gr->SetAlphaDef(a[0].v); else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetAlphaDef(a[0].v);
+ else res = 1; return res;
}
-void mglc_alphadef(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ if(k[0]==3) mglprintf(out,1024,L"gr->SetAlphaDef(%g);",a[0].v); }
//-----------------------------------------------------------------------------
-int mgls_ambient(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_ambient(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3) gr->SetAmbient(a[0].v); else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetAmbient(a[0].v);
+ else res = 1; return res;
}
-void mglc_ambient(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ if(k[0]==3) mglprintf(out,1024,L"gr->SetAmbient(%g);",a[0].v); }
//-----------------------------------------------------------------------------
-int mgls_area(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_area(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Area(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1) gr->Area(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else gr->Area(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- return 0;
-}
-void mglc_area(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Area(%s, \"%s\", \"%s\");",a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1)
- mglprintf(out,1024,L"gr->Area(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else mglprintf(out,1024,L"gr->Area(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Area(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Area(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->Area(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Area(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Area(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Area(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_aspect(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3) gr->Aspect(a[0].v, a[1].v, k[2]==3?a[2].v:1);
- else return 1;
- return 0;
-}
-void mglc_aspect(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_aspect(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->Aspect(%g, %g, %g);", a[0].v, a[1].v, k[2]==3?a[2].v:1);
+ int res=0;
+ if(!strcmp(k,"nn")) gr->Aspect(a[0].v, a[1].v, 1);
+ else if(!strcmp(k,"nnn")) gr->Aspect(a[0].v, a[1].v, a[2].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_axial(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_axial(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Axial(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1)
- gr->Axial(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_axial(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Axial(%s, \"%s\", \"%s\");", a[0].s.c_str(),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Axial(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Axial(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Axial(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Axial(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Axial(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_axis(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==2 && k[1]==2 && k[2]==2) gr->SetFunc(a[0].s.c_str(),a[1].s.c_str(),a[2].s.c_str(),k[3]==2?a[3].s.c_str():"");
- else if(k[0]==2) gr->Axis(a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[0]==3) gr->SetCoor(iint(a[0].v));
- else if(k[0]==0) gr->Axis("xyz","",opt);
- else return 1;
- return 0;
-}
-void mglc_axis(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_axis(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==2 && k[1]==2 && k[2]==2)
- mglprintf(out,1024,L"gr->SetFunc(\"%s\", \"%s\", \"%s\", \"%s\");", a[0].s.c_str(),a[1].s.c_str(),a[2].s.c_str(),k[2]==2?a[2].s.c_str():"",k[3]==2?a[3].s.c_str():"");
- else if(k[0]==2) mglprintf(out,1024,L"gr->Axis(\"%s\", \"%s\",\"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[0]==3) mglprintf(out,1024,L"gr->SetCoor(\"%d\");", iint(a[0].v));
- else if(k[0]==0) mglprintf(out,1024,L"gr->Axis(\"xyz\",\"\",\"%s\");",opt);
+ int res=0;
+ if(!strcmp(k,"")) gr->Axis("xyz","",opt);
+ else if(!strcmp(k,"s")) gr->Axis(a[0].s.c_str(), "",opt);
+ else if(!strcmp(k,"ss")) gr->Axis(a[0].s.c_str(), a[1].s.c_str(),opt);
+ else if(!strcmp(k,"sss")) gr->SetFunc(a[0].s.c_str(),a[1].s.c_str(),a[2].s.c_str(),"");
+ else if(!strcmp(k,"ssss")) gr->SetFunc(a[0].s.c_str(),a[1].s.c_str(),a[2].s.c_str(),a[3].s.c_str());
+ else if(!strcmp(k,"n")) gr->SetCoor(iint(a[0].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_ball(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3)
- gr->Mark(mglPoint(a[0].v,a[1].v,a[2].v),k[3]==2 ? a[3].s.c_str():"r.");
- else if(k[0]==3 && k[1]==3)
- gr->Mark(mglPoint(a[0].v,a[1].v,NAN),k[2]==2 ? a[2].s.c_str():"r.");
- else return 1;
- return 0;
-}
-void mglc_ball(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_ball(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3 && k[2]==3)
- mglprintf(out,1024,L"gr->Mark(mglPoint(%g, %g, %g), \"%s\");", a[0].v,a[1].v,a[2].v,k[3]==2 ? a[3].s.c_str():"r.");
- else if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->Mark(mglPoint(%g, %g, NAN), \"%s\");", a[0].v, a[1].v, k[2]==2 ? a[2].s.c_str():"r.");
+ int res=0;
+ if(!strcmp(k,"nn")) gr->Mark(mglPoint(a[0].v,a[1].v,NAN),"r.");
+ else if(!strcmp(k,"nns")) gr->Mark(mglPoint(a[0].v,a[1].v,NAN),a[2].s.c_str());
+ else if(!strcmp(k,"nnn")) gr->Mark(mglPoint(a[0].v,a[1].v,a[2].v),"r.");
+ else if(!strcmp(k,"nnns")) gr->Mark(mglPoint(a[0].v,a[1].v,a[2].v),a[3].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_box(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_box(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- gr->Box(k[0]==2 ? a[0].s.c_str() : "", k[1]!=3 || a[1].v); return 0;
+ int res=0;
+ if(!strcmp(k,"")) gr->Box();
+ else if(!strcmp(k,"s")) gr->Box(a[0].s.c_str());
+ else if(!strcmp(k,"sn")) gr->Box(a[0].s.c_str(), a[1].v);
+ else res = 1; return res;
}
-void mglc_box(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ mglprintf(out,1024,L"gr->Box(\"%s\", %s);", k[0]==2 ? a[0].s.c_str() : "", k[1]!=3 || a[1].v ? "true":"false"); }
//-----------------------------------------------------------------------------
-int mgls_bars(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Bars(*(a[0].d), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1) gr->Bars(*(a[0].d), *(a[1].d), k[2]==2?a[2].s.c_str():"",opt);
- else gr->Bars(*(a[0].d), *(a[1].d), *(a[2].d), k[3]==2?a[3].s.c_str():"",opt);
- return 0;
-}
-void mglc_bars(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_bars(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Bars(%s, \"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1)
- mglprintf(out,1024,L"gr->Bars(%s, %s, \"%s\", \"%s\");",a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else
- mglprintf(out,1024,L"gr->Bars(%s, %s, %s, \"%s\", \"%s\");",a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Bars(*(a[0].d), "",opt);
+ else if(!strcmp(k,"ds")) gr->Bars(*(a[0].d), a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->Bars(*(a[0].d), *(a[1].d), "",opt);
+ else if(!strcmp(k,"dds")) gr->Bars(*(a[0].d), *(a[1].d), a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Bars(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
+ else if(!strcmp(k,"ddds")) gr->Bars(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_barh(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Barh(*(a[0].d), k[1]==2?a[1].s.c_str():"",opt);
- else gr->Barh(*(a[0].d), *(a[1].d), k[2]==2?a[2].s.c_str():"",opt);
- return 0;
-}
-void mglc_barh(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_barh(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Barh(%s, \"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else
- mglprintf(out,1024,L"gr->Barh(%s, %s, \"%s\", \"%s\");",a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Barh(*(a[0].d), "",opt);
+ else if(!strcmp(k,"ds")) gr->Barh(*(a[0].d), a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->Barh(*(a[0].d), *(a[1].d), "",opt);
+ else if(!strcmp(k,"dds")) gr->Barh(*(a[0].d), *(a[1].d), a[2].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_cones(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_cones(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Cones(*(a[0].d), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1) gr->Cones(*(a[0].d), *(a[1].d), k[2]==2?a[2].s.c_str():"",opt);
- else gr->Cones(*(a[0].d), *(a[1].d), *(a[2].d), k[3]==2?a[3].s.c_str():"",opt);
- return 0;
-}
-void mglc_cones(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Cones(%s, \"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1)
- mglprintf(out,1024,L"gr->Cones(%s, %s, \"%s\", \"%s\");",a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else
- mglprintf(out,1024,L"gr->Cones(%s, %s, %s, \"%s\", \"%s\");",a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Cones(*(a[0].d), "",opt);
+ else if(!strcmp(k,"ds")) gr->Cones(*(a[0].d), a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->Cones(*(a[0].d), *(a[1].d), "",opt);
+ else if(!strcmp(k,"dds")) gr->Cones(*(a[0].d), *(a[1].d), a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Cones(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
+ else if(!strcmp(k,"ddds")) gr->Cones(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_belt(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Belt(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1) gr->Belt(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_belt(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_belt(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Belt(%s, \"%s\", \"%s\");", a[0].s.c_str(),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Belt(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Belt(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Belt(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Belt(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Belt(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_boxs(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_boxs(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Boxs(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1) gr->Boxs(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_boxs(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Boxs(%s, \"%s\", \"%s\");", a[0].s.c_str(),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Boxs(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Boxs(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Boxs(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Boxs(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Boxs(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_beam(mglGraph *gr, long , mglArg *a, int k[10], const char *) // NOTE beam can be made obsolete ???
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==3)
- gr->Beam(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].v,
- k[5]==2? a[5].s.c_str():"",k[6]==3?iint(a[6].v):0, iint(k[7]==3?a[7].v:3));
- if(k[0]==3 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1 && k[5]==3)
- gr->Beam(a[0].v,*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].v,
- k[6]==2? a[6].s.c_str():"",k[7]==3?iint(a[7].v):0);
- else return 1;
- return 0;
-}
-void mglc_beam(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_beam(mglGraph *gr, long , mglArg *a, const char *k, const char *) // NOTE beam can be made obsolete ???
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==3)
- mglprintf(out,1024,L"gr->Beam(%s, %s, %s, %s, %g, \"%s\", %d, %d);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].v, k[5]==2? a[5].s.c_str():"",k[6]==3?iint(a[6].v):0, iint(k[7]==3?a[7].v:3));
+ int res=0;
+ if(!strcmp(k,"ddddn"))
+ gr->Beam(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].v,"",0, 3);
+ else if(!strcmp(k,"ddddns"))
+ gr->Beam(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].v,a[5].s.c_str(),0, 3);
+ else if(!strcmp(k,"ddddnsn"))
+ gr->Beam(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].v,a[5].s.c_str(),iint(a[6].v), 3);
+ else if(!strcmp(k,"ddddnsnn"))
+ gr->Beam(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].v,a[5].s.c_str(),iint(a[6].v), iint(a[7].v));
+ else if(!strcmp(k,"nddddn"))
+ gr->Beam(a[0].v,*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].v,"",0);
+ else if(!strcmp(k,"nddddns"))
+ gr->Beam(a[0].v,*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].v,a[6].s.c_str(),0);
+ else if(!strcmp(k,"nddddnsn"))
+ gr->Beam(a[0].v,*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].v,a[6].s.c_str(),iint(a[7].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_clearlegend(mglGraph *gr, long , mglArg *, int [10], const char *)
-{ gr->ClearLegend(); return 0; }
-void mglc_clearlegend(wchar_t out[1024], long , mglArg *, int [10], const char *)
-{ mglprintf(out,1024,L"gr->ClearLegend();"); }
-//-----------------------------------------------------------------------------
-int mgls_clf(mglGraph *gr, long , mglArg *, int [10], const char *)
-{ gr->Clf(); return 0; }
-void mglc_clf(wchar_t out[1024], long , mglArg *, int [10], const char *)
-{ mglprintf(out,1024,L"gr->Clf();"); }
-//-----------------------------------------------------------------------------
-int mgls_chart(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1) gr->Chart(*(a[0].d), k[1]==2?a[1].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_chart(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_clearlegend(mglGraph *gr, long , mglArg *, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3) mglprintf(out,1024,L"gr->Chart(%s, \"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"")) gr->ClearLegend();
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_cloud(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_clf(mglGraph *gr, long , mglArg *, const char *k, const char *)
{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Cloud(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- gr->Cloud(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- return 0;
-}
-void mglc_cloud(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Cloud(%s,\"%s\", \"%s\");",a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->Cloud(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(),a[1].s.c_str(),a[2].s.c_str(),a[3].s.c_str(),k[4]==2?a[4].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"")) gr->Clf();
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_crange(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1) gr->SetRange('c',*(a[0].d),k[1]==3 && a[1].v!=0);
- else if(k[0]==3 && k[1]==3) gr->SetRange('c', a[0].v, a[1].v);
- else return 1;
- return 0;
-}
-void mglc_crange(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_chart(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1)
- mglprintf(out,1024,L"gr->SetRange('c', %s, %s);",a[0].s.c_str(), (k[1]==3 && a[1].v!=0)?"true":"false");
- else if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->SetRange('c', %g, %g);", a[0].v, a[1].v);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Chart(*(a[0].d), "",opt);
+ else if(!strcmp(k,"ds")) gr->Chart(*(a[0].d), a[1].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_crop(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_cloud(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==3 && k[2]==3 && k[3]==2)
- a[0].d->Crop(iint(a[1].v),iint(a[2].v),a[3].s.c_str()[0]);
- else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"d")) gr->Cloud(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Cloud(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->Cloud(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds")) gr->Cloud(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else res = 1; return res;
}
-void mglc_crop(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+//-----------------------------------------------------------------------------
+int mgls_crange(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==3 && k[2]==3 && k[3]==2)
- mglprintf(out,1024,L"%s.Crop(%d, %d, '%c');",a[0].s.c_str(), iint(a[1].v), iint(a[2].v), a[3].s.c_str()[0]);
+ int res=0;
+ if(!strcmp(k,"d")) gr->SetRange('c',*(a[0].d));
+ else if(!strcmp(k,"dn")) gr->SetRange('c',*(a[0].d),a[1].v);
+ else if(!strcmp(k,"nn")) gr->SetRange('c', a[0].v, a[1].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_clean(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_crop(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==3)
- a[0].d->Clean(iint(a[1].v));
- else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"dnns")) a[0].d->Crop(iint(a[1].v),iint(a[2].v),a[3].s.c_str()[0]);
+ else res = 1; return res;
}
-void mglc_clean(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+//-----------------------------------------------------------------------------
+int mgls_clean(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==3)
- mglprintf(out,1024,L"%s.Clean(%d);",a[0].s.c_str(), iint(a[1].v));
+ int res=0;
+ if(!strcmp(k,"dn")) a[0].d->Clean(iint(a[1].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_cumsum(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_cumsum(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) a[0].d->CumSum(a[1].s.c_str());
- else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->CumSum(a[1].s.c_str());
+ else res = 1; return res;
}
-void mglc_cumsum(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ if(k[0]==1 && k[1]==2) mglprintf(out,1024,L"%s.CumSum(\"%s\");",a[0].s.c_str(), a[1].s.c_str()); }
//-----------------------------------------------------------------------------
-int mgls_curve(mglGraph *gr, long n, mglArg *a, int [10], const char *)
+int mgls_curve(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- register long i;
- for(i=0;i<12;i++) if(i>=n || a[i].type!=2) break;
- if(i==12)
- gr->Curve(mglPoint(a[0].v,a[1].v,a[2].v),
- mglPoint(a[3].v,a[4].v,a[5].v),
- mglPoint(a[6].v,a[7].v,a[8].v),
- mglPoint(a[9].v,a[10].v,a[11].v),
- (n>12 && a[12].type==1) ? a[12].s.c_str() : 0);
- else if(i==8)
+ int res=0;
+ if(!strcmp(k,"nnnnnnnn"))
gr->Curve(mglPoint(a[0].v,a[1].v,NAN),
mglPoint(a[2].v,a[3].v),
mglPoint(a[4].v,a[5].v,NAN),
- mglPoint(a[6].v,a[7].v),
- (n>8 && a[8].type==1) ? a[8].s.c_str() : 0);
- return 0;
-}
-void mglc_curve(wchar_t out[1024], long n, mglArg *a, int [10], const char *)
-{
- register long i;
- for(i=0;i<12;i++) if(i>=n || a[i].type!=2) break;
- if(i==12)
- mglprintf(out,1024,L"gr->Curve(mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), \"%s\");", a[0].v, a[1].v, a[2].v, a[3].v, a[4].v, a[5].v, a[6].v, a[7].v, a[8].v, a[9].v, a[10].v, a[11].v, (n>12 && a[12].type==1) ? a[12].s.c_str() : "");
- else if(i==8)
- mglprintf(out,1024,L"gr->Curve(mglPoint(%g, %g, NAN), mglPoint(%g, %g), mglPoint(%g, %g, NAN), mglPoint(%g, %g), \"%s\");", a[0].v, a[1].v, a[2].v, a[3].v, a[4].v, a[5].v, a[6].v, a[7].v, (n>8 && a[8].type==1) ? a[8].s.c_str() : "");
+ mglPoint(a[6].v,a[7].v));
+ else if(!strcmp(k,"nnnnnnnns"))
+ gr->Curve(mglPoint(a[0].v,a[1].v,NAN),
+ mglPoint(a[2].v,a[3].v),
+ mglPoint(a[4].v,a[5].v,NAN),
+ mglPoint(a[6].v,a[7].v), a[8].s.c_str());
+ else if(!strcmp(k,"nnnnnnnnnnnn"))
+ gr->Curve(mglPoint(a[0].v,a[1].v,a[2].v),
+ mglPoint(a[3].v,a[4].v,a[5].v),
+ mglPoint(a[6].v,a[7].v,a[8].v),
+ mglPoint(a[9].v,a[10].v,a[11].v));
+ else if(!strcmp(k,"nnnnnnnnnnnns"))
+ gr->Curve(mglPoint(a[0].v,a[1].v,a[2].v),
+ mglPoint(a[3].v,a[4].v,a[5].v),
+ mglPoint(a[6].v,a[7].v,a[8].v),
+ mglPoint(a[9].v,a[10].v,a[11].v), a[12].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_cut(mglGraph *gr, long n, mglArg *a, int k[10], const char *)
+int mgls_cut(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && n == 1) gr->SetCut(a[0].v != 0);
- else if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==3 && k[5]==3)
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetCut(a[0].v != 0);
+ else if(!strcmp(k,"nnnnnn"))
gr->SetCutBox(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v));
- else if(k[0]==2 && n == 1) gr->CutOff(a[0].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_cut(wchar_t out[1024], long n, mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && n == 1) mglprintf(out,1024,L"gr->SetCut(%s);",(a[0].v != 0)?"true":"false");
- else if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==3 && k[5]==3)
- mglprintf(out,1024,L"gr->SetCutBox(mglPoint(%g, %g, %g), mglPoint(%g, %g, %g));", a[0].v, a[1].v, a[2].v, a[3].v, a[4].v, a[5].v);
- else if(k[0]==2 && n == 1)
- mglprintf(out,1024,L"gr->CutOff(\"%s\");", a[0].s.c_str());
-}
+ else if(!strcmp(k,"s")) gr->CutOff(a[0].s.c_str());
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
+int mgls_crust(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
+{
+ int res=0;
+ if(!strcmp(k,"ddd")) gr->Crust(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Crust(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
+int mgls_colorbar(mglGraph *gr, long , mglArg *a, const char *k, const char *)
+{
+ int res=0;
+ if(!strcmp(k,"")) gr->Colorbar();
+ else if(!strcmp(k,"s")) gr->Colorbar(a[0].s.c_str());
+ else if(!strcmp(k,"d")) gr->Colorbar(*(a[0].d));
+ else if(!strcmp(k,"ds")) gr->Colorbar(*(a[0].d), a[1].s.c_str());
+ else if(!strcmp(k,"snn")) gr->Colorbar(a[0].s.c_str(), a[1].v, a[2].v);
+ else if(!strcmp(k,"snnn")) gr->Colorbar(a[0].s.c_str(), a[1].v, a[2].v, a[3].v,1);
+ else if(!strcmp(k,"snnnn")) gr->Colorbar(a[0].s.c_str(), a[1].v, a[2].v, a[3].v,a[4].v);
+ else if(!strcmp(k,"dsnn")) gr->Colorbar(*(a[0].d), a[1].s.c_str(), a[2].v, a[3].v);
+ else if(!strcmp(k,"dsnnn")) gr->Colorbar(*(a[0].d), a[1].s.c_str(), a[2].v, a[3].v, a[4].v,1);
+ else if(!strcmp(k,"dsnnnn"))
+ gr->Colorbar(*(a[0].d), a[1].s.c_str(), a[2].v, a[3].v, a[4].v,a[5].v);
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
+int mgls_copy(mglGraph *gr, long , mglArg *a, const char *k, const char *)
+{
+ int res=0;
+ if(!strcmp(k,"dd")) a[0].d->Set(*(a[1].d));
+ else if(!strcmp(k,"dds"))
+ { a[0].d->Set(*(a[1].d)); gr->Fill(*(a[0].d), a[2].s.c_str()); }
+ else if(!strcmp(k,"dn")) *(a[0].d) = a[1].v;
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
+int mgls_cont(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
+{
+ int res=0;
+ if(!strcmp(k,"d")) gr->Cont(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Cont(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->Cont(*(a[0].d), *(a[1].d), "",opt);
+ else if(!strcmp(k,"dds")) gr->Cont(*(a[0].d), *(a[1].d), a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Cont(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
+ else if(!strcmp(k,"ddds")) gr->Cont(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->Cont(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "",opt);
+ else if(!strcmp(k,"dddds")) gr->Cont(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.c_str(),opt);
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
+int mgls_contv(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
+{
+ int res=0;
+ if(!strcmp(k,"d")) gr->ContV(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->ContV(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->ContV(*(a[0].d), *(a[1].d), "",opt);
+ else if(!strcmp(k,"dds")) gr->ContV(*(a[0].d), *(a[1].d), a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->ContV(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
+ else if(!strcmp(k,"ddds")) gr->ContV(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->ContV(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "",opt);
+ else if(!strcmp(k,"dddds")) gr->ContV(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.c_str(),opt);
+ else res = 1; return res;
+}
//-----------------------------------------------------------------------------
-int mgls_crust(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1)
- gr->Crust(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_crust(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_contf(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Crust(%s, %s, %s, \"%s\", \"%s\");",a[0].s.c_str(),a[1].s.c_str(),a[2].s.c_str(),k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->ContF(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->ContF(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->ContF(*(a[0].d), *(a[1].d), "",opt);
+ else if(!strcmp(k,"dds")) gr->ContF(*(a[0].d), *(a[1].d), a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->ContF(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
+ else if(!strcmp(k,"ddds")) gr->ContF(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->ContF(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "",opt);
+ else if(!strcmp(k,"dddds")) gr->ContF(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_colorbar(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_contd(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==2 && k[2]==3 && k[3]==3)
- gr->Colorbar(*(a[0].d), a[1].s.c_str(), a[2].v, a[3].v, k[4]==3?a[4].v:1, k[5]==3?a[5].v:1);
- else if(k[0]==2 && k[1]==3 && k[2]==3)
- gr->Colorbar(a[0].s.c_str(), a[1].v, a[2].v, k[3]==3?a[3].v:1, k[4]==3?a[4].v:1);
- else if(k[0]==1) gr->Colorbar(*(a[0].d), k[1]==2 ? a[1].s.c_str():"");
- else gr->Colorbar(k[0]==2 ? a[0].s.c_str():"");
- return 0;
-}
-void mglc_colorbar(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2 && k[2]==3 && k[3]==3)
- mglprintf(out,1024,L"gr->Colorbar(%s, \"%s\", %g, %g, %g, %g);",a[0].s.c_str(), a[1].s.c_str(), a[2].v, a[3].v, k[4]==3?a[4].v:1, k[5]==3?a[5].v:1);
- else if(k[0]==2 && k[1]==3 && k[2]==3)
- mglprintf(out,1024,L"gr->Colorbar(\"%s\", %g, %g, %g, %g);",a[0].s.c_str(), a[1].v, a[2].v, k[3]==3?a[3].v:1, k[4]==3?a[4].v:1);
- else if(k[0]==1)
- mglprintf(out,1024,L"gr->Colorbar(%s, \"%s\");",a[0].s.c_str(), k[1]==2 ? a[1].s.c_str():"");
- else
- mglprintf(out,1024,L"gr->Colorbar(\"%s\");",k[0]==2 ? a[0].s.c_str():"");
+ int res=0;
+ if(!strcmp(k,"d")) gr->ContD(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->ContD(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->ContD(*(a[0].d), *(a[1].d), "",opt);
+ else if(!strcmp(k,"dds")) gr->ContD(*(a[0].d), *(a[1].d), a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->ContD(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
+ else if(!strcmp(k,"ddds")) gr->ContD(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->ContD(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "",opt);
+ else if(!strcmp(k,"dddds")) gr->ContD(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_copy(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_cont3(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1)
- {
- a[0].d->Set(*(a[1].d));
- if(k[2]==2) gr->Fill(*(a[0].d), a[2].s.c_str());
- }
- else if(k[0]==1 && k[1]==3) *(a[0].d) = a[1].v;
- else return 1;
- return 0;
-}
-void mglc_copy(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==2)
- mglprintf(out,1024,L"%s.Set(%s);\tgr->Fill(%s,\"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
- else if(k[0]==1 && k[1]==1)
- mglprintf(out,1024,L"%s.Set(%s);", a[0].s.c_str(), a[1].s.c_str());
- else if(k[0]==1 && k[1]==3)
- mglprintf(out,1024,L"%s = %g;", a[0].s.c_str(), a[1].v);
-}
-//-----------------------------------------------------------------------------
-int mgls_cont(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Cont(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]!=1)
- gr->Cont(*(a[0].d), *(a[1].d), k[2]==2?a[2].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]!=1)
- gr->Cont(*(a[0].d), *(a[1].d), *(a[2].d), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]!=1)
- gr->Cont(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), k[4]==2?a[4].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_cont(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Cont(%s, \"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]!=1)
- mglprintf(out,1024,L"gr->Cont(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]!=1)
- mglprintf(out,1024,L"gr->Cont(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]!=1)
- mglprintf(out,1024,L"gr->Cont(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
-}
-//-----------------------------------------------------------------------------
-int mgls_contv(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->ContV(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]!=1)
- gr->ContV(*(a[0].d), *(a[1].d), k[2]==2?a[2].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]!=1)
- gr->ContV(*(a[0].d), *(a[1].d), *(a[2].d), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]!=1)
- gr->ContV(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), k[4]==2?a[4].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_contv(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->ContV(%s, \"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]!=1)
- mglprintf(out,1024,L"gr->ContV(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]!=1)
- mglprintf(out,1024,L"gr->ContV(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]!=1)
- mglprintf(out,1024,L"gr->ContV(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
-}
-//-----------------------------------------------------------------------------
-int mgls_contf(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1)
- gr->ContF(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]!=1)
- gr->ContF(*(a[0].d), *(a[1].d), k[2]==2?a[2].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]!=1)
- gr->ContF(*(a[0].d), *(a[1].d), *(a[2].d), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]!=1)
- gr->ContF(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), k[4]==2?a[4].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_contf(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->ContF(%s, \"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]!=1)
- mglprintf(out,1024,L"gr->ContF(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]!=1)
- mglprintf(out,1024,L"gr->ContF(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]!=1)
- mglprintf(out,1024,L"gr->ContF(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
-}
-//-----------------------------------------------------------------------------
-int mgls_contd(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1)
- gr->ContD(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]!=1)
- gr->ContD(*(a[0].d), *(a[1].d), k[2]==2?a[2].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]!=1)
- gr->ContD(*(a[0].d), *(a[1].d), *(a[2].d), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]!=1)
- gr->ContD(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), k[4]==2?a[4].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_contd(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->ContD(%s, \"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]!=1)
- mglprintf(out,1024,L"gr->ContD(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]!=1)
- mglprintf(out,1024,L"gr->ContD(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]!=1)
- mglprintf(out,1024,L"gr->ContD(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Cont3(*(a[0].d), "", -1,opt);
+ else if(!strcmp(k,"ds")) gr->Cont3(*(a[0].d), a[1].s.c_str(), -1,opt);
+ else if(!strcmp(k,"dsn")) gr->Cont3(*(a[0].d), a[1].s.c_str(), iint(a[2].v),opt);
+ else if(!strcmp(k,"dd")) gr->Cont3(*(a[0].d), *(a[1].d), "", -1,opt);
+ else if(!strcmp(k,"dds")) gr->Cont3(*(a[0].d), *(a[1].d), a[2].s.c_str(),-1,opt);
+ else if(!strcmp(k,"ddsn")) gr->Cont3(*(a[0].d), *(a[1].d), a[2].s.c_str(),iint(a[3].v),opt);
+ else if(!strcmp(k,"dddd")) gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "", -1,opt);
+ else if(!strcmp(k,"dddds")) gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.c_str(),-1,opt);
+ else if(!strcmp(k,"ddddsn")) gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.c_str(),iint(a[5].v),opt);
+ else if(!strcmp(k,"ddddd")) gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), "", -1,opt);
+ else if(!strcmp(k,"ddddds")) gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.c_str(),-1,opt);
+ else if(!strcmp(k,"dddddsn"))gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.c_str(),iint(a[6].v),opt);
+ else res = 1; return res;
}
-//-----------------------------------------------------------------------------
-int mgls_cont3(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+//-----------------------------------------------------------------------------
+int mgls_contf3(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
+{
+ int res=0;
+ if(!strcmp(k,"d")) gr->ContF3(*(a[0].d), "", -1,opt);
+ else if(!strcmp(k,"ds")) gr->ContF3(*(a[0].d), a[1].s.c_str(), -1,opt);
+ else if(!strcmp(k,"dsn")) gr->ContF3(*(a[0].d), a[1].s.c_str(), iint(a[2].v),opt);
+ else if(!strcmp(k,"dd")) gr->ContF3(*(a[0].d), *(a[1].d), "", -1,opt);
+ else if(!strcmp(k,"dds")) gr->ContF3(*(a[0].d), *(a[1].d), a[2].s.c_str(),-1,opt);
+ else if(!strcmp(k,"ddsn")) gr->ContF3(*(a[0].d), *(a[1].d), a[2].s.c_str(),iint(a[3].v),opt);
+ else if(!strcmp(k,"dddd")) gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), "", -1,opt);
+ else if(!strcmp(k,"dddds")) gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.c_str(),-1,opt);
+ else if(!strcmp(k,"ddddsn")) gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), a[4].s.c_str(),iint(a[5].v),opt);
+ else if(!strcmp(k,"ddddd")) gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), "", -1,opt);
+ else if(!strcmp(k,"ddddds")) gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.c_str(),-1,opt);
+ else if(!strcmp(k,"dddddsn"))gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.c_str(),iint(a[6].v),opt);
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
+int mgls_contx(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return 1;
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), k[5]==2?a[5].s.c_str():"", k[6]==3?iint(a[6].v):-1,opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- gr->Cont3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), k[4]==2?a[4].s.c_str():"", k[5]==3?iint(a[5].v):-1,opt);
- else if(k[1]==1)
- gr->Cont3(*(a[0].d), *(a[1].d), k[2]==2?a[2].s.c_str():"", k[3]==3?iint(a[3].v):-1,opt);
- else gr->Cont3(*(a[0].d), k[1]==2?a[1].s.c_str():"", k[2]==3?iint(a[2].v):-1,opt);
- return 0;
+ int res=0;
+ if(!strcmp(k,"d")) gr->ContX(*(a[0].d),"",NAN,opt);
+ else if(!strcmp(k,"ds")) gr->ContX(*(a[0].d),a[1].s.c_str(),NAN,opt);
+ else if(!strcmp(k,"dsn")) gr->ContX(*(a[0].d),a[1].s.c_str(),a[2].v,opt);
+ else res = 1; return res;
}
-void mglc_cont3(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- mglprintf(out,1024,L"gr->Cont3(%s, %s, %s, %s, %s, \"%s\", %d, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), k[5]==2?a[5].s.c_str():"", k[6]==3?iint(a[6].v):-1,opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->Cont3(%s, %s, %s, %s, \"%s\", %d, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"", k[5]==3?iint(a[5].v):-1,opt);
- else if(k[1]==1)
- mglprintf(out,1024,L"gr->Cont3(%s, %s, \"%s\", %d, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"", k[3]==3?iint(a[3].v):-1,opt);
- else mglprintf(out,1024,L"gr->Cont3(%s, \"%s\", %d, \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==3?iint(a[2].v):-1,opt);
+//-----------------------------------------------------------------------------
+int mgls_contfx(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
+{
+ int res=0;
+ if(!strcmp(k,"d")) gr->ContFX(*(a[0].d),"",NAN,opt);
+ else if(!strcmp(k,"ds")) gr->ContFX(*(a[0].d),a[1].s.c_str(),NAN,opt);
+ else if(!strcmp(k,"dsn")) gr->ContFX(*(a[0].d),a[1].s.c_str(),a[2].v,opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_contf3(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), k[5]==2?a[5].s.c_str():"", k[6]==3?iint(a[6].v):-1,opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- gr->ContF3(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d), k[4]==2?a[4].s.c_str():"", k[5]==3?iint(a[5].v):-1,opt);
- else if(k[1]==1)
- gr->ContF3(*(a[0].d), *(a[1].d), k[2]==2?a[2].s.c_str():"", k[3]==3?iint(a[3].v):-1,opt);
- else gr->ContF3(*(a[0].d), k[1]==2?a[1].s.c_str():"", k[2]==3?iint(a[2].v):-1,opt);
- return 0;
-}
-void mglc_contf3(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_conty(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return;
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- mglprintf(out,1024,L"gr->ContF3(%s, %s, %s, %s, %s, \"%s\", %d, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), k[5]==2?a[5].s.c_str():"", k[6]==3?iint(a[6].v):-1,opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->ContF3(%s, %s, %s, %s, \"%s\", %d, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"", k[5]==3?iint(a[5].v):-1,opt);
- else if(k[1]==1)
- mglprintf(out,1024,L"gr->ContF3(%s, %s, \"%s\", %d, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"", k[3]==3?iint(a[3].v):-1,opt);
- else mglprintf(out,1024,L"gr->ContF3(%s, \"%s\", %d, \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==3?iint(a[2].v):-1,opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->ContY(*(a[0].d),"",NAN,opt);
+ else if(!strcmp(k,"ds")) gr->ContY(*(a[0].d),a[1].s.c_str(),NAN,opt);
+ else if(!strcmp(k,"dsn")) gr->ContY(*(a[0].d),a[1].s.c_str(),a[2].v,opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_contx(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_contfy(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1) gr->ContX(*(a[0].d),k[1]==2?a[1].s.c_str():"",k[2]==3?a[2].v:NAN,opt);
- else return 1;
- return 0;
-}
-void mglc_contx(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1)
- mglprintf(out,1024,L"gr->ContX(%s, \"%s\", %g, \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==3?a[2].v:NAN,opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->ContFY(*(a[0].d),"",NAN,opt);
+ else if(!strcmp(k,"ds")) gr->ContFY(*(a[0].d),a[1].s.c_str(),NAN,opt);
+ else if(!strcmp(k,"dsn")) gr->ContFY(*(a[0].d),a[1].s.c_str(),a[2].v,opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_contfx(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1) gr->ContFX(*(a[0].d),k[1]==2?a[1].s.c_str():"",k[2]==3?a[2].v:NAN,opt);
- else return 1;
- return 0;
-}
-void mglc_contfx(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_contz(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1)
- mglprintf(out,1024,L"gr->ContFX(%s, \"%s\", %g, \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==3?a[2].v:NAN,opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->ContZ(*(a[0].d),"",NAN,opt);
+ else if(!strcmp(k,"ds")) gr->ContZ(*(a[0].d),a[1].s.c_str(),NAN,opt);
+ else if(!strcmp(k,"dsn")) gr->ContZ(*(a[0].d),a[1].s.c_str(),a[2].v,opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_conty(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_contfz(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1) gr->ContY(*(a[0].d),k[1]==2?a[1].s.c_str():"",k[2]==3?a[2].v:NAN,opt);
- else return 1;
- return 0;
-}
-void mglc_conty(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1)
- mglprintf(out,1024,L"gr->ContY(%s, \"%s\", %g, \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==3?a[2].v:NAN,opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->ContFZ(*(a[0].d),"",NAN,opt);
+ else if(!strcmp(k,"ds")) gr->ContFZ(*(a[0].d),a[1].s.c_str(),NAN,opt);
+ else if(!strcmp(k,"dsn")) gr->ContFZ(*(a[0].d),a[1].s.c_str(),a[2].v,opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_contfy(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_cone(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1) gr->ContFY(*(a[0].d),k[1]==2?a[1].s.c_str():"",k[2]==3?a[2].v:NAN,opt);
- else return 1;
- return 0;
-}
-void mglc_contfy(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1)
- mglprintf(out,1024,L"gr->ContFY(%s, \"%s\", %g, \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==3?a[2].v:NAN,opt);
+ int res=0;
+ if(!strcmp(k,"nnnnnnn")) gr->Cone(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].v);
+ else if(!strcmp(k,"nnnnnnns")) gr->Cone(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].v,-1, a[7].s.c_str());
+ else if(!strcmp(k,"nnnnnnnn")) gr->Cone(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].v, a[7].v);
+ else if(!strcmp(k,"nnnnnnnns")) gr->Cone(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].v, a[7].v, a[8].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_contz(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1) gr->ContZ(*(a[0].d),k[1]==2?a[1].s.c_str():"",k[2]==3?a[2].v:NAN,opt);
- else return 1;
- return 0;
-}
-void mglc_contz(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_ellipse(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1)
- mglprintf(out,1024,L"gr->ContZ(%s, \"%s\", %g, \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==3?a[2].v:NAN,opt);
+ int res=0;
+ if(!strcmp(k,"nnnnn"))
+ gr->Ellipse(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN), a[4].v);
+ else if(!strcmp(k,"nnnnns"))
+ gr->Ellipse(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN), a[4].v, a[5].s.c_str());
+ else if(!strcmp(k,"nnnnnnn"))
+ gr->Ellipse(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].v);
+ else if(!strcmp(k,"nnnnnnns"))
+ gr->Ellipse(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].v, a[7].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_contfz(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_circle(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1) gr->ContFZ(*(a[0].d),k[1]==2?a[1].s.c_str():"",k[2]==3?a[2].v:NAN,opt);
- else return 1;
- return 0;
-}
-void mglc_contfz(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1)
- mglprintf(out,1024,L"gr->ContFZ(%s, \"%s\", %g, \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==3?a[2].v:NAN,opt);
+ int res=0;
+ if(!strcmp(k,"nnn")) gr->Circle(mglPoint(a[0].v,a[1].v, NAN), a[2].v);
+ else if(!strcmp(k,"nnns")) gr->Circle(mglPoint(a[0].v,a[1].v, NAN), a[2].v, a[3].s.c_str());
+ else if(!strcmp(k,"nnnn")) gr->Circle(mglPoint(a[0].v,a[1].v,a[2].v), a[3].v);
+ else if(!strcmp(k,"nnnns")) gr->Circle(mglPoint(a[0].v,a[1].v,a[2].v), a[3].v, a[4].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_cone(mglGraph *gr, long , mglArg *a, int [10], const char *)
-{
- bool ok=true;
- for(int i=0;i<7;i++) if(a[i].type!=2) ok=false;
- if(ok)
- {
- if(a[7].type==2)
- gr->Cone(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v),
- a[6].v, a[7].v, (a[8].type==1) ? a[8].s.c_str() : 0);
- else
- gr->Cone(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v),
- a[6].v, -1, (a[7].type==1) ? a[7].s.c_str() : 0);
- }
- else return 1;
- return 0;
-}
-void mglc_cone(wchar_t out[1024], long , mglArg *a, int [10], const char *)
+int mgls_rhomb(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- bool ok=true;
- for(int i=0;i<7;i++) if(a[i].type!=2) ok=false;
- if(ok)
- {
- if(a[7].type==2)
- mglprintf(out,1024,L"gr->Cone(mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), %g, %g, \"%s\");", a[0].v,a[1].v,a[2].v, a[3].v,a[4].v,a[5].v, a[6].v, a[7].v, (a[8].type==2) ? a[8].s.c_str() : "");
- else
- mglprintf(out,1024,L"gr->Cone(mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), %g, -1, \"%s\");", a[0].v,a[1].v,a[2].v, a[3].v,a[4].v,a[5].v, a[6].v, (a[7].type==2) ? a[7].s.c_str() : "");
- }
+ int res=0;
+ if(!strcmp(k,"nnnnn"))
+ gr->Rhomb(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN), a[4].v);
+ else if(!strcmp(k,"nnnnns"))
+ gr->Rhomb(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN), a[4].v, a[5].s.c_str());
+ else if(!strcmp(k,"nnnnnnn"))
+ gr->Rhomb(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].v);
+ else if(!strcmp(k,"nnnnnnns"))
+ gr->Rhomb(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].v, a[7].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_ellipse(mglGraph *gr, long , mglArg *a, int [10], const char *)
-{
- int i;
- for(i=0;i<7;i++) if(a[i].type!=2)
- { i--; break; }
- if(i==6)
- gr->Ellipse(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v),
- a[6].v, a[7].type==1?a[7].s.c_str():"r");
- else if(i==4)
- gr->Ellipse(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN),
- a[4].v, a[5].type==1?a[5].s.c_str():"r");
- else return 1;
- return 0;
-}
-void mglc_ellipse(wchar_t out[1024], long , mglArg *a, int [10], const char *)
+int mgls_dens(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- int i;
- for(i=0;i<7;i++) if(a[i].type!=2) { i--; break; }
- if(i==6)
- mglprintf(out,1024,L"gr->Ellipse(mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), %g, \"%s\");", a[0].v,a[1].v,a[2].v, a[3].v,a[4].v,a[5].v, a[6].v, (a[7].type==1) ? a[7].s.c_str() : "r");
- else if(i==4)
- mglprintf(out,1024,L"gr->Ellipse(mglPoint(%g, %g, NAN), mglPoint(%g, %g, NAN), %g, \"%s\");", a[0].v,a[1].v,a[2].v,a[3].v,a[4].v, (a[5].type==1) ? a[5].s.c_str() : "r");
+ int res=0;
+ if(!strcmp(k,"d")) gr->Dens(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Dens(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Dens(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
+ else if(!strcmp(k,"ddds")) gr->Dens(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_circle(mglGraph *gr, long , mglArg *a, int [10], const char *)
-{
- int i;
- for(i=0;i<4;i++) if(a[i].type!=2) { i--; break; }
- if(i==3)
- gr->Circle(mglPoint(a[0].v,a[1].v,a[2].v), a[3].v, a[4].type==1?a[4].s.c_str():"r");
- else if(i==2)
- gr->Circle(mglPoint(a[0].v,a[1].v, NAN), a[2].v, a[3].type==1?a[3].s.c_str():"r");
- else return 1;
- return 0;
-}
-void mglc_circle(wchar_t out[1024], long , mglArg *a, int [10], const char *)
+int mgls_dens3(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- int i;
- for(i=0;i<4;i++) if(a[i].type!=2)
- { i--; break; }
- if(i==3)
- mglprintf(out,1024,L"gr->Circle(mglPoint(%g, %g, %g), %g, \"%s\");", a[0].v,a[1].v,a[2].v, a[3].v, (a[4].type==1) ? a[4].s.c_str() : "r");
- else if(i==2)
- mglprintf(out,1024,L"gr->Circle(mglPoint(%g, %g, NAN), %g, \"%s\");", a[0].v,a[1].v, a[2].v, (a[3].type==1) ? a[3].s.c_str() : "r");
+ int res=0;
+ if(!strcmp(k,"d")) gr->Dens3(*(a[0].d),"",-1,opt);
+ else if(!strcmp(k,"ds")) gr->Dens3(*(a[0].d),a[1].s.c_str(),-1,opt);
+ else if(!strcmp(k,"dsn")) gr->Dens3(*(a[0].d),a[1].s.c_str(),iint(a[2].v),opt);
+ else if(!strcmp(k,"dddd")) gr->Dens3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"", -1,opt);
+ else if(!strcmp(k,"dddds")) gr->Dens3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),-1,opt);
+ else if(!strcmp(k,"ddddsn")) gr->Dens3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),iint(a[5].v),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_rhomb(mglGraph *gr, long , mglArg *a, int [10], const char *)
+int mgls_densx(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- int i;
- for(i=0;i<7;i++) if(a[i].type!=2)
- { i--; break; }
- if(i==6)
- gr->Rhomb(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v),
- a[6].v, a[7].type==1?a[7].s.c_str():"r");
- else if(i==4)
- gr->Rhomb(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN),
- a[4].v, a[5].type==1?a[5].s.c_str():"r");
- else return 1;
- return 0;
-}
-void mglc_rhomb(wchar_t out[1024], long , mglArg *a, int [10], const char *)
-{
- int i;
- for(i=0;i<7;i++) if(a[i].type!=2)
- { i--; break; }
- if(i==6)
- mglprintf(out,1024,L"gr->Rhomb(mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), %g, \"%s\");", a[0].v,a[1].v,a[2].v, a[3].v,a[4].v,a[5].v, a[6].v, (a[7].type==1) ? a[7].s.c_str() : "r");
- else if(i==4)
- mglprintf(out,1024,L"gr->Rhomb(mglPoint(%g, %g, NAN), mglPoint(%g, %g, NAN), %g, \"%s\");", a[0].v,a[1].v,a[2].v, a[3].v,a[4].v, (a[5].type==1) ? a[5].s.c_str() : "r");
+ int res=0;
+ if(!strcmp(k,"d")) gr->DensX(*(a[0].d),"",NAN,opt);
+ else if(!strcmp(k,"ds")) gr->DensX(*(a[0].d),a[1].s.c_str(),NAN,opt);
+ else if(!strcmp(k,"dsn")) gr->DensX(*(a[0].d),a[1].s.c_str(),a[2].v,opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_dens(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Dens(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]!=1)
- gr->Dens(*(a[0].d), *(a[1].d), *(a[2].d), k[3]==2?a[3].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_dens(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_densy(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Dens(%s,\"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]!=1)
- mglprintf(out,1024,L"gr->Dens(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->DensY(*(a[0].d),"",NAN,opt);
+ else if(!strcmp(k,"ds")) gr->DensY(*(a[0].d),a[1].s.c_str(),NAN,opt);
+ else if(!strcmp(k,"dsn")) gr->DensY(*(a[0].d),a[1].s.c_str(),a[2].v,opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_dens3(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_densz(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return 1;
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- gr->Dens3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"", k[5]==3?iint(a[5].v):-1,opt);
- else gr->Dens3(*(a[0].d),k[1]==2?a[1].s.c_str():"",k[2]==3?iint(a[2].v):-1,opt);
- return 0;
-}
-void mglc_dens3(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->Dens3(%s, %s, %s, %s, \"%s\", %d, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"", k[5]==3?iint(a[5].v):-1,opt);
- else mglprintf(out,1024,L"gr->Dens3(%s, \"%s\", %d, \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",k[2]==3?iint(a[2].v):-1,opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->DensZ(*(a[0].d),"",NAN,opt);
+ else if(!strcmp(k,"ds")) gr->DensZ(*(a[0].d),a[1].s.c_str(),NAN,opt);
+ else if(!strcmp(k,"dsn")) gr->DensZ(*(a[0].d),a[1].s.c_str(),a[2].v,opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_densx(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1) gr->DensX(*(a[0].d),k[1]==2?a[1].s.c_str():"",k[2]==3?a[2].v:NAN,opt);
- else return 1;
- return 0;
-}
-void mglc_densx(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_divto(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1) mglprintf(out,1024,L"gr->DensX(%s, \"%s\", %g, \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==3?a[2].v:NAN,opt);
+ int res=0;
+ if(!strcmp(k,"dd")) *(a[0].d) /= *(a[1].d);
+ else if(!strcmp(k,"dn")) *(a[0].d) /= a[1].v;
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_densy(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_multo(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1) gr->DensY(*(a[0].d),k[1]==2?a[1].s.c_str():"",k[2]==3?a[2].v:NAN,opt);
- else return 1;
- return 0;
-}
-void mglc_densy(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1) mglprintf(out,1024,L"gr->DensY(%s, \"%s\", %g, \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==3?a[2].v:NAN,opt);
+ int res=0;
+ if(!strcmp(k,"dd")) *(a[0].d) *= *(a[1].d);
+ else if(!strcmp(k,"dn")) *(a[0].d) *= a[1].v;
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_densz(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1) gr->DensZ(*(a[0].d),k[1]==2?a[1].s.c_str():"",k[2]==3?a[2].v:NAN,opt);
- else return 1;
- return 0;
-}
-void mglc_densz(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_subto(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1) mglprintf(out,1024,L"gr->DensZ(%s, \"%s\", %g, \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==3?a[2].v:NAN,opt);
+ int res=0;
+ if(!strcmp(k,"dd")) *(a[0].d) -= *(a[1].d);
+ else if(!strcmp(k,"dn")) *(a[0].d) -= a[1].v;
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_divto(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_dots(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1) *(a[0].d) /= *(a[1].d);
- else if(k[0]==1 && k[1]==3) *(a[0].d) /= a[1].v;
- else return 1;
- return 0;
-}
-void mglc_divto(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1) mglprintf(out,1024,L"%s /= %s;",a[0].s.c_str(), a[1].s.c_str());
- else if(k[0]==1 && k[1]==3) mglprintf(out,1024,L"%s /= %g;",a[0].s.c_str(), a[1].v);
+ int res=0;
+ if(!strcmp(k,"ddd")) gr->Dots(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Dots(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->Dots(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds")) gr->Dots(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_multo(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_diff(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1) *(a[0].d) *= *(a[1].d);
- else if(k[0]==1 && k[1]==3) *(a[0].d) *= a[1].v;
- else return 1;
- return 0;
-}
-void mglc_multo(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1) mglprintf(out,1024,L"%s *= %s;",a[0].s.c_str(), a[1].s.c_str());
- else if(k[0]==1 && k[1]==3) mglprintf(out,1024,L"%s *= %g;",a[0].s.c_str(), a[1].v);
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->Diff(a[1].s.c_str());
+ else if(!strcmp(k,"ddd")) a[0].d->Diff(*(a[1].d), *(a[2].d));
+ else if(!strcmp(k,"dddd")) a[0].d->Diff(*(a[1].d), *(a[2].d), *(a[3].d));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_subto(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1) *(a[0].d) -= *(a[1].d);
- else if(k[0]==1 && k[1]==3) *(a[0].d) -= a[1].v;
- else return 1;
- return 0;
-}
-void mglc_subto(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_diff2(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1) mglprintf(out,1024,L"%s -= %s;",a[0].s.c_str(), a[1].s.c_str());
- else if(k[0]==1 && k[1]==3) mglprintf(out,1024,L"%s -= %g;",a[0].s.c_str(), a[1].v);
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->Diff2(a[1].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_dots(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_drop(mglGraph *gr, long n, mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- gr->Dots(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- gr->Dots(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_dots(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Dots(%s, %s, %s, \"%s\", \"%s\");",a[0].s.c_str(),a[1].s.c_str(),a[2].s.c_str(),k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"nnnnn"))
+ gr->Drop(mglPoint(a[0].v,a[1].v), mglPoint(a[2].v,a[3].v), a[4].v);
+ else if(!strcmp(k,"nnnnns"))
+ gr->Drop(mglPoint(a[0].v,a[1].v), mglPoint(a[2].v,a[3].v), a[4].v, a[5].s.c_str());
+ else if(!strcmp(k,"nnnnnsn"))
+ gr->Drop(mglPoint(a[0].v,a[1].v), mglPoint(a[2].v,a[3].v), a[4].v, a[5].s.c_str(), a[6].v);
+ else if(!strcmp(k,"nnnnnsnn"))
+ gr->Drop(mglPoint(a[0].v,a[1].v), mglPoint(a[2].v,a[3].v), a[4].v, a[5].s.c_str(), a[6].v, a[7].v);
+ else if(!strcmp(k,"nnnnnnn"))
+ gr->Drop(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].v);
+ else if(!strcmp(k,"nnnnnnns"))
+ gr->Drop(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].v, a[7].s.c_str());
+ else if(!strcmp(k,"nnnnnnnsn"))
+ gr->Drop(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].v, a[7].s.c_str(), a[8].v);
+ else if(!strcmp(k,"nnnnnnnsnn"))
+ gr->Drop(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].v, a[7].s.c_str(), a[8].v, a[9].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_diff(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2) a[0].d->Diff(a[1].s.c_str());
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- a[0].d->Diff(*(a[1].d), *(a[2].d), *(a[3].d));
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- a[0].d->Diff(*(a[1].d), *(a[2].d));
- else return 1;
- return 0;
-}
-void mglc_diff(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_dew(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==2) mglprintf(out,1024,L"%s.Diff(\"%s\");", a[0].s.c_str(), a[1].s.c_str());
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"%s.Diff(%s, %s, %s);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str());
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"%s.Diff(%s, %s);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
+ int res=0;
+ if(!strcmp(k,"dd")) gr->Dew(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Dew(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->Dew(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds")) gr->Dew(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_diff2(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_fall(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==2) a[0].d->Diff2(a[1].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_diff2(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2) mglprintf(out,1024,L"%s.Diff2(\"%s\");", a[0].s.c_str(), a[1].s.c_str());
+ int res=0;
+ if(!strcmp(k,"d")) gr->Fall(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Fall(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Fall(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Fall(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_drop(mglGraph *gr, long n, mglArg *a, int k[10], const char *)
-{
- register int i;
- for(i=0;i<7;i++) if(k[i]!=3) break;
- if(i==7)
- gr->Drop(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].v,
- k[7]==2 ? a[7].s.c_str():"b", k[8]==3 ? a[8].v:1., (n>9 && a[9].type==2) ? a[9].v:1.);
- else if(i==5)
- gr->Drop(mglPoint(a[0].v,a[1].v), mglPoint(a[2].v,a[3].v), a[4].v,
- k[5]==2 ? a[5].s.c_str():"b", k[6]==3 ? a[6].v:1., k[7]==3 ? a[7].v:1.);
- else return 1;
- return 0;
-}
-void mglc_drop(wchar_t out[1024], long n, mglArg *a, int k[10], const char *)
+int mgls_mesh(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- register int i;
- for(i=0;i<7;i++) if(k[i]!=3) break;
- if(i==7)
- mglprintf(out,1024,L"gr->Drop(mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), %g, \"%s\", %g, %g);", a[0].v,a[1].v,a[2].v, a[3].v,a[4].v,a[5].v, a[6].v, k[7]==2 ? a[7].s.c_str():"b", k[8]==3 ? a[8].v:1., (n>9 && a[9].type==2) ? a[9].v:1.);
- else if(i==5)
- mglprintf(out,1024,L"gr->Drop(mglPoint(%g, %g), mglPoint(%g, %g), %g, \"%s\", %g, %g);", a[0].v,a[1].v, a[2].v,a[3].v, a[4].v, k[5]==2 ? a[5].s.c_str():"b", k[6]==3 ? a[6].v:1., k[7]==3 ? a[7].v:1.);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Mesh(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Mesh(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Mesh(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Mesh(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_dew(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_surf(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- gr->Dew(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1) gr->Dew(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_dew(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->Dew(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1)
- mglprintf(out,1024,L"gr->Dew(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Surf(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Surf(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Surf(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Surf(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_fall(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Fall(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1) gr->Fall(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_fall(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_surfc(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Fall(%s, \"%s\", \"%s\");", a[0].s.c_str(),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Fall(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"dd")) gr->SurfC(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->SurfC(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->SurfC(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds")) gr->SurfC(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_mesh(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Mesh(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1) gr->Mesh(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_mesh(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Mesh(%s, \"%s\", \"%s\");", a[0].s.c_str(),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Mesh(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
-}
-//-----------------------------------------------------------------------------
-int mgls_surf(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Surf(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1) gr->Surf(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_surf(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Surf(%s, \"%s\", \"%s\");", a[0].s.c_str(),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Surf(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
-}
-//-----------------------------------------------------------------------------
-int mgls_surfc(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1 || k[1]!=1) return 1;
- else if(k[2]!=1) gr->SurfC(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else if(k[2]==1 && k[3]==1) gr->SurfC(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_surfc(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1 || k[1]!=1) return;
- else if(k[2]!=1)
- mglprintf(out,1024,L"gr->SurfC(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(),a[1].s.c_str(),k[2]==2?a[2].s.c_str():"",opt);
- else if(k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->SurfC(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
-}
-//-----------------------------------------------------------------------------
-int mgls_surfa(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1 || k[1]!=1) return 1;
- else if(k[2]!=1) gr->SurfA(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else if(k[2]==1 && k[3]==1) gr->SurfA(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_surfa(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1 || k[1]!=1) return;
- else if(k[2]!=1)
- mglprintf(out,1024,L"gr->SurfA(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(),a[1].s.c_str(),k[2]==2?a[2].s.c_str():"",opt);
- else if(k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->SurfA(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
-}
-//-----------------------------------------------------------------------------
-int mgls_flow(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- int i;
- for(i=0;i<7;i++) if(k[i]!=1) break;
- if(i==2)
- gr->Flow(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else if(i==4)
- gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else if(i==3)
- gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else if(i==6)
- gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),k[6]==2?a[6].s.c_str():"",opt);
- else if(k[0]==3 && k[1]==3 && k[2]==1 && k[3]==1 && k[4]==1 && k[5]==1)
- gr->FlowP(mglPoint(a[0].v,a[1].v,k[7]==3?a[7].v:NAN),
- *(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),k[6]==2?a[6].s.c_str():"",opt);
- else if(k[0]==3 && k[1]==3 && k[2]==1 && k[3]==1)
- gr->FlowP(mglPoint(a[0].v,a[1].v,k[5]==3?a[5].v:NAN),
- *(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==1 && k[4]==1 && k[5]==1 && k[6]==1 && k[7]==1 && k[8]==1)
- gr->FlowP(mglPoint(a[0].v,a[1].v,a[2].v),
- *(a[3].d),*(a[4].d),*(a[5].d),*(a[6].d),*(a[7].d),*(a[8].d),k[9]==2?a[9].s.c_str():"",opt);
- else if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==1 && k[4]==1 && k[5]==1)
- gr->FlowP(mglPoint(a[0].v,a[1].v,a[2].v),
- *(a[3].d),*(a[4].d),*(a[5].d),k[6]==2?a[6].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_flow(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- int i;
- for(i=0;i<7;i++) if(k[i]!=1) break;
- if(i==2)
- mglprintf(out,1024,L"gr->Flow(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else if(i==4)
- mglprintf(out,1024,L"gr->Flow(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(i==3)
- mglprintf(out,1024,L"gr->Flow(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(i==6)
- mglprintf(out,1024,L"gr->Flow(%s, %s, %s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), a[5].s.c_str(), k[6]==2?a[6].s.c_str():"",opt);
- else if(k[0]==3 && k[1]==3 && k[2]==1 && k[3]==1 && k[4]==1 && k[5]==1)
- mglprintf(out,1024,L"gr->FlowP(mglPoint(%g,%g,%g), %s, %s, %s, %s, \"%s\", \"%s\");",
- a[0].v,a[1].v,k[7]==3?a[7].v:NAN,a[2].s.c_str(),a[3].s.c_str(),a[4].s.c_str(),a[5].s.c_str(),k[6]==2?a[6].s.c_str():"",opt);
- else if(k[0]==3 && k[1]==3 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->FlowP(mglPoint(%g,%g,%g), %s, %s, \"%s\", \"%s\");",
- a[0].v,a[1].v,k[5]==3?a[5].v:NAN,a[2].s.c_str(),a[3].s.c_str(),k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==1 && k[4]==1 && k[5]==1 && k[6]==1 && k[7]==1 && k[8]==1)
- mglprintf(out,1024,L"gr->FlowP(mglPoint(%g,%g,%g), %s, %s, %s, %s, %s, %s, \"%s\", \"%s\");",
- a[0].v,a[1].v,a[2].v,a[3].s.c_str(),a[4].s.c_str(),a[5].s.c_str(),a[6].s.c_str(),a[7].s.c_str(),a[8].s.c_str(),k[9]==2?a[9].s.c_str():"",opt);
- else if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==1 && k[4]==1 && k[5]==1)
- mglprintf(out,1024,L"gr->FlowP(mglPoint(%g,%g,%g), %s, %s, %s, \"%s\", \"%s\");",
- a[0].v,a[1].v,a[2].v,a[3].s.c_str(),a[4].s.c_str(),a[5].s.c_str(),k[6]==2?a[6].s.c_str():"",opt);
-}
-//-----------------------------------------------------------------------------
-int mgls_grad(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- int i;
- for(i=0;i<7;i++) if(k[i]!=1) break;
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- gr->Grad(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- gr->Grad(*(a[0].d),*(a[1].d),*(a[2].d), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1)
- gr->Grad(*(a[0].d), k[1]==2?a[1].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_grad(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->Grad(%s, %s, %s, %s, \"%s\", \"%s\");",
- a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Grad(%s, %s, %s, \"%s\", \"%s\");",
- a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1)
- mglprintf(out,1024,L"gr->Grad(%s, \"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
-}
-//-----------------------------------------------------------------------------
-int mgls_fill(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==2)
- {
- if(k[2]==1 && a[2].d && k[3]==1 && a[3].d)
- gr->Fill(*(a[0].d),a[1].s.c_str(), *(a[2].d), *(a[3].d),opt);
- else if(k[2]==1 && a[2].d)
- gr->Fill(*(a[0].d),a[1].s.c_str(), *(a[2].d),opt);
- else gr->Fill(*(a[0].d),a[1].s.c_str(),opt);
- }
- else if(k[0]==1 && k[1]==3 && k[2]==3)
- a[0].d->Fill(a[1].v,a[2].v,k[3]==2?a[3].s.c_str()[0]:'x');
- else return 1;
- return 0;
-}
-void mglc_fill(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_surfa(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==2)
- mglprintf(out,1024,L"gr->Fill(%s,\"%s\", %s, %s, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==1?a[2].s.c_str():"", k[3]==1?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==3 && k[2]==3)
- mglprintf(out,1024,L"%s.Fill(%g, %g, '%c');", a[0].s.c_str(), a[1].v,a[2].v, k[3]==2?a[3].s.c_str()[0]:'x');
+ int res=0;
+ if(!strcmp(k,"dd")) gr->SurfA(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->SurfA(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->SurfA(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds")) gr->SurfA(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_fillsample(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_flow(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==2) a[0].d->FillSample(a[1].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_fillsample(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2)
- mglprintf(out,1024,L"%s.FillSample(\"%s\");", a[0].s.c_str(), a[1].s.c_str());
+ int res=0;
+ if(!strcmp(k,"dd")) gr->Flow(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Flow(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds")) gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else if(!strcmp(k,"dddddd"))
+ gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
+ else if(!strcmp(k,"dddddds"))
+ gr->Flow(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.c_str(),opt);
+ else if(!strcmp(k,"nndd"))
+ gr->FlowP(mglPoint(a[0].v,a[1].v,NAN), *(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"nndds"))
+ gr->FlowP(mglPoint(a[0].v,a[1].v,NAN), *(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else if(!strcmp(k,"nndddd"))
+ gr->FlowP(mglPoint(a[0].v,a[1].v,NAN), *(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
+ else if(!strcmp(k,"nndddds"))
+ gr->FlowP(mglPoint(a[0].v,a[1].v,NAN), *(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.c_str(),opt);
+ else if(!strcmp(k,"nnnddd"))
+ gr->FlowP(mglPoint(a[0].v,a[1].v,a[2].v), *(a[3].d),*(a[4].d),*(a[5].d),"",opt);
+ else if(!strcmp(k,"nnnddds"))
+ gr->FlowP(mglPoint(a[0].v,a[1].v,a[2].v), *(a[3].d),*(a[4].d),*(a[5].d),a[6].s.c_str(),opt);
+ else if(!strcmp(k,"nnndddddd"))
+ gr->FlowP(mglPoint(a[0].v,a[1].v,a[2].v), *(a[3].d),*(a[4].d),*(a[5].d),*(a[6].d),*(a[7].d),*(a[8].d),"",opt);
+ else if(!strcmp(k,"nnndddddds"))
+ gr->FlowP(mglPoint(a[0].v,a[1].v,a[2].v), *(a[3].d),*(a[4].d),*(a[5].d),*(a[6].d),*(a[7].d),*(a[8].d),a[9].s.c_str(),opt);
+ else res = 1;
+ return res;
}
//-----------------------------------------------------------------------------
-int mgls_fog(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3) gr->Fog(a[0].v,k[1]==3?a[1].v:0.25);
- else return 1;
- return 0;
-}
-void mglc_fog(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_grad(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==3) mglprintf(out,1024,L"gr->Fog(%g, %g);", a[0].v,k[1]==3?a[1].v:0.25);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Grad(*(a[0].d), "",opt);
+ else if(!strcmp(k,"ds")) gr->Grad(*(a[0].d), a[1].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Grad(*(a[0].d),*(a[1].d),*(a[2].d), "",opt);
+ else if(!strcmp(k,"ddds")) gr->Grad(*(a[0].d),*(a[1].d),*(a[2].d), a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->Grad(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), "",opt);
+ else if(!strcmp(k,"dddds")) gr->Grad(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_font(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_fill(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==2)
- { gr->SetFontDef(a[0].s.c_str()); if(k[1]==3) gr->SetFontSize(a[1].v); }
- else return 1;
- return 0;
-}
-void mglc_font(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==2 && k[1]==3)
- mglprintf(out,1024,L"gr->SetFontDef(\"%s\");\tgr->SetFontSize(%g);", a[0].s.c_str(), a[1].v);
- else if(k[0]==2)
- mglprintf(out,1024,L"gr->SetFontDef(\"%s\");",a[0].s.c_str());
+ int res=0;
+ if(!strcmp(k,"dnn")) a[0].d->Fill(a[1].v,a[2].v);
+ else if(!strcmp(k,"dnns")) a[0].d->Fill(a[1].v,a[2].v,a[3].s.c_str()[0]);
+ else if(!strcmp(k,"ds")) gr->Fill(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dsd")) gr->Fill(*(a[0].d),a[1].s.c_str(), *(a[2].d),opt);
+ else if(!strcmp(k,"dsdd")) gr->Fill(*(a[0].d),a[1].s.c_str(), *(a[2].d), *(a[3].d),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_loadfont(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==2 && a[0].s.c_str()[0]) gr->LoadFont(a[0].s.c_str());
- else gr->RestoreFont();
- return 0;
-}
-void mglc_loadfont(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_fillsample(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==2 && a[0].s.c_str()[0])
- mglprintf(out,1024,L"gr->LoadFont(\"%s\");", a[0].s.c_str());
- else
- mglprintf(out,1024,L"gr->RestoreFont();");
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->FillSample(a[1].s.c_str());
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
+int mgls_fog(mglGraph *gr, long , mglArg *a, const char *k, const char *)
+{
+ int res=0;
+ if(!strcmp(k,"n")) gr->Fog(a[0].v);
+ else if(!strcmp(k,"nn")) gr->Fog(a[0].v,a[1].v);
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
+int mgls_font(mglGraph *gr, long , mglArg *a, const char *k, const char *)
+{
+ int res=0;
+ if(!strcmp(k,"s")) gr->SetFontDef(a[0].s.c_str());
+ else if(!strcmp(k,"sn"))
+ { gr->SetFontDef(a[0].s.c_str()); gr->SetFontSize(a[1].v); }
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
+int mgls_loadfont(mglGraph *gr, long , mglArg *a, const char *k, const char *)
+{
+ int res=0;
+ if(!strcmp(k,"") || (!strcmp(k,"s") && a[0].s[0]==0)) gr->RestoreFont();
+ else if(!strcmp(k,"s")) gr->LoadFont(a[0].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_grid(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_grid(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- gr->Grid(k[0]==2?a[0].s.c_str():"xyzt", k[1]==2?a[1].s.c_str():"B-",opt);
- return 0;
-}
-void mglc_grid(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- mglprintf(out,1024,L"gr->Grid(\"%s\", \"%s\", \"%s\");", k[0]==2?a[0].s.c_str():"xyz", k[1]==2?a[1].s.c_str():"B-",opt);
+ int res=0;
+ if(!strcmp(k,"")) gr->Grid("xyzt", "B",opt);
+ else if(!strcmp(k,"s")) gr->Grid(a[0].s.c_str(), "B",opt);
+ else if(!strcmp(k,"ss"))gr->Grid(a[0].s.c_str(), a[1].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_grid2(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]!=1)
- gr->Grid(*(a[0].d), *(a[1].d), *(a[2].d), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1) gr->Grid(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_grid2(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_grid2(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]!=1)
- mglprintf(out,1024,L"gr->Grid(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1)
- mglprintf(out,1024,L"gr->Grid(%s,\"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Grid(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Grid(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Grid(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
+ else if(!strcmp(k,"ddds")) gr->Grid(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_grid3(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_grid3(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return 1;
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- gr->Grid3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"", k[5]==3?iint(a[5].v):-1,opt);
- else gr->Grid3(*(a[0].d),k[1]==2?a[1].s.c_str():"",k[2]==3?iint(a[2].v):-1,opt);
- return 0;
-}
-void mglc_grid3(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->Grid3(%s, %s, %s, %s, \"%s\", %d, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"", k[5]==3?iint(a[5].v):-1,opt);
- else mglprintf(out,1024,L"gr->Grid3(%s, \"%s\", %d, \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",k[2]==3?iint(a[2].v):-1,opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Grid3(*(a[0].d),"",-1,opt);
+ else if(!strcmp(k,"ds")) gr->Grid3(*(a[0].d),a[1].s.c_str(),-1,opt);
+ else if(!strcmp(k,"dsn")) gr->Grid3(*(a[0].d),a[1].s.c_str(),iint(a[2].v),opt);
+ else if(!strcmp(k,"dddd")) gr->Grid3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",-1,opt);
+ else if(!strcmp(k,"dddds")) gr->Grid3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),-1,opt);
+ else if(!strcmp(k,"ddddsn"))gr->Grid3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),iint(a[5].v),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_light(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==0) gr->Light(true);
- else if(k[0]!=3) return 1;
- else if(k[1]!=3) gr->Light(a[0].v!=0);
- else if(k[2]==3 && k[3]==3 && k[4]==3 && k[5]==3 && k[6]==3)
- gr->AddLight(iint(a[0].v),mglPoint(a[1].v,a[2].v,a[3].v),mglPoint(a[4].v,a[5].v,a[6].v), k[7]==2?a[7].s.c_str()[0]:'w',k[8]==3?a[8].v:0.5,k[9]==3?a[9].v:0);
- else if(k[2]==3 && k[3]==3)
- gr->AddLight(iint(a[0].v),mglPoint(a[1].v,a[2].v,a[3].v), k[4]==2?a[4].s.c_str()[0]:'w',k[5]==3?a[5].v:0.5,k[6]==3?a[6].v:0);
- else gr->Light(iint(a[0].v),a[1].v!=0);
- return 0;
-}
-void mglc_light(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_light(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==0) mglprintf(out,1024,L"gr->Light(true);");
- else if(k[0]!=3) return;
- else if(k[1]!=3) mglprintf(out,1024,L"gr->Light(%s);", a[0].v!=0 ? "true":"false");
- else if(k[2]==3 && k[3]==3 && k[4]==3 && k[5]==3 && k[6]==3)
- mglprintf(out,1024,L"gr->AddLight(%d, mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), '%c', %g, %g);", iint(a[0].v), a[1].v, a[2].v, a[3].v, a[4].v, a[5].v, a[6].v, k[7]==2?a[7].s.c_str()[0]:'w', k[8]==3?a[8].v:0.5, k[9]==3?a[9].v:0);
- else if(k[2]==3 && k[3]==3)
- mglprintf(out,1024,L"gr->AddLight(%d, mglPoint(%g, %g, %g), '%c', %g, %g);", iint(a[0].v), a[1].v, a[2].v, a[3].v, k[4]==2?a[4].s.c_str()[0]:'w', k[5]==3?a[5].v:0.5, k[6]==3?a[6].v:0);
- else mglprintf(out,1024,L"gr->Light(%d, %s);", iint(a[0].v), a[1].v!=0 ? "true":"false");
+ int res=0;
+ if(!strcmp(k,"")) gr->Light(true);
+ else if(!strcmp(k,"n")) gr->Light(a[0].v!=0);
+ else if(!strcmp(k,"nn")) gr->Light(iint(a[0].v),a[1].v!=0);
+ else if(!strcmp(k,"nnnn")) gr->AddLight(iint(a[0].v),mglPoint(a[1].v,a[2].v,a[3].v));
+ else if(!strcmp(k,"nnnns")) gr->AddLight(iint(a[0].v),mglPoint(a[1].v,a[2].v,a[3].v), a[4].s.c_str()[0]);
+ else if(!strcmp(k,"nnnnsn"))gr->AddLight(iint(a[0].v),mglPoint(a[1].v,a[2].v,a[3].v), a[4].s.c_str()[0],a[5].v);
+ else if(!strcmp(k,"nnnnsnn"))
+ gr->AddLight(iint(a[0].v),mglPoint(a[1].v,a[2].v,a[3].v), a[4].s.c_str()[0],a[5].v,a[6].v);
+ else if(!strcmp(k,"nnnnnnn"))
+ gr->AddLight(iint(a[0].v),mglPoint(a[1].v,a[2].v,a[3].v),mglPoint(a[4].v,a[5].v,a[6].v));
+ else if(!strcmp(k,"nnnnnnns"))
+ gr->AddLight(iint(a[0].v),mglPoint(a[1].v,a[2].v,a[3].v),mglPoint(a[4].v,a[5].v,a[6].v), a[7].s.c_str()[0]);
+ else if(!strcmp(k,"nnnnnnnsn"))
+ gr->AddLight(iint(a[0].v),mglPoint(a[1].v,a[2].v,a[3].v),mglPoint(a[4].v,a[5].v,a[6].v), a[7].s.c_str()[0],a[8].v);
+ else if(!strcmp(k,"nnnnnnnsnn"))
+ gr->AddLight(iint(a[0].v),mglPoint(a[1].v,a[2].v,a[3].v),mglPoint(a[4].v,a[5].v,a[6].v), a[7].s.c_str()[0],a[8].v,a[9].v);
+ return res;
}
//-----------------------------------------------------------------------------
-int mgls_line(mglGraph *gr, long n, mglArg *a, int [10], const char *)
+int mgls_line(mglGraph *gr, long n, mglArg *a, const char *k, const char *)
{
- int i;
- if(n>5)
- {
- bool ok=true;
- for(i=0;i<6;i++) if(a[i].type!=2) ok=false;
- if(ok)
- gr->Line(mglPoint(a[0].v,a[1].v,a[2].v),
- mglPoint(a[3].v,a[4].v,a[5].v),
- (n==7 && a[6].type==1) ? a[6].s.c_str() : 0, 100);
- else return 1;
- }
- else if(n>3)
- {
- bool ok=true;
- for(i=0;i<4;i++) if(a[i].type!=2) ok=false;
- if(ok)
- gr->Line(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN),
- (n==5 && a[4].type==1) ? a[4].s.c_str() : 0, 100);
- else return 1;
- }
- else return 1;
- return 0;
-}
-void mglc_line(wchar_t out[1024], long n, mglArg *a, int [10], const char *)
-{
- int i;
- if(n>5)
- {
- bool ok=true;
- for(i=0;i<6;i++) if(a[i].type!=2) ok=false;
- if(ok)
- mglprintf(out,1024,L"gr->Line(mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), \"%s\", 100);", a[0].v,a[1].v,a[2].v, a[3].v,a[4].v,a[5].v, (n==7 && a[6].type==1) ? a[6].s.c_str() : "");
- }
- else if(n>3)
- {
- bool ok=true;
- for(i=0;i<4;i++) if(a[i].type!=2) ok=false;
- if(ok)
- mglprintf(out,1024,L"gr->Line(mglPoint(%g, %g, gr->Min.z), mglPoint(%g, %g, gr->Min.z), \"%s\", 100);", a[0].v,a[1].v,a[2].v, a[3].v, (n==5 && a[4].type==1) ? a[4].s.c_str() : "");
- }
+ int res=0;
+ if(!strcmp(k,"nnnn"))
+ gr->Line(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN));
+ else if(!strcmp(k,"nnnns"))
+ gr->Line(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN), a[4].s.c_str());
+ else if(!strcmp(k,"nnnnnn"))
+ gr->Line(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v));
+ else if(!strcmp(k,"nnnnnns"))
+ gr->Line(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_errbox(mglGraph *gr, long n, mglArg *a, int [10], const char *)
+int mgls_errbox(mglGraph *gr, long n, mglArg *a, const char *k, const char *)
{
- int i;
- if(n>5)
- {
- bool ok=true;
- for(i=0;i<6;i++) if(a[i].type!=2) ok=false;
- if(ok)
- gr->Error(mglPoint(a[0].v,a[1].v,a[2].v),
- mglPoint(a[3].v,a[4].v,a[5].v),
- (n==7 && a[6].type==1) ? a[6].s.c_str() : "");
- else return 1;
- }
- else if(n>3)
- {
- bool ok=true;
- for(i=0;i<4;i++) if(a[i].type!=2) ok=false;
- if(ok)
- gr->Error(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN),
- (n==5 && a[4].type==1) ? a[4].s.c_str() : "");
- else return 1;
- }
- else return 1;
- return 0;
-}
-void mglc_errbox(wchar_t out[1024], long n, mglArg *a, int [10], const char *)
-{
- int i;
- if(n>5)
- {
- bool ok=true;
- for(i=0;i<6;i++) if(a[i].type!=2) ok=false;
- if(ok)
- mglprintf(out,1024,L"gr->Error(mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), \"%s\");", a[0].v,a[1].v,a[2].v, a[3].v,a[4].v,a[5].v, (n==7 && a[6].type==1) ? a[6].s.c_str() : "");
- }
- else if(n>3)
- {
- bool ok=true;
- for(i=0;i<4;i++) if(a[i].type!=2) ok=false;
- if(ok)
- mglprintf(out,1024,L"gr->Error(mglPoint(%g, %g, gr->Min.z), mglPoint(%g, %g, gr->Min.z), \"%s\");", a[0].v,a[1].v,a[2].v, a[3].v, (n==5 && a[4].type==1) ? a[4].s.c_str() : "");
- }
+ int res=0;
+ if(!strcmp(k,"nnnn"))
+ gr->Error(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN));
+ else if(!strcmp(k,"nnnns"))
+ gr->Error(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN), a[4].s.c_str());
+ else if(!strcmp(k,"nnnnnn"))
+ gr->Error(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v));
+ else if(!strcmp(k,"nnnnnns"))
+ gr->Error(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_legend(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==3 && k[1]==3)
- gr->Legend(a[0].v, a[1].v, k[2]==2?a[2].s.c_str():"#", opt);
- else
- gr->Legend(k[0]==3?iint(a[0].v):3, k[1]==2?a[1].s.c_str():"#", opt);
- return 0;
-}
-void mglc_legend(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_legend(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->Legend(%g, %g, \"%s\", \"%s\");", a[0].v, a[1].v, k[2]==2?a[2].s.c_str():"#", opt);
- else
- mglprintf(out,1024,L"gr->Legend(%d, \"%s\", \"%s\");", k[0]==3?iint(a[0].v):3, k[1]==2?a[1].s.c_str():"#", opt);
+ int res=0;
+ if(!strcmp(k,"")) gr->Legend(3, "#", opt);
+ else if(!strcmp(k,"n")) gr->Legend(iint(a[0].v), "#", opt);
+ else if(!strcmp(k,"ns")) gr->Legend(iint(a[0].v), a[1].s.c_str(), opt);
+ else if(!strcmp(k,"nn")) gr->Legend(a[0].v, a[1].v, "#", opt);
+ else if(!strcmp(k,"nns")) gr->Legend(a[0].v, a[1].v, a[2].s.c_str(), opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_barwidth(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_barwidth(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3) gr->SetBarWidth(a[0].v);
- else return 1;
- return 0;
-}
-void mglc_barwidth(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3) mglprintf(out,1024,L"gr->SetBarWidth(%g);", a[0].v);
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetBarWidth(a[0].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_legendmarks(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3) gr->SetLegendMarks(iint(a[0].v));
- else return 1;
- return 0;
-}
-void mglc_legendmarks(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_legendmarks(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3) mglprintf(out,1024,L"gr->SetLegendMarks(%d);", iint(a[0].v));
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetLegendMarks(iint(a[0].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_modify(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_modify(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2 && k[2]==1 && k[3]==1)
- a[0].d->Modify(a[1].s.c_str(),*(a[2].d),*(a[3].d));
- else if(k[0]==1 && k[1]==2 && k[2]==1)
- a[0].d->Modify(a[1].s.c_str(),*(a[2].d));
- else if(k[0]==1 && k[1]==2)
- a[0].d->Modify(a[1].s.c_str(), k[2]==3 ? iint(a[2].v):0);
- else return 1;
- return 0;
-}
-void mglc_modify(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"%s.Modify(\"%s\", %s, %s);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str());
- else if(k[0]==1 && k[1]==2 && k[2]==1)
- mglprintf(out,1024,L"%s.Modify(\"%s\", %s);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
- else if(k[0]==1 && k[1]==2)
- mglprintf(out,1024,L"%s.Modify(\"%s\", %d);", a[0].s.c_str(), a[1].s.c_str(), k[2]==3 ? iint(a[2].v):0);
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->Modify(a[1].s.c_str());
+ else if(!strcmp(k,"dsn")) a[0].d->Modify(a[1].s.c_str(), iint(a[2].v));
+ else if(!strcmp(k,"dsd")) a[0].d->Modify(a[1].s.c_str(),*(a[2].d));
+ else if(!strcmp(k,"dsdd")) a[0].d->Modify(a[1].s.c_str(),*(a[2].d),*(a[3].d));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_max(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==2) *(a[0].d) = a[1].d->Max(a[2].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_max(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_max(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==2)
- mglprintf(out,1024,L"%s = %s.Max(\"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
+ int res=0;
+ if(!strcmp(k,"dds")) *(a[0].d) = a[1].d->Max(a[2].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_min(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==2) *(a[0].d) = a[1].d->Min(a[2].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_min(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_min(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==2)
- mglprintf(out,1024,L"%s = %s.Min(\"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
+ int res=0;
+ if(!strcmp(k,"dds")) *(a[0].d) = a[1].d->Min(a[2].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_sum(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_sum(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==2) *(a[0].d) = a[1].d->Sum(a[2].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_sum(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==2)
- mglprintf(out,1024,L"%s = %s.Sum(\"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
+ int res=0;
+ if(!strcmp(k,"dds")) *(a[0].d) = a[1].d->Sum(a[2].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_meshnum(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3) gr->SetMeshNum(a[0].v); else return 1;
- return 0;
-}
-void mglc_meshnum(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_meshnum(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3) mglprintf(out,1024,L"gr->SetMeshNum(%d);", iint(a[0].v));
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetMeshNum(a[0].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_facenum(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_facenum(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3) gr->SetFaceNum(a[0].v); else return 1;
- return 0;
-}
-void mglc_facenum(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3) mglprintf(out,1024,L"gr->SetFaceNum(%d);", iint(a[0].v));
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetFaceNum(a[0].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_quality(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- gr->SetQuality(k[0]==3?iint(a[0].v):2);
- return 0;
-}
-void mglc_quality(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_quality(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3) mglprintf(out,1024,L"gr->SetQuality(%d);", k[0]==3?iint(a[0].v):2);
+ int res=0;
+ if(!strcmp(k,"")) gr->SetQuality();
+ else if(!strcmp(k,"n")) gr->SetQuality(iint(a[0].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_marksize(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_marksize(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3) gr->SetMarkSize(a[0].v); else return 1;
- return 0;
-}
-void mglc_marksize(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3) mglprintf(out,1024,L"gr->SetMarkSize(%g);", a[0].v);
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetMarkSize(a[0].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_mark(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1 || k[1]!=1) return 1;
- else if(k[2]!=1) gr->Mark(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else if(k[3]!=1) gr->Mark(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else gr->Mark(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- return 0;
-}
-void mglc_mark(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_mark(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1 || k[1]!=1) return;
- else if(k[2]!=1)
- mglprintf(out,1024,L"gr->Mark(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else if(k[3]!=1)
- mglprintf(out,1024,L"gr->Mark(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else
- mglprintf(out,1024,L"gr->Mark(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"dd")) gr->Mark(*(a[0].d), *(a[1].d), "",opt);
+ else if(!strcmp(k,"dds")) gr->Mark(*(a[0].d), *(a[1].d), a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Mark(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
+ else if(!strcmp(k,"ddds")) gr->Mark(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->Mark(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), "",opt);
+ else if(!strcmp(k,"dddds")) gr->Mark(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_map(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_map(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- gr->Map(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1)
- gr->Map(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_map(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->Map(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1)
- mglprintf(out,1024,L"gr->Map(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"dd")) gr->Map(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Map(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->Map(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds")) gr->Map(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_read(mglGraph *gr, long n, mglArg *a, int k[10], const char *)
+int mgls_read(mglGraph *gr, long n, mglArg *a, const char *k, const char *)
{
+ int res=0;
bool rr=true;
- if(k[0]!=1 || k[1]!=2) return 1;
- else if(n==2) rr=a[0].d->Read(a[1].s.c_str());
- else rr=a[0].d->Read(a[1].s.c_str(), k[2]==3?iint(a[2].v):1,
- k[3]==3?iint(a[3].v):1, k[4]==3?iint(a[4].v):1);
+ if(!strcmp(k,"ds")) rr=a[0].d->Read(a[1].s.c_str());
+ else if(!strcmp(k,"dsn")) rr=a[0].d->Read(a[1].s.c_str(), iint(a[2].v));
+ else if(!strcmp(k,"dsnn")) rr=a[0].d->Read(a[1].s.c_str(), iint(a[2].v),iint(a[3].v));
+ else if(!strcmp(k,"dsnnn")) rr=a[0].d->Read(a[1].s.c_str(), iint(a[2].v),iint(a[3].v),iint(a[4].v));
if(!rr) gr->SetWarn(mglWarnFile,"Read");
- return 0;
-}
-void mglc_read(wchar_t out[1024], long n, mglArg *a, int k[10], const char *)
-{
- if(k[0]!=1 || k[1]!=2) return;
- else if(n==2) mglprintf(out,1024,L"%s.Read(\"%s\");", a[0].s.c_str(), a[1].s.c_str());
- else
- mglprintf(out,1024,L"%s.Read(\"%s\", %d, %d, %d);", a[0].s.c_str(), a[1].s.c_str(), k[2]==3?iint(a[2].v):1, k[3]==3?iint(a[3].v):1, k[4]==3?iint(a[4].v):1);
+ return res;
}
//-----------------------------------------------------------------------------
-int mgls_readmat(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_readmat(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
+ int res=0;
bool rr=true;
- if(k[0]!=1 || k[1]!=2) return 1;
- else rr=a[0].d->ReadMat(a[1].s.c_str(), k[2]==3?iint(a[2].v):2);
+ if(!strcmp(k,"ds")) rr=a[0].d->ReadMat(a[1].s.c_str());
+ else if(!strcmp(k,"dsn")) rr=a[0].d->ReadMat(a[1].s.c_str(), iint(a[2].v));
+ else res = 1;
if(!rr) gr->SetWarn(mglWarnFile,"ReadMat");
- return 0;
-}
-void mglc_readmat(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2)
- mglprintf(out,1024,L"%s.ReadMat(\"%s\", %d);", a[0].s.c_str(), a[1].s.c_str(), k[2]==3?iint(a[2].v):2);
+ return res;
}
//-----------------------------------------------------------------------------
-int mgls_readall(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_readall(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]!=1 || k[1]!=2) return 1;
- else if(k[2]==3 && k[3]==3)
- a[0].d->ReadRange(a[1].s.c_str(), a[2].v, a[3].v, k[4]==3?a[4].v:1.f, k[5]==3?(a[5].v!=0) : false);
- else a[0].d->ReadAll(a[1].s.c_str(), k[2]==3?(a[2].v!=0) : false);
- return 0;
-}
-void mglc_readall(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]!=1 || k[1]!=2) return;
- else if(k[2]==3 && k[3]==3)
- mglprintf(out,1024,L"%s.ReadRange(\"%s\", %g, %g, %g, %s);", a[0].s.c_str(), a[1].s.c_str(), a[2].v, a[3].v, k[4]==3?a[4].v:1.f, (k[5]==3&&a[5].v!=0)?"true":"false");
- else
- mglprintf(out,1024,L"%s.ReadAll(\"%s\", %s);", a[0].s.c_str(), a[1].s.c_str(), (k[2]==3&&a[2].v!=0)?"true":"false");
+ int res=0;
+ bool rr=true;
+ if(!strcmp(k,"ds")) rr=a[0].d->ReadAll(a[1].s.c_str());
+ else if(!strcmp(k,"dsn")) rr=a[0].d->ReadAll(a[1].s.c_str(), a[2].v);
+ else if(!strcmp(k,"dsnn")) rr=a[0].d->ReadRange(a[1].s.c_str(), a[2].v, a[3].v);
+ else if(!strcmp(k,"dsnnn")) rr=a[0].d->ReadRange(a[1].s.c_str(), a[2].v, a[3].v, a[4].v);
+ else if(!strcmp(k,"dsnnnn"))rr=a[0].d->ReadRange(a[1].s.c_str(), a[2].v, a[3].v, a[4].v, a[5].v);
+ else res = 1;
+ if(!rr) gr->SetWarn(mglWarnFile,"ReadMat");
+ return res;
}
//-----------------------------------------------------------------------------
-int mgls_readhdf(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_readhdf(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2 && k[2]==2) a[0].d->ReadHDF(a[1].s.c_str(), a[2].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_readhdf(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2 && k[2]==2) mglprintf(out,1024,L"%s.ReadHDF(\"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
+ int res=0;
+ if(!strcmp(k,"dss")) a[0].d->ReadHDF(a[1].s.c_str(), a[2].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_savehdf(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2 && k[2]==2) a[0].d->SaveHDF(a[1].s.c_str(), a[2].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_savehdf(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_savehdf(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2 && k[2]==2)
- mglprintf(out,1024,L"%s.SaveHDF(\"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
+ int res=0;
+ if(!strcmp(k,"dss")) a[0].d->SaveHDF(a[1].s.c_str(), a[2].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_rect(mglGraph *gr, long n, mglArg *a, int [10], const char *)
-{
- long i;
- if(n>5)
- {
- bool ok=true;
- for(i=0;i<6;i++) if(a[i].type!=2) ok=false;
- if(ok)
- {
- if(a[0].v==a[3].v) gr->Face(mglPoint(a[0].v,a[1].v,a[2].v),
- mglPoint(a[0].v,a[4].v,a[2].v),
- mglPoint(a[3].v,a[1].v,a[5].v),
- mglPoint(a[3].v,a[4].v,a[5].v),
- (n==7 && a[6].type==1) ? a[6].s.c_str() : 0);
- else gr->Face(mglPoint(a[0].v,a[1].v,a[2].v),
- mglPoint(a[0].v,a[4].v,a[5].v),
- mglPoint(a[3].v,a[1].v,a[2].v),
- mglPoint(a[3].v,a[4].v,a[5].v),
- (n==7 && a[6].type==1) ? a[6].s.c_str() : 0);
- }
- else return 1;
- }
- else if(n>3)
- {
- bool ok=true;
- for(i=0;i<4;i++) if(a[i].type!=2) ok=false;
- if(ok)
- gr->Face(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[0].v,a[3].v,NAN),
- mglPoint(a[2].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN),
- (n==5 && a[4].type==1) ? a[4].s.c_str() : 0);
- else return 1;
- }
- else return 1;
- return 0;
-}
-void mglc_rect(wchar_t out[1024], long n, mglArg *a, int [10], const char *)
+int mgls_rect(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
+ int res=0;
long i;
- if(n>5)
- {
- bool ok=true;
- for(i=0;i<6;i++) if(a[i].type!=2) ok=false;
- if(ok)
- {
- if(a[0].v==a[3].v)
- mglprintf(out,1024,L"gr->Face(mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), \"%s\");",
- a[0].v,a[1].v,a[2].v, a[0].v,a[4].v,a[2].v, a[3].v,a[1].v,a[5].v, a[3].v,a[4].v,a[5].v, (n==7 && a[6].type==1) ? a[6].s.c_str() : "");
- else
- mglprintf(out,1024,L"gr->Face(mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), \"%s\");",
- a[0].v,a[1].v,a[2].v, a[0].v,a[4].v,a[5].v, a[3].v,a[1].v,a[2].v, a[3].v,a[4].v,a[5].v, (n==7 && a[6].type==1) ? a[6].s.c_str() : "");
- }
- }
- else if(n>3)
+ if(!strcmp(k,"nnnn"))
+ gr->Face(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[0].v,a[3].v,NAN),
+ mglPoint(a[2].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN));
+ else if(!strcmp(k,"nnnns"))
+ gr->Face(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[0].v,a[3].v,NAN),
+ mglPoint(a[2].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN),a[4].s.c_str());
+ else if(!strncmp(k,"nnnnnn",6))
{
- bool ok=true;
- for(i=0;i<4;i++) if(a[i].type!=2) ok=false;
- if(ok)
- mglprintf(out,1024,L"gr->Face(mglPoint(%g, %g, NAN), mglPoint(%g, %g, NAN), mglPoint(%g, %g, NAN), mglPoint(%g, %g, NAN), \"%s\", 2);",
- a[0].v,a[1].v, a[0].v,a[3].v, a[2].v,a[1].v, a[2].v,a[3].v, (n==5 && a[4].type==1) ? a[4].s.c_str() : "");
+ if(a[0].v==a[3].v) gr->Face(mglPoint(a[0].v,a[1].v,a[2].v),
+ mglPoint(a[0].v,a[4].v,a[2].v),
+ mglPoint(a[3].v,a[1].v,a[5].v),
+ mglPoint(a[3].v,a[4].v,a[5].v),
+ k[6]=='s' ? a[6].s.c_str() : 0);
+ else gr->Face(mglPoint(a[0].v,a[1].v,a[2].v),
+ mglPoint(a[0].v,a[4].v,a[5].v),
+ mglPoint(a[3].v,a[1].v,a[2].v),
+ mglPoint(a[3].v,a[4].v,a[5].v),
+ k[6]=='s' ? a[6].s.c_str() : 0);
}
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_face(mglGraph *gr, long n, mglArg *a, int [10], const char *)
+int mgls_face(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- long i;
- bool ok=true;
- if(n>11)
- {
- for(i=0;i<12;i++) if(a[i].type!=2) ok=false;
- if(ok) gr->Face(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v),
- mglPoint(a[6].v,a[7].v,a[8].v), mglPoint(a[9].v,a[10].v,a[11].v),
- (n==13 && a[12].type==1) ? a[12].s.c_str() : 0);
- }
- else if(n>7)
- {
- for(i=0;i<8;i++) if(a[i].type!=2) ok=false;
- if(ok) gr->Face(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN),
- mglPoint(a[4].v,a[5].v,NAN), mglPoint(a[6].v,a[7].v,NAN),
- (n==9 && a[8].type==1) ? a[8].s.c_str() : 0);
- }
- else ok=false;
- return ok?0:1;
-}
-void mglc_face(wchar_t out[1024], long n, mglArg *a, int [10], const char *)
-{
- long i;
- bool ok=true;
- if(n>11)
- {
- for(i=0;i<12;i++) if(a[i].type!=2) ok=false;
- if(ok)
- mglprintf(out,1024,L"gr->Face(mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), \"%s\");",
- a[0].v,a[1].v,a[2].v, a[3].v,a[4].v,a[5].v, a[6].v,a[7].v,a[8].v, a[9].v,a[10].v,a[11].v,
- (n==13 && a[12].type==1) ? a[12].s.c_str() : "");
- }
- else if(n>7)
- {
- for(i=0;i<8;i++) if(a[i].type!=2) ok=false;
- if(ok)
- mglprintf(out,1024,L"gr->Face(mglPoint(%g, %g, NAN), mglPoint(%g, %g, NAN), mglPoint(%g, %g, NAN), mglPoint(%g, %g, NAN), \"%s\", 2);",
- a[0].v,a[1].v, a[2].v,a[3].v, a[4].v,a[5].v, a[6].v,a[7].v, (n==9 && a[8].type==1) ? a[8].s.c_str() : "");
- }
+ int res=0;
+ if(!strcmp(k,"nnnnnnnn"))
+ gr->Face(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN),
+ mglPoint(a[4].v,a[5].v,NAN), mglPoint(a[6].v,a[7].v,NAN));
+ else if(!strcmp(k,"nnnnnnnns"))
+ gr->Face(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v,NAN),
+ mglPoint(a[4].v,a[5].v,NAN), mglPoint(a[6].v,a[7].v,NAN), a[8].s.c_str());
+ else if(!strcmp(k,"nnnnnnnnnnnn"))
+ gr->Face(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v),
+ mglPoint(a[6].v,a[7].v,a[8].v), mglPoint(a[9].v,a[10].v,a[11].v));
+ else if(!strcmp(k,"nnnnnnnnnnnns"))
+ gr->Face(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v),
+ mglPoint(a[6].v,a[7].v,a[8].v), mglPoint(a[9].v,a[10].v,a[11].v), a[12].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_resize(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1)
- *(a[0].d) = a[1].d->Resize(k[2]==3?iint(a[2].v):1,
- k[3]==3?iint(a[3].v):1, k[4]==3?iint(a[4].v):1);
- else return 1;
- return 0;
-}
-void mglc_resize(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_resize(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1)
- mglprintf(out,1024,L"%s = %s.Resize(%d, %d, %d);", a[0].s.c_str(), a[1].s.c_str(), k[2]==3?iint(a[2].v):1, k[3]==3?iint(a[3].v):1, k[4]==3?iint(a[4].v):1);
+ int res=0;
+ if(!strcmp(k,"ddn")) *(a[0].d) = a[1].d->Resize(iint(a[2].v), 1, 1);
+ else if(!strcmp(k,"ddnn")) *(a[0].d) = a[1].d->Resize(iint(a[2].v), iint(a[3].v), 1);
+ else if(!strcmp(k,"ddnnn")) *(a[0].d) = a[1].d->Resize(iint(a[2].v), iint(a[3].v), iint(a[4].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_rotate(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_rotate(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3)
- gr->RotateN(a[0].v, a[1].v, a[2].v, a[3].v);
- else if(k[0]==3 && k[1]==3)
- gr->Rotate(a[0].v, a[1].v, k[2]==3?a[2].v:0);
- else return 1;
- return 0;
-}
-void mglc_rotate(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3)
- mglprintf(out,1024,L"gr->RotateN(%g, %g, %g, %g);", a[0].v, a[1].v, a[2].v, a[3].v);
- else if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->Rotate(%g, %g, %g);", a[0].v, a[1].v, k[2]==3?a[2].v:0);
+ int res=0;
+ if(!strcmp(k,"nn")) gr->Rotate(a[0].v, a[1].v, 0);
+ else if(!strcmp(k,"nnn")) gr->Rotate(a[0].v, a[1].v, a[2].v);
+ else if(!strcmp(k,"nnnn")) gr->RotateN(a[0].v, a[1].v, a[2].v, a[3].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_rotatetext(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3) gr->SetRotatedText(a[0].v!=0);
- else return 1;
- return 0;
-}
-void mglc_rotatetext(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_rotatetext(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3) mglprintf(out,1024,L"gr->SetRotatedText(%s);", (a[0].v!=0)?"true":"false");
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetRotatedText(a[0].v!=0);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_tuneticks(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_tuneticks(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3) gr->SetTuneTicks(a[0].v!=0,k[1]==3?a[1].v:1.15);
- else return 1;
- return 0;
-}
-void mglc_tuneticks(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3) mglprintf(out,1024,L"gr->SetTuneTicks(%s, %g);", (a[0].v!=0)?"true":"false", k[1]==3?a[1].v:1.15);
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetTuneTicks(a[0].v!=0);
+ else if(!strcmp(k,"nn")) gr->SetTuneTicks(a[0].v!=0,a[1].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_ticktime(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_ticktime(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==2) gr->SetTicksTime(a[0].s[0],k[1]==3?a[1].v:0,k[2]==2?a[2].s.c_str():"");
- else return 1;
- return 0;
-}
-void mglc_ticktime(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3) mglprintf(out,1024,L"gr->SetTickTime('%c', %g, \"%s\");", a[0].s[0],k[1]==3?a[1].v:0,k[2]==2?a[2].s.c_str():"");
+ int res=0;
+ if(!strcmp(k,"s")) gr->SetTicksTime(a[0].s[0]);
+ else if(!strcmp(k,"sn")) gr->SetTicksTime(a[0].s[0],a[1].v);
+ else if(!strcmp(k,"sns")) gr->SetTicksTime(a[0].s[0],a[1].v,a[2].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_save(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2) a[0].d->Save(a[1].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_save(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_save(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) mglprintf(out,1024,L"%s.Save(\"%s\");", a[0].s.c_str(), a[1].s.c_str());
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->Save(a[1].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_smooth(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1) a[0].d->Smooth(k[1]==2?a[1].s.c_str():"xyz");
- else return 1;
- return 0;
-}
-void mglc_smooth(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_smooth(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1)
- mglprintf(out,1024,L"%s.Smooth(\"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"xyz");
+ int res=0;
+ if(!strcmp(k,"d")) a[0].d->Smooth();
+ else if(!strcmp(k,"ds")) a[0].d->Smooth(a[1].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_swap(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2) a[0].d->Swap(a[1].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_swap(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_swap(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) mglprintf(out,1024,L"%s.Swap(\"%s\");", a[0].s.c_str(), a[1].s.c_str());
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->Swap(a[1].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_idset(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_idset(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) a[0].d->SetColumnId(a[1].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_idset(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2) mglprintf(out,1024,L"%s.SetColumnId(\"%s\");", a[0].s.c_str(), a[1].s.c_str());
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->SetColumnId(a[1].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_stem(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Stem(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1) gr->Stem(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else gr->Stem(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- return 0;
-}
-void mglc_stem(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_stem(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Stem(%s, \"%s\", \"%s\");",a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1)
- mglprintf(out,1024,L"gr->Stem(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else mglprintf(out,1024,L"gr->Stem(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Stem(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Stem(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->Stem(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Stem(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Stem(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Stem(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_step(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_step(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Step(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1) gr->Step(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else gr->Step(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- return 0;
-}
-void mglc_step(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Step(%s, \"%s\", \"%s\");",a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1)
- mglprintf(out,1024,L"gr->Step(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else mglprintf(out,1024,L"gr->Step(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Step(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Step(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->Step(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Step(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Step(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Step(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_plot(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Plot(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1) gr->Plot(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else gr->Plot(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- return 0;
-}
-void mglc_plot(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_plot(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Plot(%s, \"%s\", \"%s\");",a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1)
- mglprintf(out,1024,L"gr->Plot(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else mglprintf(out,1024,L"gr->Plot(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Plot(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Plot(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->Plot(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Plot(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Plot(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Plot(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_tape(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_tape(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Tape(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1) gr->Tape(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else gr->Tape(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- return 0;
-}
-void mglc_tape(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Tape(%s, \"%s\", \"%s\");",a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1)
- mglprintf(out,1024,L"gr->Tape(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else mglprintf(out,1024,L"gr->Tape(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Tape(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Tape(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->Tape(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Tape(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Tape(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Tape(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_boxplot(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->BoxPlot(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1) gr->BoxPlot(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- return 0;
-}
-void mglc_boxplot(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_boxplot(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->BoxPlot(%s, \"%s\", \"%s\");",a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[2]!=1)
- mglprintf(out,1024,L"gr->BoxPlot(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->BoxPlot(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->BoxPlot(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->BoxPlot(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->BoxPlot(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_candle(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_candle(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1) return 1;
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),k[5]==2?a[5].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1)
- gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else if(k[1]==1)
- gr->Candle(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else
- gr->Candle(*(a[0].d),k[1]==2?a[1].s.c_str():"",opt);
- return 0;
-}
-void mglc_candle(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- mglprintf(out,1024,L"gr->Candle(%s, %s, %s, %s, %s, \"%s\", \"%s\");",a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), k[5]==2?a[5].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->Candle(%s, %s, %s, %s, \"%s\", \"%s\");",a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(),k[4]==2?a[4].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Candle(%s, %s, %s, \"%s\", \"%s\");",a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[1]==1)
- mglprintf(out,1024,L"gr->Candle(%s, %s, \"%s\", \"%s\");",a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else
- mglprintf(out,1024,L"gr->Candle(%s, \"%s\", \"%s\");",a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Candle(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Candle(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dd")) gr->Candle(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Candle(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds")) gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else if(!strcmp(k,"ddddd")) gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
+ else if(!strcmp(k,"ddddds"))gr->Candle(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_radar(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1) gr->Radar(*(a[0].d), k[1]==2?a[1].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_radar(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_radar(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1)
- mglprintf(out,1024,L"gr->Radar(%s, \"%s\", \"%s\");",a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Radar(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Radar(*(a[0].d),a[1].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_squeeze(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_squeeze(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==3)
- a[0].d->Squeeze(iint(a[1].v), k[2]==3?iint(a[2].v):1, k[3]==3?iint(a[3].v):1, k[4]==3 && a[4].v>0);
- else return 1;
- return 0;
-}
-void mglc_squeeze(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==3)
- mglprintf(out,1024,L"%s.Squeeze(%d, %d, %d, %s);", a[0].s.c_str(), iint(a[1].v),
- k[2]==3?iint(a[2].v):1, k[3]==3?iint(a[3].v):1, k[4]==3 && a[4].v>0 ? "true":"false");
+ int res=0;
+ if(!strcmp(k,"dn")) a[0].d->Squeeze(iint(a[1].v));
+ else if(!strcmp(k,"dnn")) a[0].d->Squeeze(iint(a[1].v), iint(a[2].v));
+ else if(!strcmp(k,"dnnn")) a[0].d->Squeeze(iint(a[1].v), iint(a[2].v),iint(a[3].v));
+ else if(!strcmp(k,"dnnnn")) a[0].d->Squeeze(iint(a[1].v), iint(a[2].v),iint(a[3].v), a[4].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_stfad(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==3)
- *(a[0].d) = mglSTFA(*(a[1].d),*(a[2].d), iint(a[3].v), k[4]==2?a[4].s.c_str()[0]:'x');
- else return 1;
- return 0;
-}
-void mglc_stfad(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_stfad(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==3)
- mglprintf(out,1024,L"%s = mglSTFA(%s, %s, %d, '%c');", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), iint(a[3].v), k[4]==2?a[4].s.c_str()[0]:'x');
+ int res=0;
+ if(!strcmp(k,"dddn"))
+ *(a[0].d) = mglSTFA(*(a[1].d),*(a[2].d), iint(a[3].v));
+ else if(!strcmp(k,"dddns"))
+ *(a[0].d) = mglSTFA(*(a[1].d),*(a[2].d), iint(a[3].v), a[4].s.c_str()[0]);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_setsize(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_setsize(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3 && a[1].v>1 && a[0].v>1)
+ int res=0;
+ if(!strcmp(k,"nn") && a[1].v>1 && a[0].v>1)
gr->SetSize(iint(a[0].v), iint(a[1].v));
- else return 1;
- return 0;
-}
-void mglc_setsize(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && a[1].v>1 && a[0].v>1)
- mglprintf(out,1024,L"gr->SetSize(%d, %d);", iint(a[0].v), iint(a[1].v));
-}
-//-----------------------------------------------------------------------------
-int mgls_sphere(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- int i;
- for(i=0;i<7;i++) if(k[i]!=3) break;
- if(i==4)
- gr->Sphere(mglPoint(a[0].v,a[1].v,a[2].v), a[3].v, k[4]==2 ? a[4].s.c_str():"r");
- else if(i==3)
- gr->Sphere(mglPoint(a[0].v,a[1].v), a[2].v, k[3]==2 ? a[3].s.c_str():"r");
- else return 1;
- return 0;
-}
-void mglc_sphere(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- int i;
- for(i=0;i<7;i++) if(k[i]!=3) break;
- if(i==4)
- mglprintf(out,1024,L"gr->Sphere(mglPoint(%g, %g, %g), %g, \"%s\");", a[0].v,a[1].v,a[2].v, a[3].v, k[4]==2 ? a[4].s.c_str():"r");
- else if(i==3)
- mglprintf(out,1024,L"gr->Sphere(mglPoint(%g, %g), %g, \"%s\");", a[0].v,a[1].v, a[2].v, k[3]==2 ? a[3].s.c_str():"r");
-}
-//-----------------------------------------------------------------------------
-int mgls_stfa(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==3)
- gr->STFA(*(a[0].d),*(a[1].d), iint(a[2].v), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==3)
- gr->STFA(*(a[0].d),*(a[1].d), *(a[2].d),*(a[3].d), iint(a[4].v), k[5]==2?a[5].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_stfa(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==3)
- mglprintf(out,1024,L"gr->STFA(%s, %s, %d, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), iint(a[2].v), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==3)
- mglprintf(out,1024,L"gr->STFA(%s, %s, %s, %s, %d, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), iint(a[4].v), k[5]==2?a[5].s.c_str():"",opt);
-}
-//-----------------------------------------------------------------------------
-int mgls_surf3(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]==0) gr->Surf3(*(a[0].d),"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]==3)
- gr->Surf3(a[4].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),
- k[5]==2? a[5].s.c_str():"",opt);
- else if(k[1]==3) gr->Surf3(a[1].v,*(a[0].d),k[2]==2? a[2].s.c_str():"",opt);
- else if(k[1]==2) gr->Surf3(*(a[0].d),a[1].s.c_str(),opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- gr->Surf3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), k[4]==2? a[4].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_surf3(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
+int mgls_sphere(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]!=1) return;
- else if(k[1]==0) mglprintf(out,1024,L"gr->Surf3(%s,\"\",\"%s\");", a[0].s.c_str(),opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1 && k[4]==3)
- mglprintf(out,1024,L"gr->Surf3(%g, %s, %s, %s, %s, \"%s\", \"%s\");", a[4].v, a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[5]==2?a[5].s.c_str():"",opt);
- else if(k[1]==3)
- mglprintf(out,1024,L"gr->Surf3(%g, %s, \"%s\", \"%s\");", a[1].v, a[0].s.c_str(), k[2]==2? a[2].s.c_str():"",opt);
- else if(k[1]==2)
- mglprintf(out,1024,L"gr->Surf3(%s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(),opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->Surf3(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"nnn")) gr->Sphere(mglPoint(a[0].v,a[1].v), a[2].v);
+ else if(!strcmp(k,"nnns")) gr->Sphere(mglPoint(a[0].v,a[1].v), a[2].v, a[3].s.c_str());
+ else if(!strcmp(k,"nnnn")) gr->Sphere(mglPoint(a[0].v,a[1].v,a[2].v), a[3].v);
+ else if(!strcmp(k,"nnnns")) gr->Sphere(mglPoint(a[0].v,a[1].v,a[2].v), a[3].v, a[4].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_surf3c(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1 || k[1]!=1) return 1;
- else if(k[2]==0) gr->Surf3C(*(a[0].d),*(a[1].d),"",opt);
- else if(k[2]==1 && k[3]==1 && k[4]==1 && k[5]==3)
- gr->Surf3C(a[5].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),
- k[6]==2? a[6].s.c_str():"",opt);
- else if(k[2]==3) gr->Surf3C(a[2].v,*(a[0].d),*(a[1].d),k[3]==2? a[3].s.c_str():"",opt);
- else if(k[2]==2) gr->Surf3C(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
- else if(k[2]==1 && k[3]==1 && k[4]==1)
- gr->Surf3C(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d), k[5]==2? a[5].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_surf3c(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_stfa(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1 || k[1]!=1) return;
- else if(k[2]==0) mglprintf(out,1024,L"gr->Surf3C(%s, %s, \"\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(),opt);
- else if(k[2]==1 && k[3]==1 && k[4]==1 && k[5]==3)
- mglprintf(out,1024,L"gr->Surf3C(%g, %s, %s, %s, %s, %s, \"%s\", \"%s\");", a[5].v, a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), k[6]==2? a[6].s.c_str():"",opt);
- else if(k[2]==3)
- mglprintf(out,1024,L"gr->Surf3C(%g, %s, %s, \"%s\", \"%s\");", a[2].v, a[0].s.c_str(), a[1].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[2]==2)
- mglprintf(out,1024,L"gr->Surf3C(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(),opt);
- else if(k[2]==1 && k[3]==1 && k[4]==1)
- mglprintf(out,1024,L"gr->Surf3C(%s, %s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), k[5]==2?a[5].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"ddn"))
+ gr->STFA(*(a[0].d),*(a[1].d), iint(a[2].v), "",opt);
+ else if(!strcmp(k,"ddns"))
+ gr->STFA(*(a[0].d),*(a[1].d), iint(a[2].v), a[3].s.c_str(),opt);
+ else if(!strcmp(k,"ddddn"))
+ gr->STFA(*(a[0].d),*(a[1].d), *(a[2].d),*(a[3].d), iint(a[4].v), "",opt);
+ else if(!strcmp(k,"ddddns"))
+ gr->STFA(*(a[0].d),*(a[1].d), *(a[2].d),*(a[3].d), iint(a[4].v), a[5].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_surf3a(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_surf3(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1 || k[1]!=1) return 1;
- else if(k[2]==0) gr->Surf3A(*(a[0].d),*(a[1].d),"",opt);
- else if(k[2]==1 && k[3]==1 && k[4]==1 && k[5]==3)
- gr->Surf3A(a[5].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),
- k[6]==2? a[6].s.c_str():"",opt);
- else if(k[2]==3) gr->Surf3A(a[2].v,*(a[0].d),*(a[1].d),k[3]==2? a[3].s.c_str():"",opt);
- else if(k[2]==2) gr->Surf3A(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
- else if(k[2]==1 && k[3]==1 && k[4]==1)
- gr->Surf3A(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),
- k[5]==2? a[5].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_surf3a(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1 || k[1]!=1) return;
- else if(k[2]==0) mglprintf(out,1024,L"gr->Surf3A(%s, %s, \"\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(),opt);
- else if(k[2]==1 && k[3]==1 && k[4]==1 && k[5]==3)
- mglprintf(out,1024,L"gr->Surf3A(%g, %s, %s, %s, %s, %s, \"%s\", \"%s\");", a[5].v, a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), k[6]==2? a[6].s.c_str():"",opt);
- else if(k[2]==3)
- mglprintf(out,1024,L"gr->Surf3A(%g, %s, %s, \"%s\", \"%s\");", a[2].v, a[0].s.c_str(), a[1].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[2]==2)
- mglprintf(out,1024,L"gr->Surf3A(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(),opt);
- else if(k[2]==1 && k[3]==1 && k[4]==1)
- mglprintf(out,1024,L"gr->Surf3A(%s, %s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), k[5]==2?a[5].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Surf3(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Surf3(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"dn")) gr->Surf3(a[1].v,*(a[0].d),"",opt);
+ else if(!strcmp(k,"dns")) gr->Surf3(a[1].v,*(a[0].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->Surf3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), "",opt);
+ else if(!strcmp(k,"dddds")) gr->Surf3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), a[4].s.c_str(),opt);
+ else if(!strcmp(k,"ddddn")) gr->Surf3(a[4].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"ddddns"))gr->Surf3(a[4].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[5].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_subplot(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3)
- gr->SubPlot(iint(a[0].v), iint(a[1].v), iint(a[2].v), k[3]==2?a[3].s.c_str():"<>_^", k[4]==3?a[4].v:0, k[5]==3?a[5].v:0);
- else return 1;
- return 0;
-}
-void mglc_subplot(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_surf3c(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==3 && k[1]==3 && k[2]==3)
- mglprintf(out,1024,L"gr->SubPlot(%d, %d, %d, \"%s\", %g, %g);", iint(a[0].v), iint(a[1].v), iint(a[2].v), k[3]==2?a[3].s.c_str():"<>_^", k[4]==3?a[3].v:0, k[5]==3?a[4].v:0);
+ int res=0;
+ if(!strcmp(k,"dd")) gr->Surf3C(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Surf3C(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddn")) gr->Surf3C(a[2].v,*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"ddns")) gr->Surf3C(a[2].v,*(a[0].d),*(a[1].d),a[3].s.c_str(),opt);
+ else if(!strcmp(k,"ddddd"))
+ gr->Surf3C(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d), "",opt);
+ else if(!strcmp(k,"ddddds"))
+ gr->Surf3C(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d), a[5].s.c_str(),opt);
+ else if(!strcmp(k,"dddddn"))
+ gr->Surf3C(a[5].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
+ else if(!strcmp(k,"dddddns"))
+ gr->Surf3C(a[5].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[6].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_multiplot(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_surf3a(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==3)
- gr->MultiPlot(iint(a[0].v), iint(a[1].v), iint(a[2].v), iint(a[3].v), iint(a[4].v), k[5]==2?a[3].s.c_str():"<>_^");
- else return 1;
- return 0;
-}
-void mglc_multiplot(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==3)
- mglprintf(out,1024,L"gr->MultiPlot(%d, %d, %d, %d, %d, \"%s\");", iint(a[0].v), iint(a[1].v), iint(a[2].v), iint(a[3].v), iint(a[4].v), k[5]==2?a[3].s.c_str():"<>_^");
+ int res=0;
+ if(!strcmp(k,"dd")) gr->Surf3A(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Surf3A(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddn")) gr->Surf3A(a[2].v,*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"ddns")) gr->Surf3A(a[2].v,*(a[0].d),*(a[1].d),a[3].s.c_str(),opt);
+ else if(!strcmp(k,"ddddd"))
+ gr->Surf3A(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d), "",opt);
+ else if(!strcmp(k,"ddddds"))
+ gr->Surf3A(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d), a[5].s.c_str(),opt);
+ else if(!strcmp(k,"dddddn"))
+ gr->Surf3A(a[5].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
+ else if(!strcmp(k,"dddddns"))
+ gr->Surf3A(a[5].v,*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[6].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_title(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==2) gr->Title(a[0].w.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==3?a[2].v:-2);
- else return 1;
- return 0;
-}
-void mglc_title(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_subplot(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==2)
- mglprintf(out,1024,L"gr->Title(L\"%ls\", \"%s\", %g);", a[0].w.c_str(), k[1]==2?a[1].s.c_str():"#", k[2]==3?a[2].v:-2);
+ int res=0;
+ if(!strcmp(k,"nnn")) gr->SubPlot(iint(a[0].v), iint(a[1].v), iint(a[2].v));
+ else if(!strcmp(k,"nnns")) gr->SubPlot(iint(a[0].v), iint(a[1].v), iint(a[2].v), a[3].s.c_str());
+ else if(!strcmp(k,"nnnsnn")) gr->SubPlot(iint(a[0].v), iint(a[1].v), iint(a[2].v), a[3].s.c_str(), a[4].v,a[5].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_column(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_multiplot(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==2) *(a[0].d) = a[1].d->Column(a[2].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_column(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==2)
- mglprintf(out,1024,L"%s = %s.Column(\"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
+ int res=0;
+ if(!strcmp(k,"nnnnn"))
+ gr->MultiPlot(iint(a[0].v), iint(a[1].v), iint(a[2].v), iint(a[3].v), iint(a[4].v));
+ else if(!strcmp(k,"nnnnns"))
+ gr->MultiPlot(iint(a[0].v), iint(a[1].v), iint(a[2].v), iint(a[3].v), iint(a[4].v), a[3].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_subdata(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==3)
- *(a[0].d) = a[1].d->SubData(iint(a[2].v), k[3]==3?iint(a[3].v):-1, k[4]==3?iint(a[4].v):-1);
- else return 1;
- return 0;
-}
-void mglc_subdata(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_title(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==3)
- mglprintf(out,1024,L"%s = %s.SubData(%d, %d, %d);", a[0].s.c_str(), a[1].s.c_str(), iint(a[2].v), k[3]==3?iint(a[3].v):-1, k[4]==3?iint(a[4].v):-1);
+ int res=0;
+ if(!strcmp(k,"s")) gr->Title(a[0].w.c_str());
+ else if(!strcmp(k,"ss")) gr->Title(a[0].w.c_str(), a[1].s.c_str());
+ else if(!strcmp(k,"ssn")) gr->Title(a[0].w.c_str(), a[1].s.c_str(),a[2].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_trace(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_column(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1) *(a[0].d) = a[1].d->Trace();
- else return 1;
- return 0;
-}
-void mglc_trace(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1) mglprintf(out,1024,L"%s = %s.Trace();", a[0].s.c_str(), a[1].s.c_str());
+ int res=0;
+ if(!strcmp(k,"dds")) *(a[0].d) = a[1].d->Column(a[2].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_tile(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_subdata(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]!=1) return 1;
- else if(k[1]!=1) gr->Tile(*(a[0].d), k[1]==2? a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1)
- gr->Tile(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2? a[3].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_tile(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return;
- else if(k[1]!=1)
- mglprintf(out,1024,L"gr->Tile(%s, \"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Tile(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"ddn")) *(a[0].d) = a[1].d->SubData(iint(a[2].v));
+ else if(!strcmp(k,"ddnn")) *(a[0].d) = a[1].d->SubData(iint(a[2].v), iint(a[3].v));
+ else if(!strcmp(k,"ddnnn")) *(a[0].d) = a[1].d->SubData(iint(a[2].v), iint(a[3].v), iint(a[4].v));
+ else res = 1;
+ return res;
}
//-----------------------------------------------------------------------------
-int mgls_tiles(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1) return 1;
- else if(k[1]==1 && k[2]!=1)
- gr->TileS(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- gr->TileS(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2? a[4].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_tiles(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_trace(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]!=1) return;
- else if(k[1]==1 && k[2]!=1)
- mglprintf(out,1024,L"gr->TileS(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else if(k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->TileS(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"dd")) *(a[0].d) = a[1].d->Trace();
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_text(mglGraph *gr, long , mglArg *a, int k[10], const char *opt) // NOTE don't use options -- Puts can be part of group
+int mgls_tile(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==2)
- gr->Putsw(mglPoint(a[0].v,a[1].v,a[2].v),a[3].w.c_str(),
- (k[4]==2 && a[4].s.c_str()[0]!=0)?a[4].s.c_str():"",k[5]==3?a[5].v:-1);
- else if(k[0]==3 && k[1]==3 && k[2]==2)
- gr->Putsw(mglPoint(a[0].v,a[1].v,NAN),a[2].w.c_str(),
- (k[3]==2 && a[3].s.c_str()[0]!=0)?a[3].s.c_str():"",k[4]==3?a[4].v:-1);
- else if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==3 && k[5]==3 && k[6]==2)
- gr->Putsw(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].w.c_str(), k[7]==2?a[7].s.c_str():":L", k[8]==3?a[8].v:-1);
- else if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==2)
- gr->Putsw(mglPoint(a[0].v,a[1].v), mglPoint(a[2].v,a[3].v), a[4].w.c_str(), k[5]==2?a[5].s.c_str():":L", k[6]==3?a[6].v:-1);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==2)
- gr->Text(*(a[0].d),*(a[1].d),*(a[2].d),a[3].w.c_str(),k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==2)
- gr->Text(*(a[0].d),*(a[1].d),a[2].w.c_str(),k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==2)
- gr->Text(*(a[0].d),a[1].w.c_str(),k[2]==2?a[2].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_text(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==2)
- mglprintf(out,1024,L"gr->Puts(mglPoint(%g, %g, %g), L\"%ls\", \"%s\", %g);", a[0].v, a[1].v, a[2].v, a[3].w.c_str(), (k[4]==2 && a[4].s.c_str()[0]!=0)?a[4].s.c_str():"", k[5]==3?a[5].v:-1);
- else if(k[0]==3 && k[1]==3 && k[2]==2)
- mglprintf(out,1024,L"gr->Puts(mglPoint(%g, %g, NAN), L\"%ls\", \"%s\", %g);", a[0].v, a[1].v, a[2].w.c_str(), (k[3]==2 && a[3].s.c_str()[0]!=0)?a[3].s.c_str():"", k[4]==3?a[4].v:-1);
- else if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==3 && k[5]==3 && k[6]==2)
- mglprintf(out,1024,L"gr->Puts(mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), L\"%ls\", \"%s\", %g);", a[0].v, a[1].v, a[2].v, a[3].v, a[4].v, a[5].v, a[6].w.c_str(), k[7]==2?a[7].s.c_str():":L", k[8]==3?a[8].v:-1);
- else if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==2)
- mglprintf(out,1024,L"gr->Puts(mglPoint(%g, %g), mglPoint(%g, %g), L\"%ls\", \"%s\", %g);", a[0].v, a[1].v, a[2].v, a[3].v, a[4].w.c_str(), k[5]==2?a[5].s.c_str():":L", k[6]==3?a[6].v:-1);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==2)
- mglprintf(out,1024,L"gr->Text(%s, %s, %s, L\"%ls\", \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].w.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==2)
- mglprintf(out,1024,L"gr->Text(%s, %s, L\"%ls\", \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].w.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==2)
- mglprintf(out,1024,L"gr->Text(%s, L\"%ls\", \"%s\", \"%s\");", a[0].s.c_str(), a[1].w.c_str(), k[2]==2?a[2].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Tile(*(a[0].d),"",opt);
+ else if(!strcmp(k,"ds")) gr->Tile(*(a[0].d),a[1].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Tile(*(a[0].d), *(a[1].d), *(a[2].d), "",opt);
+ else if(!strcmp(k,"ddds")) gr->Tile(*(a[0].d), *(a[1].d), *(a[2].d), a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_torus(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1) gr->Torus(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_torus(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_tiles(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1) mglprintf(out,1024,L"gr->Torus(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"dd")) gr->TileS(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->TileS(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->TileS(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds")) gr->TileS(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_transptype(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_text(mglGraph *gr, long , mglArg *a, const char *k, const char *opt) // NOTE don't use options -- Puts can be part of group
{
- if(k[0]==3) gr->SetTranspType(a[0].v);
- else return 1;
- return 0;
-}
-void mglc_transptype(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3) mglprintf(out,1024,L"gr->SetTranspType(%d);", iint(a[0].v));
+ int res=0;
+ if(!strcmp(k,"nns")) gr->Putsw(mglPoint(a[0].v,a[1].v,NAN),a[2].w.c_str());
+ else if(!strcmp(k,"nnss")) gr->Putsw(mglPoint(a[0].v,a[1].v,NAN),a[2].w.c_str(), a[3].s.c_str());
+ else if(!strcmp(k,"nnssn")) gr->Putsw(mglPoint(a[0].v,a[1].v,NAN),a[2].w.c_str(), a[3].s.c_str(),a[4].v);
+ else if(!strcmp(k,"nnns")) gr->Putsw(mglPoint(a[0].v,a[1].v,a[2].v),a[3].w.c_str());
+ else if(!strcmp(k,"nnnss")) gr->Putsw(mglPoint(a[0].v,a[1].v,a[2].v),a[3].w.c_str(), a[4].s.c_str());
+ else if(!strcmp(k,"nnnssn")) gr->Putsw(mglPoint(a[0].v,a[1].v,a[2].v),a[3].w.c_str(), a[4].s.c_str(),a[5].v);
+ else if(!strcmp(k,"nnnns")) gr->Putsw(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v), a[4].w.c_str());
+ else if(!strcmp(k,"nnnnss")) gr->Putsw(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v), a[4].w.c_str(), a[5].s.c_str());
+ else if(!strcmp(k,"nnnnssn")) gr->Putsw(mglPoint(a[0].v,a[1].v,NAN), mglPoint(a[2].v,a[3].v), a[4].w.c_str(), a[5].s.c_str(),a[6].v);
+ else if(!strcmp(k,"nnnnnns")) gr->Putsw(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].w.c_str());
+ else if(!strcmp(k,"nnnnnnss")) gr->Putsw(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].w.c_str(), a[7].s.c_str());
+ else if(!strcmp(k,"nnnnnnssn")) gr->Putsw(mglPoint(a[0].v,a[1].v,a[2].v), mglPoint(a[3].v,a[4].v,a[5].v), a[6].w.c_str(), a[7].s.c_str(),a[8].v);
+ else if(!strcmp(k,"ds")) gr->Text(*(a[0].d),a[1].w.c_str(),"",opt);
+ else if(!strcmp(k,"dss")) gr->Text(*(a[0].d),a[1].w.c_str(),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"dds")) gr->Text(*(a[0].d),*(a[1].d),a[2].w.c_str(),"",opt);
+ else if(!strcmp(k,"ddss")) gr->Text(*(a[0].d),*(a[1].d),a[2].w.c_str(),a[3].s.c_str(),opt);
+ else if(!strcmp(k,"ddds")) gr->Text(*(a[0].d),*(a[1].d),*(a[2].d),a[3].w.c_str(),"",opt);
+ else if(!strcmp(k,"dddss")) gr->Text(*(a[0].d),*(a[1].d),*(a[2].d),a[3].w.c_str(),a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_fourier(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==2)
- mglFourier(*(a[0].d),*(a[1].d),a[2].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_fourier(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_torus(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==2)
- mglprintf(out,1024,L"mglFourier(%s, %s, \"%s\");",a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
+ int res=0;
+ if(!strcmp(k,"dd")) gr->Torus(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Torus(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_transform(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_transptype(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2 && k[2]==1 && k[3]==1)
- *(a[0].d) = mglTransform(*(a[2].d),*(a[3].d),a[1].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_transform(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"%s = mglTransform(%s, %s, \"%s\");",a[0].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[1].s.c_str());
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetTranspType(a[0].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_transforma(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_fourier(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2 && k[2]==1 && k[3]==1)
- *(a[0].d) = mglTransformA(*(a[2].d),*(a[3].d),a[1].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_transforma(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"%s = mglTransformA(%s, %s, \"%s\");",a[0].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[1].s.c_str());
+ int res=0;
+ if(!strcmp(k,"dds")) mglFourier(*(a[0].d),*(a[1].d),a[2].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_tube(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==3)
- gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),a[3].v,k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==3)
- gr->Tube(*(a[0].d),*(a[1].d),a[2].v,k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1)
- gr->Tube(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==3)
- gr->Tube(*(a[0].d),a[1].v,k[2]==2?a[2].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_tube(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_transform(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->Tube(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==3)
- mglprintf(out,1024,L"gr->Tube(%s, %s, %s, %g, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].v, k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Tube(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==3)
- mglprintf(out,1024,L"gr->Tube(%s, %s, %g, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].v, k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1)
- mglprintf(out,1024,L"gr->Tube(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==3)
- mglprintf(out,1024,L"gr->Tube(%s, %g, \"%s\", \"%s\");", a[0].s.c_str(), a[1].v, k[2]==2?a[2].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"dsdd")) *(a[0].d) = mglTransform(*(a[2].d),*(a[3].d),a[1].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_textmark(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==2)
- gr->TextMark(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].w.c_str(),k[5]==2?a[5].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==2)
- gr->TextMark(*(a[0].d),*(a[1].d),*(a[2].d),a[3].w.c_str(),k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==2)
- gr->TextMark(*(a[0].d),*(a[1].d),a[2].w.c_str(),k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==2)
- gr->TextMark(*(a[0].d),a[1].w.c_str(),k[2]==2?a[2].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_textmark(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_transforma(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==2)
- mglprintf(out,1024,L"gr->TextMark(%s, %s, %s, %s, L\"%ls\", \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].w.c_str(), k[5]==2?a[5].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==2)
- mglprintf(out,1024,L"gr->TextMark(%s, %s, %s, L\"%ls\", \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].w.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==2)
- mglprintf(out,1024,L"gr->TextMark(%s, %s, L\"%ls\", \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].w.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==2)
- mglprintf(out,1024,L"gr->TextMark(%s, L\"%ls\", \"%s\", \"%s\");", a[0].s.c_str(), a[1].w.c_str(), k[2]==2?a[2].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"dsdd")) *(a[0].d) = mglTransformA(*(a[2].d),*(a[3].d),a[1].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_triplot(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),k[5]==2?a[5].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_triplot(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_tube(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- mglprintf(out,1024,L"gr->TriPlot(%s, %s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), k[5]==2?a[5].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->TriPlot(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->TriPlot(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"dn"))
+ gr->Tube(*(a[0].d),a[1].v,"",opt);
+ else if(!strcmp(k,"dns"))
+ gr->Tube(*(a[0].d),a[1].v,a[2].s.c_str(),opt);
+ else if(!strcmp(k,"dd"))
+ gr->Tube(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds"))
+ gr->Tube(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddn"))
+ gr->Tube(*(a[0].d),*(a[1].d),a[2].v,"",opt);
+ else if(!strcmp(k,"ddns"))
+ gr->Tube(*(a[0].d),*(a[1].d),a[2].v,a[3].s.c_str(),opt);
+ else if(!strcmp(k,"ddd"))
+ gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds"))
+ gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddn"))
+ gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),a[3].v,"",opt);
+ else if(!strcmp(k,"dddns"))
+ gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),a[3].v,a[4].s.c_str(),opt);
+ else if(!strcmp(k,"dddd"))
+ gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds"))
+ gr->Tube(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
+int mgls_textmark(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
+{
+ int res=0;
+ if(!strcmp(k,"ds")) gr->TextMark(*(a[0].d),a[1].w.c_str(),"",opt);
+ else if(!strcmp(k,"dss")) gr->TextMark(*(a[0].d),a[1].w.c_str(),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"dds")) gr->TextMark(*(a[0].d),*(a[1].d),a[2].w.c_str(),"",opt);
+ else if(!strcmp(k,"ddss")) gr->TextMark(*(a[0].d),*(a[1].d),a[2].w.c_str(),a[3].s.c_str(),opt);
+ else if(!strcmp(k,"ddds")) gr->TextMark(*(a[0].d),*(a[1].d),*(a[2].d),a[3].w.c_str(),"",opt);
+ else if(!strcmp(k,"dddss")) gr->TextMark(*(a[0].d),*(a[1].d),*(a[2].d),a[3].w.c_str(),a[4].s.c_str(),opt);
+ else if(!strcmp(k,"dddds")) gr->TextMark(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].w.c_str(),"",opt);
+ else if(!strcmp(k,"ddddss"))gr->TextMark(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].w.c_str(),a[5].s.c_str(),opt);
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
+int mgls_triplot(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
+{
+ int res=0;
+ if(!strcmp(k,"ddd")) gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds")) gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else if(!strcmp(k,"ddddd")) gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
+ else if(!strcmp(k,"ddddds"))gr->TriPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_quadplot(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_quadplot(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),k[5]==2?a[5].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_quadplot(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- mglprintf(out,1024,L"gr->QuadPlot(%s, %s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), k[5]==2?a[5].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->QuadPlot(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->QuadPlot(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
-}
-//-----------------------------------------------------------------------------
-int mgls_tricont(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1 && k[5]==1)
- gr->TriContV(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),k[6]==2?a[6].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- gr->TriContV(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),k[5]==2?a[5].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- gr->TriCont(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_tricont(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1 && k[5]==1)
- mglprintf(out,1024,L"gr->TriContV(%s, %s, %s, %s, %s, %s, \"%s\", \"%s\");",
- a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), a[5].s.c_str(), k[6]==2?a[6].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- mglprintf(out,1024,L"gr->TriContV(%s, %s, %s, %s, %s, \"%s\", \"%s\");",
- a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), k[5]==2?a[5].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->TriCont(%s, %s, %s, %s, \"%s\", \"%s\");",
- a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
-}
-//-----------------------------------------------------------------------------
-int mgls_ternary(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3) gr->Ternary(int(a[0].v));
- else return 1;
- return 0;
-}
-void mglc_ternary(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3) mglprintf(out,1024,L"gr->Ternary(%d);", int(a[0].v));
+ int res=0;
+ if(!strcmp(k,"ddd")) gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds")) gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else if(!strcmp(k,"ddddd")) gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
+ else if(!strcmp(k,"ddddds"))gr->QuadPlot(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_transpose(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1) a[0].d->Transpose(k[1]==2?a[1].s.c_str():"yxz");
- else return 1;
- return 0;
-}
-void mglc_transpose(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_tricont(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1) mglprintf(out,1024,L"%s.Transpose(\"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"yxz");
+ int res=0;
+ if(!strcmp(k,"dddd"))
+ gr->TriCont(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds"))
+ gr->TriCont(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else if(!strcmp(k,"ddddd"))
+ gr->TriContV(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),"",opt);
+ else if(!strcmp(k,"ddddds"))
+ gr->TriContV(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),a[5].s.c_str(),opt);
+ else if(!strcmp(k,"dddddd"))
+ gr->TriContV(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
+ else if(!strcmp(k,"dddddds"))
+ gr->TriContV(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_vect(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- int i;
- for(i=0;i<7;i++) if(k[i]!=1) break;
- if(i==2)
- gr->Vect(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else if(i==4)
- gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else if(i==3)
- gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else if(i==6)
- gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),k[6]==2?a[6].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_vect(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- int i;
- for(i=0;i<7;i++) if(k[i]!=1) break;
- if(i==2)
- mglprintf(out,1024,L"gr->Vect(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else if(i==4)
- mglprintf(out,1024,L"gr->Vect(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(i==3)
- mglprintf(out,1024,L"gr->Vect(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(i==6)
- mglprintf(out,1024,L"gr->Vect(%s, %s, %s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), a[5].s.c_str(), k[6]==2?a[6].s.c_str():"",opt);
+int mgls_ternary(mglGraph *gr, long , mglArg *a, const char *k, const char *)
+{
+ int res=0;
+ if(!strcmp(k,"n")) gr->Ternary(int(a[0].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_vect3(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- int i;
- for(i=0;i<7;i++) if(k[i]!=1) break;
- if(i==3)
- gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",k[4]==3?a[4].v:-1,opt);
- else if(i==6)
- gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),k[6]==2?a[6].s.c_str():"",k[7]==3?a[7].v:-1,opt);
- else return 1;
- return 0;
-}
-void mglc_vect3(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- int i;
- for(i=0;i<7;i++) if(k[i]!=1) break;
- if(i==3)
- mglprintf(out,1024,L"gr->Vect3(%s, %s, %s, \"%s\", %g, \"%s\");",
- a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",k[4]==3?a[4].v:-1,opt);
- else if(i==6)
- mglprintf(out,1024,L"gr->Vect3(%s, %s, %s, %s, %s, %s, \"%s\", %g, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(),
- a[3].s.c_str(), a[4].s.c_str(), a[5].s.c_str(), k[6]==2?a[6].s.c_str():"",k[7]==3?a[7].v:-1,opt);
+int mgls_transpose(mglGraph *, long , mglArg *a, const char *k, const char *)
+{
+ int res=0;
+ if(!strcmp(k,"d")) a[0].d->Transpose();
+ else if(!strcmp(k,"ds")) a[0].d->Transpose(a[1].s.c_str());
+ else res = 1; return res;
+}
+//-----------------------------------------------------------------------------
+int mgls_vect(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
+{
+ int res=0;
+ if(!strcmp(k,"dd")) gr->Vect(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Vect(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds")) gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else if(!strcmp(k,"dddddd")) gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
+ else if(!strcmp(k,"dddddds")) gr->Vect(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_traj(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- int i;
- for(i=0;i<7;i++) if(k[i]!=1) break;
- if(i==4)
- gr->Traj(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",opt);
- else if(i==6)
- gr->Traj(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),k[6]==2?a[6].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_traj(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_vect3(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- int i;
- for(i=0;i<7;i++) if(k[i]!=1) break;
- if(i==4)
- mglprintf(out,1024,L"gr->Traj(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(i==6)
- mglprintf(out,1024,L"gr->Traj(%s, %s, %s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), a[5].s.c_str(), k[6]==2?a[6].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"ddd"))
+ gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),"",-1,opt);
+ else if(!strcmp(k,"ddds"))
+ gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),-1,opt);
+ else if(!strcmp(k,"dddsn"))
+ gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),a[4].v,opt);
+ else if(!strcmp(k,"dddddd"))
+ gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",-1,opt);
+ else if(!strcmp(k,"dddddds"))
+ gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.c_str(),-1,opt);
+ else if(!strcmp(k,"ddddddsn"))
+ gr->Vect3(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.c_str(),a[7].v,opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_xlabel(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_traj(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==2) gr->Label('x', a[0].w.c_str(), k[1]==3?a[1].v:1, opt);
- else return 1;
- return 0;
-}
-void mglc_xlabel(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==2) mglprintf(out,1024,L"gr->Label('x', L\"%ls\", %g, \"%ls\");", a[0].w.c_str(), k[1]==3?a[1].v:1, opt);
+ int res=0;
+ if(!strcmp(k,"dddd"))
+ gr->Traj(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",opt);
+ else if(!strcmp(k,"dddds"))
+ gr->Traj(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),opt);
+ else if(!strcmp(k,"dddddd"))
+ gr->Traj(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",opt);
+ else if(!strcmp(k,"dddddds"))
+ gr->Traj(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_ylabel(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==2) gr->Label('y', a[0].w.c_str(), k[1]==3?a[1].v:1, opt);
- else return 1;
- return 0;
-}
-void mglc_ylabel(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_xlabel(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==2) mglprintf(out,1024,L"gr->Label('y', L\"%ls\", %g, \"%ls\");", a[0].w.c_str(), k[1]==3?a[1].v:1, opt);
+ int res=0;
+ if(!strcmp(k,"s")) gr->Label('x', a[0].w.c_str(), 1, opt);
+ else if(!strcmp(k,"sn")) gr->Label('x', a[0].w.c_str(), a[1].v, opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_zlabel(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==2) gr->Label('z', a[0].w.c_str(), k[1]==3?a[1].v:1, opt);
- else return 1;
- return 0;
-}
-void mglc_zlabel(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_ylabel(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==2) mglprintf(out,1024,L"gr->Label('z', L\"%ls\", %g, \"%ls\");", a[0].w.c_str(), k[1]==3?a[1].v:1, opt);
+ int res=0;
+ if(!strcmp(k,"s")) gr->Label('y', a[0].w.c_str(), 1, opt);
+ else if(!strcmp(k,"sn")) gr->Label('y', a[0].w.c_str(), a[1].v, opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_tlabel(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_zlabel(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==2) gr->Label('t', a[0].w.c_str(), k[1]==3?a[1].v:1, opt);
- else return 1;
- return 0;
-}
-void mglc_tlabel(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==2) mglprintf(out,1024,L"gr->Label('t', L\"%ls\", %g, \"%ls\");", a[0].w.c_str(), k[1]==3?a[1].v:1, opt);
+ int res=0;
+ if(!strcmp(k,"s")) gr->Label('z', a[0].w.c_str(), 1, opt);
+ else if(!strcmp(k,"sn")) gr->Label('z', a[0].w.c_str(), a[1].v, opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_label(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==2)
- gr->Label(*(a[0].d), *(a[1].d), *(a[2].d), a[3].w.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==2)
- gr->Label(*(a[0].d), *(a[1].d), a[2].w.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==2)
- gr->Label(*(a[0].d), a[1].w.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_label(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_tlabel(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==2)
- mglprintf(out,1024,L"gr->Label(%s, %s, %s, L\"%ls\", \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].w.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==2)
- mglprintf(out,1024,L"gr->Label(%s, %s, L\"%ls\", \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].w.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==2)
- mglprintf(out,1024,L"gr->Label(%s, L\"%ls\", \"%s\", \"%s\");", a[0].s.c_str(), a[1].w.c_str(), k[2]==2?a[2].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"s")) gr->Label('t', a[0].w.c_str(), 1, opt);
+ else if(!strcmp(k,"sn")) gr->Label('t', a[0].w.c_str(), a[1].v, opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_table(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_label(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==3 && k[1]==3 && k[2]==1)
- gr->Table(a[0].v, a[1].v, *(a[2].d), k[3]==2?a[3].w.c_str():L"", k[4]==2?a[4].s.c_str():"#|",opt);
- else if(k[0]==1)
- gr->Table(*(a[0].d), k[1]==2?a[1].w.c_str():L"", k[2]==2?a[2].s.c_str():"#|",opt);
- else return 1;
- return 0;
-}
-void mglc_table(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==3 && k[1]==3 && k[2]==1)
- mglprintf(out,1024,L"gr->Table(%g, %g, %s, L\"%ls\", \"%s\", \"%s\");", a[0].v, a[1].v, a[2].s.c_str(), k[3]==2?a[3].w.c_str():L"", k[4]==2?a[4].s.c_str():"|#",opt);
- else if(k[0]==1)
- mglprintf(out,1024,L"gr->Table(%s, L\"%ls\", \"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].w.c_str():L"", k[2]==2?a[2].s.c_str():"|#",opt);
+ int res=0;
+ if(!strcmp(k,"ds")) gr->Label(*(a[0].d), a[1].w.c_str(), "",opt);
+ else if(!strcmp(k,"dss")) gr->Label(*(a[0].d), a[1].w.c_str(), a[2].s.c_str(),opt);
+ else if(!strcmp(k,"dds")) gr->Label(*(a[0].d), *(a[1].d), a[2].w.c_str(), "",opt);
+ else if(!strcmp(k,"ddss")) gr->Label(*(a[0].d), *(a[1].d), a[2].w.c_str(), a[3].s.c_str(),opt);
+ else if(!strcmp(k,"ddds")) gr->Label(*(a[0].d), *(a[1].d), *(a[2].d), a[3].w.c_str(), "",opt);
+ else if(!strcmp(k,"dddss")) gr->Label(*(a[0].d), *(a[1].d), *(a[2].d), a[3].w.c_str(), a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_xrange(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1) gr->SetRange('x',*(a[0].d),k[1]==3?(a[1].v!=0):false);
- else if(k[0]==3 && k[1]==3) gr->SetRange('x',a[0].v,a[1].v);
- else return 1;
- return 0;
-}
-void mglc_xrange(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_table(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1)
- mglprintf(out,1024,L"gr->SetRange('x', %s, %s);", a[0].s.c_str(), (k[1]==3&&a[1].v!=0)?"true":"false");
- else if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->SetRange('x', %g, %g));", a[0].v, a[1].v);
+ int res=0;
+ if(!strcmp(k,"d")) gr->Table(*(a[0].d), L"", "#|",opt);
+ else if(!strcmp(k,"ds")) gr->Table(*(a[0].d), a[1].w.c_str(), "#|",opt);
+ else if(!strcmp(k,"dss")) gr->Table(*(a[0].d), a[1].w.c_str(), a[2].s.c_str(),opt);
+ else if(!strcmp(k,"nnd")) gr->Table(a[0].v, a[1].v, *(a[2].d), L"", "#|",opt);
+ else if(!strcmp(k,"nnds")) gr->Table(a[0].v, a[1].v, *(a[2].d), a[3].w.c_str(), "#|",opt);
+ else if(!strcmp(k,"nndss")) gr->Table(a[0].v, a[1].v, *(a[2].d), a[3].w.c_str(), a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_yrange(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_xrange(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1) gr->SetRange('y',*(a[0].d),k[1]==3?(a[1].v!=0):false);
- else if(k[0]==3 && k[1]==3) gr->SetRange('y',a[0].v,a[1].v);
- else return 1;
- return 0;
-}
-void mglc_yrange(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1)
- mglprintf(out,1024,L"gr->SetRange('y', %s, %s);", a[0].s.c_str(), (k[1]==3&&a[1].v!=0)?"true":"false");
- else if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->SetRange('y', %g, %g));", a[0].v, a[1].v);
+ int res=0;
+ if(!strcmp(k,"d")) gr->SetRange('x',*(a[0].d));
+ else if(!strcmp(k,"dn")) gr->SetRange('x',*(a[0].d),a[1].v);
+ else if(!strcmp(k,"nn")) gr->SetRange('x', a[0].v, a[1].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_zrange(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_yrange(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1) gr->SetRange('z',*(a[0].d),k[1]==3?(a[1].v!=0):false);
- else if(k[0]==3 && k[1]==3) gr->SetRange('z',a[0].v,a[1].v);
- else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"d")) gr->SetRange('y',*(a[0].d));
+ else if(!strcmp(k,"dn")) gr->SetRange('y',*(a[0].d),a[1].v);
+ else if(!strcmp(k,"nn")) gr->SetRange('y', a[0].v, a[1].v);
+ else res = 1; return res;
}
-void mglc_zrange(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+//-----------------------------------------------------------------------------
+int mgls_zrange(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1)
- mglprintf(out,1024,L"gr->SetRange('z', %s, %s);", a[0].s.c_str(), (k[1]==3&&a[1].v!=0)?"true":"false");
- else if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->SetRange('z', %g, %g));", a[0].v, a[1].v);
+ int res=0;
+ if(!strcmp(k,"d")) gr->SetRange('z',*(a[0].d));
+ else if(!strcmp(k,"dn")) gr->SetRange('z',*(a[0].d),a[1].v);
+ else if(!strcmp(k,"nn")) gr->SetRange('z', a[0].v, a[1].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_xtick(mglGraph *gr, long n, mglArg *a, int k[10], const char *)
+int mgls_xtick(mglGraph *gr, long n, mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) gr->SetTicksVal('x', *(a[0].d), a[1].w.c_str(), k[2]==3 && a[2].v);
- else if(k[0]==3 && k[1]==2)
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetTicks('x', a[0].v);
+ else if(!strcmp(k,"nn")) gr->SetTicks('x', a[0].v, iint(a[1].v));
+ else if(!strcmp(k,"nnn")) gr->SetTicks('x', a[0].v, iint(a[1].v), a[2].v);
+ else if(!strcmp(k,"s")) gr->SetTickTempl('x',a[0].w.c_str());
+ else if(!strcmp(k,"ds")) gr->SetTicksVal('x', *(a[0].d), a[1].w.c_str());
+ else if(!strcmp(k,"dsn")) gr->SetTicksVal('x', *(a[0].d), a[1].w.c_str(), a[2].v);
+ else if(!strncmp(k,"ns",2))
{
mreal v[50]; std::wstring s; int i;
for(i=0;i<50 && i<n/2;i++)
}
gr->SetTicksVal('x',mglData(i,v),s.c_str());
}
- else if(k[0]==3)
- gr->SetTicks('x', a[0].v, k[1]==3?iint(a[1].v):0, k[2]==3?a[2].v:NAN);
- else if(k[0]==2) gr->SetTickTempl('x',a[0].w.c_str());
- else return 1;
- return 0;
-}
-void mglc_xtick(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3)
- mglprintf(out,1024,L"gr->SetTicks('x', %g, %d, %g);", a[0].v, iint(a[1].v),a[2].v);
- else if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->SetTicks('x', %g, %d);", a[0].v, iint(a[1].v));
- else if(k[0]==3 && k[1]==2)
- mglprintf(out,1024,L"gr->SetTicksVal('x', %g, \"%s\");", a[0].v, a[1].s.c_str()); // TODO: Many labels in C++ output of xtick
- else if(k[0]==3) mglprintf(out,1024,L"gr->SetTicks('x', %g);", a[0].v);
- else if(k[0]==2)
- mglprintf(out,1024,L"gr->SetTickTempl('x',L\"%ls\");", a[0].w.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_ytick(mglGraph *gr, long n, mglArg *a, int k[10], const char *)
+int mgls_ytick(mglGraph *gr, long n, mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) gr->SetTicksVal('x', *(a[0].d), a[1].w.c_str(), k[2]==3 && a[2].v);
- else if(k[0]==3 && k[1]==2)
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetTicks('y', a[0].v);
+ else if(!strcmp(k,"nn")) gr->SetTicks('y', a[0].v, iint(a[1].v));
+ else if(!strcmp(k,"nnn")) gr->SetTicks('y', a[0].v, iint(a[1].v), a[2].v);
+ else if(!strcmp(k,"s")) gr->SetTickTempl('y',a[0].w.c_str());
+ else if(!strcmp(k,"ds")) gr->SetTicksVal('y', *(a[0].d), a[1].w.c_str());
+ else if(!strcmp(k,"dsn")) gr->SetTicksVal('y', *(a[0].d), a[1].w.c_str(), a[2].v);
+ else if(!strncmp(k,"ns",2))
{
mreal v[50]; std::wstring s; int i;
for(i=0;i<50 && i<n/2;i++)
}
gr->SetTicksVal('y',mglData(i,v),s.c_str());
}
- else if(k[0]==3)
- gr->SetTicks('y', a[0].v, k[1]==3?iint(a[1].v):0, k[2]==3?a[2].v:NAN);
- else if(k[0]==2) gr->SetTickTempl('y',a[0].w.c_str());
- else return 1;
- return 0;
-}
-void mglc_ytick(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3)
- mglprintf(out,1024,L"gr->SetTicks('y', %g, %d, %g);", a[0].v, iint(a[1].v),a[2].v);
- else if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->SetTicks('y', %g, %d);", a[0].v, iint(a[1].v));
- else if(k[0]==3 && k[1]==2)
- mglprintf(out,1024,L"gr->SetTicksVal('y', %g, \"%s\");", a[0].v, a[1].s.c_str()); // TODO: Many labels in C++ output of ytick
- else if(k[0]==3) mglprintf(out,1024,L"gr->SetTicks('y', %g);", a[0].v);
- else if(k[0]==2) mglprintf(out,1024,L"gr->SetTickTempl('y',L\"%ls\");", a[0].w.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_ztick(mglGraph *gr, long n, mglArg *a, int k[10], const char *)
+int mgls_ztick(mglGraph *gr, long n, mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) gr->SetTicksVal('x', *(a[0].d), a[1].w.c_str(), k[2]==3 && a[2].v);
- else if(k[0]==3 && k[1]==2)
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetTicks('z', a[0].v);
+ else if(!strcmp(k,"nn")) gr->SetTicks('z', a[0].v, iint(a[1].v));
+ else if(!strcmp(k,"nnn")) gr->SetTicks('z', a[0].v, iint(a[1].v), a[2].v);
+ else if(!strcmp(k,"s")) gr->SetTickTempl('z',a[0].w.c_str());
+ else if(!strcmp(k,"ds")) gr->SetTicksVal('z', *(a[0].d), a[1].w.c_str());
+ else if(!strcmp(k,"dsn")) gr->SetTicksVal('z', *(a[0].d), a[1].w.c_str(), a[2].v);
+ else if(!strncmp(k,"ns",2))
{
mreal v[50]; std::wstring s; int i;
for(i=0;i<50 && i<n/2;i++)
}
gr->SetTicksVal('z',mglData(i,v),s.c_str());
}
- else if(k[0]==3)
- gr->SetTicks('z', a[0].v, k[1]==3?iint(a[1].v):0, k[2]==3?a[2].v:NAN);
- else if(k[0]==2) gr->SetTickTempl('z',a[0].w.c_str());
- else return 1;
- return 0;
-}
-void mglc_ztick(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3)
- mglprintf(out,1024,L"gr->SetTicks('z', %g, %d, %g);", a[0].v, iint(a[1].v),a[2].v);
- else if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->SetTicks('z', %g, %d);", a[0].v, iint(a[1].v));
- else if(k[0]==3 && k[1]==2)
- mglprintf(out,1024,L"gr->SetTicksVal('z', %g, \"%s\");", a[0].v, a[1].s.c_str()); // TODO: Many labels in C++ output of ztick
- else if(k[0]==3) mglprintf(out,1024,L"gr->SetTicks('z', %g);", a[0].v);
- else if(k[0]==2) mglprintf(out,1024,L"gr->SetTickTempl('z',L\"%ls\");", a[0].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_error(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- gr->Error(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- gr->Error(*(a[0].d),*(a[1].d),*(a[2].d), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1)
- gr->Error(*(a[0].d),*(a[1].d), k[2]==2?a[2].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_error(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_error(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->Error(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Error(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1)
- mglprintf(out,1024,L"gr->Error(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"dd")) gr->Error(*(a[0].d),*(a[1].d), "",opt);
+ else if(!strcmp(k,"dds")) gr->Error(*(a[0].d),*(a[1].d), a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Error(*(a[0].d),*(a[1].d),*(a[2].d), "",opt);
+ else if(!strcmp(k,"ddds")) gr->Error(*(a[0].d),*(a[1].d),*(a[2].d), a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->Error(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), "",opt);
+ else if(!strcmp(k,"dddds")) gr->Error(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), a[4].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_extend(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_extend(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==3) a[0].d->Extend(iint(a[1].v),k[2]==3?iint(a[2].v):0);
- else return 1;
- return 0;
-}
-void mglc_extend(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==3)
- mglprintf(out,1024,L"%s.Extend(%d, %d);", a[0].s.c_str(), iint(a[1].v), k[2]==3?iint(a[2].v):0);
+ int res=0;
+ if(!strcmp(k,"dn")) a[0].d->Extend(iint(a[1].v));
+ else if(!strcmp(k,"dnn")) a[0].d->Extend(iint(a[1].v),iint(a[2].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_datas(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_datas(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==2)
+ int res=0;
+ if(!strcmp(k,"s"))
{
char *buf=new char[1024];
mgl_datas_hdf(a[0].s.c_str(),buf,1024);
gr->SetWarn(-1,buf);
delete []buf;
}
- else return 1;
- return 0;
-}
-void mglc_datas(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==2) mglprintf(out,1024,L"{char b[1024]; mgl_datas_hdf(\"%s\"s,b,1024); gr->SetWarn(-1,b);}",a[0].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_info(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_info(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1) gr->SetWarn(-1,a[0].d->PrintInfo());
- else if(k[0]==2) gr->SetWarn(-1,a[0].s.c_str());
- else
+ int res=0;
+ if(!strcmp(k,"d")) gr->SetWarn(-1,a[0].d->PrintInfo());
+ else if(!strcmp(k,"s")) gr->SetWarn(-1,a[0].s.c_str());
+ else if(!strcmp(k,"n"))
{ char buf[128]; sprintf(buf,"value = %g",a[0].v); gr->SetWarn(-1,buf); }
- return 0;
-}
-void mglc_info(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1) mglprintf(out,1024,L"gr->SetWarn(-1,%s.PrintInfo());", a[0].s.c_str());
- if(k[0]==2) mglprintf(out,1024,L"gr->SetWarn(-1,\"%s\");",a[0].s.c_str());
- else mglprintf(out,1024,L"gr->SetWarn(-1,\"value = %g\");",a[0].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_integrate(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2) a[0].d->Integral(a[1].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_integrate(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_integrate(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) mglprintf(out,1024,L"%s.Integral(\"%s\");", a[0].s.c_str(), a[1].s.c_str());
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->Integral(a[1].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_inplot(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3)
- gr->InPlot(a[0].v, a[1].v, a[2].v, a[3].v, k[4]==3&&a[4].v!=0);
- else return 1;
- return 0;
-}
-void mglc_inplot(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_inplot(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3)
- mglprintf(out,1024,L"gr->InPlot(%g, %g, %g, %g, %s);", a[0].v, a[1].v, a[2].v, a[3].v, k[4]==3&&a[4].v!=0 ? "true":"false");
+ int res=0;
+ if(!strcmp(k,"nnnn")) gr->InPlot(a[0].v, a[1].v, a[2].v, a[3].v);
+ else if(!strcmp(k,"nnnnn")) gr->InPlot(a[0].v, a[1].v, a[2].v, a[3].v, a[4].v!=0);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_columnplot(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_columnplot(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3) gr->ColumnPlot(iint(a[0].v), iint(a[1].v), k[2]==3?a[2].v:0);
- else return 1;
- return 0;
-}
-void mglc_columnplot(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->ColumnPlot(%d, %d, %g);", iint(a[0].v), iint(a[1].v), k[2]==3?a[2].v:0);
+ int res=0;
+ if(!strcmp(k,"nn")) gr->ColumnPlot(iint(a[0].v), iint(a[1].v));
+ else if(!strcmp(k,"nnn")) gr->ColumnPlot(iint(a[0].v), iint(a[1].v), a[2].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_gridplot(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3) gr->GridPlot(iint(a[0].v), iint(a[1].v), iint(a[2].v), k[3]==3?a[3].v:0);
- else return 1;
- return 0;
-}
-void mglc_gridplot(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_gridplot(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->GridPlot(%d, %d, %d, %g);", iint(a[0].v), iint(a[1].v), iint(a[2].v), k[3]==3?a[3].v:0);
+ int res=0;
+ if(!strcmp(k,"nnn")) gr->GridPlot(iint(a[0].v), iint(a[1].v), iint(a[2].v));
+ else if(!strcmp(k,"nnnn")) gr->GridPlot(iint(a[0].v), iint(a[1].v), iint(a[2].v), a[3].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_stickplot(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_stickplot(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3)
- gr->StickPlot(iint(a[0].v), iint(a[1].v), a[2].v, a[3].v);
- else return 1;
- return 0;
-}
-void mglc_stickplot(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3)
- mglprintf(out,1024,L"gr->StickPlot(%d, %d, %g, %g);",
- iint(a[0].v), iint(a[1].v), a[2].v, a[3].v);
+ int res=0;
+ if(!strcmp(k,"nnnn")) gr->StickPlot(iint(a[0].v), iint(a[1].v), a[2].v, a[3].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_pipe(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- int i;
- for(i=0;i<7;i++) if(k[i]!=1) break;
- if(i==2)
- gr->Pipe(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",k[3]==3?a[3].v:0.05,opt);
- else if(i==4)
- gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),k[4]==2?a[4].s.c_str():"",k[5]==3?a[5].v:0.05,opt);
- else if(i==3)
- gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",k[4]==3?a[4].v:0.05,opt);
- else if(i==6)
- gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),
- k[6]==2?a[6].s.c_str():"",k[7]==3?a[7].v:0.05,opt);
- else return 1;
- return 0;
-}
-void mglc_pipe(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_pipe(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- int i;
- for(i=0;i<7;i++) if(k[i]!=1) break;
- if(i==2)
- mglprintf(out,1024,L"gr->Pipe(%s, %s, \"%s\", %g, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"", k[3]==3?a[3].v:0.05,opt);
- else if(i==4)
- mglprintf(out,1024,L"gr->Pipe(%s, %s, %s, %s, \"%s\", %g, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"", k[5]==3?a[5].v:0.05,opt);
- else if(i==3)
- mglprintf(out,1024,L"gr->Pipe(%s, %s, %s, \"%s\", %g, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"", k[4]==3?a[4].v:0.05,opt);
- else if(i==6)
- mglprintf(out,1024,L"gr->Pipe(%s, %s, %s, %s, %s, %s, \"%s\", %g, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), a[5].s.c_str(), k[6]==2?a[6].s.c_str():"", k[7]==3?a[7].v:0.05,opt);
+ int res=0;
+ if(!strcmp(k,"dd")) gr->Pipe(*(a[0].d),*(a[1].d),"",0.05,opt);
+ else if(!strcmp(k,"dds")) gr->Pipe(*(a[0].d),*(a[1].d),a[2].s.c_str(),0.05,opt);
+ else if(!strcmp(k,"ddsn")) gr->Pipe(*(a[0].d),*(a[1].d),a[2].s.c_str(),a[3].v,opt);
+ else if(!strcmp(k,"dddd"))
+ gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),"",0.05,opt);
+ else if(!strcmp(k,"dddds"))
+ gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),0.05,opt);
+ else if(!strcmp(k,"ddddsn"))
+ gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),a[4].s.c_str(),a[5].v,opt);
+ else if(!strcmp(k,"ddd"))
+ gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),"",0.05,opt);
+ else if(!strcmp(k,"ddds"))
+ gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),0.05,opt);
+ else if(!strcmp(k,"dddsn"))
+ gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),a[4].v,opt);
+ else if(!strcmp(k,"dddddd"))
+ gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),"",0.05,opt);
+ else if(!strcmp(k,"dddddds"))
+ gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.c_str(),0.05,opt);
+ else if(!strcmp(k,"ddddddsn"))
+ gr->Pipe(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d),*(a[4].d),*(a[5].d),a[6].s.c_str(),a[7].v,opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_origin(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_origin(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3) gr->SetOrigin(a[0].v,a[1].v,k[2]==3?a[2].v:NAN);
- else return 1;
- return 0;
-}
-void mglc_origin(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->SetOrigin(%g, %g, %g);", a[0].v, a[1].v, k[2]==3?a[2].v:NAN);
+ int res=0;
+ if(!strcmp(k,"nn")) gr->SetOrigin(a[0].v,a[1].v,NAN);
+ else if(!strcmp(k,"nnn")) gr->SetOrigin(a[0].v,a[1].v,a[2].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_norm(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==3 && k[2]==3)
- a[0].d->Norm(a[1].v,a[2].v,k[3]==3?a[3].v!=0:false,k[4]==3?iint(a[4].v):0);
- else return 1;
- return 0;
-}
-void mglc_norm(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_norm(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==3 && k[2]==3)
- mglprintf(out,1024,L"%s.Norm(%g, %g, %s, %d);", a[0].s.c_str(), a[1].v, a[2].v, (k[3]==3&&a[3].v!=0)?"true":"false", k[4]==3?iint(a[4].v):0);
+ int res=0;
+ if(!strcmp(k,"dnn")) a[0].d->Norm(a[1].v,a[2].v);
+ else if(!strcmp(k,"dnnn")) a[0].d->Norm(a[1].v,a[2].v,a[3].v!=0);
+ else if(!strcmp(k,"dnnnn")) a[0].d->Norm(a[1].v,a[2].v,a[3].v!=0,iint(a[4].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_hist(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_hist(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==3 && k[4]==3 && k[5]==3)
- *(a[0].d) = a[1].d->Hist(*(a[2].d), int(a[3].v+0.5), a[4].v, a[5].v, k[6]==3?int(a[6].v+0.5):0);
- else if(k[0]==1 && k[1]==1 && k[2]==3 && k[3]==3 && k[4]==3)
- *(a[0].d) = a[1].d->Hist(int(a[2].v+0.5), a[3].v, a[4].v, k[5]==3?int(a[5].v+0.5):0);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- *(a[0].d) = gr->Hist(*(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- *(a[0].d) = gr->Hist(*(a[1].d), *(a[2].d), *(a[3].d),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- *(a[0].d) = gr->Hist(*(a[1].d), *(a[2].d),opt);
- else return 1;
- return 0;
-}
-void mglc_hist(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==3 && k[4]==3 && k[5]==3)
- mglprintf(out,1024,L"%s = %s.Hist(%s, %d, %g, %g, %d);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), iint(a[3].v), a[4].v, a[5].v, k[6]==3?iint(a[6].v):0);
- else if(k[0]==1 && k[1]==1 && k[2]==3 && k[3]==3 && k[4]==3)
- mglprintf(out,1024,L"%s = %s.Hist(%d, %g, %g, %d);", a[0].s.c_str(), a[1].s.c_str(), iint(a[2].v), a[3].v, a[4].v, k[5]==3?iint(a[5].v):0);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- mglprintf(out,1024,L"%s = gr->Hist(%s, %s, %s, %s, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"%s = gr->Hist(%s, %s, %s, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"%s = gr->Hist(%s, %s, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(),opt);
+ int res=0;
+ if(!strcmp(k,"ddd")) *(a[0].d) = gr->Hist(*(a[1].d), *(a[2].d),opt);
+ else if(!strcmp(k,"dddd")) *(a[0].d) = gr->Hist(*(a[1].d), *(a[2].d), *(a[3].d),opt);
+ else if(!strcmp(k,"ddddd")) *(a[0].d) = gr->Hist(*(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d),opt);
+ else if(!strcmp(k,"ddnnn")) *(a[0].d) = a[1].d->Hist(int(a[2].v+0.5), a[3].v, a[4].v);
+ else if(!strcmp(k,"ddnnnn")) *(a[0].d) = a[1].d->Hist(int(a[2].v+0.5), a[3].v, a[4].v, int(a[5].v+0.5));
+ else if(!strcmp(k,"dddnnn")) *(a[0].d) = a[1].d->Hist(*(a[2].d), int(a[3].v+0.5), a[4].v, a[5].v);
+ else if(!strcmp(k,"dddnnnn")) *(a[0].d) = a[1].d->Hist(*(a[2].d), int(a[3].v+0.5), a[4].v, a[5].v, int(a[6].v+0.5));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_mirror(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_mirror(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) a[0].d->Mirror(a[1].s.c_str());
- else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->Mirror(a[1].s.c_str());
+ else res = 1; return res;
}
-void mglc_mirror(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ if(k[0]==1 && k[1]==2) mglprintf(out,1024,L"%s.Mirror(\"%s\");", a[0].s.c_str(), a[1].s.c_str()); }
//-----------------------------------------------------------------------------
-int mgls_hankel(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_hankel(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) a[0].d->Hankel(a[1].s.c_str()); else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->Hankel(a[1].s.c_str());
+ else res = 1; return res;
}
-void mglc_hankel(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ if(k[0]==1 && k[1]==2) mglprintf(out,1024,L"%s.Hankel('%s');", a[0].s.c_str(), a[1].s.c_str()); }
//-----------------------------------------------------------------------------
-int mgls_sinfft(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_sinfft(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) a[0].d->SinFFT(a[1].s.c_str()); else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->SinFFT(a[1].s.c_str());
+ else res = 1; return res;
}
-void mglc_sinfft(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ if(k[0]==1 && k[1]==2) mglprintf(out,1024,L"%s.SinFFT('%s');", a[0].s.c_str(), a[1].s.c_str()); }
//-----------------------------------------------------------------------------
-int mgls_cosfft(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_cosfft(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) a[0].d->CosFFT(a[1].s.c_str()); else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->CosFFT(a[1].s.c_str());
+ else res = 1; return res;
}
-void mglc_cosfft(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ if(k[0]==1 && k[1]==2) mglprintf(out,1024,L"%s.CosFFT('%s');", a[0].s.c_str(), a[1].s.c_str()); }
//-----------------------------------------------------------------------------
-int mgls_new(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_new(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==3 && k[2]==3 && k[3]==3)
- { a[0].d->Create(iint(a[1].v),iint(a[2].v),iint(a[3].v));
- if(k[4]==2) a[0].d->Fill(gr->Self(),a[4].s.c_str(),opt); }
- else if(k[0]==1 && k[1]==3 && k[2]==3)
- { a[0].d->Create(iint(a[1].v),iint(a[2].v));
- if(k[3]==2) a[0].d->Fill(gr->Self(),a[3].s.c_str(),opt); }
- else if(k[0]==1 && k[1]==3)
+ int res=0;
+ if(!strcmp(k,"dn")) a[0].d->Create(iint(a[1].v));
+ else if(!strcmp(k,"dns"))
{ a[0].d->Create(iint(a[1].v));
- if(k[2]==2) a[0].d->Fill(gr->Self(),a[2].s.c_str(),opt); }
- else return 1;
- return 0;
-}
-void mglc_new(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==3 && k[2]==3 && k[3]==3)
- {
- mglprintf(out,1024,L"%s.Create(%d, %d, %d);", a[0].s.c_str(), iint(a[1].v),iint(a[2].v),iint(a[3].v));
- if(k[4]==2) mglprintf(out,1024,L"%s.Fill(gr,\"%s\",\"%s\");",a[4].s.c_str(),opt);
- }
- else if(k[0]==1 && k[1]==3 && k[2]==3)
- {
- mglprintf(out,1024,L"%s.Create(%d, %d);", a[0].s.c_str(), iint(a[1].v),iint(a[2].v));
- if(k[3]==2) mglprintf(out,1024,L"%s.Fill(gr,\"%s\",\"%s\");",a[3].s.c_str(),opt);
- }
- else if(k[0]==1 && k[1]==3)
- {
- mglprintf(out,1024,L"%s.Create(%d);", a[0].s.c_str(), iint(a[1].v));
- if(k[2]==2) mglprintf(out,1024,L"%s.Fill(gr,\"%s\",\"%s\");",a[2].s.c_str(),opt);
- }
+ a[0].d->Fill(gr->Self(),a[2].s.c_str(),opt); }
+ else if(!strcmp(k,"dnn")) a[0].d->Create(iint(a[1].v),iint(a[2].v));
+ else if(!strcmp(k,"dnns"))
+ { a[0].d->Create(iint(a[1].v),iint(a[2].v));
+ a[0].d->Fill(gr->Self(),a[3].s.c_str(),opt); }
+ else if(!strcmp(k,"dnnn")) a[0].d->Create(iint(a[1].v),iint(a[2].v),iint(a[3].v));
+ else if(!strcmp(k,"dnnns"))
+ { a[0].d->Create(iint(a[1].v),iint(a[2].v),iint(a[3].v));
+ a[0].d->Fill(gr->Self(),a[4].s.c_str(),opt); }
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_var(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_var(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==3 && k[2]==3)
- { a[0].d->Create(iint(a[1].v)); a[0].d->Fill(a[2].v, k[3]==3?a[3].v:NAN); }
- else return 1;
- return 0;
-}
-void mglc_var(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==3 && k[2]==3)
- mglprintf(out,1024,L"%s.Create(%d);\t%s.Fill(%g,%g);",a[0].s.c_str(), iint(a[1].v), a[0].s.c_str(), a[2].v, k[3]==3?a[3].v:NAN);
+ int res=0;
+ if(!strcmp(k,"dnn"))
+ { a[0].d->Create(iint(a[1].v)); a[0].d->Fill(a[2].v, NAN); }
+ else if(!strcmp(k,"dnnn"))
+ { a[0].d->Create(iint(a[1].v)); a[0].d->Fill(a[2].v, a[3].v); }
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_chdir(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_chdir(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==2)
- { int r=chdir(a[0].s.c_str()); if(r) gr->SetWarn(mglWarnFile,"chdir"); }
- else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"s"))
+ { if(chdir(a[0].s.c_str())) gr->SetWarn(mglWarnFile,"chdir"); }
+ else res = 1; return res;
}
-void mglc_chdir(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ if(k[0]==2) mglprintf(out,1024,L"chdir(\"%s\");", a[0].s.c_str()); }
//-----------------------------------------------------------------------------
-int mgls_perspective(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_perspective(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3) gr->Perspective(a[0].v);
- else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"n")) gr->Perspective(a[0].v);
+ else res = 1; return res;
}
-void mglc_perspective(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ if(k[0]==3) mglprintf(out,1024,L"gr->Perspective(%g);", a[0].v); }
//-----------------------------------------------------------------------------
-int mgls_facex(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==3)
- gr->FaceX(mglPoint(a[0].v, a[1].v, a[2].v), a[3].v, a[4].v, k[5]==2?a[5].s.c_str():"", k[6]==3?a[6].v:0, k[7]==3?a[7].v:0);
- else return 1;
- return 0;
-}
-void mglc_facex(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_facex(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==3)
- mglprintf(out,1024,L"gr->FaceX(mglPoint(%g, %g, %g), %g, %g, \"%s\", %g, %g);", a[0].v, a[1].v, a[2].v, a[3].v, a[4].v, k[5]==2?a[5].s.c_str():"", k[6]==3?a[6].v:0, k[7]==3?a[7].v:0);
+ int res=0;
+ if(!strcmp(k,"nnnnn")) gr->FaceX(mglPoint(a[0].v, a[1].v, a[2].v), a[3].v, a[4].v);
+ else if(!strcmp(k,"nnnnns")) gr->FaceX(mglPoint(a[0].v, a[1].v, a[2].v), a[3].v, a[4].v, a[5].s.c_str());
+ else if(!strcmp(k,"nnnnnsnn")) gr->FaceX(mglPoint(a[0].v, a[1].v, a[2].v), a[3].v, a[4].v, a[5].s.c_str(),a[6].v,a[7].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_facey(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_facey(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==3)
- gr->FaceY(mglPoint(a[0].v, a[1].v, a[2].v), a[3].v, a[4].v, k[5]==2?a[5].s.c_str():"", k[6]==3?a[6].v:0, k[7]==3?a[7].v:0);
- else return 1;
- return 0;
-}
-void mglc_facey(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==3)
- mglprintf(out,1024,L"gr->FaceY(mglPoint(%g, %g, %g), %g, %g, \"%s\", %g, %g);", a[0].v, a[1].v, a[2].v, a[3].v, a[4].v, k[5]==2?a[5].s.c_str():"", k[6]==3?a[6].v:0, k[7]==3?a[7].v:0);
+ int res=0;
+ if(!strcmp(k,"nnnnn")) gr->FaceY(mglPoint(a[0].v, a[1].v, a[2].v), a[3].v, a[4].v);
+ else if(!strcmp(k,"nnnnns")) gr->FaceY(mglPoint(a[0].v, a[1].v, a[2].v), a[3].v, a[4].v, a[5].s.c_str());
+ else if(!strcmp(k,"nnnnnsnn")) gr->FaceY(mglPoint(a[0].v, a[1].v, a[2].v), a[3].v, a[4].v, a[5].s.c_str(),a[6].v,a[7].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_facez(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==3)
- gr->FaceZ(mglPoint(a[0].v, a[1].v, a[2].v), a[3].v, a[4].v, k[5]==2?a[5].s.c_str():"", k[6]==3?a[6].v:0, k[7]==3?a[7].v:0);
- else return 1;
- return 0;
-}
-void mglc_facez(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_facez(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3 && k[4]==3)
- mglprintf(out,1024,L"gr->FaceZ(mglPoint(%g, %g, %g), %g, %g, \"%s\", %g, %g);", a[0].v, a[1].v, a[2].v, a[3].v, a[4].v, k[5]==2?a[5].s.c_str():"", k[6]==3?a[6].v:0, k[7]==3?a[7].v:0);
+ int res=0;
+ if(!strcmp(k,"nnnnn")) gr->FaceZ(mglPoint(a[0].v, a[1].v, a[2].v), a[3].v, a[4].v);
+ else if(!strcmp(k,"nnnnns")) gr->FaceZ(mglPoint(a[0].v, a[1].v, a[2].v), a[3].v, a[4].v, a[5].s.c_str());
+ else if(!strcmp(k,"nnnnnsnn")) gr->FaceZ(mglPoint(a[0].v, a[1].v, a[2].v), a[3].v, a[4].v, a[5].s.c_str(),a[6].v,a[7].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_normsl(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==3 && k[2]==3)
- a[0].d->NormSl(a[1].v, a[2].v, k[3]==2?a[3].s.c_str()[0]:'z', k[4]==3?a[4].v!=0:true, k[5]==3?a[5].v!=0:false);
- else return 1;
- return 0;
-}
-void mglc_normsl(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_normsl(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==3 && k[2]==3)
- mglprintf(out,1024,L"%s.NormSl(%g, %g, '%c', %s, %s);", a[0].s.c_str(), a[1].v, a[2].v, k[3]==2?a[3].s.c_str()[0]:'z', (k[4]!=3||a[4].v!=0)?"true":"false", (k[5]==3&&a[5].v!=0)?"true":"false");
+ int res=0;
+ if(!strcmp(k,"dnn")) a[0].d->NormSl(a[1].v, a[2].v);
+ else if(!strcmp(k,"dnns")) a[0].d->NormSl(a[1].v, a[2].v, a[3].s.c_str()[0]);
+ else if(!strcmp(k,"dnnsn")) a[0].d->NormSl(a[1].v, a[2].v, a[3].s.c_str()[0],a[4].v);
+ else if(!strcmp(k,"dnnsnn"))a[0].d->NormSl(a[1].v, a[2].v, a[3].s.c_str()[0],a[4].v,a[5].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_momentum(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==2)
- *(a[0].d) = a[1].d->Momentum(k[3]==2?a[3].s.c_str()[0]:'z', a[2].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_momentum(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_momentum(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==2)
- mglprintf(out,1024,L"%s = %s.Momentum('%c', \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[3]==2?a[3].s.c_str()[0]:'z', a[2].s.c_str());
+ int res=0;
+ if(!strcmp(k,"dds")) *(a[0].d) = a[1].d->Momentum('z', a[2].s.c_str());
+ else if(!strcmp(k,"ddss")) *(a[0].d) = a[1].d->Momentum(a[3].s.c_str()[0], a[2].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_fit(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_fit(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1&& k[5]==2 && k[6]==2 && k[7]==1 && a[7].d->nx>=long(strlen(a[6].s.c_str())))
+ int res=0;
+ if(!strcmp(k,"dddddssd"))
*(a[0].d) = gr->Fit(*(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.c_str(), a[6].s.c_str(), *(a[7].d),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1&& k[5]==2 && k[6]==2)
+ else if(!strcmp(k,"dddddss"))
*(a[0].d) = gr->Fit(*(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.c_str(), a[6].s.c_str(),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==2 && k[5]==2 && k[6]==1 && a[6].d->nx>=long(strlen(a[5].s.c_str())))
+ else if(!strcmp(k,"ddddssd"))
*(a[0].d) = gr->Fit(*(a[1].d), *(a[2].d), *(a[3].d), a[4].s.c_str(), a[5].s.c_str(), *(a[6].d),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==2 && k[5]==2)
+ else if(!strcmp(k,"ddddss"))
*(a[0].d) = gr->Fit(*(a[1].d), *(a[2].d), *(a[3].d), a[4].s.c_str(), a[5].s.c_str(),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==2 && k[4]==2 && k[5]==1 && a[5].d->nx>=long(strlen(a[4].s.c_str())))
+ else if(!strcmp(k,"dddssd"))
*(a[0].d) = gr->Fit(*(a[1].d), *(a[2].d), a[3].s.c_str(), a[4].s.c_str(), *(a[5].d),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==2 && k[4]==2)
+ else if(!strcmp(k,"dddss"))
*(a[0].d) = gr->Fit(*(a[1].d), *(a[2].d), a[3].s.c_str(), a[4].s.c_str(),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==2 && k[3]==2 && k[4]==1 && a[4].d->nx>=long(strlen(a[3].s.c_str())))
+ else if(!strcmp(k,"ddssd"))
*(a[0].d) = gr->Fit(*(a[1].d), a[2].s.c_str(), a[3].s.c_str(), *(a[4].d),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==2 && k[3]==2)
+ else if(!strcmp(k,"ddss"))
*(a[0].d) = gr->Fit(*(a[1].d), a[2].s.c_str(), a[3].s.c_str(),opt);
- else return 1;
- return 0;
-}
-void mglc_fit(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1&& k[5]==2 && k[6]==2)
- mglprintf(out,1024,L"%s = gr->Fit(%s, %s, %s, %s, \"%s\", \"%s\", %s, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), a[5].s.c_str(), a[6].s.c_str(), k[7]==1?a[7].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==2 && k[5]==2)
- mglprintf(out,1024,L"%s = gr->Fit(%s, %s, %s, \"%s\", \"%s\", %s, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), a[5].s.c_str(), k[6]==1?a[6].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==2 && k[4]==2)
- mglprintf(out,1024,L"%s = gr->Fit(%s, %s, \"%s\", \"%s\", %s, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), k[5]==1?a[5].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==2 && k[3]==2)
- mglprintf(out,1024,L"%s = gr->Fit(%s, \"%s\", \"%s\", %s, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==1?a[5].s.c_str():"",opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_fits(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_fits(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1 && k[5]==1 && k[6]==2 && k[7]==2 && k[8]==1 && a[8].d->nx>=long(strlen(a[7].s.c_str())))
+ int res=0;
+ if(!strcmp(k,"ddddddssd"))
*(a[0].d) = gr->FitS(*(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), *(a[5].d), a[6].s.c_str(), a[7].s.c_str(), *(a[8].d),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1 && k[5]==1 && k[6]==2 && k[7]==2)
+ else if(!strcmp(k,"ddddddss"))
*(a[0].d) = gr->FitS(*(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), *(a[5].d), a[6].s.c_str(), a[7].s.c_str(),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1 && k[5]==2 && k[6]==2 && k[7]==1 && a[7].d->nx>=long(strlen(a[6].s.c_str())))
+ else if(!strcmp(k,"dddddssd"))
*(a[0].d) = gr->FitS(*(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.c_str(), a[6].s.c_str(), *(a[7].d),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1 && k[5]==2 && k[6]==2)
+ else if(!strcmp(k,"dddddss"))
*(a[0].d) = gr->FitS(*(a[1].d), *(a[2].d), *(a[3].d), *(a[4].d), a[5].s.c_str(), a[6].s.c_str(),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==2 && k[5]==2 && k[6]==1 && a[6].d->nx>=long(strlen(a[5].s.c_str())))
+ else if(!strcmp(k,"ddddssd"))
*(a[0].d) = gr->FitS(*(a[1].d), *(a[2].d), *(a[3].d), a[4].s.c_str(), a[5].s.c_str(), *(a[6].d),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==2 && k[5]==2)
+ else if(!strcmp(k,"ddddss"))
*(a[0].d) = gr->FitS(*(a[1].d), *(a[2].d), *(a[3].d), a[4].s.c_str(), a[5].s.c_str(),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==2 && k[4]==2 && k[5]==1 && a[5].d->nx>=long(strlen(a[4].s.c_str())))
+ else if(!strcmp(k,"dddssd"))
*(a[0].d) = gr->FitS(*(a[1].d), *(a[2].d), a[3].s.c_str(), a[4].s.c_str(), *(a[5].d),opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==2 && k[4]==2)
+ else if(!strcmp(k,"dddss"))
*(a[0].d) = gr->FitS(*(a[1].d), *(a[2].d), a[3].s.c_str(), a[4].s.c_str(),opt);
- else return 1;
- return 0;
-}
-void mglc_fits(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1 && k[5]==1 && k[6]==2 && k[7]==2)
- mglprintf(out,1024,L"%s = gr->FitS(%s, %s, %s, %s, %s, \"%s\", \"%s\", %s, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), a[5].s.c_str(), a[6].s.c_str(), a[7].s.c_str(), (k[8]==1 && a[8].d->nx>=long(strlen(a[7].s.c_str())))?a[8].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1 && k[5]==2 && k[6]==2)
- mglprintf(out,1024,L"%s = gr->FitS(%s, %s, %s, %s, \"%s\", \"%s\", %s, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), a[5].s.c_str(), a[6].s.c_str(), (k[7]==1 && a[7].d->nx>=long(strlen(a[6].s.c_str())))?a[7].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==2 && k[5]==2)
- mglprintf(out,1024,L"%s = gr->FitS(%s, %s, %s, \"%s\", \"%s\", %s, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), a[5].s.c_str(), (k[6]==1 && a[6].d->nx>=long(strlen(a[5].s.c_str())))?a[6].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==2 && k[4]==2)
- mglprintf(out,1024,L"%s = gr->FitS(%s, %s, \"%s\", \"%s\", %s, \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), (k[5]==1 && a[5].d->nx>=long(strlen(a[4].s.c_str())))?a[5].s.c_str():"",opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_putsfit(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3)
- gr->PutsFit(mglPoint(a[0].v,a[1].v,a[2].v), k[3]==2?a[3].s.c_str():"", k[4]==2?a[4].s.c_str():"", k[5]==3?a[5].v:-1);
- else if(k[0]==3 && k[1]==3)
- gr->PutsFit(mglPoint(a[0].v,a[1].v), k[2]==2?a[2].s.c_str():"", k[3]==2?a[3].s.c_str():"", k[4]==3?a[4].v:-1);
- else return 1;
- return 0;
-}
-void mglc_putsfit(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_putsfit(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3 && k[2]==3)
- mglprintf(out,1024,L"gr->PutsFit(mglPoint(%g, %g, %g), \"%s\", \"%s\", %g);", a[0].v,a[1].v,a[2].v, k[3]==2?a[3].s.c_str():"", k[4]==2?a[4].s.c_str():"", k[5]==3?a[5].v:-1);
- else if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->PutsFit(mglPoint(%g, %g), \"%s\", \"%s\", %g);", a[0].v,a[1].v, k[2]==2?a[2].s.c_str():"", k[3]==2?a[3].s.c_str():"", k[4]==3?a[4].v:-1);
+ int res=0;
+ if(!strcmp(k,"nn")) gr->PutsFit(mglPoint(a[0].v,a[1].v));
+ else if(!strcmp(k,"nns")) gr->PutsFit(mglPoint(a[0].v,a[1].v), a[2].s.c_str());
+ else if(!strcmp(k,"nnss")) gr->PutsFit(mglPoint(a[0].v,a[1].v), a[2].s.c_str(),a[3].s.c_str());
+ else if(!strcmp(k,"nnssn")) gr->PutsFit(mglPoint(a[0].v,a[1].v), a[2].s.c_str(),a[3].s.c_str(),a[4].v);
+ else if(!strcmp(k,"nnn")) gr->PutsFit(mglPoint(a[0].v,a[1].v,a[2].v));
+ else if(!strcmp(k,"nnns")) gr->PutsFit(mglPoint(a[0].v,a[1].v,a[2].v), a[3].s.c_str());
+ else if(!strcmp(k,"nnnss")) gr->PutsFit(mglPoint(a[0].v,a[1].v,a[2].v), a[3].s.c_str(),a[4].s.c_str());
+ else if(!strcmp(k,"nnnssn"))gr->PutsFit(mglPoint(a[0].v,a[1].v,a[2].v), a[3].s.c_str(),a[4].s.c_str(),a[5].v);
+ else res = 1;
+ return res;
}
//-----------------------------------------------------------------------------
-int mgls_arrowsize(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_arrowsize(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3) gr->SetArrowSize(a[0].v);
- else return 1;
- return 0;
-}
-void mglc_arrowsize(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3) mglprintf(out,1024,L"gr->SetArrowSize(%g);", a[0].v);
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetArrowSize(a[0].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_rearrange(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==3)
- a[0].d->Rearrange(iint(a[1].v), k[2]==3?iint(a[2].v):0, k[3]==3?iint(a[3].v):0);
- else return 1;
- return 0;
-}
-void mglc_rearrange(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_rearrange(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==3)
- mglprintf(out,1024,L"%s.Rearrange(%d, %d, %d);",a[0].s.c_str(), iint(a[1].v), k[2]==3?iint(a[2].v):0, k[3]==3?iint(a[3].v):0);
+ int res=0;
+ if(!strcmp(k,"dn")) a[0].d->Rearrange(iint(a[1].v));
+ else if(!strcmp(k,"dnn")) a[0].d->Rearrange(iint(a[1].v), iint(a[2].v));
+ else if(!strcmp(k,"dnnn")) a[0].d->Rearrange(iint(a[1].v), iint(a[2].v), iint(a[3].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_ctick(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_ctick(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==2) gr->SetTickTempl('c',a[0].w.c_str());
- else if(k[0]==3) gr->SetTicks('c',a[0].v);
- else return 1;
- return 0;
-}
-void mglc_ctick(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==2) mglprintf(out,1024,L"gr->SetTickTempl('c',L\"%ls\");", a[0].w.c_str());
- else if(k[0]==3) mglprintf(out,1024,L"gr->SetTicks('c',%g);", a[0].v);
+ int res=0;
+ if(!strcmp(k,"s")) gr->SetTickTempl('c',a[0].w.c_str());
+ else if(!strcmp(k,"n")) gr->SetTicks('c',a[0].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_fplot(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==2 && k[1]==2 && k[2]==2)
- gr->FPlot(a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==2) gr->FPlot(a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_fplot(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_fplot(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==2 && k[1]==2 && k[2]==2)
- mglprintf(out,1024,L"gr->FPlot(\"%s\", \"%s\", \"%s\", \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==2)
- mglprintf(out,1024,L"gr->FPlot(\"%s\", \"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"s")) gr->FPlot(a[0].s.c_str(), "",opt);
+ else if(!strcmp(k,"ss")) gr->FPlot(a[0].s.c_str(), a[1].s.c_str(),opt);
+ else if(!strcmp(k,"sss")) gr->FPlot(a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), "",opt);
+ else if(!strcmp(k,"ssss")) gr->FPlot(a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_fsurf(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_fsurf(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==2 && k[1]==2 && k[2]==2) gr->FSurf(a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==2) gr->FSurf(a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_fsurf(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==2 && k[1]==2 && k[2]==2)
- mglprintf(out,1024,L"gr->FSurf(\"%s\", \"%s\", \"%s\", \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==2)
- mglprintf(out,1024,L"gr->FSurf(\"%s\", \"%s\", \"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"s")) gr->FSurf(a[0].s.c_str(), "",opt);
+ else if(!strcmp(k,"ss")) gr->FSurf(a[0].s.c_str(), a[1].s.c_str(),opt);
+ else if(!strcmp(k,"sss")) gr->FSurf(a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), "",opt);
+ else if(!strcmp(k,"ssss")) gr->FSurf(a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_fgets(mglGraph *gr, long , mglArg *a, int k[10], const char *) // NOTE don't use options -- Puts can be part of group
+int mgls_fgets(mglGraph *gr, long , mglArg *a, const char *k, const char *) // NOTE don't use options -- Puts can be part of group
{
+ int res=0;
char buf[1024];
FILE *fp;
- if((k[0]==3 && k[1]==3 && k[2]==3 && k[3]==2) || (k[0]==3 && k[1]==3 && k[2]==2))
+ if(!strncmp(k,"nns",3))
+ {
+ int i, n = (k[3]=='n'?iint(a[3].v):0);
+ fp = fopen(a[2].s.c_str(),"rt");
+ if(!fp)
+ {
+ gr->SetWarn(mglWarnOpen,a[2].s.c_str());
+ return res;
+}
+ for(i=0;i<n;i++) if(!fgets(buf,1024,fp)) continue;
+ memset(buf,0,1024);
+ if(!fgets(buf,1024,fp))
+ {
+ char b[32]; sprintf(b,"%d",n);
+ gr->SetWarn(mglWarnOpen,(a[2].s+" - line "+b).c_str());
+ fclose(fp); return res;
+ }
+ fclose(fp);
+ gr->Puts(mglPoint(a[0].v,a[1].v,NAN),buf, (k[4]=='s')?a[4].s.c_str():"", k[5]=='n'?a[5].v:-1);
+ }
+ else if(!strncmp(k,"nnns",4))
{
- int i, j=k[2]==3?1:0, n = (k[j+3]==3?iint(a[j+3].v):0);
- mreal vv = k[2]==3 ? a[2].v:NAN;
- fp = fopen(a[j+2].s.c_str(),"rt");
+ int i, n = (k[4]=='n'?iint(a[4].v):0);
+ fp = fopen(a[3].s.c_str(),"rt");
if(!fp)
{
- gr->SetWarn(mglWarnOpen,a[j+2].s.c_str());
- return 0;
+ gr->SetWarn(mglWarnOpen,a[3].s.c_str());
+ return res;
}
for(i=0;i<n;i++) if(!fgets(buf,1024,fp)) continue;
memset(buf,0,1024);
if(!fgets(buf,1024,fp))
{
char b[32]; sprintf(b,"%d",n);
- gr->SetWarn(mglWarnOpen,(a[j+2].s+" - line "+b).c_str());
- fclose(fp); return 0;
+ gr->SetWarn(mglWarnOpen,(a[3].s+" - line "+b).c_str());
+ fclose(fp); return res;
}
fclose(fp);
- gr->Puts(mglPoint(a[0].v,a[1].v,vv),buf, (k[j+4]==2)?a[j+4].s.c_str():"", k[j+5]==3?a[j+5].v:-1);
+ gr->Puts(mglPoint(a[0].v,a[1].v,a[2].v),buf, (k[5]=='s')?a[5].s.c_str():"", k[6]=='n'?a[6].v:-1);
}
- else return 1;
- return 0;
+ else res = 1; return res;
}
-void mglc_fgets(wchar_t [1024], long , mglArg *, int [10], const char *) {}
//-----------------------------------------------------------------------------
-int mgls_import(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_import(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2 && k[2]==2)
- a[0].d->Import(a[1].s.c_str(), a[2].s.c_str(), k[3]==3?a[3].v:0, k[4]==3?a[4].v:1);
- else return 1;
- return 0;
-}
-void mglc_import(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2 && k[2]==2)
- mglprintf(out,1024,L"%s->Import(%s, %s, %g, %g);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==3?a[3].v:0, k[4]==3?a[4].v:1);
+ int res=0;
+ if(!strcmp(k,"dss")) a[0].d->Import(a[1].s.c_str(), a[2].s.c_str());
+ else if(!strcmp(k,"dssnn")) a[0].d->Import(a[1].s.c_str(), a[2].s.c_str(), a[3].v,a[4].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_export(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2 && k[2]==2)
- a[0].d->Export(a[1].s.c_str(), a[2].s.c_str(), k[3]==3?a[3].v:0, k[4]==3?a[4].v:1);
- else return 1;
- return 0;
-}
-void mglc_export(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_export(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2 && k[2]==2)
- mglprintf(out,1024,L"%s->Export(%s, %s, %g, %g);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==3?a[3].v:0, k[4]==3?a[4].v:1);
+ int res=0;
+ if(!strcmp(k,"dss")) a[0].d->Export(a[1].s.c_str(), a[2].s.c_str());
+ else if(!strcmp(k,"dssnn")) a[0].d->Export(a[1].s.c_str(), a[2].s.c_str(), a[3].v,a[4].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_write(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_write(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- gr->WriteFrame(k[0]==2?a[0].s.c_str():"", "MathGL");
- return 0;
-}
-void mglc_write(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- mglprintf(out,1024,L"gr->WriteFrame(\"%s\", \"MathGL\");", k[0]==2?a[0].s.c_str():"");
+ int res=0;
+ if(!strcmp(k,"")) gr->WriteFrame("", "MathGL");
+ else if(!strcmp(k,"s")) gr->WriteFrame(a[0].s.c_str(), "MathGL");
+ return res;
}
//-----------------------------------------------------------------------------
-int mgls_region(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1)
- gr->Region(*(a[0].d),*(a[1].d),*(a[2].d),k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1)
- gr->Region(*(a[0].d),*(a[1].d),k[2]==2?a[2].s.c_str():"",opt);
- else return 1;
- return 0;
-}
-void mglc_region(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_region(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->Region(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else if(k[0]==1 && k[1]==1)
- mglprintf(out,1024,L"gr->Region(%s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"dd")) gr->Region(*(a[0].d),*(a[1].d),"",opt);
+ else if(!strcmp(k,"dds")) gr->Region(*(a[0].d),*(a[1].d),a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Region(*(a[0].d),*(a[1].d),*(a[2].d),"",opt);
+ else if(!strcmp(k,"ddds")) gr->Region(*(a[0].d),*(a[1].d),*(a[2].d),a[3].s.c_str(),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_envelop(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_envelop(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1) a[0].d->Envelop(k[1]==2 ? a[1].s.c_str()[0] : 'x');
- else return 1;
- return 0;
-}
-void mglc_envelop(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1) mglprintf(out,1024,L"%s.Envelop('%c');",a[0].s.c_str(), k[1]==2?a[1].s.c_str()[0]:'x');
+ int res=0;
+ if(!strcmp(k,"d")) a[0].d->Envelop();
+ else if(!strcmp(k,"ds")) a[0].d->Envelop(a[1].s.c_str()[0]);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_sew(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_sew(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1) a[0].d->Sew(k[1]==2?a[1].s.c_str():"xyz", k[2]==3 ? a[2].v : 2*M_PI);
- else return 1;
- return 0;
-}
-void mglc_sew(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1) mglprintf(out,1024,L"%s.Sew(\"%s\", %g);", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"xyz", k[2]==3 ? a[2].v : 2*M_PI);
+ int res=0;
+ if(!strcmp(k,"d")) a[0].d->Sew();
+ else if(!strcmp(k,"ds")) a[0].d->Sew(a[1].s.c_str());
+ else if(!strcmp(k,"dsn")) a[0].d->Sew(a[1].s.c_str(), a[2].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_evaluate(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- *(a[0].d) = a[1].d->Evaluate(*(a[2].d), *(a[3].d), *(a[4].d), k[5]!=3 || a[5].v!=0);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- *(a[0].d) = a[1].d->Evaluate(*(a[2].d), *(a[3].d), k[4]!=3 || a[4].v!=0);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- *(a[0].d) = a[1].d->Evaluate(*(a[2].d), k[3]!=3 || a[3].v!=0);
- else return 1;
- return 0;
-}
-void mglc_evaluate(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_evaluate(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1 && k[4]==1)
- mglprintf(out,1024,L"%s=%s.Evaluate(%s, %s, %s, %d);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), k[5]!=3 || a[5].v!=0);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"%s=%s.Evaluate(%s, %s, %d);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]!=3 || a[4].v!=0);
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"%s=%s.Evaluate(%s, %d);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]!=3 || a[3].v!=0);
+ int res=0;
+ if(!strcmp(k,"ddd")) *(a[0].d) = a[1].d->Evaluate(*(a[2].d));
+ else if(!strcmp(k,"dddn")) *(a[0].d) = a[1].d->Evaluate(*(a[2].d), a[3].v!=0);
+ else if(!strcmp(k,"dddd")) *(a[0].d) = a[1].d->Evaluate(*(a[2].d), *(a[3].d));
+ else if(!strcmp(k,"ddddn")) *(a[0].d) = a[1].d->Evaluate(*(a[2].d), *(a[3].d), a[4].v!=0);
+ else if(!strcmp(k,"ddddd")) *(a[0].d) = a[1].d->Evaluate(*(a[2].d), *(a[3].d), *(a[4].d));
+ else if(!strcmp(k,"dddddn"))*(a[0].d) = a[1].d->Evaluate(*(a[2].d), *(a[3].d), *(a[4].d), a[5].v!=0);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_solve(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_solve(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==3 && k[3]==2 && k[4]==1)
- *(a[0].d) = a[1].d->Solve(a[2].v, a[3].s[0], *(a[4].d), k[5]!=3 || a[5].v!=0);
- else if(k[0]==1 && k[1]==1 && k[2]==3 && k[3]==2)
- *(a[0].d) = a[1].d->Solve(a[2].v, a[3].s[0], k[4]!=3 || a[4].v!=0);
- else return 1;
- return 0;
-}
-void mglc_solve(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==3 && k[3]==2 && k[4]==1)
- mglprintf(out,1024,L"%s=%s.Solve(%g, '%c', %s, %d);", a[0].s.c_str(), a[1].s.c_str(), a[2].v, a[3].s[0], a[4].s.c_str(), k[5]!=3 || a[5].v!=0);
- else if(k[0]==1 && k[1]==1 && k[2]==3 && k[3]==2)
- mglprintf(out,1024,L"%s=%s.Solve(%g, '%c', %d);", a[0].s.c_str(), a[1].s.c_str(), a[2].v, a[3].s[0], k[4]!=3 || a[4].v!=0);
+ int res=0;
+ if(!strcmp(k,"ddns")) *(a[0].d) = a[1].d->Solve(a[2].v, a[3].s[0]);
+ else if(!strcmp(k,"ddnsn")) *(a[0].d) = a[1].d->Solve(a[2].v, a[3].s[0], a[4].v!=0);
+ else if(!strcmp(k,"ddnsd")) *(a[0].d) = a[1].d->Solve(a[2].v, a[3].s[0], *(a[4].d));
+ else if(!strcmp(k,"ddnsdn"))*(a[0].d) = a[1].d->Solve(a[2].v, a[3].s[0], *(a[4].d), a[5].v!=0);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_put(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[1]==3 && k[0]==1)
- a[0].d->Put(a[1].v, k[2]==3?iint(a[2].v):-1, k[3]==3?iint(a[3].v):-1, k[4]==3?iint(a[4].v):-1);
- else if(k[0]==1 && k[1]==1)
- a[0].d->Put(*(a[1].d), k[2]==3?iint(a[2].v):-1, k[3]==3?iint(a[3].v):-1, k[4]==3?iint(a[4].v):-1);
- else return 1;
- return 0;
-}
-void mglc_put(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_put(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==3)
- mglprintf(out,1024,L"%s.Put(%g, %d, %d, %d);", a[0].s.c_str(), a[1].v, k[2]==3?iint(a[2].v):-1, k[3]==3?iint(a[3].v):-1, k[4]==3?iint(a[4].v):-1);
- else if(k[0]==1 && k[1]==1)
- mglprintf(out,1024,L"%s.Put(%s, %d, %d, %d);", a[0].s.c_str(), a[1].s.c_str(), k[2]==3?iint(a[2].v):-1, k[3]==3?iint(a[3].v):-1, k[4]==3?iint(a[4].v):-1);
+ int res=0;
+ if(!strcmp(k,"dn")) a[0].d->Put(a[1].v);
+ else if(!strcmp(k,"dnn")) a[0].d->Put(a[1].v, iint(a[2].v));
+ else if(!strcmp(k,"dnnn")) a[0].d->Put(a[1].v, iint(a[2].v),iint(a[3].v));
+ else if(!strcmp(k,"dnnnn")) a[0].d->Put(a[1].v, iint(a[2].v),iint(a[3].v),iint(a[4].v));
+ else if(!strcmp(k,"dd")) a[0].d->Put(*(a[1].d));
+ else if(!strcmp(k,"ddn")) a[0].d->Put(*(a[1].d), iint(a[2].v));
+ else if(!strcmp(k,"ddnn")) a[0].d->Put(*(a[1].d), iint(a[2].v),iint(a[3].v));
+ else if(!strcmp(k,"ddnnn")) a[0].d->Put(*(a[1].d), iint(a[2].v),iint(a[3].v),iint(a[4].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_palette(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_palette(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==2) gr->SetPalette(a[0].s.c_str());
- else return 1;
- return 0;
-}
-void mglc_palette(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==2) mglprintf(out,1024,L"gr->SetPalette(\"%s\");", a[0].s.c_str());
+ int res=0;
+ if(!strcmp(k,"s")) gr->SetPalette(a[0].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_combine(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1)
- *(a[0].d) = a[1].d->Combine(*(a[2].d));
- else return 1;
- return 0;
-}
-void mglc_combine(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_combine(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"%s = %s.Combine(%s);",a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
+ int res=0;
+ if(!strcmp(k,"ddd")) *(a[0].d) = a[1].d->Combine(*(a[2].d));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_pde(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_pde(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==2 && k[2]==1 && k[3]==1)
- *(a[0].d) = gr->PDE(a[1].s.c_str(), *(a[2].d), *(a[3].d), k[4]==3?a[4].v:0.1, k[5]==3?a[5].v:100,opt);
- else return 1;
- return 0;
-}
-void mglc_pde(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]==1 && k[1]==2 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"%s = gr->PDE(\"%s\", %s, %s, %g, %g, \"%s\");",a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==3?a[4].v:0.1, k[5]==3?a[5].v:100,opt);
+ int res=0;
+ if(!strcmp(k,"dsdd"))
+ *(a[0].d) = gr->PDE(a[1].s.c_str(), *(a[2].d), *(a[3].d), 0.1,100,opt);
+ else if(!strcmp(k,"dsddn"))
+ *(a[0].d) = gr->PDE(a[1].s.c_str(), *(a[2].d), *(a[3].d), a[4].v,100,opt);
+ else if(!strcmp(k,"dsddnn"))
+ *(a[0].d) = gr->PDE(a[1].s.c_str(), *(a[2].d), *(a[3].d), a[4].v,a[5].v,opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_qo2d(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2 && k[2]==1 && k[3]==1 && k[4]==1)
- *(a[0].d) = mglData(true, mgl_qo2d_solve(a[1].s.c_str(), a[2].d, a[3].d, a[4].d, k[5]==3?a[5].v:1, k[6]==3?a[6].v:100, k[7]==1?a[7].d:0, k[8]==1?a[8].d:0));
- else return 1;
- return 0;
-}
-void mglc_qo2d(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_qo2d(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"%s = mglQO2d(\"%s\", %s, %s, %s, %g, %g, %s, %s);",a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), a[4].s.c_str(), k[5]==3?a[5].v:1, k[6]==3?a[6].v:100, k[7]==1?a[7].s.c_str():"NULL", k[8]==1?a[8].s.c_str():"NULL");
+ int res=0;
+ if(!strcmp(k,"dsddd"))
+ *(a[0].d) = mglData(true, mgl_qo2d_solve(a[1].s.c_str(), a[2].d, a[3].d, a[4].d, 1,100, 0,0));
+ else if(!strcmp(k,"dsdddn"))
+ *(a[0].d) = mglData(true, mgl_qo2d_solve(a[1].s.c_str(), a[2].d, a[3].d, a[4].d, a[5].v,100, 0,0));
+ else if(!strcmp(k,"dsdddnn"))
+ *(a[0].d) = mglData(true, mgl_qo2d_solve(a[1].s.c_str(), a[2].d, a[3].d, a[4].d, a[5].v,a[6].v, 0,0));
+ else if(!strcmp(k,"dsdddnndd"))
+ *(a[0].d) = mglData(true, mgl_qo2d_solve(a[1].s.c_str(), a[2].d, a[3].d, a[4].d, a[5].v,a[6].v, a[7].d,a[8].d));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_ray(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2 && k[2]==3 && k[3]==3 && k[4]==3 && k[5]==3 && k[6]==3 && k[7]==3)
- *(a[0].d) = mglRay(a[1].s.c_str(), mglPoint(a[2].v, a[3].v, a[4].v), mglPoint(a[5].v, a[6].v, a[7].v), k[8]==3?a[8].v:0.1, k[9]==3?a[9].v:10);
- else return 1;
- return 0;
-}
-void mglc_ray(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_ray(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2 && k[2]==3 && k[3]==3 && k[4]==3 && k[5]==3 && k[6]==3 && k[7]==3)
- mglprintf(out,1024,L"%s = mglRay(\"%s\", mglPoint(%g, %g, %g), mglPoint(%g, %g, %g), %g, %g);",a[0].s.c_str(), a[1].s.c_str(), a[2].v, a[3].v, a[4].v, a[5].v, a[6].v, a[7].v, k[8]==3?a[8].v:0.1, k[9]==3?a[9].v:10);
+ int res=0;
+ if(!strcmp(k,"dsnnnn"))
+ *(a[0].d) = mglRay(a[1].s.c_str(), mglPoint(a[2].v, a[3].v), mglPoint(a[4].v, a[5].v));
+ else if(!strcmp(k,"dsnnnnnn"))
+ *(a[0].d) = mglRay(a[1].s.c_str(), mglPoint(a[2].v, a[3].v, a[4].v), mglPoint(a[5].v, a[6].v, a[7].v));
+ else if(!strcmp(k,"dsnnnnnnn"))
+ *(a[0].d) = mglRay(a[1].s.c_str(), mglPoint(a[2].v, a[3].v, a[4].v), mglPoint(a[5].v, a[6].v, a[7].v), a[8].v);
+ else if(!strcmp(k,"dsnnnnnnnn"))
+ *(a[0].d) = mglRay(a[1].s.c_str(), mglPoint(a[2].v, a[3].v, a[4].v), mglPoint(a[5].v, a[6].v, a[7].v), a[8].v,a[9].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_jacobian(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- *(a[0].d) = mglJacobian(*(a[1].d), *(a[2].d), *(a[3].d));
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- *(a[0].d) = mglJacobian(*(a[1].d), *(a[2].d));
- else return 1;
- return 0;
-}
-void mglc_jacobian(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_jacobian(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"%s = mglJacobian(%s, %s, %s);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str());
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"%s = mglJacobian(%s, %s);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
+ int res=0;
+ if(!strcmp(k,"ddd")) *(a[0].d) = mglJacobian(*(a[1].d), *(a[2].d));
+ else if(!strcmp(k,"dddd")) *(a[0].d) = mglJacobian(*(a[1].d), *(a[2].d), *(a[3].d));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_tens(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
-{
- if(k[0]!=1 || k[1]!=1) return 1;
- else if(k[2]!=1) gr->Tens(*(a[0].d),*(a[1].d), k[2]==2?a[2].s.c_str():"",opt);
- else if(k[3]!=1) gr->Tens(*(a[0].d),*(a[1].d),*(a[2].d), k[3]==2?a[3].s.c_str():"",opt);
- else gr->Tens(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), k[4]==2?a[4].s.c_str():"",opt);
- return 0;
-}
-void mglc_tens(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+int mgls_tens(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]!=1 || k[1]!=1) return;
- else if(k[2]!=1)
- mglprintf(out,1024,L"gr->Tens(%s, %s, \"%s\", \"%s\");",a[0].s.c_str(), a[1].s.c_str(), k[2]==2?a[2].s.c_str():"",opt);
- else if(k[3]!=1)
- mglprintf(out,1024,L"gr->Tens(%s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), k[3]==2?a[3].s.c_str():"",opt);
- else mglprintf(out,1024,L"gr->Plot(%s, %s, %s, %s, \"%s\", \"%s\");", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(), k[4]==2?a[4].s.c_str():"",opt);
+ int res=0;
+ if(!strcmp(k,"dd")) gr->Tens(*(a[0].d),*(a[1].d), "",opt);
+ else if(!strcmp(k,"dds")) gr->Tens(*(a[0].d),*(a[1].d), a[2].s.c_str(),opt);
+ else if(!strcmp(k,"ddd")) gr->Tens(*(a[0].d),*(a[1].d),*(a[2].d), "",opt);
+ else if(!strcmp(k,"ddds")) gr->Tens(*(a[0].d),*(a[1].d),*(a[2].d), a[3].s.c_str(),opt);
+ else if(!strcmp(k,"dddd")) gr->Tens(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), "",opt);
+ else if(!strcmp(k,"dddds")) gr->Tens(*(a[0].d),*(a[1].d),*(a[2].d),*(a[3].d), a[4].s.c_str(),opt);
+ return res;
}
//-----------------------------------------------------------------------------
-int mgls_ticklen(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_ticklen(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3) gr->SetTickLen(a[0].v, k[1]==3?a[1].v:1); else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"n")) gr->SetTickLen(a[0].v);
+ else if(!strcmp(k,"nn")) gr->SetTickLen(a[0].v, a[1].v);
+ else res = 1; return res;
}
-void mglc_ticklen(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ if(k[0]==3) mglprintf(out,1024,L"gr->SetTickLen(%g,%g);", a[0].v, k[1]==3?a[1].v:1); }
//-----------------------------------------------------------------------------
-int mgls_axisstl(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_axisstl(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==2)
- gr->SetAxisStl(a[0].s.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==2?a[2].s.c_str():"");
- else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"")) gr->SetAxisStl();
+ else if(!strcmp(k,"s")) gr->SetAxisStl(a[0].s.c_str());
+ else if(!strcmp(k,"ss")) gr->SetAxisStl(a[0].s.c_str(), a[1].s.c_str());
+ else if(!strcmp(k,"sss")) gr->SetAxisStl(a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
+ else res = 1; return res;
}
-void mglc_axisstl(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ if(k[0]==2) mglprintf(out,1024,L"gr->SetAxisStl(\"%s\",\"%s\",\"%s\");", a[0].s.c_str(), k[1]==2?a[1].s.c_str():"", k[2]==2?a[2].s.c_str():""); }
//-----------------------------------------------------------------------------
-int mgls_ranges(mglGraph *gr, long n, mglArg *a, int k[10], const char *)
+int mgls_ranges(mglGraph *gr, long n, mglArg *a, const char *k, const char *)
{
- register int i;
- if(n==6)
- {
- bool ok=true;
- for(i=0;i<6;i++) if(k[i]!=3) ok = false;
- if(ok) gr->SetRanges(a[0].v,a[1].v,a[2].v, a[3].v,a[4].v,a[5].v);
- else return 1;
- }
- else if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3)
- gr->SetRanges(a[0].v,a[1].v, a[2].v,a[3].v);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- gr->SetRanges(*(a[0].d),*(a[1].d), *(a[2].d),*(a[3].d));
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- gr->SetRanges(*(a[0].d),*(a[1].d), *(a[2].d));
- else if(k[0]==1 && k[1]==1)
- gr->SetRanges(*(a[0].d),*(a[1].d));
- else return 1;
- return 0;
-}
-void mglc_ranges(wchar_t out[1024], long n, mglArg *a, int k[10], const char *)
-{
- register int i;
- if(n==6)
- {
- bool ok=true;
- for(i=0;i<6;i++) if(k[i]!=3) ok = false;
- if(ok) mglprintf(out,1024,L"gr->SetRanges(%g, %g, %g, %g, %g, %g);", a[0].v, a[1].v, a[2].v, a[3].v, a[4].v, a[5].v);
- }
- else if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3)
- mglprintf(out,1024,L"gr->SetRanges(%g, %g, %g, %g);", a[0].v, a[1].v, a[2].v, a[3].v);
- else if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->SetRanges(%s, %s, %s, %s);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str());
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"gr->SetRanges(%s, %s, %s);", a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
- else if(k[0]==1 && k[1]==1)
- mglprintf(out,1024,L"gr->SetRanges(%s, %s);", a[0].s.c_str(), a[1].s.c_str());
+ int res=0;
+ if(!strcmp(k,"nnnn")) gr->SetRanges(a[0].v,a[1].v, a[2].v,a[3].v);
+ else if(!strcmp(k,"nnnnnn"))gr->SetRanges(a[0].v,a[1].v,a[2].v, a[3].v,a[4].v,a[5].v);
+ else if(!strcmp(k,"dd")) gr->SetRanges(*(a[0].d),*(a[1].d));
+ else if(!strcmp(k,"ddd")) gr->SetRanges(*(a[0].d),*(a[1].d), *(a[2].d));
+ else if(!strcmp(k,"dddd")) gr->SetRanges(*(a[0].d),*(a[1].d), *(a[2].d),*(a[3].d));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_adjust(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{ gr->Adjust(k[0]==2?a[0].s.c_str():"xyzc"); return 0; }
-void mglc_adjust(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{ mglprintf(out,1024,L"gr->Adjust(\"%s\");",k[0]==2?a[0].s.c_str():"xyzc"); }
-//-----------------------------------------------------------------------------
-int mgls_insert(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_adjust(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) a[0].d->Insert(a[1].s.c_str()[0], k[2]==3 ? iint(a[2].v):0, k[3]==3 ? iint(a[3].v):1);
- else return 1;
- return 0;
-}
-void mglc_insert(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2) mglprintf(out,1024,L"%s.Insert('%c', %d, %d);",
- a[0].s.c_str(), a[1].s.c_str()[0], k[2]==3 ? iint(a[2].v):0, k[3]==3 ? iint(a[3].v):1);
+ int res=0;
+ if(!strcmp(k,"")) gr->Adjust();
+ else if(!strcmp(k,"s")) gr->Adjust(a[0].s.c_str());
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_delete(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_insert(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2) a[0].d->Delete(a[1].s.c_str()[0], k[2]==3 ? iint(a[2].v):0, k[3]==3 ? iint(a[3].v):1);
- else return 1;
- return 0;
-}
-void mglc_delete(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2) mglprintf(out,1024,L"%s.Delete('%c', %d, %d);",
- a[0].s.c_str(), a[1].s.c_str()[0], k[2]==3 ? iint(a[2].v):0, k[3]==3 ? iint(a[3].v):1);
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->Insert(a[1].s.c_str()[0]);
+ else if(!strcmp(k,"dsn")) a[0].d->Insert(a[1].s.c_str()[0], iint(a[2].v));
+ else if(!strcmp(k,"dsnn")) a[0].d->Insert(a[1].s.c_str()[0], iint(a[2].v), iint(a[3].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_roll(mglGraph *, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==2 && k[2]==3) a[0].d->Roll(a[1].s.c_str()[0], iint(a[2].v));
- else return 1;
- return 0;
-}
-void mglc_roll(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_delete(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==2 && k[2]==3) mglprintf(out,1024,L"%s.Roll('%c', %d);",
- a[0].s.c_str(), a[1].s.c_str()[0], iint(a[2].v));
+ int res=0;
+ if(!strcmp(k,"ds")) a[0].d->Delete(a[1].s.c_str()[0]);
+ else if(!strcmp(k,"dsn")) a[0].d->Delete(a[1].s.c_str()[0], iint(a[2].v));
+ else if(!strcmp(k,"dsnn")) a[0].d->Delete(a[1].s.c_str()[0], iint(a[2].v), iint(a[3].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_datagrid(mglGraph *gr, long , mglArg *a, int k[10], const char *opt)
+int mgls_roll(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- gr->DataGrid(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d),opt);
- else return 1;
- return 0;
+ int res=0;
+ if(!strcmp(k,"dsn")) a[0].d->Roll(a[1].s.c_str()[0], iint(a[2].v));
+ else res = 1; return res;
}
-void mglc_datagrid(wchar_t out[1024], long , mglArg *a, int k[10], const char *opt)
+//-----------------------------------------------------------------------------
+int mgls_datagrid(mglGraph *gr, long , mglArg *a, const char *k, const char *opt)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"gr->DataGrid(%s, %s, %s, %s, \"%s\");",a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str(),opt);
+ int res=0;
+ if(!strcmp(k,"dddd")) gr->DataGrid(*(a[0].d), *(a[1].d), *(a[2].d), *(a[3].d),opt);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_triangulate(mglGraph *, long , mglArg *a, int k[10], const char *)
+int mgls_triangulate(mglGraph *, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- *(a[0].d) = mglTriangulation(*(a[1].d), *(a[2].d), *(a[3].d));
- else if(k[0]==1 && k[1]==1 && k[2]==1)
+ int res=0;
+ if(!strcmp(k,"ddd"))
*(a[0].d) = mglTriangulation(*(a[1].d), *(a[2].d));
- else return 1;
- return 0;
-}
-void mglc_triangulate(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==1 && k[1]==1 && k[2]==1 && k[3]==1)
- mglprintf(out,1024,L"%s = mglTriangulation(%s, %s, %s);",a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str(), a[3].s.c_str());
- else if(k[0]==1 && k[1]==1 && k[2]==1)
- mglprintf(out,1024,L"%s = mglTriangulation(%s, %s);",a[0].s.c_str(), a[1].s.c_str(), a[2].s.c_str());
+ else if(!strcmp(k,"dddd"))
+ *(a[0].d) = mglTriangulation(*(a[1].d), *(a[2].d), *(a[3].d));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_view(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3)
- gr->View(a[0].v, a[1].v, k[2]==3?a[2].v:0);
- else return 1;
- return 0;
-}
-void mglc_view(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_view(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3)
- mglprintf(out,1024,L"gr->View(%g, %g, %g);", a[0].v, a[1].v, k[2]==3?a[2].v:0);
+ int res=0;
+ if(!strcmp(k,"nn")) gr->View(a[0].v, a[1].v);
+ else if(!strcmp(k,"nnn")) gr->View(a[0].v, a[1].v, a[2].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_zoom(mglGraph *gr, long , mglArg *a, int k[10], const char *)
+int mgls_zoom(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3)
- gr->Zoom(a[0].v, a[1].v, a[2].v, a[3].v);
- else return 1;
- return 0;
-}
-void mglc_zoom(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
-{
- if(k[0]==3 && k[1]==3 && k[2]==3 && k[3]==3)
- mglprintf(out,1024,L"gr->Zoom(%g, %g, %g, %g);", a[0].v, a[1].v, a[2].v, a[3].v);
+ int res=0;
+ if(!strcmp(k,"nnnn")) gr->Zoom(a[0].v, a[1].v, a[2].v, a[3].v);
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
-int mgls_zoomaxis(mglGraph *gr, long , mglArg *a, int k[10], const char *)
-{
- int i;
- for(i=0;i<8;i++) if(k[i]!=3) break;
- if(i==8) gr->ZoomAxis(mglPoint(a[0].v, a[1].v, a[2].v, a[3].v), mglPoint(a[4].v, a[5].v, a[6].v, a[7].v));
- else if(i==6) gr->ZoomAxis(mglPoint(a[0].v, a[1].v, a[2].v), mglPoint(a[3].v, a[4].v, a[5].v));
- else if(i==4) gr->ZoomAxis(mglPoint(a[0].v, a[1].v), mglPoint(a[2].v, a[3].v));
- else if(i==2) gr->ZoomAxis(mglPoint(a[0].v), mglPoint(a[1].v));
- else return 1;
- return 0;
-}
-void mglc_zoomaxis(wchar_t out[1024], long , mglArg *a, int k[10], const char *)
+int mgls_zoomaxis(mglGraph *gr, long , mglArg *a, const char *k, const char *)
{
- int i;
- for(i=0;i<8;i++) if(k[i]!=3) break;
- if(i==8)
- mglprintf(out,1024,L"gr->ZoomAxis(mglPoint(%g, %g, %g, %g),mglPoint(%g, %g, %g, %g));", a[0].v, a[1].v, a[2].v, a[3].v, a[4].v, a[5].v, a[6].v, a[7].v);
- else if(i==6)
- mglprintf(out,1024,L"gr->ZoomAxis(mglPoint(%g, %g, %g),mglPoint(%g, %g, %g));", a[0].v, a[1].v, a[2].v, a[3].v, a[4].v, a[5].v);
- else if(i==4)
- mglprintf(out,1024,L"gr->ZoomAxis(mglPoint(%g, %g),mglPoint(%g, %g));", a[0].v, a[1].v, a[2].v, a[3].v);
- else if(i==2)
- mglprintf(out,1024,L"gr->ZoomAxis(mglPoint(%g),mglPoint(%g));", a[0].v, a[1].v);
+ int res=0;
+ if(!strcmp(k,"nn")) gr->ZoomAxis(mglPoint(a[0].v), mglPoint(a[1].v));
+ else if(!strcmp(k,"nnnn")) gr->ZoomAxis(mglPoint(a[0].v, a[1].v), mglPoint(a[2].v, a[3].v));
+ else if(!strcmp(k,"nnnnnn")) gr->ZoomAxis(mglPoint(a[0].v, a[1].v, a[2].v), mglPoint(a[3].v, a[4].v, a[5].v));
+ else if(!strcmp(k,"nnnnnnnn")) gr->ZoomAxis(mglPoint(a[0].v, a[1].v, a[2].v, a[3].v), mglPoint(a[4].v, a[5].v, a[6].v, a[7].v));
+ else res = 1; return res;
}
//-----------------------------------------------------------------------------
mglCommand mgls_base_cmd[] = {
- {"addlegend","Add legend entry","addlegend 'txt' 'fmt'", mgls_addlegend, mglc_addlegend,15},
- {"addto","Add data or number","addto Var Dat|Var num", mgls_addto, mglc_addto,3},
- {"adjust","Adjust ticks for best view","adjust ['dir']", mgls_adjust, mglc_adjust,14},
- {"alpha","Switch on/off transparency","alpha [val]", mgls_alpha, mglc_alpha,2},
- {"alphadef","Set default transparency","alphadef val", mgls_alphadef, mglc_alphadef,2},
- {"ambient","Set ambient light brightness","ambient val", mgls_ambient, mglc_ambient,2},
- {"area","Draw area plot for 1D data","area Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_area, mglc_area,7},
- {"arrowsize","Set size of arrows","arrowsize val", mgls_arrowsize, mglc_arrowsize,2},
- {"ask","Define parameter from user input","ask $N 'question'", 0, 0, 6},
- {"aspect","Set aspect ration","aspect valx valy [valz]", mgls_aspect, mglc_aspect,5},
- {"axial","Draw surfaces of contour lines rotation","axial Zdat ['fmt' num]|Xdat Ydat Zdat ['fmt' num]", mgls_axial, mglc_axial,8},
- {"axis","Setup or draw axis","axis ['dir' 'fmt']|'fx' 'fy' 'fz' ['fc']|how", mgls_axis, mglc_axis,12},
- {"axisstl","Set axis and tick style","axisstl 'stl' ['sub']", mgls_axisstl, mglc_axisstl,14},
- {"ball","Draw point (ball)","ball posx posy ['fmt']|posx posy posz ['fmt']", mgls_ball, mglc_ball,13},
- {"barh","Draw horizontal bars for 1D data", "barh Ydat ['fmt' above]|Xdat Ydat ['fmt' above]", mgls_barh, mglc_barh,7},
- {"bars","Draw bars for 1D data","bars Ydat ['fmt' above]|Xdat Ydat ['fmt' above]|Xdat Ydat Zdat ['fmt' above]", mgls_bars, mglc_bars,7},
- {"barwidth","Set default bars width","barwidth val", mgls_barwidth, mglc_barwidth,2},
- {"beam","Draw quasioptical beam","beam Tr G1 G2 Adat r ['sch' flag num] ", mgls_beam, mglc_beam,9},
- {"belt","Draw belts","belt Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_belt, mglc_belt,8},
- {"box","Draw bounding box","box ['fmt' ticks]", mgls_box, mglc_box,12},
- {"boxplot","Draw boxplot for 2D data","boxplot Ydat ['fmt']|Xdat Ydat ['fmt']", mgls_boxplot, mglc_boxplot,7},
- {"boxs","Draw boxes","boxs Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_boxs, mglc_boxs,8},
- {"break","Break for-cycle","break", 0, 0, 6},
- {"call","Execute script in external file","call 'name' [args]", 0, 0, 6},
- {"candle","Draw candlestick chart","candle candle Vdat1 ['fmt']|Vdat1 Vdat2 ['fmt']|Vdat1 Ydat1 Ydat2 ['fmt']||Vdat1 Vdat2 Ydat1 Ydat2 ['fmt']|Xdat Vdat1 Vdat2 Ydat1 Ydat2 ['fmt']", mgls_candle, mglc_candle,7},
- {"chart","Draw chart","chart Dat ['fmt']", mgls_chart, mglc_chart,7},
- {"chdir","Change current directory","chdir 'path'", mgls_chdir, mglc_chdir,2},
- {"circle","Draw circle","circle x y r ['fmt']|x y z r ['fmt']", mgls_circle, mglc_circle,13},
- {"clean","Remove duplicate rows","clean Dat id", mgls_clean, mglc_clean,3},
- {"clearlegend","Clear legend antries","clearlegend", mgls_clearlegend, mglc_clearlegend,15},
- {"clf","Clear picture","clf", mgls_clf, mglc_clf,12},
- {"cloud","Draw cloud","cloud Adat ['fmt']|Xdat Ydat Zdat Adat ['fmt']", mgls_cloud, mglc_cloud,9},
- {"colorbar","Draw colorbar","colorbar ['fmt' pos]|Vdat ['fmt' pos]|'sch' pos x y [w h]|Vdat 'sch' pos x y [w h]", mgls_colorbar, mglc_colorbar,12},
- {"column","Get data column filled by formula on column ids","column Res Dat 'eq'", mgls_column, mglc_column,4},
- {"columnplot","Set position of plot inside cell of column", "columnplot num ind [d]", mgls_columnplot, mglc_columnplot,5},
- {"combine", "Direct multiplication of arrays", "combine Res Adat Bdat", mgls_combine, mglc_combine,4},
- {"cone","Draw cone","cone x1 y1 z1 x2 y2 z2 r1 [r2 'fmt' edge]", mgls_cone, mglc_cone,13},
- {"cones","Draw cones for 1D data","cones Ydat ['fmt' above]|Xdat Ydat ['fmt' above]|Xdat Ydat Zdat ['fmt' above]", mgls_cones, mglc_cones,7},
- {"cont","Draw contour lines","cont Zdat ['fmt' num zpos]|Vdat Zdat ['fmt' zpos]|Xdat Ydat Zdat ['fmt' num zpos]|Vdat Xdat Ydat Zdat ['fmt' zpos]", mgls_cont, mglc_cont,8},
- {"cont3","Draw contour lines for 3D data","cont3 Adat 'dir' [val 'fmt' num]|Vdat Adat 'dir' [val 'fmt']|Xdat Ydat Zdat Adat 'dir' [val 'fmt' num]|Vdat Xdat Ydat Zdar Adat 'dir' [val 'fmt']", mgls_cont3, mglc_cont3,9},
- {"contd","Draw solid contours with manual colors","contd Zdat ['fmt' num zpos]|Vdat Zdat ['fmt' zpos]|Xdat Ydat Zdat ['fmt' num zpos]|Vdat Xdat Ydat Zdat ['fmt' zpos]", mgls_contd, mglc_contd,8},
- {"contf","Draw solid contours","contf Zdat ['fmt' num zpos]|Vdat Zdat ['fmt' zpos]|Xdat Ydat Zdat ['fmt' num zpos]|Vdat Xdat Ydat Zdat ['fmt' zpos]", mgls_contf, mglc_contf,8},
- {"contf3","Draw solid contour lines for 3D data","contf3 Adat 'dir' [val 'fmt' num]|Vdat Adat 'dir' [val 'fmt']|Xdat Ydat Zdat Adat 'dir' [val 'fmt' num]|Vdat Xdat Ydat Zdar Adat 'dir' [val 'fmt']", mgls_contf3, mglc_contf3,9},
- {"contfx","Draw solid contour lines at x-slice (or x-plane)","contfx Dat ['fmt' pos num]", mgls_contfx, mglc_contfx,0},
- {"contfy","Draw solid contour lines at y-slice (or y-plane)","contfy Dat ['fmt' pos num]", mgls_contfy, mglc_contfy,0},
- {"contfz","Draw solid contour lines at z-slice (or z-plane)","contfz Dat ['fmt' pos num]", mgls_contfz, mglc_contfz,0},
- {"continue","Skip commands and iterate for-cycle again","continue", 0, 0, 6},
- {"contv","Draw contour tubes","contv Zdat ['fmt' num zpos]|Vdat Zdat ['fmt' zpos]|Xdat Ydat Zdat ['fmt' num zpos]|Vdat Xdat Ydat Zdat ['fmt' zpos]", mgls_contv, mglc_contv,0},
- {"contx","Draw contour lines at x-slice (or x-plane)","contx Dat ['fmt' pos num]", mgls_contx, mglc_contx,0},
- {"conty","Draw contour lines at y-slice (or y-plane)","conty Dat ['fmt' pos num]", mgls_conty, mglc_conty,0},
- {"contz","Draw contour lines at z-slice (or z-plane)","contz Dat ['fmt' pos num]", mgls_contz, mglc_contz,0},
- {"copy","Copy data from another variable","copy Dat1 Dat2 ['eq' onaxis]", mgls_copy, mglc_copy,4},
- {"cosfft","Cos-Fourier transform at some direction","cosfft Dat 'dir'", mgls_cosfft, mglc_cosfft,16},
- {"crange","Set color range","crange Dat [sym] | c1 c2", mgls_crange, mglc_crange,14},
- {"crop","Crop edge of data","crop Dat n1 n2 'dir'", mgls_crop, mglc_crop,16},
- {"crust","Draw reconstructed surface for arbitrary data points","crust Xdat Ydat Zdat ['fmt']", mgls_crust, mglc_crust,0},
- {"ctick","Set ticks for colorbar","ctick 'tmpl' | dx", mgls_ctick, mglc_ctick,14},
- {"cumsum","Cumulative summation","cumsum Dat 'dir'", mgls_cumsum, mglc_cumsum,16},
- {"curve","Draw curve","curve x1 y1 dx1 dy1 x2 y2 dx2 dy2 ['fmt']|x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2 ['fmt']", mgls_curve, mglc_curve,13},
- {"cut","Setup plot points cutting","cut val|x1 y1 z1 x2 y2 z2|'cond'", mgls_cut, mglc_cut,2},
- {"datagrid","Fill data by triangulated values","datagrid Var Xdat Ydat Zdat", mgls_datagrid, mglc_datagrid,3},
- {"datas","Print list of data names in HDF file","datas 'fname'", mgls_datas, mglc_datas,3},
- {"defchr","Define parameter as character","defchr $N val", 0, 0, 6},
- {"define","Define constant or parameter","define $N sth | Var val", 0, 0, 6},
- {"defnum","Define parameter as numerical value","defnum $N val", 0, 0, 6},
- {"defpal","Define parameter as palette color","defpal $N val", 0, 0, 6},
- {"delete","Delete slice of data","delete Dat 'dir' [pos=0 num=1]", mgls_delete, mglc_delete,3},
- {"dens","Draw density plot","dens Zdat ['fmt' zpos]|Xdat Ydat Zdat ['fmt' zpos]", mgls_dens, mglc_dens,8},
- {"dens3","Draw density plot at slices of 3D data","dens3 Adat 'dir' [pos 'fmt']|Xdat Ydat Zdat Adat 'dir' [pos 'fmt']", mgls_dens3, mglc_dens3,9},
- {"densx","Draw density plot at x-slice (or x-plane)","densx Dat ['fmt' pos]", mgls_densx, mglc_densx,0},
- {"densy","Draw density plot at y-slice (or y-plane)","densy Dat ['fmt' pos]", mgls_densy, mglc_densy,0},
- {"densz","Draw density plot at z-slice (or z-plane)","densz Dat ['fmt' pos]", mgls_densz, mglc_densz,0},
- {"dew","Draw dew plot","dew Udat Vdat ['fmt']|Xdat Ydat Udat Vdat ['fmt']", mgls_dew, mglc_dew,11},
- {"diff","Numerically differentiate data","diff Var 'dir'", mgls_diff, mglc_diff,16},
- {"diff2","Numerically double differentiate data","diff2 Var 'dir'", mgls_diff2, mglc_diff2,16},
- {"divto","Divide by data or number","divto Var Dat|Var num", mgls_divto, mglc_divto,3},
- {"dots","Draw dots for arbitrary data points","dots Xdat Ydat Zdat ['fmt']", mgls_dots, mglc_dots,9},
- {"drop","Draw drop","drop x0 y0 dx dy r ['col' sh asp]|x0 y0 z0 dx dy dz r ['col' sh asp]", mgls_drop, mglc_drop,13},
- {"ellipse","Draw ellipse","ellipse x1 y1 x2 y2 r ['fmt']|x1 y1 z1 x2 y2 z2 r ['fmt']", mgls_ellipse, mglc_ellipse,13},
- {"else","Execute if condition is false","else", 0, 0, 6},
- {"elseif","Conditional operator","elseif val|Dat ['cond']", 0, 0, 6},
- {"endif","Finish if/else block","endif", 0, 0, 6},
- {"envelop","Find envelop for the data","envelop Dat ['dir']", mgls_envelop, mglc_envelop,16},
- {"errbox","Draw error box","errbox x y ex ey ['fmt']|x y z ex ey ez ['fmt']", mgls_errbox, mglc_errbox,13},
- {"error","Draw error boxes","error Ydat Yerr ['fmt']|Xdat Ydat Yerr ['fmt']|Xdat Ydat Xerr Yerr ['fmt']", mgls_error, mglc_error,7},
- {"evaluate","Evaluate (interpolate) values of array Dat at points i=idat,j=jdat,k=kdat","evaluate Res Dat Idat [norm]|Res Dat Idat Jdat [norm]|Res Dat Idat Jdat Kdat [norm]", mgls_evaluate, mglc_evaluate,4},
- {"export","Export data to PNG picture","export Dat 'fname' 'sch' [v1 v2]", mgls_import, mglc_import,3},
- {"extend","Extend data array","extend Dat dim1 [dim2]", mgls_extend, mglc_extend,3},
- {"face","Draw face (quadrangle)","face x1 y1 x2 y2 x3 y3 x4 y4 ['fmt']|x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4 ['fmt']", mgls_face, mglc_face,13},
- {"facenum","Set number of visible faces","facenum val", mgls_facenum, mglc_facenum,2},
- {"facex","Draw face perpendicular to x-axis","facex x0 y0 z0 wy wz ['fmt' d1 d2]", mgls_facex, mglc_facex,13},
- {"facey","Draw face perpendicular to y-axis","facex x0 y0 z0 wx wz ['fmt' d1 d2]", mgls_facey, mglc_facey,13},
- {"facez","Draw face perpendicular to z-axis","facex x0 y0 z0 wy wz ['fmt' d1 d2]", mgls_facez, mglc_facez,13},
- {"fall","Draw waterfalls","fall Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_fall, mglc_fall,8},
- {"fgets","Print string from file","fgets x y z 'fname' [pos=0 'fmt' size]|x y z 'fname' [pos=0 'fmt' size]", mgls_fgets, mglc_fgets,15},
- {"fill","Fill data linearly in range [v1, v2]","fill Var v1 v2 ['dir'] | Var 'eq' [Vdat Wdat]", mgls_fill, mglc_fill,3},
- {"fillsample","Fill x-,k-samples for transforms","fillsample Var 'how'", mgls_fillsample, mglc_fillsample,3},
- {"fit","Fit data to formula","fit Res A 'eq' 'var' [Ini]|Res X A 'eq' 'var' [Ini]|Res X Y A 'eq' 'var' [Ini]|Res X Y Z A 'eq' 'var' [Ini]", mgls_fit, mglc_fit,4},
- {"fits","Fit data to formula","fits Res A S 'eq' 'var' [Ini]|Res X A S 'eq' 'var' [Ini]|Res X Y A S 'eq' 'var' [Ini]|Res X Y Z A S 'eq' 'var' [Ini]", mgls_fits, mglc_fits,4},
+ {"addlegend","Add legend entry","addlegend 'txt' 'fmt'", mgls_addlegend,15},
+ {"addto","Add data or number","addto Var Dat|Var num", mgls_addto ,3},
+ {"adjust","Adjust ticks for best view","adjust ['dir']", mgls_adjust ,14},
+ {"alpha","Switch on/off transparency","alpha [val]", mgls_alpha ,2},
+ {"alphadef","Set default transparency","alphadef val", mgls_alphadef ,2},
+ {"ambient","Set ambient light brightness","ambient val", mgls_ambient ,2},
+ {"area","Draw area plot for 1D data","area Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_area ,7},
+ {"arrowsize","Set size of arrows","arrowsize val", mgls_arrowsize ,2},
+ {"ask","Define parameter from user input","ask $N 'question'", 0, 6},
+ {"aspect","Set aspect ration","aspect valx valy [valz]", mgls_aspect ,5},
+ {"axial","Draw surfaces of contour lines rotation","axial Zdat ['fmt' num]|Xdat Ydat Zdat ['fmt' num]", mgls_axial ,8},
+ {"axis","Setup or draw axis","axis ['dir' 'fmt']|'fx' 'fy' 'fz' ['fc']|how", mgls_axis ,12},
+ {"axisstl","Set axis and tick style","axisstl 'stl' ['sub']", mgls_axisstl ,14},
+ {"ball","Draw point (ball)","ball posx posy ['fmt']|posx posy posz ['fmt']", mgls_ball ,13},
+ {"barh","Draw horizontal bars for 1D data", "barh Ydat ['fmt' above]|Xdat Ydat ['fmt' above]", mgls_barh ,7},
+ {"bars","Draw bars for 1D data","bars Ydat ['fmt' above]|Xdat Ydat ['fmt' above]|Xdat Ydat Zdat ['fmt' above]", mgls_bars ,7},
+ {"barwidth","Set default bars width","barwidth val", mgls_barwidth ,2},
+ {"beam","Draw quasioptical beam","beam Tr G1 G2 Adat r ['sch' flag num] ", mgls_beam ,9},
+ {"belt","Draw belts","belt Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_belt ,8},
+ {"box","Draw bounding box","box ['fmt' ticks]", mgls_box ,12},
+ {"boxplot","Draw boxplot for 2D data","boxplot Ydat ['fmt']|Xdat Ydat ['fmt']", mgls_boxplot ,7},
+ {"boxs","Draw boxes","boxs Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_boxs ,8},
+ {"break","Break for-cycle","break", 0, 6},
+ {"call","Execute script in external file","call 'name' [args]", 0, 6},
+ {"candle","Draw candlestick chart","candle candle Vdat1 ['fmt']|Vdat1 Vdat2 ['fmt']|Vdat1 Ydat1 Ydat2 ['fmt']||Vdat1 Vdat2 Ydat1 Ydat2 ['fmt']|Xdat Vdat1 Vdat2 Ydat1 Ydat2 ['fmt']", mgls_candle ,7},
+ {"chart","Draw chart","chart Dat ['fmt']", mgls_chart ,7},
+ {"chdir","Change current directory","chdir 'path'", mgls_chdir ,2},
+ {"circle","Draw circle","circle x y r ['fmt']|x y z r ['fmt']", mgls_circle ,13},
+ {"clean","Remove duplicate rows","clean Dat id", mgls_clean ,3},
+ {"clearlegend","Clear legend antries","clearlegend", mgls_clearlegend ,15},
+ {"clf","Clear picture","clf", mgls_clf ,12},
+ {"cloud","Draw cloud","cloud Adat ['fmt']|Xdat Ydat Zdat Adat ['fmt']", mgls_cloud ,9},
+ {"colorbar","Draw colorbar","colorbar ['fmt' pos]|Vdat ['fmt' pos]|'sch' pos x y [w h]|Vdat 'sch' pos x y [w h]", mgls_colorbar ,12},
+ {"column","Get data column filled by formula on column ids","column Res Dat 'eq'", mgls_column ,4},
+ {"columnplot","Set position of plot inside cell of column", "columnplot num ind [d]", mgls_columnplot ,5},
+ {"combine", "Direct multiplication of arrays", "combine Res Adat Bdat", mgls_combine ,4},
+ {"cone","Draw cone","cone x1 y1 z1 x2 y2 z2 r1 [r2 'fmt' edge]", mgls_cone ,13},
+ {"cones","Draw cones for 1D data","cones Ydat ['fmt' above]|Xdat Ydat ['fmt' above]|Xdat Ydat Zdat ['fmt' above]", mgls_cones ,7},
+ {"cont","Draw contour lines","cont Zdat ['fmt' num zpos]|Vdat Zdat ['fmt' zpos]|Xdat Ydat Zdat ['fmt' num zpos]|Vdat Xdat Ydat Zdat ['fmt' zpos]", mgls_cont ,8},
+ {"cont3","Draw contour lines for 3D data","cont3 Adat 'dir' [val 'fmt' num]|Vdat Adat 'dir' [val 'fmt']|Xdat Ydat Zdat Adat 'dir' [val 'fmt' num]|Vdat Xdat Ydat Zdar Adat 'dir' [val 'fmt']", mgls_cont3 ,9},
+ {"contd","Draw solid contours with manual colors","contd Zdat ['fmt' num zpos]|Vdat Zdat ['fmt' zpos]|Xdat Ydat Zdat ['fmt' num zpos]|Vdat Xdat Ydat Zdat ['fmt' zpos]", mgls_contd ,8},
+ {"contf","Draw solid contours","contf Zdat ['fmt' num zpos]|Vdat Zdat ['fmt' zpos]|Xdat Ydat Zdat ['fmt' num zpos]|Vdat Xdat Ydat Zdat ['fmt' zpos]", mgls_contf ,8},
+ {"contf3","Draw solid contour lines for 3D data","contf3 Adat 'dir' [val 'fmt' num]|Vdat Adat 'dir' [val 'fmt']|Xdat Ydat Zdat Adat 'dir' [val 'fmt' num]|Vdat Xdat Ydat Zdar Adat 'dir' [val 'fmt']", mgls_contf3 ,9},
+ {"contfx","Draw solid contour lines at x-slice (or x-plane)","contfx Dat ['fmt' pos num]", mgls_contfx ,0},
+ {"contfy","Draw solid contour lines at y-slice (or y-plane)","contfy Dat ['fmt' pos num]", mgls_contfy ,0},
+ {"contfz","Draw solid contour lines at z-slice (or z-plane)","contfz Dat ['fmt' pos num]", mgls_contfz ,0},
+ {"continue","Skip commands and iterate for-cycle again","continue", 0, 6},
+ {"contv","Draw contour tubes","contv Zdat ['fmt' num zpos]|Vdat Zdat ['fmt' zpos]|Xdat Ydat Zdat ['fmt' num zpos]|Vdat Xdat Ydat Zdat ['fmt' zpos]", mgls_contv ,0},
+ {"contx","Draw contour lines at x-slice (or x-plane)","contx Dat ['fmt' pos num]", mgls_contx ,0},
+ {"conty","Draw contour lines at y-slice (or y-plane)","conty Dat ['fmt' pos num]", mgls_conty ,0},
+ {"contz","Draw contour lines at z-slice (or z-plane)","contz Dat ['fmt' pos num]", mgls_contz ,0},
+ {"copy","Copy data from another variable","copy Dat1 Dat2 ['eq' onaxis]", mgls_copy ,4},
+ {"cosfft","Cos-Fourier transform at some direction","cosfft Dat 'dir'", mgls_cosfft ,16},
+ {"crange","Set color range","crange Dat [sym] | c1 c2", mgls_crange ,14},
+ {"crop","Crop edge of data","crop Dat n1 n2 'dir'", mgls_crop ,16},
+ {"crust","Draw reconstructed surface for arbitrary data points","crust Xdat Ydat Zdat ['fmt']", mgls_crust ,0},
+ {"ctick","Set ticks for colorbar","ctick 'tmpl' | dx", mgls_ctick ,14},
+ {"cumsum","Cumulative summation","cumsum Dat 'dir'", mgls_cumsum ,16},
+ {"curve","Draw curve","curve x1 y1 dx1 dy1 x2 y2 dx2 dy2 ['fmt']|x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2 ['fmt']", mgls_curve ,13},
+ {"cut","Setup plot points cutting","cut val|x1 y1 z1 x2 y2 z2|'cond'", mgls_cut ,2},
+ {"datagrid","Fill data by triangulated values","datagrid Var Xdat Ydat Zdat", mgls_datagrid ,3},
+ {"datas","Print list of data names in HDF file","datas 'fname'", mgls_datas ,3},
+ {"defchr","Define parameter as character","defchr $N val", 0, 6},
+ {"define","Define constant or parameter","define $N sth | Var val", 0, 6},
+ {"defnum","Define parameter as numerical value","defnum $N val", 0, 6},
+ {"defpal","Define parameter as palette color","defpal $N val", 0, 6},
+ {"delete","Delete slice of data","delete Dat 'dir' [pos=0 num=1]", mgls_delete ,3},
+ {"dens","Draw density plot","dens Zdat ['fmt' zpos]|Xdat Ydat Zdat ['fmt' zpos]", mgls_dens ,8},
+ {"dens3","Draw density plot at slices of 3D data","dens3 Adat 'dir' [pos 'fmt']|Xdat Ydat Zdat Adat 'dir' [pos 'fmt']", mgls_dens3 ,9},
+ {"densx","Draw density plot at x-slice (or x-plane)","densx Dat ['fmt' pos]", mgls_densx ,0},
+ {"densy","Draw density plot at y-slice (or y-plane)","densy Dat ['fmt' pos]", mgls_densy ,0},
+ {"densz","Draw density plot at z-slice (or z-plane)","densz Dat ['fmt' pos]", mgls_densz ,0},
+ {"dew","Draw dew plot","dew Udat Vdat ['fmt']|Xdat Ydat Udat Vdat ['fmt']", mgls_dew ,11},
+ {"diff","Numerically differentiate data","diff Var 'dir'", mgls_diff ,16},
+ {"diff2","Numerically double differentiate data","diff2 Var 'dir'", mgls_diff2 ,16},
+ {"divto","Divide by data or number","divto Var Dat|Var num", mgls_divto ,3},
+ {"dots","Draw dots for arbitrary data points","dots Xdat Ydat Zdat ['fmt']", mgls_dots ,9},
+ {"drop","Draw drop","drop x0 y0 dx dy r ['col' sh asp]|x0 y0 z0 dx dy dz r ['col' sh asp]", mgls_drop ,13},
+ {"ellipse","Draw ellipse","ellipse x1 y1 x2 y2 r ['fmt']|x1 y1 z1 x2 y2 z2 r ['fmt']", mgls_ellipse ,13},
+ {"else","Execute if condition is false","else", 0, 6},
+ {"elseif","Conditional operator","elseif val|Dat ['cond']", 0, 6},
+ {"endif","Finish if/else block","endif", 0, 6},
+ {"envelop","Find envelop for the data","envelop Dat ['dir']", mgls_envelop ,16},
+ {"errbox","Draw error box","errbox x y ex ey ['fmt']|x y z ex ey ez ['fmt']", mgls_errbox ,13},
+ {"error","Draw error boxes","error Ydat Yerr ['fmt']|Xdat Ydat Yerr ['fmt']|Xdat Ydat Xerr Yerr ['fmt']", mgls_error ,7},
+ {"evaluate","Evaluate (interpolate) values of array Dat at points i=idat,j=jdat,k=kdat","evaluate Res Dat Idat [norm]|Res Dat Idat Jdat [norm]|Res Dat Idat Jdat Kdat [norm]", mgls_evaluate ,4},
+ {"export","Export data to PNG picture","export Dat 'fname' 'sch' [v1 v2]", mgls_import ,3},
+ {"extend","Extend data array","extend Dat dim1 [dim2]", mgls_extend ,3},
+ {"face","Draw face (quadrangle)","face x1 y1 x2 y2 x3 y3 x4 y4 ['fmt']|x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4 ['fmt']", mgls_face ,13},
+ {"facenum","Set number of visible faces","facenum val", mgls_facenum ,2},
+ {"facex","Draw face perpendicular to x-axis","facex x0 y0 z0 wy wz ['fmt' d1 d2]", mgls_facex ,13},
+ {"facey","Draw face perpendicular to y-axis","facex x0 y0 z0 wx wz ['fmt' d1 d2]", mgls_facey ,13},
+ {"facez","Draw face perpendicular to z-axis","facex x0 y0 z0 wy wz ['fmt' d1 d2]", mgls_facez ,13},
+ {"fall","Draw waterfalls","fall Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_fall ,8},
+ {"fgets","Print string from file","fgets x y z 'fname' [pos=0 'fmt' size]|x y z 'fname' [pos=0 'fmt' size]", mgls_fgets ,15},
+ {"fill","Fill data linearly in range [v1, v2]","fill Var v1 v2 ['dir'] | Var 'eq' [Vdat Wdat]", mgls_fill ,3},
+ {"fillsample","Fill x-,k-samples for transforms","fillsample Var 'how'", mgls_fillsample ,3},
+ {"fit","Fit data to formula","fit Res A 'eq' 'var' [Ini]|Res X A 'eq' 'var' [Ini]|Res X Y A 'eq' 'var' [Ini]|Res X Y Z A 'eq' 'var' [Ini]", mgls_fit ,4},
+ {"fits","Fit data to formula","fits Res A S 'eq' 'var' [Ini]|Res X A S 'eq' 'var' [Ini]|Res X Y A S 'eq' 'var' [Ini]|Res X Y Z A S 'eq' 'var' [Ini]", mgls_fits ,4},
{"flow","Draw flow threads for vector field","flow Udat Vdat ['fmt' num]|Xdat Ydat Udat Vdat ['fmt' num]|Udat Vdat Wdat ['fmt' num]|Xdat Ydat Zdat Udat Vdat ['fmt' num]|\
- x0 y0 Udat Vdat ['fmt']|x0 y0 Xdat Ydat Udat Vdat ['fmt']|x0 y0 z0 Udat Vdat Wdat ['fmt']|x0 y0 z0 Xdat Ydat Zdat Udat Vdat Wdat ['fmt']", mgls_flow, mglc_flow,11},
- {"fog","Switch on/off fog","fog val [pos]", mgls_fog, mglc_fog,2},
- {"font","Setup font","font 'fmt' [size]", mgls_font, mglc_font,15},
- {"for","For cycle","for $N v1 v2 [dv] | $N Dat", 0, 0, 6},
- {"fourier","In-place Fourier transform","fourier ReDat ImDat 'dir'", mgls_fourier, mglc_fourier, 16},
- {"fplot","Plot curve by formula","fplot 'y_x' ['fmt']|'x_t' 'y_t' 'z_t' ['fmt']", mgls_fplot, mglc_fplot,1},
- {"fsurf","Plot surface by formula","fsurf 'z_xy' ['fmt']|'x_uv' 'y_uv' 'z_uv' ['fmt']", mgls_fsurf, mglc_fsurf,1},
- {"func","Start function definition and stop execution of main script","func 'name' [narg]", 0, 0, 6},
- {"grad","Draw gradient lines for scalar field","grad Phi ['fmt' num]|Xdat Ydat Phi ['fmt' num]|Xdat Ydat Zdat Phi ['fmt' num]", mgls_grad, mglc_grad,8},
- {"grid","Draw grid","grid ['dir' 'fmt']", mgls_grid, mglc_grid,12},
- {"grid2","Draw grid for data array(s)","grid Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_grid2, mglc_grid2,8},
- {"grid3","Draw grid at slices of 3D data","grid3 Adat 'dir' [pos 'fmt']|Xdat Ydat Zdat Adat 'dir' [pos 'fmt']", mgls_grid3, mglc_grid3,9},
- {"gridplot","Set position of plot inside cell of matrix", "gridplot nx ny ind [d]", mgls_gridplot, mglc_gridplot,5},
- {"hankel","Hankel transform at some direction","hankel Dat 'dir'", mgls_hankel, mglc_hankel,16},
- {"hist","Create histogram (distribution) of data values","hist Res Dat num v1 v2 [nsub]|Res Dat Wdat num v1 v2 [nsub]", mgls_hist, mglc_hist,4},
- {"idset","Set column id for data","idset Dat 'ids'", mgls_idset, mglc_idset,3},
- {"if","Conditional operator","if val|Dat ['cond']", 0, 0, 6},
- {"import","Import data from PNG picture","import Dat 'fname' 'scheme' [v1 v2]", mgls_import, mglc_import,4},
- {"info","Print information about data","info Dat [detail]|'message'", mgls_info, mglc_info,3},
- {"inplot","Set position of plot in picture","x1 x2 y1 y2 [rel]", mgls_inplot, mglc_inplot,5},
- {"insert","Insert slice of data","insert Dat 'dir' [pos=0 num=1]", mgls_insert, mglc_insert,3},
- {"integrate","Integrate data","integrate Dat 'dir'", mgls_integrate, mglc_integrate,16},
- {"jacobian","Get Jacobian","jacobian Res Xdat Ydat [Zdat]", mgls_jacobian, mglc_jacobian,4},
- {"label","Draw label at arbitrary position","label Ydat 'txt' ['fmt'='']|Xdat Ydat 'txt' ['fmt'='']|Xdat Ydat Zdat 'txt' ['fmt'='']", mgls_label, mglc_label,7},
- {"legend","Draw legend","legend [pos 'fmt']|x y ['fmt']", mgls_legend, mglc_legend,15},
- {"legendmarks","Set number of marks in the legend","legendmarks val", mgls_legendmarks, mglc_legendmarks,15},
- {"light","Setup light","light [val] | val num | num xpos ypos zpos ['fmt' br]", mgls_light, mglc_light,2},
- {"line","Draw line","line x1 y1 x2 y2 ['fmt']|x1 y1 z1 x2 y2 z2 ['fmt']", mgls_line, mglc_line,13},
- {"list","Creates new variable from list of numbers or data","list Var v1 ...|Var D1 ...", 0, 0, 6},
- {"loadfont","Load fontfaces","loadfont ['face']", mgls_loadfont, mglc_loadfont,15},
- {"map","Draw mapping plot","map Udat Vdat ['fmt']|Xdat Ydat Udat Vdat ['fmt']", mgls_map, mglc_map,10},
- {"mark","Draw mark plot for 1D data","mark Ydat Rdat ['fmt']|Xdat Ydat Rdat ['fmt']|Xdat Ydat Zdat Rdat ['fmt']", mgls_mark, mglc_mark,7},
- {"marksize","Set size of markers","marksize val", mgls_marksize, mglc_marksize,2},
- {"max","Find maximal value over direction","max Res Dat 'dir'", mgls_max, mglc_max,4},
- {"mesh","Draw mesh surface","mesh Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_mesh, mglc_mesh,8},
- {"meshnum","Set number of lines in mesh/fall/vect and so on","meshnum val", mgls_meshnum, mglc_meshnum,2},
- {"min","Find minimal value over direction","min Res Dat 'dir'", mgls_min, mglc_min,4},
- {"mirror","Mirror data at some direction","mirror Dat 'dir'", mgls_mirror, mglc_mirror,16},
- {"modify","Modify data values by formula","modify Dat 'eq' [num] | Dat 'eq' Vdat [Wdat]", mgls_modify, mglc_modify,3},
- {"momentum","Get momentum along direction","momentum Res Dat 'how' ['dir']", mgls_momentum, mglc_momentum,4},
- {"multiplot","Set position of plot","multiplot m n pos dx dy 'style'", mgls_multiplot, mglc_multiplot,5},
- {"multo","Multiply by data or number","multo Var Dat|Var num", mgls_multo, mglc_multo,3},
- {"new","Create new data","new Dat nx ny nz ['eq']|new Dat nx ny ['eq']|new Dat nx ['eq']", mgls_new, mglc_new,4},
- {"next","Start next for-cycle iteration","next", 0, 0, 6},
- {"norm","Normalize data","norm Dat v1 v2 [sym dim]", mgls_norm, mglc_norm,16},
- {"normsl","Normalize data slice by slice","normsl Dat v1 v2 ['dir' keep sym] ", mgls_normsl, mglc_normsl,16},
- {"once","Start/close commands which should executed only once","once val", 0, 0, 6},
- {"origin","Set axis origin","origin x0 y0 [z0]", mgls_origin, mglc_origin,14},
- {"palette","Set palette for 1D plots","palette 'colors'", mgls_palette, mglc_palette,2},
- {"pde","Solve PDE","pde Res 'ham' IniRe IniIm [dz k0]", mgls_pde, mglc_pde,4},
- {"perspective","Set perspective","perspective val", mgls_perspective, mglc_perspective,2},
- {"pipe","Draw flow pipes for vector field","pipe Udat Vdat ['fmt' rad num]|Xdat Ydat Udat Vdat ['fmt' rad num]|Udat Vdat Wdat ['fmt' rad num]|Xdat Ydat Zdat Udat Vdat Wdat ['fmt' rad num]", mgls_pipe, mglc_pipe,11},
- {"plot","Draw usual plot for 1D data","plot Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_plot, mglc_plot,7},
- {"plotid","Set default filename","plotid 'name'", mgls_plotid, mglc_plotid,2},
- {"put","Put value (numeric or array) to given data element","put Dat val [i j k] | Dat Val [i j k]", mgls_put, mglc_put,3},
- {"putsfit","Print fitted formula","putsfit x y ['pre' 'font' size]|x y z ['pre' 'font' size]", mgls_putsfit, mglc_putsfit,15},
- {"qo2d","Solve PDE in accompanied coordinates","qo2d Res 'ham' IniRe IniIm Ray [r k0 Xout Yout]", mgls_qo2d, mglc_qo2d,4},
- {"quadplot","Draw surface of quadrangles","quadplot Idat Xdat Ydat ['fmt']|Idat Xdat Ydat Zdat ['fmt']|Idat Xdat Ydat Zdat Cdat ['fmt'] ", mgls_quadplot, mglc_quadplot,0},
- {"quality","Set plot quality","quality [val]", mgls_quality, mglc_quality,2},
- {"radar","Draw radar chart","radar Rdat ['fmt']", mgls_radar, mglc_radar,7},
- {"ranges","Set axis ranges","ranges x1 x2 y1 y2 [z1 z2]", mgls_ranges, mglc_ranges,14},
- {"ray","Solve Hamiltonian ODE (find GO ray or trajectory)","ray Res 'ham' x0 y0 z0 px0 py0 pz0 [dz=0.1 tmax=10]", mgls_ray, mglc_ray,4},
- {"read","Read data from file","read Dat 'file' [nx ny nz]", mgls_read, mglc_read,4},
- {"readall","Read and join data from several files","readall Dat 'templ' [slice]", mgls_readall, mglc_readall,4},
- {"readhdf","Read data from HDF5 file","readhdf Dat 'file' 'id'", mgls_readhdf, mglc_readhdf,4},
- {"readmat","Read data from file with sizes specified in first row","readmat Dat 'file' [dim]", mgls_readmat, mglc_readmat,4},
- {"rearrange","Rearrange data dimensions","rearrange Dat mx [my mz]", mgls_rearrange, mglc_rearrange,3},
- {"rect","Draw rectangle","rect x1 y1 x2 y2 ['fmt']|x1 y1 z1 x2 y2 z2 ['fmt']", mgls_rect, mglc_rect,13},
- {"region","Draw filled region between 2 curves","region Ydat1 Ydat2 ['fmt' inside]|Xdat Ydat1 Ydat2 ['fmt' inside]", mgls_region, mglc_region,7},
- {"resize","Resize data","resize Res Dat mx [my mz]", mgls_resize, mglc_resize,4},
- {"return","Return from function","return", 0, 0, 6},
- {"rhomb","Draw rhombus","rhomb x1 y1 x2 y2 r ['fmt']|x1 y1 z1 x2 y2 z2 r ['fmt']", mgls_rhomb, mglc_rhomb,13},
- {"roll","Roll data along direction","roll Dat 'dir' num", mgls_roll, mglc_roll,16},
- {"rotate","Rotate plot","rotate tetz tetx [tety] | tet x y z", mgls_rotate, mglc_rotate,5},
- {"rotatetext","Set to auto rotate text or not","rotatetext val", mgls_rotatetext, mglc_rotatetext,15},
- {"save","Save data to file","save Dat 'file'", mgls_save, mglc_save,3},
- {"savehdf","Save data to HDF5 file","savehdf Dat 'file' 'id'", mgls_savehdf, mglc_savehdf,3},
- {"setsize","Set picture size","setsize width height", mgls_setsize, mglc_setsize,2},
- {"sew","Remove jump into the data, like phase jumps","sew Dat ['dir' da]", mgls_sew, mglc_sew,16},
- {"sinfft","Sin-Fourier transform at some direction","sinfft Dat 'dir'", mgls_sinfft, mglc_sinfft,16},
- {"smooth","Smooth data","smooth Dat [kind 'dir']", mgls_smooth, mglc_smooth,16},
- {"solve","Find root Dat_{i,j,k}=val (inverse evaluate)","solve Res Dat val 'dir' [Idat norm]", mgls_solve, mglc_solve,4},
- {"sort","Sort data by values in column","sort Dat idx [idy]", mgls_sort, mglc_sort,3},
- {"sphere","Draw sphere","sphere x0 y0 r ['fmt']|x0 y0 z0 r ['fmt']", mgls_sphere, mglc_sphere,13},
- {"squeeze","Squeeze data","squeeze Dat kx [ky kz]", mgls_squeeze, mglc_squeeze,3},
- {"stem","Draw stem plot for 1D data","stem Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_stem, mglc_stem,7},
- {"step","Draw step plot for 1D data","step Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_step, mglc_step,7},
- {"stfa","Draw STFA diagram","stfa Udat Vdat dn ['fmt']|Xdat Ydat Udat Vdat dn ['fmt']", mgls_stfa, mglc_stfa,10},
- {"stfad","Do STFA transform","stfad Res Real Imag dn ['dir']", mgls_stfad, mglc_stfad,4},
- {"stickplot","Set position of plot inside cell of stick", "stickplot num ind tet phi", mgls_stickplot, mglc_stickplot,5},
- {"stop","Stop execution","stop", 0, 0, 6},
- {"subdata","Extract sub-array","subdata Res Dat nx [ny nz]", mgls_subdata, mglc_subdata,4},
- {"subplot","Set position of plot","subplot m n pos ['style' dx dy]", mgls_subplot, mglc_subplot,5},
- {"subto","Subtract data or number","subto Var Dat|Var num", mgls_subto, mglc_subto,3},
- {"sum","Find summation over direction","sum Res Dat 'dir'", mgls_sum, mglc_sum,4},
- {"surf","Draw solid surface","surf Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_surf, mglc_surf,8},
- {"surf3","Draw isosurface for 3D data","surf3 Adat ['fmt' num]|Xdat Ydat Zdat Adat ['fmt' num]|Adat val ['fmt']|Xdat Ydat Zdat Adat val ['fmt']", mgls_surf3, mglc_surf3,9},
- {"surf3a","Draw isosurface for 3D data transpared by other data","surf3a Adat Cdat ['fmt' num]|Xdat Ydat Zdat Adat Cdat ['fmt' num]|Adat Cdat val ['fmt']|Xdat Ydat Zdat Adat Cdat val ['fmt']", mgls_surf3a, mglc_surf3a,10},
- {"surf3c","Draw isosurface for 3D data colored by other data","surf3c Adat Cdat ['fmt' num]|Xdat Ydat Zdat Adat Cdat ['fmt' num]|Adat Cdat val ['fmt']|Xdat Ydat Zdat Adat Cdat val ['fmt']", mgls_surf3c, mglc_surf3c,10},
- {"surfa","Draw solid surface transpared by other data","surfa Zdat Cdat ['fmt']|Xdat Ydat Zdat Cdat ['fmt']", mgls_surfa, mglc_surfa,10},
- {"surfc","Draw solid surface colored by other data","surfc Zdat Cdat ['fmt']|Xdat Ydat Zdat Cdat ['fmt']", mgls_surfc, mglc_surfc,10},
- {"swap","Swap data (usefull after Fourier transform)","swap Dat 'dir'", mgls_swap, mglc_swap,16},
- {"table","Draw table with data values","table Dat ['txt' 'fmt']|x y Dat ['txt' 'fmt']", mgls_table, mglc_table,7},
- {"tape","Draw binormales for 1D data","tape Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_tape, mglc_tape,7},
- {"tens","Draw tension plot for 1D data","tens Ydat Cdat ['fmt']|Xdat Ydat Cdat ['fmt']|Xdat Ydat Zdat Cdat ['fmt']", mgls_tens, mglc_tens,7},
- {"ternary","Switch on/off to use ternary axis","ternary val", mgls_ternary, mglc_ternary,14},
- {"text","Draw text at some position or along curve","text x y 'txt' ['fmt' size]|x y z 'txt' ['fmt' size]|x y dx dy 'txt' ['fmt' size]|x y z dx dy dz 'txt' ['fmt' size]|Ydat 'txt' ['font' sise]|Xdat Ydat 'txt' ['font' sise]", mgls_text, mglc_text,15},
- {"textmark","Draw TeX mark at point position","textmark Ydat Rdat 'text' ['fmt']|Xdat Ydat Rdat 'text' ['fmt']|Xdat Ydat Zdat Rdat 'text' ['fmt']", mgls_textmark, mglc_textmark,7},
- {"ticklen","Set tick length","ticklen val [stt]", mgls_ticklen, mglc_ticklen,14},
- {"ticktime","Set ticks in time format","ticktime 'dir' [dv 'tmpl']", mgls_ticktime, mglc_ticktime,14},
- {"tile","Draw horizontal tiles","tile Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_tile, mglc_tile,8},
- {"tiles","Draw horizontal tiles with variable size","tiles Zdat Rdat ['fmt']|Xdat Ydat Zdat Rdat ['fmt']", mgls_tiles, mglc_tiles,10},
- {"title","Add title for current subplot/inplot","title 'txt' ['fmt' size]", mgls_title, mglc_title,5},
- {"tlabel","Draw label for t-axis","tlabel 'txt' [pos]", mgls_tlabel, mglc_tlabel,12},
- {"torus","Draw surface of curve rotation","torus Rdat ['fmt']|Zdat Rdat ['fmt']", mgls_torus, mglc_torus,7},
- {"trace","Get trace of array","trace Res Dat", mgls_trace, mglc_trace,4},
- {"traj","Draw vectors along a curve","traj Xdat Ydat Udat Vdat ['fmt' len]|Xdat Ydat Zdat Udat Vdat Wdat ['fmt' len]", mgls_traj, mglc_traj,11},
- {"transform","Do integral transform of data","transform Res 'how' Rdat Idat", mgls_transform, mglc_transform,4},
- {"transforma","Do integral transform of data","transforma Res 'how' Adat Pdat", mgls_transforma, mglc_transforma,4},
- {"transpose","Transpose data array","transpose Dat ['dir']", mgls_transpose, mglc_transpose,16},
- {"transptype","Set type transparency","transptype val", mgls_transptype, mglc_transptype,2},
- {"triangulate","Find triangles of randomly placed points","triangulate Res Xdat Ydat [er]|Res Xdat Ydat Zdat [er]", mgls_triangulate, mglc_triangulate,4},
- {"tricont","Draw contour lines for surface of triangles","tricont Vdat Idat Xdat Ydat ['fmt']|Vdat Idat Xdat Ydat Zdat ['fmt']|Vdat Idat Xdat Ydat Zdat Cdat ['fmt'] ", mgls_tricont, mglc_tricont,0},
- {"triplot","Draw surface of triangles","triplot Idat Xdat Ydat ['fmt']|Idat Xdat Ydat Zdat ['fmt']|Idat Xdat Ydat Zdat Cdat ['fmt'] ", mgls_triplot, mglc_triplot,0},
- {"tube","Draw curve by tube","tube Ydat Rdat ['fmt']|Ydat rval ['fmt']|Xdat Ydat Rdat ['fmt']|Xdat Ydat rval ['fmt']|Xdat Ydat Zdat Rdat ['fmt']|Xdat Ydat Zdat rval ['fmt']", mgls_tube, mglc_tube,7},
- {"tuneticks","Set ticks tuning","tuneticks val [fctr]", mgls_tuneticks, mglc_tuneticks,14},
- {"var","Create new 1D data and fill it in range","var Dat nx x1 [x2]", mgls_var, mglc_var,4},
- {"vect","Draw vector field","vect Udat Vdat ['fmt']|Xdat Ydat Udat Vdat ['fmt']|Udat Vdat Wdat ['fmt']|Xdat Ydat Zdat Udat Vdat Wdat ['fmt']", mgls_vect, mglc_vect,11},
- {"vect3","Draw vector field at slices of 3D data","vect Udat Vdat Wdat ['fmt' sval]|Xdat Ydat Zdat Udat Vdat Wdat ['fmt' sval]", mgls_vect3, mglc_vect3,11},
- {"view","Change view angles - use 'rotate' for plot rotation","view tetz tetx [tety]", mgls_view, mglc_view,5},
- {"write","Write current image to graphical file","write 'fname' [solid]", mgls_write, mglc_write,2},
- {"xlabel","Draw label for x-axis","xlabel 'txt' [pos]", mgls_xlabel, mglc_xlabel,12},
- {"xrange","Set range for x-axis","xrange Dat [add] | x1 x2", mgls_xrange, mglc_xrange,14},
- {"xtick","Set ticks for x-axis","xtick dx [sx tx] | 'tmpl' | Xdat 'lbl' [add] | v1 'lbl1' ...", mgls_xtick, mglc_xtick,14},
- {"ylabel","Draw label for y-axis","ylabel 'txt' [pos]", mgls_ylabel, mglc_ylabel,12},
- {"yrange","Set range for y-axis","yrange Dat [add] | y1 y2", mgls_yrange, mglc_yrange,14},
- {"ytick","Set ticks for y-axis","ytick dy [sy ty] | 'tmpl' | Ydat 'lbl' [add] | v1 'lbl1' ...", mgls_ytick, mglc_ytick,14},
- {"zlabel","Draw label for z-axis","zlabel 'txt' [pos]", mgls_zlabel, mglc_zlabel,12},
- {"zoom","Zoom plot region","zoom x1 x2 y1 y2", mgls_zoom, mglc_zoom,5},
- {"zoomaxis","Zoom axis range","zoomaxis x1 x2|x1 x2 y1 y2|x1 x2 y1 y2 z1 z2|x1 x2 y1 y2 z1 z2 c1 c2", mgls_zoomaxis, mglc_zoomaxis,14},
- {"zrange","Set range for z-axis","yrange Dat [add] | z1 z2", mgls_zrange, mglc_zrange,14},
- {"ztick","Set ticks for z-axis","ztick dz [sz tz] | 'tmpl' | Zdat 'lbl' [add] | v1 'lbl1' ...", mgls_ztick, mglc_ztick,14},
-{"","","",NULL,NULL,0}};
+ x0 y0 Udat Vdat ['fmt']|x0 y0 Xdat Ydat Udat Vdat ['fmt']|x0 y0 z0 Udat Vdat Wdat ['fmt']|x0 y0 z0 Xdat Ydat Zdat Udat Vdat Wdat ['fmt']", mgls_flow ,11},
+ {"fog","Switch on/off fog","fog val [pos]", mgls_fog ,2},
+ {"font","Setup font","font 'fmt' [size]", mgls_font ,15},
+ {"for","For cycle","for $N v1 v2 [dv] | $N Dat", 0, 6},
+ {"fourier","In-place Fourier transform","fourier ReDat ImDat 'dir'", mgls_fourier , 16},
+ {"fplot","Plot curve by formula","fplot 'y_x' ['fmt']|'x_t' 'y_t' 'z_t' ['fmt']", mgls_fplot ,1},
+ {"fsurf","Plot surface by formula","fsurf 'z_xy' ['fmt']|'x_uv' 'y_uv' 'z_uv' ['fmt']", mgls_fsurf ,1},
+ {"func","Start function definition and stop execution of main script","func 'name' [narg]", 0, 6},
+ {"grad","Draw gradient lines for scalar field","grad Phi ['fmt' num]|Xdat Ydat Phi ['fmt' num]|Xdat Ydat Zdat Phi ['fmt' num]", mgls_grad ,8},
+ {"grid","Draw grid","grid ['dir' 'fmt']", mgls_grid ,12},
+ {"grid2","Draw grid for data array(s)","grid Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_grid2 ,8},
+ {"grid3","Draw grid at slices of 3D data","grid3 Adat 'dir' [pos 'fmt']|Xdat Ydat Zdat Adat 'dir' [pos 'fmt']", mgls_grid3 ,9},
+ {"gridplot","Set position of plot inside cell of matrix", "gridplot nx ny ind [d]", mgls_gridplot ,5},
+ {"hankel","Hankel transform at some direction","hankel Dat 'dir'", mgls_hankel ,16},
+ {"hist","Create histogram (distribution) of data values","hist Res Dat num v1 v2 [nsub]|Res Dat Wdat num v1 v2 [nsub]", mgls_hist ,4},
+ {"idset","Set column id for data","idset Dat 'ids'", mgls_idset ,3},
+ {"if","Conditional operator","if val|Dat ['cond']", 0, 6},
+ {"import","Import data from PNG picture","import Dat 'fname' 'scheme' [v1 v2]", mgls_import ,4},
+ {"info","Print information about data","info Dat [detail]|'message'", mgls_info ,3},
+ {"inplot","Set position of plot in picture","x1 x2 y1 y2 [rel]", mgls_inplot ,5},
+ {"insert","Insert slice of data","insert Dat 'dir' [pos=0 num=1]", mgls_insert ,3},
+ {"integrate","Integrate data","integrate Dat 'dir'", mgls_integrate ,16},
+ {"jacobian","Get Jacobian","jacobian Res Xdat Ydat [Zdat]", mgls_jacobian ,4},
+ {"label","Draw label at arbitrary position","label Ydat 'txt' ['fmt'='']|Xdat Ydat 'txt' ['fmt'='']|Xdat Ydat Zdat 'txt' ['fmt'='']", mgls_label ,7},
+ {"legend","Draw legend","legend [pos 'fmt']|x y ['fmt']", mgls_legend ,15},
+ {"legendmarks","Set number of marks in the legend","legendmarks val", mgls_legendmarks ,15},
+ {"light","Setup light","light [val] | val num | num xpos ypos zpos ['fmt' br]", mgls_light ,2},
+ {"line","Draw line","line x1 y1 x2 y2 ['fmt']|x1 y1 z1 x2 y2 z2 ['fmt']", mgls_line ,13},
+ {"list","Creates new variable from list of numbers or data","list Var v1 ...|Var D1 ...", 0, 6},
+ {"loadfont","Load fontfaces","loadfont ['face']", mgls_loadfont ,15},
+ {"map","Draw mapping plot","map Udat Vdat ['fmt']|Xdat Ydat Udat Vdat ['fmt']", mgls_map ,10},
+ {"mark","Draw mark plot for 1D data","mark Ydat Rdat ['fmt']|Xdat Ydat Rdat ['fmt']|Xdat Ydat Zdat Rdat ['fmt']", mgls_mark ,7},
+ {"marksize","Set size of markers","marksize val", mgls_marksize ,2},
+ {"max","Find maximal value over direction","max Res Dat 'dir'", mgls_max ,4},
+ {"mesh","Draw mesh surface","mesh Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_mesh ,8},
+ {"meshnum","Set number of lines in mesh/fall/vect and so on","meshnum val", mgls_meshnum ,2},
+ {"min","Find minimal value over direction","min Res Dat 'dir'", mgls_min ,4},
+ {"mirror","Mirror data at some direction","mirror Dat 'dir'", mgls_mirror ,16},
+ {"modify","Modify data values by formula","modify Dat 'eq' [num] | Dat 'eq' Vdat [Wdat]", mgls_modify ,3},
+ {"momentum","Get momentum along direction","momentum Res Dat 'how' ['dir']", mgls_momentum ,4},
+ {"multiplot","Set position of plot","multiplot m n pos dx dy 'style'", mgls_multiplot ,5},
+ {"multo","Multiply by data or number","multo Var Dat|Var num", mgls_multo ,3},
+ {"new","Create new data","new Dat nx ny nz ['eq']|new Dat nx ny ['eq']|new Dat nx ['eq']", mgls_new ,4},
+ {"next","Start next for-cycle iteration","next", 0, 6},
+ {"norm","Normalize data","norm Dat v1 v2 [sym dim]", mgls_norm ,16},
+ {"normsl","Normalize data slice by slice","normsl Dat v1 v2 ['dir' keep sym] ", mgls_normsl ,16},
+ {"once","Start/close commands which should executed only once","once val", 0, 6},
+ {"origin","Set axis origin","origin x0 y0 [z0]", mgls_origin ,14},
+ {"palette","Set palette for 1D plots","palette 'colors'", mgls_palette ,2},
+ {"pde","Solve PDE","pde Res 'ham' IniRe IniIm [dz k0]", mgls_pde ,4},
+ {"perspective","Set perspective","perspective val", mgls_perspective ,2},
+ {"pipe","Draw flow pipes for vector field","pipe Udat Vdat ['fmt' rad num]|Xdat Ydat Udat Vdat ['fmt' rad num]|Udat Vdat Wdat ['fmt' rad num]|Xdat Ydat Zdat Udat Vdat Wdat ['fmt' rad num]", mgls_pipe ,11},
+ {"plot","Draw usual plot for 1D data","plot Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_plot ,7},
+ {"plotid","Set default filename","plotid 'name'", mgls_plotid ,2},
+ {"put","Put value (numeric or array) to given data element","put Dat val [i j k] | Dat Val [i j k]", mgls_put ,3},
+ {"putsfit","Print fitted formula","putsfit x y ['pre' 'font' size]|x y z ['pre' 'font' size]", mgls_putsfit ,15},
+ {"qo2d","Solve PDE in accompanied coordinates","qo2d Res 'ham' IniRe IniIm Ray [r k0 Xout Yout]", mgls_qo2d ,4},
+ {"quadplot","Draw surface of quadrangles","quadplot Idat Xdat Ydat ['fmt']|Idat Xdat Ydat Zdat ['fmt']|Idat Xdat Ydat Zdat Cdat ['fmt'] ", mgls_quadplot ,0},
+ {"quality","Set plot quality","quality [val]", mgls_quality ,2},
+ {"radar","Draw radar chart","radar Rdat ['fmt']", mgls_radar ,7},
+ {"ranges","Set axis ranges","ranges x1 x2 y1 y2 [z1 z2]", mgls_ranges ,14},
+ {"ray","Solve Hamiltonian ODE (find GO ray or trajectory)","ray Res 'ham' x0 y0 z0 px0 py0 pz0 [dz=0.1 tmax=10]", mgls_ray ,4},
+ {"read","Read data from file","read Dat 'file' [nx ny nz]", mgls_read ,4},
+ {"readall","Read and join data from several files","readall Dat 'templ' [slice]", mgls_readall ,4},
+ {"readhdf","Read data from HDF5 file","readhdf Dat 'file' 'id'", mgls_readhdf ,4},
+ {"readmat","Read data from file with sizes specified in first row","readmat Dat 'file' [dim]", mgls_readmat ,4},
+ {"rearrange","Rearrange data dimensions","rearrange Dat mx [my mz]", mgls_rearrange ,3},
+ {"rect","Draw rectangle","rect x1 y1 x2 y2 ['fmt']|x1 y1 z1 x2 y2 z2 ['fmt']", mgls_rect ,13},
+ {"region","Draw filled region between 2 curves","region Ydat1 Ydat2 ['fmt' inside]|Xdat Ydat1 Ydat2 ['fmt' inside]", mgls_region ,7},
+ {"resize","Resize data","resize Res Dat mx [my mz]", mgls_resize ,4},
+ {"return","Return from function","return", 0, 6},
+ {"rhomb","Draw rhombus","rhomb x1 y1 x2 y2 r ['fmt']|x1 y1 z1 x2 y2 z2 r ['fmt']", mgls_rhomb ,13},
+ {"roll","Roll data along direction","roll Dat 'dir' num", mgls_roll ,16},
+ {"rotate","Rotate plot","rotate tetz tetx [tety] | tet x y z", mgls_rotate ,5},
+ {"rotatetext","Set to auto rotate text or not","rotatetext val", mgls_rotatetext ,15},
+ {"save","Save data to file","save Dat 'file'", mgls_save ,3},
+ {"savehdf","Save data to HDF5 file","savehdf Dat 'file' 'id'", mgls_savehdf ,3},
+ {"setsize","Set picture size","setsize width height", mgls_setsize ,2},
+ {"sew","Remove jump into the data, like phase jumps","sew Dat ['dir' da]", mgls_sew ,16},
+ {"sinfft","Sin-Fourier transform at some direction","sinfft Dat 'dir'", mgls_sinfft ,16},
+ {"smooth","Smooth data","smooth Dat [kind 'dir']", mgls_smooth ,16},
+ {"solve","Find root Dat_{i,j,k}=val (inverse evaluate)","solve Res Dat val 'dir' [Idat norm]", mgls_solve ,4},
+ {"sort","Sort data by values in column","sort Dat idx [idy]", mgls_sort ,3},
+ {"sphere","Draw sphere","sphere x0 y0 r ['fmt']|x0 y0 z0 r ['fmt']", mgls_sphere ,13},
+ {"squeeze","Squeeze data","squeeze Dat kx [ky kz]", mgls_squeeze ,3},
+ {"stem","Draw stem plot for 1D data","stem Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_stem ,7},
+ {"step","Draw step plot for 1D data","step Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_step ,7},
+ {"stfa","Draw STFA diagram","stfa Udat Vdat dn ['fmt']|Xdat Ydat Udat Vdat dn ['fmt']", mgls_stfa ,10},
+ {"stfad","Do STFA transform","stfad Res Real Imag dn ['dir']", mgls_stfad ,4},
+ {"stickplot","Set position of plot inside cell of stick", "stickplot num ind tet phi", mgls_stickplot ,5},
+ {"stop","Stop execution","stop", 0, 6},
+ {"subdata","Extract sub-array","subdata Res Dat nx [ny nz]", mgls_subdata ,4},
+ {"subplot","Set position of plot","subplot m n pos ['style' dx dy]", mgls_subplot ,5},
+ {"subto","Subtract data or number","subto Var Dat|Var num", mgls_subto ,3},
+ {"sum","Find summation over direction","sum Res Dat 'dir'", mgls_sum ,4},
+ {"surf","Draw solid surface","surf Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_surf ,8},
+ {"surf3","Draw isosurface for 3D data","surf3 Adat ['fmt' num]|Xdat Ydat Zdat Adat ['fmt' num]|Adat val ['fmt']|Xdat Ydat Zdat Adat val ['fmt']", mgls_surf3 ,9},
+ {"surf3a","Draw isosurface for 3D data transpared by other data","surf3a Adat Cdat ['fmt' num]|Xdat Ydat Zdat Adat Cdat ['fmt' num]|Adat Cdat val ['fmt']|Xdat Ydat Zdat Adat Cdat val ['fmt']", mgls_surf3a ,10},
+ {"surf3c","Draw isosurface for 3D data colored by other data","surf3c Adat Cdat ['fmt' num]|Xdat Ydat Zdat Adat Cdat ['fmt' num]|Adat Cdat val ['fmt']|Xdat Ydat Zdat Adat Cdat val ['fmt']", mgls_surf3c ,10},
+ {"surfa","Draw solid surface transpared by other data","surfa Zdat Cdat ['fmt']|Xdat Ydat Zdat Cdat ['fmt']", mgls_surfa ,10},
+ {"surfc","Draw solid surface colored by other data","surfc Zdat Cdat ['fmt']|Xdat Ydat Zdat Cdat ['fmt']", mgls_surfc ,10},
+ {"swap","Swap data (usefull after Fourier transform)","swap Dat 'dir'", mgls_swap ,16},
+ {"table","Draw table with data values","table Dat ['txt' 'fmt']|x y Dat ['txt' 'fmt']", mgls_table ,7},
+ {"tape","Draw binormales for 1D data","tape Ydat ['fmt']|Xdat Ydat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_tape ,7},
+ {"tens","Draw tension plot for 1D data","tens Ydat Cdat ['fmt']|Xdat Ydat Cdat ['fmt']|Xdat Ydat Zdat Cdat ['fmt']", mgls_tens ,7},
+ {"ternary","Switch on/off to use ternary axis","ternary val", mgls_ternary ,14},
+ {"text","Draw text at some position or along curve","text x y 'txt' ['fmt' size]|x y z 'txt' ['fmt' size]|x y dx dy 'txt' ['fmt' size]|x y z dx dy dz 'txt' ['fmt' size]|Ydat 'txt' ['font' sise]|Xdat Ydat 'txt' ['font' sise]", mgls_text ,15},
+ {"textmark","Draw TeX mark at point position","textmark Ydat Rdat 'text' ['fmt']|Xdat Ydat Rdat 'text' ['fmt']|Xdat Ydat Zdat Rdat 'text' ['fmt']", mgls_textmark ,7},
+ {"ticklen","Set tick length","ticklen val [stt]", mgls_ticklen ,14},
+ {"ticktime","Set ticks in time format","ticktime 'dir' [dv 'tmpl']", mgls_ticktime ,14},
+ {"tile","Draw horizontal tiles","tile Zdat ['fmt']|Xdat Ydat Zdat ['fmt']", mgls_tile ,8},
+ {"tiles","Draw horizontal tiles with variable size","tiles Zdat Rdat ['fmt']|Xdat Ydat Zdat Rdat ['fmt']", mgls_tiles ,10},
+ {"title","Add title for current subplot/inplot","title 'txt' ['fmt' size]", mgls_title ,5},
+ {"tlabel","Draw label for t-axis","tlabel 'txt' [pos]", mgls_tlabel ,12},
+ {"torus","Draw surface of curve rotation","torus Rdat ['fmt']|Zdat Rdat ['fmt']", mgls_torus ,7},
+ {"trace","Get trace of array","trace Res Dat", mgls_trace ,4},
+ {"traj","Draw vectors along a curve","traj Xdat Ydat Udat Vdat ['fmt' len]|Xdat Ydat Zdat Udat Vdat Wdat ['fmt' len]", mgls_traj ,11},
+ {"transform","Do integral transform of data","transform Res 'how' Rdat Idat", mgls_transform ,4},
+ {"transforma","Do integral transform of data","transforma Res 'how' Adat Pdat", mgls_transforma ,4},
+ {"transpose","Transpose data array","transpose Dat ['dir']", mgls_transpose ,16},
+ {"transptype","Set type transparency","transptype val", mgls_transptype ,2},
+ {"triangulate","Find triangles of randomly placed points","triangulate Res Xdat Ydat [er]|Res Xdat Ydat Zdat [er]", mgls_triangulate ,4},
+ {"tricont","Draw contour lines for surface of triangles","tricont Vdat Idat Xdat Ydat ['fmt']|Vdat Idat Xdat Ydat Zdat ['fmt']|Vdat Idat Xdat Ydat Zdat Cdat ['fmt'] ", mgls_tricont ,0},
+ {"triplot","Draw surface of triangles","triplot Idat Xdat Ydat ['fmt']|Idat Xdat Ydat Zdat ['fmt']|Idat Xdat Ydat Zdat Cdat ['fmt'] ", mgls_triplot ,0},
+ {"tube","Draw curve by tube","tube Ydat Rdat ['fmt']|Ydat rval ['fmt']|Xdat Ydat Rdat ['fmt']|Xdat Ydat rval ['fmt']|Xdat Ydat Zdat Rdat ['fmt']|Xdat Ydat Zdat rval ['fmt']", mgls_tube ,7},
+ {"tuneticks","Set ticks tuning","tuneticks val [fctr]", mgls_tuneticks ,14},
+ {"var","Create new 1D data and fill it in range","var Dat nx x1 [x2]", mgls_var ,4},
+ {"vect","Draw vector field","vect Udat Vdat ['fmt']|Xdat Ydat Udat Vdat ['fmt']|Udat Vdat Wdat ['fmt']|Xdat Ydat Zdat Udat Vdat Wdat ['fmt']", mgls_vect ,11},
+ {"vect3","Draw vector field at slices of 3D data","vect Udat Vdat Wdat ['fmt' sval]|Xdat Ydat Zdat Udat Vdat Wdat ['fmt' sval]", mgls_vect3 ,11},
+ {"view","Change view angles - use 'rotate' for plot rotation","view tetz tetx [tety]", mgls_view ,5},
+ {"write","Write current image to graphical file","write 'fname' [solid]", mgls_write ,2},
+ {"xlabel","Draw label for x-axis","xlabel 'txt' [pos]", mgls_xlabel ,12},
+ {"xrange","Set range for x-axis","xrange Dat [add] | x1 x2", mgls_xrange ,14},
+ {"xtick","Set ticks for x-axis","xtick dx [sx tx] | 'tmpl' | Xdat 'lbl' [add] | v1 'lbl1' ...", mgls_xtick,14},
+ {"ylabel","Draw label for y-axis","ylabel 'txt' [pos]", mgls_ylabel,12},
+ {"yrange","Set range for y-axis","yrange Dat [add] | y1 y2", mgls_yrange,14},
+ {"ytick","Set ticks for y-axis","ytick dy [sy ty] | 'tmpl' | Ydat 'lbl' [add] | v1 'lbl1' ...", mgls_ytick,14},
+ {"zlabel","Draw label for z-axis","zlabel 'txt' [pos]", mgls_zlabel,12},
+ {"zoom","Zoom plot region","zoom x1 x2 y1 y2", mgls_zoom,5},
+ {"zoomaxis","Zoom axis range","zoomaxis x1 x2|x1 x2 y1 y2|x1 x2 y1 y2 z1 z2|x1 x2 y1 y2 z1 z2 c1 c2", mgls_zoomaxis,14},
+ {"zrange","Set range for z-axis","yrange Dat [add] | z1 z2", mgls_zrange ,14},
+ {"ztick","Set ticks for z-axis","ztick dz [sz tz] | 'tmpl' | Zdat 'lbl' [add] | v1 'lbl1' ...", mgls_ztick,14},
+{"","","",NULL,0}};
//-----------------------------------------------------------------------------
--- /dev/null
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/balakin/progr/mathgl-code/mathgl-2x/texinfo/classes.eps
+%%Creator: Dia v0.97.2
+%%CreationDate: Tue Nov 27 12:21:29 2012
+%%For: balakin
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 682 387
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E
+/F /G /H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W /X /Y
+/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
+/d /e /f /g /h /i /j /k /l /m
+/n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
+/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
+/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
+/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
+/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
+/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
+/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def /savematrix mtrx currentmatrix def
+ x y tr xrad yrad sc
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+ /to_y exch def
+ /to_x exch def
+ /conic_cntrl_y exch def
+ /conic_cntrl_x exch def
+ currentpoint
+ /p0_y exch def
+ /p0_x exch def
+ /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+ /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+ /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+ /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+ p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+16.590756 -16.590756 scale
+0.050000 -19.950000 translate
+%%EndProlog
+
+
+0.678431 0.847059 0.901961 srgb
+n 0.000000 -0.000000 m 0.000000 1.900000 l 7.000000 1.900000 l 7.000000 -0.000000 l f
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 0.000000 -0.000000 m 0.000000 1.900000 l 7.000000 1.900000 l 7.000000 -0.000000 l cp s
+gsave 2.116250 1.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 2.738161 1.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 3.145281 1.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 3.322609 1.145000 translate 0.035278 -0.035278 scale
+start_ol
+960 1728 moveto
+960 384 lineto
+1696 384 lineto
+2071 384 2251 550 conicto
+2432 716 2432 1057 conicto
+2432 1401 2251 1564 conicto
+2071 1728 1696 1728 conicto
+960 1728 lineto
+960 3136 moveto
+960 2112 lineto
+1639 2112 lineto
+1975 2112 2139 2238 conicto
+2304 2365 2304 2624 conicto
+2304 2881 2139 3008 conicto
+1975 3136 1639 3136 conicto
+960 3136 lineto
+448 3520 moveto
+1673 3520 lineto
+2222 3520 2519 3300 conicto
+2816 3080 2816 2674 conicto
+2816 2360 2658 2174 conicto
+2500 1989 2193 1943 conicto
+2549 1866 2746 1621 conicto
+2944 1376 2944 1009 conicto
+2944 526 2625 263 conicto
+2306 0 1718 0 conicto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 3.762198 1.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 4.154327 1.145000 translate 0.035278 -0.035278 scale
+start_ol
+2112 2560 moveto
+2112 2176 lineto
+1932 2272 1738 2320 conicto
+1544 2368 1336 2368 conicto
+1020 2368 862 2269 conicto
+704 2170 704 1972 conicto
+704 1821 814 1735 conicto
+925 1649 1260 1571 conicto
+1403 1538 lineto
+1857 1438 2048 1255 conicto
+2240 1072 2240 744 conicto
+2240 371 1954 153 conicto
+1668 -64 1167 -64 conicto
+958 -64 732 -16 conicto
+506 32 256 128 conicto
+256 576 lineto
+491 448 719 384 conicto
+947 320 1170 320 conicto
+1470 320 1631 425 conicto
+1792 531 1792 722 conicto
+1792 900 1678 994 conicto
+1564 1089 1177 1177 conicto
+1032 1212 lineto
+621 1298 438 1476 conicto
+256 1654 256 1964 conicto
+256 2341 520 2546 conicto
+784 2752 1269 2752 conicto
+1509 2752 1721 2704 conicto
+1933 2656 2112 2560 conicto
+end_ol grestore
+gsave 4.486512 1.145000 translate 0.035278 -0.035278 scale
+start_ol
+2752 1480 moveto
+2752 1280 lineto
+704 1280 lineto
+733 811 978 565 conicto
+1223 320 1660 320 conicto
+1914 320 2152 384 conicto
+2390 448 2624 576 conicto
+2624 192 lineto
+2388 67 2140 1 conicto
+1893 -64 1639 -64 conicto
+1001 -64 628 309 conicto
+256 683 256 1320 conicto
+256 1979 613 2365 conicto
+970 2752 1576 2752 conicto
+2120 2752 2436 2410 conicto
+2752 2068 2752 1480 conicto
+2304 1600 moveto
+2299 1950 2099 2159 conicto
+1900 2368 1572 2368 conicto
+1200 2368 976 2166 conicto
+753 1964 719 1597 conicto
+2304 1600 lineto
+end_ol grestore
+0.678431 0.847059 0.901961 srgb
+n 0.000000 3.000000 m 0.000000 4.900000 l 7.000000 4.900000 l 7.000000 3.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 0.000000 3.000000 m 0.000000 4.900000 l 7.000000 4.900000 l 7.000000 3.000000 l cp s
+gsave 1.721250 4.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 2.343161 4.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 2.750281 4.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 2.927609 4.145000 translate 0.035278 -0.035278 scale
+start_ol
+3136 3264 moveto
+3136 2752 lineto
+2892 2977 2616 3088 conicto
+2340 3200 2030 3200 conicto
+1418 3200 1093 2829 conicto
+768 2459 768 1759 conicto
+768 1061 1093 690 conicto
+1418 320 2030 320 conicto
+2340 320 2616 431 conicto
+2892 543 3136 768 conicto
+3136 256 lineto
+2882 96 2599 16 conicto
+2316 -64 2000 -64 conicto
+1189 -64 722 424 conicto
+256 913 256 1759 conicto
+256 2607 722 3095 conicto
+1189 3584 2000 3584 conicto
+2320 3584 2603 3504 conicto
+2887 3424 3136 3264 conicto
+end_ol grestore
+gsave 3.374689 4.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 3.766818 4.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+gsave 4.171432 4.145000 translate 0.035278 -0.035278 scale
+start_ol
+128 2688 moveto
+586 2688 lineto
+1408 432 lineto
+2230 2688 lineto
+2688 2688 lineto
+1702 0 lineto
+1114 0 lineto
+128 2688 lineto
+end_ol grestore
+gsave 4.551076 4.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 4.943205 4.145000 translate 0.035278 -0.035278 scale
+start_ol
+2112 2560 moveto
+2112 2176 lineto
+1932 2272 1738 2320 conicto
+1544 2368 1336 2368 conicto
+1020 2368 862 2269 conicto
+704 2170 704 1972 conicto
+704 1821 814 1735 conicto
+925 1649 1260 1571 conicto
+1403 1538 lineto
+1857 1438 2048 1255 conicto
+2240 1072 2240 744 conicto
+2240 371 1954 153 conicto
+1668 -64 1167 -64 conicto
+958 -64 732 -16 conicto
+506 32 256 128 conicto
+256 576 lineto
+491 448 719 384 conicto
+947 320 1170 320 conicto
+1470 320 1631 425 conicto
+1792 531 1792 722 conicto
+1792 900 1678 994 conicto
+1564 1089 1177 1177 conicto
+1032 1212 lineto
+621 1298 438 1476 conicto
+256 1654 256 1964 conicto
+256 2341 520 2546 conicto
+784 2752 1269 2752 conicto
+1509 2752 1721 2704 conicto
+1933 2656 2112 2560 conicto
+end_ol grestore
+0.678431 0.847059 0.901961 srgb
+n 0.000000 6.000000 m 0.000000 7.900000 l 7.000000 7.900000 l 7.000000 6.000000 l f
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 0.000000 6.000000 m 0.000000 7.900000 l 7.000000 7.900000 l 7.000000 6.000000 l cp s
+gsave 0.998750 7.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 1.620661 7.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 2.027781 7.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 2.205109 7.145000 translate 0.035278 -0.035278 scale
+start_ol
+3136 3264 moveto
+3136 2752 lineto
+2892 2977 2616 3088 conicto
+2340 3200 2030 3200 conicto
+1418 3200 1093 2829 conicto
+768 2459 768 1759 conicto
+768 1061 1093 690 conicto
+1418 320 2030 320 conicto
+2340 320 2616 431 conicto
+2892 543 3136 768 conicto
+3136 256 lineto
+2882 96 2599 16 conicto
+2316 -64 2000 -64 conicto
+1189 -64 722 424 conicto
+256 913 256 1759 conicto
+256 2607 722 3095 conicto
+1189 3584 2000 3584 conicto
+2320 3584 2603 3504 conicto
+2887 3424 3136 3264 conicto
+end_ol grestore
+gsave 2.652189 7.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 3.044318 7.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+gsave 3.448932 7.145000 translate 0.035278 -0.035278 scale
+start_ol
+128 2688 moveto
+586 2688 lineto
+1408 432 lineto
+2230 2688 lineto
+2688 2688 lineto
+1702 0 lineto
+1114 0 lineto
+128 2688 lineto
+end_ol grestore
+gsave 3.828576 7.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 4.220705 7.145000 translate 0.035278 -0.035278 scale
+start_ol
+2112 2560 moveto
+2112 2176 lineto
+1932 2272 1738 2320 conicto
+1544 2368 1336 2368 conicto
+1020 2368 862 2269 conicto
+704 2170 704 1972 conicto
+704 1821 814 1735 conicto
+925 1649 1260 1571 conicto
+1403 1538 lineto
+1857 1438 2048 1255 conicto
+2240 1072 2240 744 conicto
+2240 371 1954 153 conicto
+1668 -64 1167 -64 conicto
+958 -64 732 -16 conicto
+506 32 256 128 conicto
+256 576 lineto
+491 448 719 384 conicto
+947 320 1170 320 conicto
+1470 320 1631 425 conicto
+1792 531 1792 722 conicto
+1792 900 1678 994 conicto
+1564 1089 1177 1177 conicto
+1032 1212 lineto
+621 1298 438 1476 conicto
+256 1654 256 1964 conicto
+256 2341 520 2546 conicto
+784 2752 1269 2752 conicto
+1509 2752 1721 2704 conicto
+1933 2656 2112 2560 conicto
+end_ol grestore
+gsave 4.552890 7.145000 translate 0.035278 -0.035278 scale
+start_ol
+192 3520 moveto
+676 3520 lineto
+1420 545 lineto
+2162 3520 lineto
+2700 3520 lineto
+3444 545 lineto
+4186 3520 lineto
+4672 3520 lineto
+3783 0 lineto
+3181 0 lineto
+2434 3056 lineto
+1681 0 lineto
+1079 0 lineto
+192 3520 lineto
+end_ol grestore
+gsave 5.184797 7.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+gsave 5.589411 7.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 2304 moveto
+2176 3712 lineto
+2624 3712 lineto
+2624 0 lineto
+2176 0 lineto
+2176 384 lineto
+2040 157 1832 46 conicto
+1624 -64 1332 -64 conicto
+855 -64 555 324 conicto
+256 712 256 1344 conicto
+256 1976 555 2364 conicto
+855 2752 1332 2752 conicto
+1624 2752 1832 2641 conicto
+2040 2531 2176 2304 conicto
+704 1344 moveto
+704 865 900 592 conicto
+1096 320 1439 320 conicto
+1782 320 1979 592 conicto
+2176 865 2176 1344 conicto
+2176 1823 1979 2095 conicto
+1782 2368 1439 2368 conicto
+1096 2368 900 2095 conicto
+704 1823 704 1344 conicto
+end_ol grestore
+0.678431 0.847059 0.901961 srgb
+n 8.000000 5.000000 m 8.000000 6.900000 l 15.000000 6.900000 l 15.000000 5.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 8.000000 5.000000 m 8.000000 6.900000 l 15.000000 6.900000 l 15.000000 5.000000 l cp s
+gsave 9.295000 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 9.916911 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 10.324031 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 10.501359 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+3136 3264 moveto
+3136 2752 lineto
+2892 2977 2616 3088 conicto
+2340 3200 2030 3200 conicto
+1418 3200 1093 2829 conicto
+768 2459 768 1759 conicto
+768 1061 1093 690 conicto
+1418 320 2030 320 conicto
+2340 320 2616 431 conicto
+2892 543 3136 768 conicto
+3136 256 lineto
+2882 96 2599 16 conicto
+2316 -64 2000 -64 conicto
+1189 -64 722 424 conicto
+256 913 256 1759 conicto
+256 2607 722 3095 conicto
+1189 3584 2000 3584 conicto
+2320 3584 2603 3504 conicto
+2887 3424 3136 3264 conicto
+end_ol grestore
+gsave 10.948439 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 11.340568 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+gsave 11.745182 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+128 2688 moveto
+586 2688 lineto
+1408 432 lineto
+2230 2688 lineto
+2688 2688 lineto
+1702 0 lineto
+1114 0 lineto
+128 2688 lineto
+end_ol grestore
+gsave 12.124826 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 12.516955 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2112 2560 moveto
+2112 2176 lineto
+1932 2272 1738 2320 conicto
+1544 2368 1336 2368 conicto
+1020 2368 862 2269 conicto
+704 2170 704 1972 conicto
+704 1821 814 1735 conicto
+925 1649 1260 1571 conicto
+1403 1538 lineto
+1857 1438 2048 1255 conicto
+2240 1072 2240 744 conicto
+2240 371 1954 153 conicto
+1668 -64 1167 -64 conicto
+958 -64 732 -16 conicto
+506 32 256 128 conicto
+256 576 lineto
+491 448 719 384 conicto
+947 320 1170 320 conicto
+1470 320 1631 425 conicto
+1792 531 1792 722 conicto
+1792 900 1678 994 conicto
+1564 1089 1177 1177 conicto
+1032 1212 lineto
+621 1298 438 1476 conicto
+256 1654 256 1964 conicto
+256 2341 520 2546 conicto
+784 2752 1269 2752 conicto
+1509 2752 1721 2704 conicto
+1933 2656 2112 2560 conicto
+end_ol grestore
+gsave 12.849140 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2816 504 moveto
+2816 1472 lineto
+2048 1472 lineto
+2048 1856 lineto
+3328 1856 lineto
+3328 325 lineto
+3052 133 2720 34 conicto
+2388 -64 2011 -64 conicto
+1187 -64 721 417 conicto
+256 899 256 1759 conicto
+256 2621 725 3102 conicto
+1195 3584 2028 3584 conicto
+2375 3584 2687 3503 conicto
+3000 3422 3264 3264 conicto
+3264 2752 lineto
+2998 2975 2699 3087 conicto
+2400 3200 2071 3200 conicto
+1420 3200 1094 2838 conicto
+768 2476 768 1759 conicto
+768 1044 1084 682 conicto
+1400 320 2030 320 conicto
+2276 320 2469 365 conicto
+2662 410 2816 504 conicto
+end_ol grestore
+gsave 13.343671 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+960 3520 lineto
+960 384 lineto
+2688 384 lineto
+2688 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+1.000000 1.000000 1.000000 srgb
+n 16.000000 5.000000 m 16.000000 6.900000 l 23.000000 6.900000 l 23.000000 5.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 16.000000 5.000000 m 16.000000 6.900000 l 23.000000 6.900000 l 23.000000 5.000000 l cp s
+gsave 16.882500 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 17.504411 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 17.911531 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 18.088859 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+3136 3264 moveto
+3136 2752 lineto
+2892 2977 2616 3088 conicto
+2340 3200 2030 3200 conicto
+1418 3200 1093 2829 conicto
+768 2459 768 1759 conicto
+768 1061 1093 690 conicto
+1418 320 2030 320 conicto
+2340 320 2616 431 conicto
+2892 543 3136 768 conicto
+3136 256 lineto
+2882 96 2599 16 conicto
+2316 -64 2000 -64 conicto
+1189 -64 722 424 conicto
+256 913 256 1759 conicto
+256 2607 722 3095 conicto
+1189 3584 2000 3584 conicto
+2320 3584 2603 3504 conicto
+2887 3424 3136 3264 conicto
+end_ol grestore
+gsave 18.535939 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 18.928068 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+gsave 19.332682 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+128 2688 moveto
+586 2688 lineto
+1408 432 lineto
+2230 2688 lineto
+2688 2688 lineto
+1702 0 lineto
+1114 0 lineto
+128 2688 lineto
+end_ol grestore
+gsave 19.712326 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 20.104455 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2112 2560 moveto
+2112 2176 lineto
+1932 2272 1738 2320 conicto
+1544 2368 1336 2368 conicto
+1020 2368 862 2269 conicto
+704 2170 704 1972 conicto
+704 1821 814 1735 conicto
+925 1649 1260 1571 conicto
+1403 1538 lineto
+1857 1438 2048 1255 conicto
+2240 1072 2240 744 conicto
+2240 371 1954 153 conicto
+1668 -64 1167 -64 conicto
+958 -64 732 -16 conicto
+506 32 256 128 conicto
+256 576 lineto
+491 448 719 384 conicto
+947 320 1170 320 conicto
+1470 320 1631 425 conicto
+1792 531 1792 722 conicto
+1792 900 1678 994 conicto
+1564 1089 1177 1177 conicto
+1032 1212 lineto
+621 1298 438 1476 conicto
+256 1654 256 1964 conicto
+256 2341 520 2546 conicto
+784 2752 1269 2752 conicto
+1509 2752 1721 2704 conicto
+1933 2656 2112 2560 conicto
+end_ol grestore
+gsave 20.436640 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2816 504 moveto
+2816 1472 lineto
+2048 1472 lineto
+2048 1856 lineto
+3328 1856 lineto
+3328 325 lineto
+3052 133 2720 34 conicto
+2388 -64 2011 -64 conicto
+1187 -64 721 417 conicto
+256 899 256 1759 conicto
+256 2621 725 3102 conicto
+1195 3584 2028 3584 conicto
+2375 3584 2687 3503 conicto
+3000 3422 3264 3264 conicto
+3264 2752 lineto
+2998 2975 2699 3087 conicto
+2400 3200 2071 3200 conicto
+1420 3200 1094 2838 conicto
+768 2476 768 1759 conicto
+768 1044 1084 682 conicto
+1400 320 2030 320 conicto
+2276 320 2469 365 conicto
+2662 410 2816 504 conicto
+end_ol grestore
+gsave 20.931171 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+960 3520 lineto
+960 384 lineto
+2688 384 lineto
+2688 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 21.255864 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+960 3520 lineto
+960 1383 lineto
+960 817 1156 568 conicto
+1353 320 1793 320 conicto
+2231 320 2427 568 conicto
+2624 817 2624 1383 conicto
+2624 3520 lineto
+3136 3520 lineto
+3136 1324 lineto
+3136 637 2796 286 conicto
+2456 -64 1793 -64 conicto
+1128 -64 788 286 conicto
+448 637 448 1324 conicto
+448 3520 lineto
+end_ol grestore
+gsave 21.722920 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+-64 3520 moveto
+3008 3520 lineto
+3008 3136 lineto
+1728 3136 lineto
+1728 0 lineto
+1216 0 lineto
+1216 3136 lineto
+-64 3136 lineto
+-64 3520 lineto
+end_ol grestore
+1.000000 1.000000 1.000000 srgb
+n 5.000000 9.000000 m 5.000000 10.900000 l 12.000000 10.900000 l 12.000000 9.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 5.000000 9.000000 m 5.000000 10.900000 l 12.000000 10.900000 l 12.000000 9.000000 l cp s
+gsave 5.997500 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 6.619411 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 7.026531 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 7.203859 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+3136 3264 moveto
+3136 2752 lineto
+2892 2977 2616 3088 conicto
+2340 3200 2030 3200 conicto
+1418 3200 1093 2829 conicto
+768 2459 768 1759 conicto
+768 1061 1093 690 conicto
+1418 320 2030 320 conicto
+2340 320 2616 431 conicto
+2892 543 3136 768 conicto
+3136 256 lineto
+2882 96 2599 16 conicto
+2316 -64 2000 -64 conicto
+1189 -64 722 424 conicto
+256 913 256 1759 conicto
+256 2607 722 3095 conicto
+1189 3584 2000 3584 conicto
+2320 3584 2603 3504 conicto
+2887 3424 3136 3264 conicto
+end_ol grestore
+gsave 7.650939 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 8.043068 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+gsave 8.447682 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+128 2688 moveto
+586 2688 lineto
+1408 432 lineto
+2230 2688 lineto
+2688 2688 lineto
+1702 0 lineto
+1114 0 lineto
+128 2688 lineto
+end_ol grestore
+gsave 8.827326 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 9.219455 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+2112 2560 moveto
+2112 2176 lineto
+1932 2272 1738 2320 conicto
+1544 2368 1336 2368 conicto
+1020 2368 862 2269 conicto
+704 2170 704 1972 conicto
+704 1821 814 1735 conicto
+925 1649 1260 1571 conicto
+1403 1538 lineto
+1857 1438 2048 1255 conicto
+2240 1072 2240 744 conicto
+2240 371 1954 153 conicto
+1668 -64 1167 -64 conicto
+958 -64 732 -16 conicto
+506 32 256 128 conicto
+256 576 lineto
+491 448 719 384 conicto
+947 320 1170 320 conicto
+1470 320 1631 425 conicto
+1792 531 1792 722 conicto
+1792 900 1678 994 conicto
+1564 1089 1177 1177 conicto
+1032 1212 lineto
+621 1298 438 1476 conicto
+256 1654 256 1964 conicto
+256 2341 520 2546 conicto
+784 2752 1269 2752 conicto
+1509 2752 1721 2704 conicto
+1933 2656 2112 2560 conicto
+end_ol grestore
+gsave 9.551640 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+2496 3520 lineto
+2496 3136 lineto
+960 3136 lineto
+960 2112 lineto
+2368 2112 lineto
+2368 1728 lineto
+960 1728 lineto
+960 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 9.918790 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+960 3520 lineto
+960 384 lineto
+2688 384 lineto
+2688 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 10.188533 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+-64 3520 moveto
+3008 3520 lineto
+3008 3136 lineto
+1728 3136 lineto
+1728 0 lineto
+1216 0 lineto
+1216 3136 lineto
+-64 3136 lineto
+-64 3520 lineto
+end_ol grestore
+gsave 10.578165 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+960 3520 lineto
+960 2032 lineto
+2528 3520 lineto
+3136 3520 lineto
+1402 1879 lineto
+3264 0 lineto
+2641 0 lineto
+960 1695 lineto
+960 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+1.000000 1.000000 1.000000 srgb
+n 5.000000 15.000000 m 5.000000 16.900000 l 12.000000 16.900000 l 12.000000 15.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 5.000000 15.000000 m 5.000000 16.900000 l 12.000000 16.900000 l 12.000000 15.000000 l cp s
+gsave 6.186250 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 6.808161 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 7.215281 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 7.392609 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+3136 3264 moveto
+3136 2752 lineto
+2892 2977 2616 3088 conicto
+2340 3200 2030 3200 conicto
+1418 3200 1093 2829 conicto
+768 2459 768 1759 conicto
+768 1061 1093 690 conicto
+1418 320 2030 320 conicto
+2340 320 2616 431 conicto
+2892 543 3136 768 conicto
+3136 256 lineto
+2882 96 2599 16 conicto
+2316 -64 2000 -64 conicto
+1189 -64 722 424 conicto
+256 913 256 1759 conicto
+256 2607 722 3095 conicto
+1189 3584 2000 3584 conicto
+2320 3584 2603 3504 conicto
+2887 3424 3136 3264 conicto
+end_ol grestore
+gsave 7.839689 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 8.231818 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+gsave 8.636432 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+128 2688 moveto
+586 2688 lineto
+1408 432 lineto
+2230 2688 lineto
+2688 2688 lineto
+1702 0 lineto
+1114 0 lineto
+128 2688 lineto
+end_ol grestore
+gsave 9.016076 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 9.408205 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+2112 2560 moveto
+2112 2176 lineto
+1932 2272 1738 2320 conicto
+1544 2368 1336 2368 conicto
+1020 2368 862 2269 conicto
+704 2170 704 1972 conicto
+704 1821 814 1735 conicto
+925 1649 1260 1571 conicto
+1403 1538 lineto
+1857 1438 2048 1255 conicto
+2240 1072 2240 744 conicto
+2240 371 1954 153 conicto
+1668 -64 1167 -64 conicto
+958 -64 732 -16 conicto
+506 32 256 128 conicto
+256 576 lineto
+491 448 719 384 conicto
+947 320 1170 320 conicto
+1470 320 1631 425 conicto
+1792 531 1792 722 conicto
+1792 900 1678 994 conicto
+1564 1089 1177 1177 conicto
+1032 1212 lineto
+621 1298 438 1476 conicto
+256 1654 256 1964 conicto
+256 2341 520 2546 conicto
+784 2752 1269 2752 conicto
+1509 2752 1721 2704 conicto
+1933 2656 2112 2560 conicto
+end_ol grestore
+gsave 9.740390 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+192 3520 moveto
+676 3520 lineto
+1420 545 lineto
+2162 3520 lineto
+2700 3520 lineto
+3444 545 lineto
+4186 3520 lineto
+4672 3520 lineto
+3783 0 lineto
+3181 0 lineto
+2434 3056 lineto
+1681 0 lineto
+1079 0 lineto
+192 3520 lineto
+end_ol grestore
+gsave 10.372297 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+320 3520 moveto
+827 3520 lineto
+1694 2202 lineto
+2565 3520 lineto
+3072 3520 lineto
+1932 1830 lineto
+3136 0 lineto
+2625 0 lineto
+1637 1508 lineto
+641 0 lineto
+128 0 lineto
+1425 1879 lineto
+320 3520 lineto
+end_ol grestore
+1.000000 1.000000 1.000000 srgb
+n 5.000000 12.000000 m 5.000000 13.900000 l 12.000000 13.900000 l 12.000000 12.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 5.000000 12.000000 m 5.000000 13.900000 l 12.000000 13.900000 l 12.000000 12.000000 l cp s
+gsave 6.273750 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 6.895661 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 7.302781 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 7.480109 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+3136 3264 moveto
+3136 2752 lineto
+2892 2977 2616 3088 conicto
+2340 3200 2030 3200 conicto
+1418 3200 1093 2829 conicto
+768 2459 768 1759 conicto
+768 1061 1093 690 conicto
+1418 320 2030 320 conicto
+2340 320 2616 431 conicto
+2892 543 3136 768 conicto
+3136 256 lineto
+2882 96 2599 16 conicto
+2316 -64 2000 -64 conicto
+1189 -64 722 424 conicto
+256 913 256 1759 conicto
+256 2607 722 3095 conicto
+1189 3584 2000 3584 conicto
+2320 3584 2603 3504 conicto
+2887 3424 3136 3264 conicto
+end_ol grestore
+gsave 7.927189 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 8.319318 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+gsave 8.723932 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+128 2688 moveto
+586 2688 lineto
+1408 432 lineto
+2230 2688 lineto
+2688 2688 lineto
+1702 0 lineto
+1114 0 lineto
+128 2688 lineto
+end_ol grestore
+gsave 9.103576 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 9.495705 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+2112 2560 moveto
+2112 2176 lineto
+1932 2272 1738 2320 conicto
+1544 2368 1336 2368 conicto
+1020 2368 862 2269 conicto
+704 2170 704 1972 conicto
+704 1821 814 1735 conicto
+925 1649 1260 1571 conicto
+1403 1538 lineto
+1857 1438 2048 1255 conicto
+2240 1072 2240 744 conicto
+2240 371 1954 153 conicto
+1668 -64 1167 -64 conicto
+958 -64 732 -16 conicto
+506 32 256 128 conicto
+256 576 lineto
+491 448 719 384 conicto
+947 320 1170 320 conicto
+1470 320 1631 425 conicto
+1792 531 1792 722 conicto
+1792 900 1678 994 conicto
+1564 1089 1177 1177 conicto
+1032 1212 lineto
+621 1298 438 1476 conicto
+256 1654 256 1964 conicto
+256 2341 520 2546 conicto
+784 2752 1269 2752 conicto
+1509 2752 1721 2704 conicto
+1933 2656 2112 2560 conicto
+end_ol grestore
+gsave 9.827890 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+1890 3200 moveto
+1375 3200 1071 2813 conicto
+768 2426 768 1759 conicto
+768 1094 1071 707 conicto
+1375 320 1890 320 conicto
+2406 320 2707 707 conicto
+3008 1094 3008 1759 conicto
+3008 2426 2707 2813 conicto
+2406 3200 1890 3200 conicto
+2553 67 moveto
+3181 -640 lineto
+2607 -640 lineto
+2087 -55 lineto
+2009 -59 1968 -61 conicto
+1927 -64 1889 -64 conicto
+1146 -64 701 431 conicto
+256 927 256 1759 conicto
+256 2593 701 3088 conicto
+1146 3584 1890 3584 conicto
+2632 3584 3076 3088 conicto
+3520 2592 3520 1758 conicto
+3520 1146 3271 710 conicto
+3023 274 2553 67 conicto
+end_ol grestore
+gsave 10.332417 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+-64 3520 moveto
+3008 3520 lineto
+3008 3136 lineto
+1728 3136 lineto
+1728 0 lineto
+1216 0 lineto
+1216 3136 lineto
+-64 3136 lineto
+-64 3520 lineto
+end_ol grestore
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.500000 3.000000 m 3.500000 2.386803 l s
+[] 0 sd
+0 slj
+0 slc
+n 3.500000 2.011803 m 3.750000 2.511803 l 3.500000 2.386803 l 3.250000 2.511803 l ef
+n 3.500000 2.011803 m 3.750000 2.511803 l 3.500000 2.386803 l 3.250000 2.511803 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.500000 6.000000 m 3.500000 5.386803 l s
+[] 0 sd
+0 slj
+0 slc
+n 3.500000 5.011803 m 3.750000 5.511803 l 3.500000 5.386803 l 3.250000 5.511803 l ef
+n 3.500000 5.011803 m 3.750000 5.511803 l 3.500000 5.386803 l 3.250000 5.511803 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.750000 5.000000 m 7.454781 4.123644 l s
+[] 0 sd
+0 slj
+0 slc
+n 7.104449 3.989880 m 7.660733 3.934677 l 7.454781 4.123644 l 7.482383 4.401786 l ef
+n 7.104449 3.989880 m 7.660733 3.934677 l 7.454781 4.123644 l 7.482383 4.401786 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 16.000000 5.950000 m 15.486803 5.950000 l s
+[] 0 sd
+0 slj
+0 slc
+n 15.111803 5.950000 m 15.611803 5.700000 l 15.486803 5.950000 l 15.611803 6.200000 l ef
+n 15.111803 5.950000 m 15.611803 5.700000 l 15.486803 5.950000 l 15.611803 6.200000 l cp s
+0.000000 1.000000 0.000000 srgb
+n 17.000000 9.000000 m 17.000000 10.900000 l 22.000000 10.900000 l 22.000000 9.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 17.000000 9.000000 m 17.000000 10.900000 l 22.000000 10.900000 l 22.000000 9.000000 l cp s
+gsave 18.021250 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+1890 3200 moveto
+1375 3200 1071 2813 conicto
+768 2426 768 1759 conicto
+768 1094 1071 707 conicto
+1375 320 1890 320 conicto
+2406 320 2707 707 conicto
+3008 1094 3008 1759 conicto
+3008 2426 2707 2813 conicto
+2406 3200 1890 3200 conicto
+2553 67 moveto
+3181 -640 lineto
+2607 -640 lineto
+2087 -55 lineto
+2009 -59 1968 -61 conicto
+1927 -64 1889 -64 conicto
+1146 -64 701 431 conicto
+256 927 256 1759 conicto
+256 2593 701 3088 conicto
+1146 3584 1890 3584 conicto
+2632 3584 3076 3088 conicto
+3520 2592 3520 1758 conicto
+3520 1146 3271 710 conicto
+3023 274 2553 67 conicto
+end_ol grestore
+gsave 18.525777 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+1202 3520 lineto
+2079 1148 lineto
+2961 3520 lineto
+3712 3520 lineto
+3712 0 lineto
+3200 0 lineto
+3200 3095 lineto
+2314 704 lineto
+1846 704 lineto
+960 3095 lineto
+960 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 19.077756 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 19.469885 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+896 3456 moveto
+896 2688 lineto
+1792 2688 lineto
+1792 2368 lineto
+896 2368 lineto
+896 902 lineto
+896 572 984 478 conicto
+1073 384 1345 384 conicto
+1792 384 lineto
+1792 0 lineto
+1345 0 lineto
+836 0 642 194 conicto
+448 389 448 902 conicto
+448 2368 lineto
+128 2368 lineto
+128 2688 lineto
+448 2688 lineto
+448 3456 lineto
+896 3456 lineto
+end_ol grestore
+gsave 19.719652 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+896 3712 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+gsave 20.124266 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+2816 504 moveto
+2816 1472 lineto
+2048 1472 lineto
+2048 1856 lineto
+3328 1856 lineto
+3328 325 lineto
+3052 133 2720 34 conicto
+2388 -64 2011 -64 conicto
+1187 -64 721 417 conicto
+256 899 256 1759 conicto
+256 2621 725 3102 conicto
+1195 3584 2028 3584 conicto
+2375 3584 2687 3503 conicto
+3000 3422 3264 3264 conicto
+3264 2752 lineto
+2998 2975 2699 3087 conicto
+2400 3200 2071 3200 conicto
+1420 3200 1094 2838 conicto
+768 2476 768 1759 conicto
+768 1044 1084 682 conicto
+1400 320 2030 320 conicto
+2276 320 2469 365 conicto
+2662 410 2816 504 conicto
+end_ol grestore
+gsave 20.618797 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+960 3520 lineto
+960 384 lineto
+2688 384 lineto
+2688 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+0.000000 1.000000 0.000000 srgb
+n 17.000000 12.000000 m 17.000000 13.900000 l 22.000000 13.900000 l 22.000000 12.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 17.000000 12.000000 m 17.000000 13.900000 l 22.000000 13.900000 l 22.000000 12.000000 l cp s
+gsave 17.841250 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+2496 3520 lineto
+2496 3136 lineto
+960 3136 lineto
+960 2112 lineto
+2368 2112 lineto
+2368 1728 lineto
+960 1728 lineto
+960 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 18.208401 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 18.385729 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+2496 -832 moveto
+2496 -1152 lineto
+-64 -1152 lineto
+-64 -832 lineto
+2496 -832 lineto
+end_ol grestore
+gsave 18.705429 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+1202 3520 lineto
+2079 1148 lineto
+2961 3520 lineto
+3712 3520 lineto
+3712 0 lineto
+3200 0 lineto
+3200 3095 lineto
+2314 704 lineto
+1846 704 lineto
+960 3095 lineto
+960 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 19.257407 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 19.649537 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+896 3456 moveto
+896 2688 lineto
+1792 2688 lineto
+1792 2368 lineto
+896 2368 lineto
+896 902 lineto
+896 572 984 478 conicto
+1073 384 1345 384 conicto
+1792 384 lineto
+1792 0 lineto
+1345 0 lineto
+836 0 642 194 conicto
+448 389 448 902 conicto
+448 2368 lineto
+128 2368 lineto
+128 2688 lineto
+448 2688 lineto
+448 3456 lineto
+896 3456 lineto
+end_ol grestore
+gsave 19.899303 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+896 3712 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+gsave 20.303917 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+2816 504 moveto
+2816 1472 lineto
+2048 1472 lineto
+2048 1856 lineto
+3328 1856 lineto
+3328 325 lineto
+3052 133 2720 34 conicto
+2388 -64 2011 -64 conicto
+1187 -64 721 417 conicto
+256 899 256 1759 conicto
+256 2621 725 3102 conicto
+1195 3584 2028 3584 conicto
+2375 3584 2687 3503 conicto
+3000 3422 3264 3264 conicto
+3264 2752 lineto
+2998 2975 2699 3087 conicto
+2400 3200 2071 3200 conicto
+1420 3200 1094 2838 conicto
+768 2476 768 1759 conicto
+768 1044 1084 682 conicto
+1400 320 2030 320 conicto
+2276 320 2469 365 conicto
+2662 410 2816 504 conicto
+end_ol grestore
+gsave 20.798448 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+960 3520 lineto
+960 384 lineto
+2688 384 lineto
+2688 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+0.000000 1.000000 0.000000 srgb
+n 17.000000 15.000000 m 17.000000 16.900000 l 22.000000 16.900000 l 22.000000 15.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 17.000000 15.000000 m 17.000000 16.900000 l 22.000000 16.900000 l 22.000000 15.000000 l cp s
+gsave 17.822500 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+192 2688 moveto
+631 2688 lineto
+1179 590 lineto
+1725 2688 lineto
+2243 2688 lineto
+2791 590 lineto
+3337 2688 lineto
+3776 2688 lineto
+3077 0 lineto
+2560 0 lineto
+1985 2203 lineto
+1408 0 lineto
+891 0 lineto
+192 2688 lineto
+end_ol grestore
+gsave 18.344506 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+2624 2688 moveto
+1666 1380 lineto
+2688 0 lineto
+2169 0 lineto
+1389 1056 lineto
+632 0 lineto
+128 0 lineto
+1134 1406 lineto
+192 2688 lineto
+705 2688 lineto
+1408 1730 lineto
+2111 2688 lineto
+2624 2688 lineto
+end_ol grestore
+gsave 18.724150 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+1202 3520 lineto
+2079 1148 lineto
+2961 3520 lineto
+3712 3520 lineto
+3712 0 lineto
+3200 0 lineto
+3200 3095 lineto
+2314 704 lineto
+1846 704 lineto
+960 3095 lineto
+960 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 19.276129 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 19.668258 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+896 3456 moveto
+896 2688 lineto
+1792 2688 lineto
+1792 2368 lineto
+896 2368 lineto
+896 902 lineto
+896 572 984 478 conicto
+1073 384 1345 384 conicto
+1792 384 lineto
+1792 0 lineto
+1345 0 lineto
+836 0 642 194 conicto
+448 389 448 902 conicto
+448 2368 lineto
+128 2368 lineto
+128 2688 lineto
+448 2688 lineto
+448 3456 lineto
+896 3456 lineto
+end_ol grestore
+gsave 19.918025 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+896 3712 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+gsave 20.322639 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+2816 504 moveto
+2816 1472 lineto
+2048 1472 lineto
+2048 1856 lineto
+3328 1856 lineto
+3328 325 lineto
+3052 133 2720 34 conicto
+2388 -64 2011 -64 conicto
+1187 -64 721 417 conicto
+256 899 256 1759 conicto
+256 2621 725 3102 conicto
+1195 3584 2028 3584 conicto
+2375 3584 2687 3503 conicto
+3000 3422 3264 3264 conicto
+3264 2752 lineto
+2998 2975 2699 3087 conicto
+2400 3200 2071 3200 conicto
+1420 3200 1094 2838 conicto
+768 2476 768 1759 conicto
+768 1044 1084 682 conicto
+1400 320 2030 320 conicto
+2276 320 2469 365 conicto
+2662 410 2816 504 conicto
+end_ol grestore
+gsave 20.817170 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+960 3520 lineto
+960 384 lineto
+2688 384 lineto
+2688 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+0.627451 0.125490 0.941176 srgb
+n 16.513197 9.950000 m 12.536425 9.950000 l s
+[] 0 sd
+0 slj
+0 slc
+n 16.888197 9.950000 m 16.388197 10.200000 l 16.513197 9.950000 l 16.388197 9.700000 l ef
+n 16.888197 9.950000 m 16.388197 10.200000 l 16.513197 9.950000 l 16.388197 9.700000 l cp s
+[] 0 sd
+0 slj
+0 slc
+n 12.161425 9.950000 m 12.661425 9.700000 l 12.536425 9.950000 l 12.661425 10.200000 l ef
+n 12.161425 9.950000 m 12.661425 9.700000 l 12.536425 9.950000 l 12.661425 10.200000 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 16.513197 12.950000 m 12.486803 12.950000 l s
+[] 0 sd
+0 slj
+0 slc
+n 16.888197 12.950000 m 16.388197 13.200000 l 16.513197 12.950000 l 16.388197 12.700000 l ef
+n 16.888197 12.950000 m 16.388197 13.200000 l 16.513197 12.950000 l 16.388197 12.700000 l cp s
+[] 0 sd
+0 slj
+0 slc
+n 12.111803 12.950000 m 12.611803 12.700000 l 12.486803 12.950000 l 12.611803 13.200000 l ef
+n 12.111803 12.950000 m 12.611803 12.700000 l 12.486803 12.950000 l 12.611803 13.200000 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 16.513197 15.950000 m 12.486803 15.950000 l s
+[] 0 sd
+0 slj
+0 slc
+n 16.888197 15.950000 m 16.388197 16.200000 l 16.513197 15.950000 l 16.388197 15.700000 l ef
+n 16.888197 15.950000 m 16.388197 16.200000 l 16.513197 15.950000 l 16.388197 15.700000 l cp s
+[] 0 sd
+0 slj
+0 slc
+n 12.111803 15.950000 m 12.611803 15.700000 l 12.486803 15.950000 l 12.611803 16.200000 l ef
+n 12.111803 15.950000 m 12.611803 15.700000 l 12.486803 15.950000 l 12.611803 16.200000 l cp s
+0.000000 0.000000 0.000000 srgb
+gsave 16.946250 19.000000 translate 0.035278 -0.035278 scale
+start_ol
+256 5568 moveto
+1023 5568 lineto
+2203 861 lineto
+3380 5568 lineto
+4233 5568 lineto
+5413 861 lineto
+6589 5568 lineto
+7360 5568 lineto
+5950 0 lineto
+4996 0 lineto
+3812 4833 lineto
+2616 0 lineto
+1662 0 lineto
+256 5568 lineto
+end_ol grestore
+gsave 17.927829 19.000000 translate 0.035278 -0.035278 scale
+start_ol
+704 4224 moveto
+1408 4224 lineto
+1408 0 lineto
+704 0 lineto
+704 4224 lineto
+704 5824 moveto
+1408 5824 lineto
+1408 4928 lineto
+704 4928 lineto
+704 5824 lineto
+end_ol grestore
+gsave 18.210065 19.000000 translate 0.035278 -0.035278 scale
+start_ol
+3520 3584 moveto
+3520 5824 lineto
+4224 5824 lineto
+4224 0 lineto
+3520 0 lineto
+3520 640 lineto
+3302 250 2969 61 conicto
+2636 -128 2170 -128 conicto
+1407 -128 927 489 conicto
+448 1106 448 2112 conicto
+448 3118 927 3735 conicto
+1407 4352 2170 4352 conicto
+2636 4352 2969 4163 conicto
+3302 3974 3520 3584 conicto
+1152 2112 moveto
+1152 1334 1467 891 conicto
+1783 448 2334 448 conicto
+2886 448 3203 891 conicto
+3520 1334 3520 2112 conicto
+3520 2890 3203 3333 conicto
+2886 3776 2334 3776 conicto
+1783 3776 1467 3333 conicto
+1152 2890 1152 2112 conicto
+end_ol grestore
+gsave 18.854458 19.000000 translate 0.035278 -0.035278 scale
+start_ol
+3520 2174 moveto
+3520 2937 3208 3356 conicto
+2897 3776 2334 3776 conicto
+1775 3776 1463 3356 conicto
+1152 2937 1152 2174 conicto
+1152 1415 1463 995 conicto
+1775 576 2334 576 conicto
+2897 576 3208 995 conicto
+3520 1415 3520 2174 conicto
+4224 520 moveto
+4224 -553 3745 -1076 conicto
+3267 -1600 2279 -1600 conicto
+1914 -1600 1589 -1537 conicto
+1265 -1474 960 -1344 conicto
+960 -704 lineto
+1264 -868 1560 -946 conicto
+1857 -1024 2165 -1024 conicto
+2844 -1024 3182 -671 conicto
+3520 -318 3520 396 conicto
+3520 768 lineto
+3306 382 2971 191 conicto
+2636 0 2170 0 conicto
+1396 0 922 595 conicto
+448 1191 448 2174 conicto
+448 3161 922 3756 conicto
+1396 4352 2170 4352 conicto
+2636 4352 2971 4161 conicto
+3306 3970 3520 3584 conicto
+3520 4224 lineto
+4224 4224 lineto
+4224 520 lineto
+end_ol grestore
+gsave 19.498851 19.000000 translate 0.035278 -0.035278 scale
+start_ol
+4352 2304 moveto
+4352 1984 lineto
+1152 1984 lineto
+1197 1234 1581 841 conicto
+1965 448 2650 448 conicto
+3047 448 3420 544 conicto
+3793 640 4160 832 conicto
+4160 192 lineto
+3791 36 3403 -46 conicto
+3015 -128 2616 -128 conicto
+1616 -128 1032 466 conicto
+448 1061 448 2074 conicto
+448 3122 1006 3737 conicto
+1565 4352 2513 4352 conicto
+3363 4352 3857 3801 conicto
+4352 3250 4352 2304 conicto
+3648 2496 moveto
+3640 3080 3329 3428 conicto
+3018 3776 2506 3776 conicto
+1925 3776 1576 3439 conicto
+1228 3103 1175 2492 conicto
+3648 2496 lineto
+end_ol grestore
+gsave 20.123267 19.000000 translate 0.035278 -0.035278 scale
+start_ol
+1408 5440 moveto
+1408 4224 lineto
+2816 4224 lineto
+2816 3712 lineto
+1408 3712 lineto
+1408 1395 lineto
+1408 873 1547 724 conicto
+1687 576 2114 576 conicto
+2816 576 lineto
+2816 0 lineto
+2114 0 lineto
+1313 0 1008 300 conicto
+704 601 704 1395 conicto
+704 3712 lineto
+192 3712 lineto
+192 4224 lineto
+704 4224 lineto
+704 5440 lineto
+1408 5440 lineto
+end_ol grestore
+gsave 20.520390 19.000000 translate 0.035278 -0.035278 scale
+start_ol
+3392 4096 moveto
+3392 3456 lineto
+3106 3616 2797 3696 conicto
+2489 3776 2158 3776 conicto
+1655 3776 1403 3613 conicto
+1152 3450 1152 3123 conicto
+1152 2875 1334 2733 conicto
+1517 2591 2068 2463 conicto
+2303 2409 lineto
+3033 2250 3340 1960 conicto
+3648 1671 3648 1152 conicto
+3648 561 3186 216 conicto
+2725 -128 1917 -128 conicto
+1581 -128 1216 -64 conicto
+852 0 448 128 conicto
+448 832 lineto
+830 640 1200 544 conicto
+1571 448 1934 448 conicto
+2420 448 2682 616 conicto
+2944 785 2944 1091 conicto
+2944 1375 2756 1526 conicto
+2568 1677 1931 1817 conicto
+1692 1875 lineto
+1033 2013 740 2299 conicto
+448 2585 448 3085 conicto
+448 3691 866 4021 conicto
+1285 4352 2054 4352 conicto
+2436 4352 2772 4288 conicto
+3108 4224 3392 4096 conicto
+end_ol grestore
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+1 slj
+n 17.000000 8.000000 m 22.000000 8.000000 l s
+n 17.000000 18.000000 m 22.000000 18.000000 l s
+n 17.000000 9.000000 1.000000 1.000000 180.000000 270.000000 ellipse s
+n 22.000000 9.000000 1.000000 1.000000 270.000000 360.000000 ellipse s
+n 16.000000 9.000000 m 16.000000 17.000000 l s
+n 23.000000 9.000000 m 23.000000 17.000000 l s
+n 17.000000 17.000000 1.000000 1.000000 90.000000 180.000000 ellipse s
+n 22.000000 17.000000 1.000000 1.000000 0.000000 90.000000 ellipse s
+1.000000 0.647059 0.000000 srgb
+n 28.000000 1.000000 m 28.000000 2.900000 l 33.000000 2.900000 l 33.000000 1.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 28.000000 1.000000 m 28.000000 2.900000 l 33.000000 2.900000 l 33.000000 1.000000 l cp s
+gsave 28.915000 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 29.536911 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 29.944031 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 30.121359 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+2816 504 moveto
+2816 1472 lineto
+2048 1472 lineto
+2048 1856 lineto
+3328 1856 lineto
+3328 325 lineto
+3052 133 2720 34 conicto
+2388 -64 2011 -64 conicto
+1187 -64 721 417 conicto
+256 899 256 1759 conicto
+256 2621 725 3102 conicto
+1195 3584 2028 3584 conicto
+2375 3584 2687 3503 conicto
+3000 3422 3264 3264 conicto
+3264 2752 lineto
+2998 2975 2699 3087 conicto
+2400 3200 2071 3200 conicto
+1420 3200 1094 2838 conicto
+768 2476 768 1759 conicto
+768 1044 1084 682 conicto
+1400 320 2030 320 conicto
+2276 320 2469 365 conicto
+2662 410 2816 504 conicto
+end_ol grestore
+gsave 30.615890 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+1984 2304 moveto
+1912 2337 1828 2352 conicto
+1744 2368 1642 2368 conicto
+1282 2368 1089 2127 conicto
+896 1887 896 1437 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1030 2531 1245 2641 conicto
+1460 2752 1767 2752 conicto
+1811 2752 1864 2752 conicto
+1917 2752 1982 2752 conicto
+1984 2304 lineto
+end_ol grestore
+gsave 30.878142 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 31.270271 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+896 384 moveto
+896 -1024 lineto
+448 -1024 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1032 2531 1240 2641 conicto
+1448 2752 1737 2752 conicto
+2217 2752 2516 2364 conicto
+2816 1976 2816 1344 conicto
+2816 712 2516 324 conicto
+2217 -64 1737 -64 conicto
+1448 -64 1240 46 conicto
+1032 157 896 384 conicto
+2368 1344 moveto
+2368 1823 2171 2095 conicto
+1975 2368 1632 2368 conicto
+1289 2368 1092 2095 conicto
+896 1823 896 1344 conicto
+896 865 1092 592 conicto
+1289 320 1632 320 conicto
+1975 320 2171 592 conicto
+2368 865 2368 1344 conicto
+end_ol grestore
+gsave 31.677391 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+896 3712 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+1.000000 1.000000 0.000000 srgb
+n 25.000000 5.000000 m 25.000000 6.900000 l 30.000000 6.900000 l 30.000000 5.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 25.000000 5.000000 m 25.000000 6.900000 l 30.000000 6.900000 l 30.000000 5.000000 l cp s
+gsave 26.057500 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 26.679411 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 27.086531 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 27.263859 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2816 504 moveto
+2816 1472 lineto
+2048 1472 lineto
+2048 1856 lineto
+3328 1856 lineto
+3328 325 lineto
+3052 133 2720 34 conicto
+2388 -64 2011 -64 conicto
+1187 -64 721 417 conicto
+256 899 256 1759 conicto
+256 2621 725 3102 conicto
+1195 3584 2028 3584 conicto
+2375 3584 2687 3503 conicto
+3000 3422 3264 3264 conicto
+3264 2752 lineto
+2998 2975 2699 3087 conicto
+2400 3200 2071 3200 conicto
+1420 3200 1094 2838 conicto
+768 2476 768 1759 conicto
+768 1044 1084 682 conicto
+1400 320 2030 320 conicto
+2276 320 2469 365 conicto
+2662 410 2816 504 conicto
+end_ol grestore
+gsave 27.758390 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+960 3520 lineto
+960 384 lineto
+2688 384 lineto
+2688 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 28.083084 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+960 3520 lineto
+960 1383 lineto
+960 817 1156 568 conicto
+1353 320 1793 320 conicto
+2231 320 2427 568 conicto
+2624 817 2624 1383 conicto
+2624 3520 lineto
+3136 3520 lineto
+3136 1324 lineto
+3136 637 2796 286 conicto
+2456 -64 1793 -64 conicto
+1128 -64 788 286 conicto
+448 637 448 1324 conicto
+448 3520 lineto
+end_ol grestore
+gsave 28.550140 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+-64 3520 moveto
+3008 3520 lineto
+3008 3136 lineto
+1728 3136 lineto
+1728 0 lineto
+1216 0 lineto
+1216 3136 lineto
+-64 3136 lineto
+-64 3520 lineto
+end_ol grestore
+1.000000 1.000000 0.000000 srgb
+n 32.000000 5.000000 m 32.000000 6.900000 l 37.000000 6.900000 l 37.000000 5.000000 l f
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 32.000000 5.000000 m 32.000000 6.900000 l 37.000000 6.900000 l 37.000000 5.000000 l cp s
+gsave 33.173750 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 33.795661 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 34.202781 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 34.380109 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+192 3520 moveto
+676 3520 lineto
+1420 545 lineto
+2162 3520 lineto
+2700 3520 lineto
+3444 545 lineto
+4186 3520 lineto
+4672 3520 lineto
+3783 0 lineto
+3181 0 lineto
+2434 3056 lineto
+1681 0 lineto
+1079 0 lineto
+192 3520 lineto
+end_ol grestore
+gsave 35.012017 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+gsave 35.416631 6.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 2304 moveto
+2176 3712 lineto
+2624 3712 lineto
+2624 0 lineto
+2176 0 lineto
+2176 384 lineto
+2040 157 1832 46 conicto
+1624 -64 1332 -64 conicto
+855 -64 555 324 conicto
+256 712 256 1344 conicto
+256 1976 555 2364 conicto
+855 2752 1332 2752 conicto
+1624 2752 1832 2641 conicto
+2040 2531 2176 2304 conicto
+704 1344 moveto
+704 865 900 592 conicto
+1096 320 1439 320 conicto
+1782 320 1979 592 conicto
+2176 865 2176 1344 conicto
+2176 1823 1979 2095 conicto
+1782 2368 1439 2368 conicto
+1096 2368 900 2095 conicto
+704 1823 704 1344 conicto
+end_ol grestore
+1.000000 1.000000 0.000000 srgb
+n 28.000000 9.000000 m 28.000000 10.900000 l 33.000000 10.900000 l 33.000000 9.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 28.000000 9.000000 m 28.000000 10.900000 l 33.000000 10.900000 l 33.000000 9.000000 l cp s
+gsave 29.448750 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 30.070661 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 30.477781 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 30.655109 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+1890 3200 moveto
+1375 3200 1071 2813 conicto
+768 2426 768 1759 conicto
+768 1094 1071 707 conicto
+1375 320 1890 320 conicto
+2406 320 2707 707 conicto
+3008 1094 3008 1759 conicto
+3008 2426 2707 2813 conicto
+2406 3200 1890 3200 conicto
+2553 67 moveto
+3181 -640 lineto
+2607 -640 lineto
+2087 -55 lineto
+2009 -59 1968 -61 conicto
+1927 -64 1889 -64 conicto
+1146 -64 701 431 conicto
+256 927 256 1759 conicto
+256 2593 701 3088 conicto
+1146 3584 1890 3584 conicto
+2632 3584 3076 3088 conicto
+3520 2592 3520 1758 conicto
+3520 1146 3271 710 conicto
+3023 274 2553 67 conicto
+end_ol grestore
+gsave 31.159637 10.145000 translate 0.035278 -0.035278 scale
+start_ol
+-64 3520 moveto
+3008 3520 lineto
+3008 3136 lineto
+1728 3136 lineto
+1728 0 lineto
+1216 0 lineto
+1216 3136 lineto
+-64 3136 lineto
+-64 3520 lineto
+end_ol grestore
+1.000000 1.000000 0.000000 srgb
+n 28.000000 12.000000 m 28.000000 13.900000 l 33.000000 13.900000 l 33.000000 12.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 28.000000 12.000000 m 28.000000 13.900000 l 33.000000 13.900000 l 33.000000 12.000000 l cp s
+gsave 29.172500 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 29.794411 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 30.201531 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 30.378859 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+2496 3520 lineto
+2496 3136 lineto
+960 3136 lineto
+960 2112 lineto
+2368 2112 lineto
+2368 1728 lineto
+960 1728 lineto
+960 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 30.746010 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+960 3520 lineto
+960 384 lineto
+2688 384 lineto
+2688 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 31.015753 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+-64 3520 moveto
+3008 3520 lineto
+3008 3136 lineto
+1728 3136 lineto
+1728 0 lineto
+1216 0 lineto
+1216 3136 lineto
+-64 3136 lineto
+-64 3520 lineto
+end_ol grestore
+gsave 31.405385 13.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3520 moveto
+960 3520 lineto
+960 2032 lineto
+2528 3520 lineto
+3136 3520 lineto
+1402 1879 lineto
+3264 0 lineto
+2641 0 lineto
+960 1695 lineto
+960 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+1.000000 1.000000 0.000000 srgb
+n 28.000000 15.000000 m 28.000000 16.900000 l 33.000000 16.900000 l 33.000000 15.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 28.000000 15.000000 m 28.000000 16.900000 l 33.000000 16.900000 l 33.000000 15.000000 l cp s
+gsave 29.361250 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 29.983161 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 30.390281 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 30.567609 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+192 3520 moveto
+676 3520 lineto
+1420 545 lineto
+2162 3520 lineto
+2700 3520 lineto
+3444 545 lineto
+4186 3520 lineto
+4672 3520 lineto
+3783 0 lineto
+3181 0 lineto
+2434 3056 lineto
+1681 0 lineto
+1079 0 lineto
+192 3520 lineto
+end_ol grestore
+gsave 31.199517 16.145000 translate 0.035278 -0.035278 scale
+start_ol
+320 3520 moveto
+827 3520 lineto
+1694 2202 lineto
+2565 3520 lineto
+3072 3520 lineto
+1932 1830 lineto
+3136 0 lineto
+2625 0 lineto
+1637 1508 lineto
+641 0 lineto
+128 0 lineto
+1425 1879 lineto
+320 3520 lineto
+end_ol grestore
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 33.000000 9.950000 m 35.750000 9.950000 l 35.750000 7.386803 l s
+[] 0 sd
+0 slj
+0 slc
+n 35.750000 7.011803 m 36.000000 7.511803 l 35.750000 7.386803 l 35.500000 7.511803 l ef
+n 35.750000 7.011803 m 36.000000 7.511803 l 35.750000 7.386803 l 35.500000 7.511803 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 5.000000 9.950000 m 1.750000 9.950000 l 1.750000 8.386803 l s
+[] 0 sd
+0 slj
+0 slc
+n 1.750000 8.011803 m 2.000000 8.511803 l 1.750000 8.386803 l 1.500000 8.511803 l ef
+n 1.750000 8.011803 m 2.000000 8.511803 l 1.750000 8.386803 l 1.500000 8.511803 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 5.000000 12.950000 m 1.750000 12.950000 l 1.750000 8.386803 l s
+[] 0 sd
+0 slj
+0 slc
+n 1.750000 8.011803 m 2.000000 8.511803 l 1.750000 8.386803 l 1.500000 8.511803 l ef
+n 1.750000 8.011803 m 2.000000 8.511803 l 1.750000 8.386803 l 1.500000 8.511803 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 5.000000 15.950000 m 1.750000 15.950000 l 1.750000 8.386803 l s
+[] 0 sd
+0 slj
+0 slc
+n 1.750000 8.011803 m 2.000000 8.511803 l 1.750000 8.386803 l 1.500000 8.511803 l ef
+n 1.750000 8.011803 m 2.000000 8.511803 l 1.750000 8.386803 l 1.500000 8.511803 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 33.000000 12.950000 m 35.750000 12.950000 l 35.750000 7.386803 l s
+[] 0 sd
+0 slj
+0 slc
+n 35.750000 7.011803 m 36.000000 7.511803 l 35.750000 7.386803 l 35.500000 7.511803 l ef
+n 35.750000 7.011803 m 36.000000 7.511803 l 35.750000 7.386803 l 35.500000 7.511803 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 33.000000 15.950000 m 35.750000 15.950000 l 35.750000 7.386803 l s
+[] 0 sd
+0 slj
+0 slc
+n 35.750000 7.011803 m 36.000000 7.511803 l 35.750000 7.386803 l 35.500000 7.511803 l ef
+n 35.750000 7.011803 m 36.000000 7.511803 l 35.750000 7.386803 l 35.500000 7.511803 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 27.500000 5.000000 m 27.500000 3.950000 l 30.500000 3.950000 l 30.500000 3.386803 l s
+[] 0 sd
+0 slj
+0 slc
+n 30.500000 3.011803 m 30.750000 3.511803 l 30.500000 3.386803 l 30.250000 3.511803 l ef
+n 30.500000 3.011803 m 30.750000 3.511803 l 30.500000 3.386803 l 30.250000 3.511803 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 34.500000 5.000000 m 34.500000 3.950000 l 30.500000 3.950000 l 30.500000 3.386803 l s
+[] 0 sd
+0 slj
+0 slc
+n 30.500000 3.011803 m 30.750000 3.511803 l 30.500000 3.386803 l 30.250000 3.511803 l ef
+n 30.500000 3.011803 m 30.750000 3.511803 l 30.500000 3.386803 l 30.250000 3.511803 l cp s
+1.000000 1.000000 0.000000 srgb
+n 28.000000 18.000000 m 28.000000 19.900000 l 33.000000 19.900000 l 33.000000 18.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 28.000000 18.000000 m 28.000000 19.900000 l 33.000000 19.900000 l 33.000000 18.000000 l cp s
+gsave 28.685000 19.145000 translate 0.035278 -0.035278 scale
+start_ol
+192 2688 moveto
+631 2688 lineto
+1179 590 lineto
+1725 2688 lineto
+2243 2688 lineto
+2791 590 lineto
+3337 2688 lineto
+3776 2688 lineto
+3077 0 lineto
+2560 0 lineto
+1985 2203 lineto
+1408 0 lineto
+891 0 lineto
+192 2688 lineto
+end_ol grestore
+gsave 29.207006 19.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 29.614126 19.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 29.791454 19.145000 translate 0.035278 -0.035278 scale
+start_ol
+192 3520 moveto
+676 3520 lineto
+1420 545 lineto
+2162 3520 lineto
+2700 3520 lineto
+3444 545 lineto
+4186 3520 lineto
+4672 3520 lineto
+3783 0 lineto
+3181 0 lineto
+2434 3056 lineto
+1681 0 lineto
+1079 0 lineto
+192 3520 lineto
+end_ol grestore
+gsave 30.408372 19.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 2688 moveto
+896 2688 lineto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+448 3712 moveto
+896 3712 lineto
+896 3136 lineto
+448 3136 lineto
+448 3712 lineto
+end_ol grestore
+gsave 30.585701 19.145000 translate 0.035278 -0.035278 scale
+start_ol
+2688 1646 moveto
+2688 0 lineto
+2240 0 lineto
+2240 1632 lineto
+2240 2001 2093 2184 conicto
+1947 2368 1654 2368 conicto
+1302 2368 1099 2146 conicto
+896 1925 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1053 2529 1266 2640 conicto
+1479 2752 1757 2752 conicto
+2217 2752 2452 2471 conicto
+2688 2191 2688 1646 conicto
+end_ol grestore
+gsave 30.990315 19.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 2304 moveto
+2176 3712 lineto
+2624 3712 lineto
+2624 0 lineto
+2176 0 lineto
+2176 384 lineto
+2040 157 1832 46 conicto
+1624 -64 1332 -64 conicto
+855 -64 555 324 conicto
+256 712 256 1344 conicto
+256 1976 555 2364 conicto
+855 2752 1332 2752 conicto
+1624 2752 1832 2641 conicto
+2040 2531 2176 2304 conicto
+704 1344 moveto
+704 865 900 592 conicto
+1096 320 1439 320 conicto
+1782 320 1979 592 conicto
+2176 865 2176 1344 conicto
+2176 1823 1979 2095 conicto
+1782 2368 1439 2368 conicto
+1096 2368 900 2095 conicto
+704 1823 704 1344 conicto
+end_ol grestore
+gsave 31.397434 19.145000 translate 0.035278 -0.035278 scale
+start_ol
+1473 2368 moveto
+1117 2368 910 2094 conicto
+704 1820 704 1344 conicto
+704 868 909 594 conicto
+1115 320 1473 320 conicto
+1827 320 2033 595 conicto
+2240 870 2240 1344 conicto
+2240 1816 2033 2092 conicto
+1827 2368 1473 2368 conicto
+1472 2752 moveto
+2040 2752 2364 2378 conicto
+2688 2005 2688 1344 conicto
+2688 685 2364 310 conicto
+2040 -64 1472 -64 conicto
+902 -64 579 310 conicto
+256 685 256 1344 conicto
+256 2005 579 2378 conicto
+902 2752 1472 2752 conicto
+end_ol grestore
+gsave 31.789563 19.145000 translate 0.035278 -0.035278 scale
+start_ol
+192 2688 moveto
+631 2688 lineto
+1179 590 lineto
+1725 2688 lineto
+2243 2688 lineto
+2791 590 lineto
+3337 2688 lineto
+3776 2688 lineto
+3077 0 lineto
+2560 0 lineto
+1985 2203 lineto
+1408 0 lineto
+891 0 lineto
+192 2688 lineto
+end_ol grestore
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+n 33.000000 18.950000 m 35.750000 18.950000 l 35.750000 7.386803 l s
+[] 0 sd
+0 slj
+0 slc
+n 35.750000 7.011803 m 36.000000 7.511803 l 35.750000 7.386803 l 35.500000 7.511803 l ef
+n 35.750000 7.011803 m 36.000000 7.511803 l 35.750000 7.386803 l 35.500000 7.511803 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+0.627451 0.125490 0.941176 srgb
+n 28.000000 9.950000 m 22.486803 9.950000 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.111803 9.950000 m 22.611803 9.700000 l 22.486803 9.950000 l 22.611803 10.200000 l ef
+n 22.111803 9.950000 m 22.611803 9.700000 l 22.486803 9.950000 l 22.611803 10.200000 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 28.000000 12.950000 m 22.486803 12.950000 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.111803 12.950000 m 22.611803 12.700000 l 22.486803 12.950000 l 22.611803 13.200000 l ef
+n 22.111803 12.950000 m 22.611803 12.700000 l 22.486803 12.950000 l 22.611803 13.200000 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 28.000000 15.950000 m 22.486803 15.950000 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.111803 15.950000 m 22.611803 15.700000 l 22.486803 15.950000 l 22.611803 16.200000 l ef
+n 22.111803 15.950000 m 22.611803 15.700000 l 22.486803 15.950000 l 22.611803 16.200000 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 28.000000 18.950000 m 22.372442 14.213472 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.085538 13.971995 m 22.629061 14.102695 l 22.372442 14.213472 l 22.307092 14.485233 l ef
+n 22.085538 13.971995 m 22.629061 14.102695 l 22.372442 14.213472 l 22.307092 14.485233 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 28.000000 18.950000 m 22.290917 11.290314 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.066814 10.989643 m 22.566065 11.241136 l 22.290917 11.290314 l 22.165171 11.539939 l ef
+n 22.066814 10.989643 m 22.566065 11.241136 l 22.290917 11.290314 l 22.165171 11.539939 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 28.000000 18.950000 m 22.460658 17.057391 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.105799 16.936148 m 22.659773 16.861233 l 22.460658 17.057391 l 22.498115 17.334379 l ef
+n 22.105799 16.936148 m 22.659773 16.861233 l 22.460658 17.057391 l 22.498115 17.334379 l cp s
+0.678431 0.847059 0.901961 srgb
+n 36.000000 -1.000000 m 36.000000 0.900000 l 41.000000 0.900000 l 41.000000 -1.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 36.000000 -1.000000 m 36.000000 0.900000 l 41.000000 0.900000 l 41.000000 -1.000000 l cp s
+gsave 36.895000 0.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 37.516911 0.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 37.924031 0.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 38.101359 0.145000 translate 0.035278 -0.035278 scale
+start_ol
+960 3136 moveto
+960 1792 lineto
+1552 1792 lineto
+1881 1792 2060 1967 conicto
+2240 2142 2240 2465 conicto
+2240 2786 2060 2961 conicto
+1881 3136 1552 3136 conicto
+960 3136 lineto
+448 3520 moveto
+1552 3520 lineto
+2145 3520 2448 3251 conicto
+2752 2983 2752 2465 conicto
+2752 1943 2448 1675 conicto
+2145 1408 1552 1408 conicto
+960 1408 lineto
+960 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 38.458522 0.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 38.850651 0.145000 translate 0.035278 -0.035278 scale
+start_ol
+1984 2304 moveto
+1912 2337 1828 2352 conicto
+1744 2368 1642 2368 conicto
+1282 2368 1089 2127 conicto
+896 1887 896 1437 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1030 2531 1245 2641 conicto
+1460 2752 1767 2752 conicto
+1811 2752 1864 2752 conicto
+1917 2752 1982 2752 conicto
+1984 2304 lineto
+end_ol grestore
+gsave 39.112903 0.145000 translate 0.035278 -0.035278 scale
+start_ol
+2112 2560 moveto
+2112 2176 lineto
+1932 2272 1738 2320 conicto
+1544 2368 1336 2368 conicto
+1020 2368 862 2269 conicto
+704 2170 704 1972 conicto
+704 1821 814 1735 conicto
+925 1649 1260 1571 conicto
+1403 1538 lineto
+1857 1438 2048 1255 conicto
+2240 1072 2240 744 conicto
+2240 371 1954 153 conicto
+1668 -64 1167 -64 conicto
+958 -64 732 -16 conicto
+506 32 256 128 conicto
+256 576 lineto
+491 448 719 384 conicto
+947 320 1170 320 conicto
+1470 320 1631 425 conicto
+1792 531 1792 722 conicto
+1792 900 1678 994 conicto
+1564 1089 1177 1177 conicto
+1032 1212 lineto
+621 1298 438 1476 conicto
+256 1654 256 1964 conicto
+256 2341 520 2546 conicto
+784 2752 1269 2752 conicto
+1509 2752 1721 2704 conicto
+1933 2656 2112 2560 conicto
+end_ol grestore
+gsave 39.445087 0.145000 translate 0.035278 -0.035278 scale
+start_ol
+2752 1480 moveto
+2752 1280 lineto
+704 1280 lineto
+733 811 978 565 conicto
+1223 320 1660 320 conicto
+1914 320 2152 384 conicto
+2390 448 2624 576 conicto
+2624 192 lineto
+2388 67 2140 1 conicto
+1893 -64 1639 -64 conicto
+1001 -64 628 309 conicto
+256 683 256 1320 conicto
+256 1979 613 2365 conicto
+970 2752 1576 2752 conicto
+2120 2752 2436 2410 conicto
+2752 2068 2752 1480 conicto
+2304 1600 moveto
+2299 1950 2099 2159 conicto
+1900 2368 1572 2368 conicto
+1200 2368 976 2166 conicto
+753 1964 719 1597 conicto
+2304 1600 lineto
+end_ol grestore
+gsave 39.839713 0.145000 translate 0.035278 -0.035278 scale
+start_ol
+1984 2304 moveto
+1912 2337 1828 2352 conicto
+1744 2368 1642 2368 conicto
+1282 2368 1089 2127 conicto
+896 1887 896 1437 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1030 2531 1245 2641 conicto
+1460 2752 1767 2752 conicto
+1811 2752 1864 2752 conicto
+1917 2752 1982 2752 conicto
+1984 2304 lineto
+end_ol grestore
+1.000000 1.000000 0.000000 srgb
+n 36.000000 2.000000 m 36.000000 3.900000 l 41.000000 3.900000 l 41.000000 2.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 36.000000 2.000000 m 36.000000 3.900000 l 41.000000 3.900000 l 41.000000 2.000000 l cp s
+gsave 37.026250 3.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 37.648161 3.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 38.055281 3.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 38.232609 3.145000 translate 0.035278 -0.035278 scale
+start_ol
+960 3136 moveto
+960 1792 lineto
+1552 1792 lineto
+1881 1792 2060 1967 conicto
+2240 2142 2240 2465 conicto
+2240 2786 2060 2961 conicto
+1881 3136 1552 3136 conicto
+960 3136 lineto
+448 3520 moveto
+1552 3520 lineto
+2145 3520 2448 3251 conicto
+2752 2983 2752 2465 conicto
+2752 1943 2448 1675 conicto
+2145 1408 1552 1408 conicto
+960 1408 lineto
+960 0 lineto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 38.589772 3.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 38.981901 3.145000 translate 0.035278 -0.035278 scale
+start_ol
+1984 2304 moveto
+1912 2337 1828 2352 conicto
+1744 2368 1642 2368 conicto
+1282 2368 1089 2127 conicto
+896 1887 896 1437 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1030 2531 1245 2641 conicto
+1460 2752 1767 2752 conicto
+1811 2752 1864 2752 conicto
+1917 2752 1982 2752 conicto
+1984 2304 lineto
+end_ol grestore
+gsave 39.244153 3.145000 translate 0.035278 -0.035278 scale
+start_ol
+2112 2560 moveto
+2112 2176 lineto
+1932 2272 1738 2320 conicto
+1544 2368 1336 2368 conicto
+1020 2368 862 2269 conicto
+704 2170 704 1972 conicto
+704 1821 814 1735 conicto
+925 1649 1260 1571 conicto
+1403 1538 lineto
+1857 1438 2048 1255 conicto
+2240 1072 2240 744 conicto
+2240 371 1954 153 conicto
+1668 -64 1167 -64 conicto
+958 -64 732 -16 conicto
+506 32 256 128 conicto
+256 576 lineto
+491 448 719 384 conicto
+947 320 1170 320 conicto
+1470 320 1631 425 conicto
+1792 531 1792 722 conicto
+1792 900 1678 994 conicto
+1564 1089 1177 1177 conicto
+1032 1212 lineto
+621 1298 438 1476 conicto
+256 1654 256 1964 conicto
+256 2341 520 2546 conicto
+784 2752 1269 2752 conicto
+1509 2752 1721 2704 conicto
+1933 2656 2112 2560 conicto
+end_ol grestore
+gsave 39.576337 3.145000 translate 0.035278 -0.035278 scale
+start_ol
+2752 1480 moveto
+2752 1280 lineto
+704 1280 lineto
+733 811 978 565 conicto
+1223 320 1660 320 conicto
+1914 320 2152 384 conicto
+2390 448 2624 576 conicto
+2624 192 lineto
+2388 67 2140 1 conicto
+1893 -64 1639 -64 conicto
+1001 -64 628 309 conicto
+256 683 256 1320 conicto
+256 1979 613 2365 conicto
+970 2752 1576 2752 conicto
+2120 2752 2436 2410 conicto
+2752 2068 2752 1480 conicto
+2304 1600 moveto
+2299 1950 2099 2159 conicto
+1900 2368 1572 2368 conicto
+1200 2368 976 2166 conicto
+753 1964 719 1597 conicto
+2304 1600 lineto
+end_ol grestore
+1.000000 1.000000 0.000000 srgb
+n 20.000000 1.000000 m 20.000000 2.900000 l 25.000000 2.900000 l 25.000000 1.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 20.000000 1.000000 m 20.000000 2.900000 l 25.000000 2.900000 l 25.000000 1.000000 l cp s
+gsave 21.132500 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 21.754411 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 22.161531 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 22.338859 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+960 3136 moveto
+960 384 lineto
+1536 384 lineto
+2266 384 2605 716 conicto
+2944 1048 2944 1764 conicto
+2944 2475 2605 2805 conicto
+2266 3136 1536 3136 conicto
+960 3136 lineto
+448 3520 moveto
+1463 3520 lineto
+2493 3520 2974 3094 conicto
+3456 2669 3456 1764 conicto
+3456 853 2972 426 conicto
+2488 0 1463 0 conicto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 22.830893 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 23.223023 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+896 3456 moveto
+896 2688 lineto
+1792 2688 lineto
+1792 2368 lineto
+896 2368 lineto
+896 902 lineto
+896 572 984 478 conicto
+1073 384 1345 384 conicto
+1792 384 lineto
+1792 0 lineto
+1345 0 lineto
+836 0 642 194 conicto
+448 389 448 902 conicto
+448 2368 lineto
+128 2368 lineto
+128 2688 lineto
+448 2688 lineto
+448 3456 lineto
+896 3456 lineto
+end_ol grestore
+gsave 23.472789 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+0.678431 0.847059 0.901961 srgb
+n 17.000000 -2.000000 m 17.000000 -0.100000 l 22.000000 -0.100000 l 22.000000 -2.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 17.000000 -2.000000 m 17.000000 -0.100000 l 22.000000 -0.100000 l 22.000000 -2.000000 l cp s
+gsave 17.913750 -0.855000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 18.535661 -0.855000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 18.942781 -0.855000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 19.120109 -0.855000 translate 0.035278 -0.035278 scale
+start_ol
+960 3136 moveto
+960 384 lineto
+1536 384 lineto
+2266 384 2605 716 conicto
+2944 1048 2944 1764 conicto
+2944 2475 2605 2805 conicto
+2266 3136 1536 3136 conicto
+960 3136 lineto
+448 3520 moveto
+1463 3520 lineto
+2493 3520 2974 3094 conicto
+3456 2669 3456 1764 conicto
+3456 853 2972 426 conicto
+2488 0 1463 0 conicto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 19.612143 -0.855000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 20.004273 -0.855000 translate 0.035278 -0.035278 scale
+start_ol
+896 3456 moveto
+896 2688 lineto
+1792 2688 lineto
+1792 2368 lineto
+896 2368 lineto
+896 902 lineto
+896 572 984 478 conicto
+1073 384 1345 384 conicto
+1792 384 lineto
+1792 0 lineto
+1345 0 lineto
+836 0 642 194 conicto
+448 389 448 902 conicto
+448 2368 lineto
+128 2368 lineto
+128 2688 lineto
+448 2688 lineto
+448 3456 lineto
+896 3456 lineto
+end_ol grestore
+gsave 20.254039 -0.855000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 20.646168 -0.855000 translate 0.035278 -0.035278 scale
+start_ol
+1696 3047 moveto
+1042 1280 lineto
+2352 1280 lineto
+1696 3047 lineto
+1424 3520 moveto
+1970 3520 lineto
+3328 0 lineto
+2827 0 lineto
+2502 896 lineto
+897 896 lineto
+572 0 lineto
+64 0 lineto
+1424 3520 lineto
+end_ol grestore
+1.000000 1.000000 0.000000 srgb
+n 14.000000 1.000000 m 14.000000 2.900000 l 19.000000 2.900000 l 19.000000 1.000000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 14.000000 1.000000 m 14.000000 2.900000 l 19.000000 2.900000 l 19.000000 1.000000 l cp s
+gsave 14.908750 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+2549 2204 moveto
+2714 2485 2942 2618 conicto
+3171 2752 3482 2752 conicto
+3899 2752 4125 2464 conicto
+4352 2177 4352 1646 conicto
+4352 0 lineto
+3904 0 lineto
+3904 1632 lineto
+3904 2006 3769 2187 conicto
+3634 2368 3356 2368 conicto
+3017 2368 2820 2146 conicto
+2624 1925 2624 1542 conicto
+2624 0 lineto
+2176 0 lineto
+2176 1632 lineto
+2176 2008 2041 2188 conicto
+1906 2368 1624 2368 conicto
+1289 2368 1092 2145 conicto
+896 1922 896 1542 conicto
+896 0 lineto
+448 0 lineto
+448 2688 lineto
+896 2688 lineto
+896 2304 lineto
+1046 2534 1255 2643 conicto
+1465 2752 1753 2752 conicto
+2044 2752 2247 2611 conicto
+2451 2471 2549 2204 conicto
+end_ol grestore
+gsave 15.530661 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+2176 1375 moveto
+2176 1848 1982 2108 conicto
+1789 2368 1439 2368 conicto
+1091 2368 897 2108 conicto
+704 1848 704 1375 conicto
+704 904 897 644 conicto
+1091 384 1439 384 conicto
+1789 384 1982 644 conicto
+2176 904 2176 1375 conicto
+2624 347 moveto
+2624 -347 2323 -685 conicto
+2023 -1024 1404 -1024 conicto
+1174 -1024 971 -992 conicto
+768 -961 576 -896 conicto
+576 -448 lineto
+766 -546 951 -593 conicto
+1137 -640 1329 -640 conicto
+1754 -640 1965 -415 conicto
+2176 -190 2176 264 conicto
+2176 448 lineto
+2042 223 1833 111 conicto
+1624 0 1332 0 conicto
+848 0 552 376 conicto
+256 753 256 1375 conicto
+256 1999 552 2375 conicto
+848 2752 1332 2752 conicto
+1624 2752 1833 2640 conicto
+2042 2529 2176 2304 conicto
+2176 2688 lineto
+2624 2688 lineto
+2624 347 lineto
+end_ol grestore
+gsave 15.937781 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+448 3712 moveto
+896 3712 lineto
+896 0 lineto
+448 0 lineto
+448 3712 lineto
+end_ol grestore
+gsave 16.115109 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+960 3136 moveto
+960 384 lineto
+1536 384 lineto
+2266 384 2605 716 conicto
+2944 1048 2944 1764 conicto
+2944 2475 2605 2805 conicto
+2266 3136 1536 3136 conicto
+960 3136 lineto
+448 3520 moveto
+1463 3520 lineto
+2493 3520 2974 3094 conicto
+3456 2669 3456 1764 conicto
+3456 853 2972 426 conicto
+2488 0 1463 0 conicto
+448 0 lineto
+448 3520 lineto
+end_ol grestore
+gsave 16.607143 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 16.999273 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+896 3456 moveto
+896 2688 lineto
+1792 2688 lineto
+1792 2368 lineto
+896 2368 lineto
+896 902 lineto
+896 572 984 478 conicto
+1073 384 1345 384 conicto
+1792 384 lineto
+1792 0 lineto
+1345 0 lineto
+836 0 642 194 conicto
+448 389 448 902 conicto
+448 2368 lineto
+128 2368 lineto
+128 2688 lineto
+448 2688 lineto
+448 3456 lineto
+896 3456 lineto
+end_ol grestore
+gsave 17.249039 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+1622 1344 moveto
+1104 1344 904 1225 conicto
+704 1106 704 818 conicto
+704 589 854 454 conicto
+1004 320 1262 320 conicto
+1618 320 1833 572 conicto
+2048 825 2048 1244 conicto
+2048 1344 lineto
+1622 1344 lineto
+2496 1513 moveto
+2496 0 lineto
+2048 0 lineto
+2048 384 lineto
+1900 154 1679 45 conicto
+1458 -64 1138 -64 conicto
+733 -64 494 162 conicto
+256 389 256 769 conicto
+256 1213 555 1438 conicto
+854 1664 1448 1664 conicto
+2048 1664 lineto
+2048 1712 lineto
+2048 2025 1851 2196 conicto
+1655 2368 1300 2368 conicto
+1074 2368 860 2320 conicto
+646 2272 448 2176 conicto
+448 2560 lineto
+687 2656 912 2704 conicto
+1138 2752 1351 2752 conicto
+1927 2752 2211 2444 conicto
+2496 2137 2496 1513 conicto
+end_ol grestore
+gsave 17.641168 2.145000 translate 0.035278 -0.035278 scale
+start_ol
+3136 3264 moveto
+3136 2752 lineto
+2892 2977 2616 3088 conicto
+2340 3200 2030 3200 conicto
+1418 3200 1093 2829 conicto
+768 2459 768 1759 conicto
+768 1061 1093 690 conicto
+1418 320 2030 320 conicto
+2340 320 2616 431 conicto
+2892 543 3136 768 conicto
+3136 256 lineto
+2882 96 2599 16 conicto
+2316 -64 2000 -64 conicto
+1189 -64 722 424 conicto
+256 913 256 1759 conicto
+256 2607 722 3095 conicto
+1189 3584 2000 3584 conicto
+2320 3584 2603 3504 conicto
+2887 3424 3136 3264 conicto
+end_ol grestore
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 38.500000 2.000000 m 38.500000 1.386803 l s
+[] 0 sd
+0 slj
+0 slc
+n 38.500000 1.011803 m 38.750000 1.511803 l 38.500000 1.386803 l 38.250000 1.511803 l ef
+n 38.500000 1.011803 m 38.750000 1.511803 l 38.500000 1.386803 l 38.250000 1.511803 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+0.627451 0.125490 0.941176 srgb
+n 27.513197 1.950000 m 25.486803 1.950000 l s
+[] 0 sd
+0 slj
+0 slc
+n 27.888197 1.950000 m 27.388197 2.200000 l 27.513197 1.950000 l 27.388197 1.700000 l ef
+n 27.888197 1.950000 m 27.388197 2.200000 l 27.513197 1.950000 l 27.388197 1.700000 l cp s
+[] 0 sd
+0 slj
+0 slc
+n 25.111803 1.950000 m 25.611803 1.700000 l 25.486803 1.950000 l 25.611803 2.200000 l ef
+n 25.111803 1.950000 m 25.611803 1.700000 l 25.486803 1.950000 l 25.611803 2.200000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 16.500000 1.000000 m 17.837854 0.159063 l s
+[] 0 sd
+0 slj
+0 slc
+n 18.155343 -0.040501 m 17.865068 0.437243 l 17.837854 0.159063 l 17.598982 0.013925 l ef
+n 18.155343 -0.040501 m 17.865068 0.437243 l 17.837854 0.159063 l 17.598982 0.013925 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 22.500000 1.000000 m 21.162146 0.159063 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.844657 -0.040501 m 21.401018 0.013925 l 21.162146 0.159063 l 21.134932 0.437243 l ef
+n 20.844657 -0.040501 m 21.401018 0.013925 l 21.162146 0.159063 l 21.134932 0.437243 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+0.627451 0.125490 0.941176 srgb
+n 28.000000 1.000000 m 22.460658 -0.892609 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.105799 -1.013852 m 22.659773 -1.088767 l 22.460658 -0.892609 l 22.498115 -0.615621 l ef
+n 22.105799 -1.013852 m 22.659773 -1.088767 l 22.460658 -0.892609 l 22.498115 -0.615621 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 36.000000 2.950000 m 33.461822 2.103941 l s
+[] 0 sd
+0 slj
+0 slc
+n 33.106066 1.985355 m 33.659465 1.906298 l 33.461822 2.103941 l 33.501351 2.380640 l ef
+n 33.106066 1.985355 m 33.659465 1.906298 l 33.461822 2.103941 l 33.501351 2.380640 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 25.000000 5.950000 m 23.486803 5.950000 l s
+[] 0 sd
+0 slj
+0 slc
+n 23.111803 5.950000 m 23.611803 5.700000 l 23.486803 5.950000 l 23.611803 6.200000 l ef
+n 23.111803 5.950000 m 23.611803 5.700000 l 23.486803 5.950000 l 23.611803 6.200000 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 7.000000 0.950000 m 16.522650 -0.954530 l s
+[] 0 sd
+0 slj
+0 slc
+n 16.890368 -1.028074 m 16.449106 -0.684870 l 16.522650 -0.954530 l 16.351048 -1.175161 l ef
+n 16.890368 -1.028074 m 16.449106 -0.684870 l 16.522650 -0.954530 l 16.351048 -1.175161 l cp s
+0.100000 slw
+[1.000000] 0 sd
+[1.000000] 0 sd
+0 slj
+0 slc
+0.000000 0.000000 1.000000 srgb
+n 30.500000 1.000000 m 23.000000 -5.000000 15.000000 -5.000000 7.344222 2.655778 c s
+[] 0 sd
+0 slj
+0 slc
+n 7.079057 2.920943 m 7.255834 2.390613 l 7.344222 2.655778 l 7.609387 2.744166 l ef
+n 7.079057 2.920943 m 7.255834 2.390613 l 7.344222 2.655778 l 7.609387 2.744166 l cp s
+showpage