user_wrapper

PURPOSE ^

wrapps the mobiles

SYNOPSIS ^

function xym_wrapped = user_wrapper(xym_unwrapped,par)

DESCRIPTION ^

 wrapps the mobiles

  INPUT
   xym_unwrapped   unwrapped coordinates
   par             parameters "par" structure

  OUTPUT
   xym_wrapped     wrapped coordinates


 $Id: user_wrapper.m,v 1.3 2004/07/16 03:46:40 dalai Exp $

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 % wrapps the mobiles
0002 %
0003 %  INPUT
0004 %   xym_unwrapped   unwrapped coordinates
0005 %   par             parameters "par" structure
0006 %
0007 %  OUTPUT
0008 %   xym_wrapped     wrapped coordinates
0009 %
0010 %
0011 % $Id: user_wrapper.m,v 1.3 2004/07/16 03:46:40 dalai Exp $
0012 
0013 function xym_wrapped = user_wrapper(xym_unwrapped,par)
0014 
0015 switch(par.model)
0016 case 1
0017     % inside the area -> no wrapping
0018     xym_wrapped = xym_unwrapped;
0019 
0020     % outside the area -> wrapping
0021     if ( abs(real(xym_unwrapped))> par.r )
0022         if ( real(xym_unwrapped) > par.r )
0023             xym_wrapped = xym_unwrapped - 2*par.r;
0024         end
0025         if ( real(xym_unwrapped) < -par.r )
0026             xym_wrapped = xym_unwrapped + 2*par.r;
0027         end
0028     end
0029 
0030 case 2
0031     % inside the area -> no wrapping
0032     xym_wrapped = xym_unwrapped;
0033     
0034     % outside the area -> wrapping
0035     % North-South wrapping
0036     if (abs(imag(xym_unwrapped)) > par.r)
0037         % North to South wrapping
0038         if ( imag(xym_unwrapped) > par.r )
0039             xym_wrapped = xym_unwrapped - 2*i*par.r;
0040         end
0041         % South to North wrapping
0042         if ( imag(xym_unwrapped) < -par.r )
0043             xym_wrapped = xym_unwrapped + 2*i*par.r;
0044         end
0045     end
0046 
0047     % West-East wrapping
0048     if (abs(real(xym_unwrapped)) > par.r)
0049         % North to South wrapping
0050         if ( real(xym_unwrapped) > par.r )
0051             xym_wrapped = xym_unwrapped - 2*par.r;
0052         end
0053         % South to North wrapping
0054         if ( real(xym_unwrapped) < -par.r )
0055             xym_wrapped = xym_unwrapped + 2*par.r;
0056         end
0057     end
0058 
0059 case 3
0060     % select inside and outside the area
0061     inside = inpolygon(real(xym_unwrapped),imag(xym_unwrapped),real(par.vertices),imag(par.vertices));
0062 
0063     % inside the area -> no wrapping
0064     xym_wrapped(inside==1) = xym_unwrapped(inside==1);
0065 
0066     % outside the area -> wrapping
0067     [th,r] = cart2pol(real(xym_unwrapped(inside==0)),imag(xym_unwrapped(inside==0)));
0068     [x,y] = pol2cart(th+pi,r);
0069     xym_wrapped(inside==0) = x+i*y;
0070 end

Generated on Sun 15-Aug-2004 22:13:10 by m2html © 2003