tipo_de_macro=R2
Idioma=español
id='development' expresión='0' 
id='debug' expresión='0' 
id='C1' matriz='sí' evaluar='una-sola-vez' columnas='20' filas='20' expresión=';' 
id='C2' matriz='sí' evaluar='una-sola-vez' columnas='20' filas='20' expresión=';' 
id='RELS' matriz='sí' evaluar='una-sola-vez' columnas='20' filas='20' expresión=';' 
id='FLECHAS' matriz='sí' evaluar='una-sola-vez' columnas='20' filas='20' expresión=';' 
id='_DEVELOP__()' algoritmo='no' expresión='x' 
id='initCs()' algoritmo='sí' expresión='x' local='i,iC1,iC2' inicio='i=0;' hacer='iC1=min(i,C1.n);iC2=min(i,C2.n);;;;C1[iC1,0]=-3;C1[iC1,1]=3-iC1;C1[iC1,2]=0.25;C1[iC1,3]=&squot;&squot;+iC1;;;;C2[iC1,0]=3;C2[iC2,1]=3-iC2;C2[iC2,2]=0.30;C2[iC2,3]=&squot;&squot;+iC2;;i=i+1' mientras='i<max(C1.n,C2.n)' 
id='updateEspTest()' algoritmo='sí' expresión='x' hacer='Esp.mx=E1.mouse_x;Esp.my=E1.mouse_y;Esp.press=E1.mouse_pressed;Esp.escala=E1.escala' 
id='relationAdded(iC1,iC2)' algoritmo='no' expresión='0' 
id='_NORMAL__()' algoritmo='no' expresión='x' 
id='getArcC1(idx)' algoritmo='sí' expresión='idx<C1.n' hacer='obj.x=C1[idx,0];obj.y=C1[idx,1];obj.r=C1[idx,2];obj.arc.init=0;obj.arc.end=360;obj.txt=C1[idx,3];;' 
id='getArcC2(idx)' algoritmo='sí' expresión='idx<C2.n' hacer='obj.x=C2[idx,0];obj.y=C2[idx,1];obj.r=C2[idx,2];obj.arc.init=0;obj.arc.end=360;obj.txt=C2[idx,3]' 
id='sobreCualC1(mx,my)' algoritmo='sí' expresión='res' local='i,px,px,pr,res' inicio='i=0;res=-1' hacer='dist=sqrt((C1[i,0]-mx)^2+(C1[i,1]-my)^2);res=(dist<=(C1[i,2]))?i:res;i=i+1' mientras='(res<0)&(i<C1.n)' 
id='sobreCualC2(mx,my)' algoritmo='sí' expresión='res' local='i,px,px,pr,res' inicio='i=0;res=-1' hacer='dist=sqrt((C2[i,0]-mx)^2+(C2[i,1]-my)^2);res=(dist<=(C2[i,2]))?i:res;i=i+1' mientras='(res<0)&(i<C2.n)' 
id='getAng(x1,y1,x2,y2)' algoritmo='sí' expresión='theta' local='theta,pPunto,normA,normB' hacer='normA=sqrt(x1^2+y1^2);normB=sqrt(x2^2+y2^2);pPunto=(x1*x2+y1*y2);theta=acos(pPunto/(normA*normB));;' 
id='getFlechaRel(idx)' algoritmo='sí' expresión='(idx<RELS.n)' local='iC1,iC2,ang,dir.x,dir.y.mPix' hacer='iC1=RELS[idx,0];iC2=RELS[idx,1];;mPix=(5/Esp.escala);f.p1.x=C1[iC1,0];f.p1.y=C1[iC1,1];f.p1.r=C1[iC1,2]+mPix;;f.p2.x=C2[iC2,0];f.p2.y=C2[iC2,1];f.p2.r=C2[iC2,2]+mPix;;dir.x=(f.p2.x-f.p1.x) ;dir.y=(f.p2.y-f.p1.y);;ang=getAng(dir.x,dir,y);ang=ent(ang/(2*pi)+0.45);ang=2*pi*ang;;dir.x=cos(ang);dir.y=sen(ang);;f.p1.x=f.p1.x+dir.x*f.p1.r;f.p1.y=f.p1.y+dir.y*f.p1.r;;f.p2.x=f.p2.x-dir.x*f.p2.r;f.p2.y=f.p2.y-dir.y*f.p2.r;' 
id='getPosTxtGC1(idx)' algoritmo='sí' expresión='1' hacer='txt=C1[idx,3]+&squot;&squot;;txt.h=24;txt.w=_AnchoDeCadena_(txt,&squot;SansSerif&squot;,&squot;PLAIN&squot;,txt.h+&squot;&squot;);;txt.w=(txt.w)/Esp.escala;txt.h=20/Esp.escala;;txt.x=C1[idx,0]-txt.w/2;txt.y=C1[idx,1]-txt.h/2' 
id='getPosTxtGC2(idx)' algoritmo='sí' expresión='1' hacer='txt=C2[idx,3]+&squot;&squot;;txt.h=24;txt.w=_AnchoDeCadena_(txt,&squot;SansSerif&squot;,&squot;PLAIN&squot;,txt.h+&squot;&squot;);;txt.w=(txt.w)/Esp.escala;txt.h=20/Esp.escala;;txt.x=C2[idx,0]-txt.w/2;txt.y=C2[idx,1]-txt.h/2' 
id='existeRel(iC1,iC2)' algoritmo='sí' expresión='res' local='i,res,isRel' inicio='i=0;res=-1' hacer='isRes=(RELS[i,0]==iC1)&(RELS[i,1]==iC2)&(RELS.n>i);res=(isRes)?i:res;i=i+1' mientras='(i<RELS.n)&(res<0)' 
id='addRel(iC1,iC2)' algoritmo='sí' expresión='x' local='idxRes,doAdd,tt' hacer='RELS.n=max(RELS.n,0);idxRes=existeRel(iC1,iC2);doAdd=(idxRes<0);;idxRes=(doAdd)?RELS.n:idxRes;RELS[idxRes,0]=iC1;RELS[idxRes,1]=iC2;;RELS.n=RELS.n+doAdd;tt=(doAdd)?updateFlechas():0;tt=(doAdd)?relationAdded(iC1,iC2):0' 
id='delLastRel()' algoritmo='sí' expresión='x' hacer='RELS.n=max(0,RELS.n-1)' 
id='updateFlechas()' algoritmo='sí' expresión='0' local='j' inicio='_Print_(&squot;Vamos a agregar flechas :&squot;+RELS.n);j=0;' hacer='getFlechaRel(j);FLECHAS[j,0]=1;FLECHAS[j,1]=f.p1.x;FLECHAS[j,2]=f.p1.y;FLECHAS[j,3]=f.p2.x;FLECHAS[j,4]=f.p2.y;;j=j+1' mientras='j<RELS.n' 
id='update()' algoritmo='sí' expresión='x' local='doCalcC2,doAddRel,tt' hacer='recienPress=(!ANT.press)&(Esp.press);recienSol=(ANT.press)&(!Esp.press);;doCalcC1=(actC1<0)&(recienPress);;actC1=(doCalcC1)?sobreCualC1(Esp.mx,Esp.my):actC1;;doCalcC2=((recienSol)|(Esp.press))&(actC1>=0);actC2=(doCalcC2)?sobreCualC2(Esp.mx,Esp.my):actC2;doAddRel=(recienSol)&(actC1>=0)&(actC2>=0);tt=(doAddRel)?addRel(actC1,actC2):0;;actC1=(!Esp.press)?-1:actC1;actC2=(!Esp.press)?-1:actC2;ANT.press=Esp.press'
id='INICIO' algoritmo='sí' evaluar='una-sola-vez' hacer='_Print_(&squot;Iniciamos el macro !!!1&squot;);Esp.mx=E1.mouse_x;Esp.my=E1.mouse_y;Esp.press=E1.mouse_pressed;Esp.escala=E1.escala;;actC2=-1;actC1=-1;;C1.n=3;C2.n=3;RELS.n=0;ANT.press=0;verFlechas=1;selected=-1;initCs();'
id='CALCULOS' algoritmo='sí' evaluar='siempre' hacer='tt=(development)?(updateEspTest()+update()):0;;'
tipo='arco' fondo='sí' dibujar-si='getArcC1(s)' centro='(obj.x,obj.y)' radio='obj.r' inicio='obj.arc.init' fin='obj.arc.end' familia='s' s.intervalo='[0,C1.n-1]' s.pasos='C1.n-1' fuente='SansSerif,PLAIN,18' fijo='sí' relleno='f68b00' 
tipo='punto' dibujar-si='getPosTxtGC1(s)' expresión='(txt.x,txt.y+0.5)' familia='s' s.intervalo='[0,C1.n-1]' s.pasos='C1.n-1' texto='[txt]' fuente='SansSerif,PLAIN,24' fijo='no' tamaño='0' 
tipo='arco' fondo='sí' dibujar-si='getArcC2(s)' centro='(obj.x,obj.y)' radio='obj.r' inicio='obj.arc.init' fin='obj.arc.end' familia='s' s.intervalo='[0,C2.n-1]' s.pasos='C2.n-1' fuente='SansSerif,PLAIN,18' fijo='sí' relleno='4f8694' 
tipo='punto' dibujar-si='getPosTxtGC2(s)' expresión='(txt.x,txt.y+0.5)' familia='s' s.intervalo='[0,C2.n-1]' s.pasos='C2.n-1' texto='[txt]' fuente='SansSerif,PLAIN,24' fijo='no' tamaño='0' 
tipo='arco' dibujar-si='(actC1>=0)&(getArcC1(actC1))' centro='(obj.x,obj.y)' radio='obj.r' inicio='obj.arc.init' fin='obj.arc.end' fuente='SansSerif,PLAIN,18' fijo='sí' relleno='verde' ancho='2' 
tipo='punto' dibujar-si='(actC1>=0)&(getPosTxtGC1(actC1))' expresión='(txt.x,txt.y+0.5)' texto='[txt]' fuente='SansSerif,PLAIN,24' fijo='no' tamaño='0' 
tipo='arco' dibujar-si='(actC2>=0)&(getArcC2(actC2))' centro='(obj.x,obj.y)' radio='obj.r' inicio='obj.arc.init' fin='obj.arc.end' fuente='SansSerif,PLAIN,18' fijo='sí' relleno='6800ee00' 
tipo='punto' dibujar-si='(actC2>=0)&(getPosTxtGC2(actC2))' expresión='(txt.x,txt.y+0.5)' texto='[txt]' fuente='SansSerif,PLAIN,24' fijo='no' tamaño='0' 
tipo='flecha' color='blanco' dibujar-si='(verFlechas)&(FLECHAS[s,0])' expresión='(FLECHAS[s,1],FLECHAS[s,2])(FLECHAS[s,3],FLECHAS[s,4])' familia='s' s.intervalo='[0,RELS.n-1]' s.pasos='RELS.n-1' fuente='SansSerif,PLAIN,18' fijo='sí' ancho='3' ancho='3' punta='4' flecha='20303a' 
tipo='flecha' dibujar-si='(actC1>=0)&(Esp.press)&(getArcC1(actC1))' expresión='(obj.x,obj.y)(Esp.mx,Esp.my)' fuente='SansSerif,PLAIN,18' fijo='sí' ancho='3' ancho='3' punta='4' flecha='b6cd89' info='Flecha Actual' 
tipo='flecha' color='blanco' dibujar-si='(selected>=0)&(getFlechaRel(selected))' expresión='(f.p1.x,f.p1.y)(f.p2.x,f.p2.y)' familia='s' s.intervalo='[0,RELS.n-1]' s.pasos='RELS.n-1' fuente='SansSerif,PLAIN,18' fijo='sí' ancho='3' ancho='3' punta='4' flecha='c13030' 
tipo='texto' dibujar-si='debug' expresión='[20,20]' texto='Esp.mouse = ([Esp.mx],[Esp.my])\nANT.press=[ANT.press]\nEsp.press=[Esp.press]\n\nRELS.n = [RELS.n]\nactCX=[actC1] [actC2]' fuente='SansSerif,PLAIN,18' fijo='no' ancho='700' 

