lemon/graph_to_eps.h
changeset 2386 81b47fc5c444
parent 2379 248152674a9e
child 2388 c6d537888fe5
equal deleted inserted replaced
29:eb7346cf1682 30:cdad3f738848
   947 	      dim2::Point<double> t=mycoords[g.target(*e)];
   947 	      dim2::Point<double> t=mycoords[g.target(*e)];
   948 	      double rn=_nodeSizes[g.target(*e)]*_nodeScale;
   948 	      double rn=_nodeSizes[g.target(*e)]*_nodeScale;
   949 	      node_shape=_nodeShapes[g.target(*e)];
   949 	      node_shape=_nodeShapes[g.target(*e)];
   950 	      dim2::Bezier3 bez(s,mm,mm,t);
   950 	      dim2::Bezier3 bez(s,mm,mm,t);
   951 	      double t1=0,t2=1;
   951 	      double t1=0,t2=1;
   952 	      for(int i=0;i<INTERPOL_PREC;++i)
   952 	      for(int ii=0;ii<INTERPOL_PREC;++ii)
   953 		if(isInsideNode(bez((t1+t2)/2)-t,rn,node_shape)) t2=(t1+t2)/2;
   953 		if(isInsideNode(bez((t1+t2)/2)-t,rn,node_shape)) t2=(t1+t2)/2;
   954 		else t1=(t1+t2)/2;
   954 		else t1=(t1+t2)/2;
   955 	      dim2::Point<double> apoint=bez((t1+t2)/2);
   955 	      dim2::Point<double> apoint=bez((t1+t2)/2);
   956 	      rn = _arrowLength+_edgeWidths[*e]*_edgeWidthScale;
   956 	      rn = _arrowLength+_edgeWidths[*e]*_edgeWidthScale;
   957 	      rn*=rn;
   957 	      rn*=rn;
   958 	      t2=(t1+t2)/2;t1=0;
   958 	      t2=(t1+t2)/2;t1=0;
   959 	      for(int i=0;i<INTERPOL_PREC;++i)
   959 	      for(int ii=0;ii<INTERPOL_PREC;++ii)
   960 		if((bez((t1+t2)/2)-apoint).normSquare()>rn) t1=(t1+t2)/2;
   960 		if((bez((t1+t2)/2)-apoint).normSquare()>rn) t1=(t1+t2)/2;
   961 		else t2=(t1+t2)/2;
   961 		else t2=(t1+t2)/2;
   962 	      dim2::Point<double> linend=bez((t1+t2)/2);	      
   962 	      dim2::Point<double> linend=bez((t1+t2)/2);	      
   963 	      bez=bez.before((t1+t2)/2);
   963 	      bez=bez.before((t1+t2)/2);
   964 // 	      rn=_nodeSizes[g.source(*e)]*_nodeScale;
   964 // 	      rn=_nodeSizes[g.source(*e)]*_nodeScale;