Lines Matching refs:aa

73 	mglAxis &aa = GetAxis(dir);  in SetTicks()  local
75 if(aa.f==1) aa.t.clear(); in SetTicks()
76 aa.d=d; aa.f=0; aa.ns=ns; aa.o=org; in SetTicks()
77 aa.txt.clear(); in SetTicks()
78 if(!lbl || *lbl==0) aa.fact.clear(); in SetTicks()
79 else aa.fact = lbl; in SetTicks()
85 mglAxis &aa = GetAxis(dir); in AddTick() local
88 UpdateAxis(); AdjustTicks(aa,ff); in AddTick()
89 if(!v || !lbl || !lbl[0]) { aa.f = 0; return; } in AddTick()
90 aa.f = 2; aa.ns=0; aa.ds=0; in AddTick()
91 aa.AddLabel(lbl,v); in AddTick()
100 mglAxis &aa = GetAxis(dir); in SetTicksVal() local
103 if(add) { UpdateAxis(); AdjustTicks(aa,ff); } in SetTicksVal()
104 else aa.txt.clear(); in SetTicksVal()
105 if(!v || !lbl || !lbl[0]) { aa.f = 0; return; } in SetTicksVal()
106 aa.f = 2; aa.ns=0; aa.ds=0; in SetTicksVal()
112 aa.AddLabel(std::wstring(lbl+l,j-l),v->v(i)); in SetTicksVal()
117 aa.AddLabel(std::wstring(lbl+l,j-l-1),v->v(i)); in SetTicksVal()
121 if(i<n && lbl[l]) aa.AddLabel(lbl+l,v->v(i)); in SetTicksVal()
150 mglAxis &aa = GetAxis(dir); in SetTicksVal() local
153 if(add) { UpdateAxis(); AdjustTicks(aa,ff); } in SetTicksVal()
154 else aa.txt.clear(); in SetTicksVal()
155 if(!v || !lbl) { aa.f = 0; return; } in SetTicksVal()
156 aa.f = 2; aa.ns=0; aa.ds=0; in SetTicksVal()
158 for(long i=0;i<n;i++) aa.AddLabel(lbl[i],v->v(i)); in SetTicksVal()
164 mglAxis &aa = GetAxis(dir); in SetTicksVal() local
167 aa.txt.clear(); in SetTicksVal()
168 if(add) { UpdateAxis(); AdjustTicks(aa,ff); } in SetTicksVal()
169 if(!v || !lbl) { aa.f = 0; return; } in SetTicksVal()
170 aa.f = 2; aa.ns=0; aa.ds=0; in SetTicksVal()
171 for(long i=0;i<v->GetNx();i++) MGL_TO_WCS(lbl[i],aa.AddLabel(wcs,v->v(i))); in SetTicksVal()
177 mglAxis &aa = GetAxis(dir); in SetTickTempl() local
179 if(aa.f==1) aa.f = 0; // remove time ticks in SetTickTempl()
180 if(!t || !t[0]) aa.t.clear(); else aa.t=t; in SetTickTempl()
186 mglAxis &aa = GetAxis(dir); in SetTickTempl() local
188 if(aa.f==1) aa.f = 0; // remove time ticks in SetTickTempl()
189 if(!t || !t[0]) aa.t.clear(); in SetTickTempl()
190 else MGL_TO_WCS(t,aa.t=wcs); in SetTickTempl()
209 mglAxis &aa = (dir=='x' ? ax : (dir=='y' ? ay : (dir=='z' ? az : ac))); in SetTickTime() local
213 tt=(time_t)aa.v1; mgl_localtime(&tt, &t1, get(MGL_USE_GMTIME)); in SetTickTime()
214 tt=(time_t)aa.v2; mgl_localtime(&tt, &t2, get(MGL_USE_GMTIME)); in SetTickTime()
215 if(aa.v1<aa.v2) // adjust periodic values in SetTickTime()
256 d = mgl_adj_val(fabs(aa.v2-aa.v1),&ds); in SetTickTime()
259 aa.ds = ds; aa.dv = d; aa.f = 1; aa.txt.clear(); in SetTickTime()
260 MGL_TO_WCS(t,aa.t=wcs); in SetTickTime()
262 if(strchr("xyztuvw",aa.ch)) in SetTickTime()
263 aa.org.Set(GetOrgX(aa.ch,aa.inv), GetOrgY(aa.ch,aa.inv), GetOrgZ(aa.ch,aa.inv)); in SetTickTime()
264 if(aa.ch=='x') aa.v0 = aa.org.x; in SetTickTime()
265 if(aa.ch=='y') aa.v0 = aa.org.y; in SetTickTime()
266 if(aa.ch=='z') aa.v0 = aa.org.z; in SetTickTime()
268 mreal v, v0 = mgl_isnan(aa.o) ? aa.v0 : aa.o, v1; in SetTickTime()
269 if(aa.v2>aa.v1) in SetTickTime()
270 { v1 = aa.v2; v0 = v0 - aa.dv*floor((v0-aa.v1)/aa.dv+1e-3); } in SetTickTime()
272 { v1 = aa.v1; v0 = v0 - aa.dv*floor((v0-aa.v2)/aa.dv+1e-3); } in SetTickTime()
273 if(v0+aa.dv!=v0 && v1+aa.dv!=v1) for(v=v0;v<=v1;v+=aa.dv) in SetTickTime()
277 wcsftime(buf,64,aa.t.c_str(),&tp); aa.AddLabel(buf,v); in SetTickTime()
295 void mglCanvas::AdjustTicks(mglAxis &aa, bool ff) in AdjustTicks() argument
297 double d = fabs(aa.v2-aa.v1); in AdjustTicks()
298 if(aa.f>0) return; in AdjustTicks()
299 if(ff && mgl_islog(aa.v1,aa.v2)) in AdjustTicks()
300 { aa.dv = 0; aa.ds=0; } in AdjustTicks()
301 else if(aa.d>0) in AdjustTicks()
302 { aa.dv = aa.d; aa.ds = aa.d/(abs(aa.ns)+1); } in AdjustTicks()
303 else if(aa.d>-1.5) // like =0 or =-1 in AdjustTicks()
304 { aa.dv = mgl_adj_val(d,&aa.ds); aa.o=0; } in AdjustTicks()
307 d /= -aa.d; in AdjustTicks()
309 aa.dv = pow(10.,n)*mgl_int(d*pow(10.,-n)); in AdjustTicks()
310 aa.o=0; aa.ds = pow(10.,n); in AdjustTicks()
312 LabelTicks(aa); in AdjustTicks()
389 void mglCanvas::LabelTicks(mglAxis &aa) in LabelTicks() argument
391 if(strchr("xyztuvw",aa.ch)) in LabelTicks()
392 aa.org.Set(GetOrgX(aa.ch,aa.inv), GetOrgY(aa.ch,aa.inv), GetOrgZ(aa.ch,aa.inv)); in LabelTicks()
393 if(aa.ch=='x') aa.v0 = aa.org.x; in LabelTicks()
394 if(aa.ch=='y') aa.v0 = aa.org.y; in LabelTicks()
395 if(aa.ch=='z') aa.v0 = aa.org.z; in LabelTicks()
398 if(aa.f) return; in LabelTicks()
399 aa.txt.clear(); in LabelTicks()
400 bool minus = mglchr(aa.stl.c_str(),'-') && !mglchr(aa.stl.c_str(),'+'); in LabelTicks()
401 if(aa.dv==0 && aa.v1>0) // positive log-scale in LabelTicks()
403 mreal v1 = aa.v1, v2 = aa.v2; in LabelTicks()
404 if(v1>v2) { v1 = aa.v2; v2 = aa.v1; } in LabelTicks()
415 aa.AddLabel(buf,v); in LabelTicks()
418 else if(aa.dv==0 && aa.v2<0) // negative log-scale in LabelTicks()
420 mreal v1 = aa.v1, v2 = aa.v2; in LabelTicks()
421 if(v1>v2) { v1 = aa.v2; v2 = aa.v1; } in LabelTicks()
432 aa.AddLabel(buf,v); in LabelTicks()
435 else if(aa.dv) // ticks drawing in LabelTicks()
440 if(aa.t.empty() && TuneTicks && !strchr(aa.stl.c_str(),'!')) in LabelTicks()
441 kind = mgl_tick_ext(aa.v2, aa.v1, s, w); in LabelTicks()
445 mreal v0 = mgl_isnan(aa.o) ? aa.v0 : aa.o, v1; in LabelTicks()
447 if(aa.v2>aa.v1) in LabelTicks()
448 { v1 = aa.v2; v0 = v0 - aa.dv*floor((v0-aa.v1)/aa.dv+1e-3); } in LabelTicks()
450 { v1 = aa.v1; v0 = v0 - aa.dv*floor((v0-aa.v2)/aa.dv+1e-3); } in LabelTicks()
452 if(v0+aa.dv!=v0 && v1+aa.dv!=v1) in LabelTicks()
454 if(aa.t.empty()) for(mreal v=v0;v<=v1;v+=aa.dv) in LabelTicks()
455 aa.AddLabel(mgl_tick_text(v,v0,aa.dv/100,w,kind,aa.fact,aa.d,aa.stl.c_str()),v); in LabelTicks()
456 else for(mreal v=v0;v<=v1;v+=aa.dv) in LabelTicks()
458 if(aa.t[0]!='&') mglprintf(buf, 64, aa.t.c_str(), fabs(v)<aa.dv/100 ? 0 : v); in LabelTicks()
459 else mglprintf(buf, 64, aa.t.c_str()+1, mgl_int(fabs(v)<aa.dv/100 ? 0 : v)); in LabelTicks()
460 mgl_wcstrim(buf); aa.AddLabel(buf,v); in LabelTicks()
463 if(kind&2) aa.AddLabel(s,FactorPos*(aa.v2-aa.v1)+aa.v1); in LabelTicks()
510 void mglCanvas::DrawAxis(mglAxis &aa, int text, char arr,const char *stl,mreal angl) in DrawAxis() argument
512 aa.angl = angl; in DrawAxis()
513 if(strchr("xyz",aa.ch)) in DrawAxis()
514 aa.org.Set(GetOrgX(aa.ch,aa.inv), GetOrgY(aa.ch,aa.inv), GetOrgZ(aa.ch,aa.inv)); in DrawAxis()
515 if(aa.ch=='x') aa.v0 = aa.org.x; in DrawAxis()
516 if(aa.ch=='y') aa.v0 = aa.org.y; in DrawAxis()
517 if(aa.ch=='z') aa.v0 = aa.org.z; in DrawAxis()
519 mglPoint d(aa.dir), o(aa.org), q(NAN); // "transverse" org in DrawAxis()
520 if(strchr("xyz",aa.ch)) o -= d*(o*d); in DrawAxis()
523 da = aa.a*(dv*aa.a); db = aa.b*(dv*aa.b); in DrawAxis()
528 bool dif_color = !have_color && aa.dv==0 && strcmp(TickStl,SubTStl); in DrawAxis()
535 AddPntQ(kq+i, &B, d*(aa.v1+(aa.v2-aa.v1)*i/30.), CDef,q,-1,3); in DrawAxis()
543 AddPntQ(kq+i, &B, o + d*(aa.v1+(aa.v2-aa.v1)*i/30.), CDef,q,-1,3); in DrawAxis()
547 p = o + d*(aa.v1+(aa.v2-aa.v1)*1.05); in DrawAxis()
552 long k2 = aa.txt.size(); in DrawAxis()
553 mreal v, u, v0 = mgl_isnan(aa.o) ? aa.v0 : aa.o; in DrawAxis()
557 v = aa.txt[i].val; u = fabs(v); in DrawAxis()
558 if((v-aa.v2)*(v-aa.v1)<=0) tick_draw(o+d*v, da, db, 0); in DrawAxis()
560 if(aa.dv==0 && aa.v2>aa.v1 && fabs(u-exp(M_LN10*floor(0.1+log10(u))))<0.01*u) in DrawAxis()
561 for(long j=2;j<10 && v*j<aa.v2;j++) tick_draw(o+d*(v*j),da,db,1); in DrawAxis()
562 if(aa.dv==0 && aa.v2<aa.v1 && fabs(u-exp(M_LN10*floor(0.1+log10(u))))<0.01*u) in DrawAxis()
563 for(long j=2;j<10 && v*j<aa.v1;j++) tick_draw(o+d*(v*j),da,db,1); in DrawAxis()
566 if(aa.ds>0 && !get(MGL_NOSUBTICKS) && (fabs(aa.v1)>1e-150 || fabs(aa.v2)>1e-150)) in DrawAxis()
568 if(aa.v2>aa.v1) v0 = v0 - aa.ds*floor((v0-aa.v1)/aa.ds+1e-3); in DrawAxis()
569 else v0 = v0 - aa.ds*floor((v0-aa.v2)/aa.ds+1e-3); in DrawAxis()
570 if(v0+aa.ds!=v0 && aa.v2+aa.ds!=aa.v2) in DrawAxis()
573 for(v=v0;(v-aa.v2)*(v-aa.v1)<=0;v+=aa.ds) in DrawAxis()
578 if(text&1) DrawLabels(aa); in DrawAxis()
582 void mglCanvas::DrawLabels(mglAxis &aa, bool inv, const mglMatrix *M) in DrawLabels() argument
585 if(strchr("xyz",aa.ch)) in DrawLabels()
586 aa.org.Set(GetOrgX(aa.ch,aa.inv), GetOrgY(aa.ch,aa.inv), GetOrgZ(aa.ch,aa.inv)); in DrawLabels()
587 if(aa.ch=='x') aa.v0 = aa.org.x; in DrawLabels()
588 if(aa.ch=='y') aa.v0 = aa.org.y; in DrawLabels()
589 if(aa.ch=='z') aa.v0 = aa.org.z; in DrawLabels()
591 mglPoint d(aa.dir), o(aa.org), q(NAN); // "transverse" org in DrawLabels()
592 if(strchr("xyz",aa.ch)) o -= d*(o*d); in DrawLabels()
594 mglPoint a = aa.a*(dv*aa.a) + aa.b*(dv*aa.b); in DrawLabels()
595 if(aa.ch=='c') a = aa.a; in DrawLabels()
597 long n = aa.txt.size(); in DrawLabels()
603 w[i] = TextWidth(aa.txt[i].text.c_str(),FontDef,-1); in DrawLabels()
604 AddPntQ(kq+i, M, o+d*aa.txt[i].val,-1,d,0,7); in DrawLabels()
611 …if(aa.ch!='c' && (aa.txt[i].val<aa.v1 || aa.txt[i+1].val<aa.v1 || aa.txt[i].val>aa.v2 || aa.txt[i+… in DrawLabels()
622 if(mgl_isnum(aa.angl)) tet = aa.angl*M_PI/180; // manual rotation in DrawLabels()
639 mglPoint p(a),r(o+d*aa.txt[i].val); in DrawLabels()
651 else if(aa.ch!='c') up[i] = ((pv>0) ^ inv) ? 'T':'t'; in DrawLabels()
652 else up[i]=(aa.ns==0 || aa.ns==3)?'t':'T'; in DrawLabels()
656 if(aa.ch!='c') t= (pu==0)?0:(pu<0? -1:1); in DrawLabels()
665 mreal v = aa.txt[i].val; in DrawLabels()
666 if(get(MGL_NO_ORIGIN) && v==aa.v0) continue; in DrawLabels()
667 if(v>aa.v1 && v<aa.v2 && i%k!=0) continue; in DrawLabels()
669 text_plot(kk[i], aa.txt[i].text.c_str(), pos, -1, aa.sh+0.05,CDef); in DrawLabels()
674 char mglCanvas::GetLabelPos(mreal c, long kk, mglAxis &aa) in GetLabelPos() argument
676 if(strchr("xyz",aa.ch)) in GetLabelPos()
677 aa.org.Set(GetOrgX(aa.ch,aa.inv), GetOrgY(aa.ch,aa.inv), GetOrgZ(aa.ch,aa.inv)); in GetLabelPos()
678 mglPoint d = aa.dir, o = aa.org; // "transverse" org in GetLabelPos()
679 if(strchr("xyz",aa.ch)) o -= d*(o*d); in GetLabelPos()
684 if(aa.ch=='c') ts=(aa.ns==0 || aa.ns==3)?1:-1; in GetLabelPos()
685 if(aa.ch=='T') ts=-1; in GetLabelPos()
690 if(aa.ch=='c') qq.u = qq.v = NAN; in GetLabelPos()
692 if(aa.ch=='T') ts *= -1; in GetLabelPos()
693 if(aa.pos=='T') ts *= -1; in GetLabelPos()
744 void mglCanvas::DrawGrid(mglAxis &aa, bool at_tick) in DrawGrid() argument
759 mglPoint d=aa.dir, da1,da2,db1,db2,oa,ob, p,q; in DrawGrid()
760 da1 = aa.a*(aa.a*Min); da2 = aa.a*(aa.a*Max); in DrawGrid()
761 db1 = aa.b*(aa.b*Min); db2 = aa.b*(aa.b*Max); in DrawGrid()
762 oa = aa.b*(aa.b*org); ob = aa.a*(aa.a*org); in DrawGrid()
764 if(at_tick && aa.ds>0 && !get(MGL_NOSUBTICKS)) in DrawGrid()
766 mreal v0 = mgl_isnan(aa.o) ? aa.v0 : aa.o; in DrawGrid()
767 if(aa.v2>aa.v1) v0 = v0 - aa.ds*floor((v0-aa.v1)/aa.ds+1e-3); in DrawGrid()
768 else v0 = v0 - aa.ds*floor((v0-aa.v2)/aa.ds+1e-3); in DrawGrid()
770 if(v0+aa.ds!=v0 && aa.v2+aa.ds!=aa.v2) in DrawGrid()
771 for(mreal v=v0;(v-aa.v2)*(v-aa.v1)<=0;v+=aa.ds) in DrawGrid()
774 if(aa.dv) at_tick = false; in DrawGrid()
775 long n=aa.txt.size(); in DrawGrid()
778 mreal v = aa.txt[i].val; in DrawGrid()
783 if(aa.v2>aa.v1 && fabs(u-exp(M_LN10*floor(0.1+log10(u))))<0.01*u) in DrawGrid()
784 for(long j=2;j<10 && v*j<aa.v2;j++) in DrawGrid()
786 if(aa.v2<aa.v1 && fabs(u-exp(M_LN10*floor(0.1+log10(u))))<0.01*u) in DrawGrid()
787 for(long j=2;j<10 && v*j<aa.v1;j++) in DrawGrid()
803 mglAxis *aa=0; in Labelw() local
809 AdjustTicks(ac,fc!=0); aa = &ac; // TODO in Labelw()
815 AdjustTicks(ax,fx!=0); aa = &ax; in Labelw()
823 AdjustTicks(ay,fy!=0); aa = &ay; in Labelw()
836 AdjustTicks(ty,fy!=0); aa = &ty; in Labelw()
849 AdjustTicks(ty,fy!=0); pos = -pos; aa = &ty; in Labelw()
857 AdjustTicks(az,fz!=0); aa = &az; in Labelw()
863 if(aa) in Labelw()
882 ff[0] = GetLabelPos(t, kk, *aa); strcat(font,ff); in Labelw()