diff options
author | Norbert Preining <norbert@preining.info> | 2017-09-04 09:45:51 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2017-09-04 09:45:51 +0900 |
commit | 138f77fe71e43adc24ecb030d73df81cc5c4eb7e (patch) | |
tree | cd2d906c634149bbecd2f4bad3d540c16b23befa /texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsurf.sci | |
parent | 37bfdbee2c91bab6f0abd54503a0b9c669c9109e (diff) |
add ketpic
Diffstat (limited to 'texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsurf.sci')
-rw-r--r-- | texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsurf.sci | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsurf.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsurf.sci new file mode 100644 index 00000000..15543b8a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsurf.sci @@ -0,0 +1,114 @@ +// s : 2014.06.22 +// e : 2014.07.18 +// Objsurf, Objthicksurf : Range argments changed +// 2014.09.07 Objjoin added + +function Out=Objsurf(varargin) + global OBJFIGNO OBJJOIN + Args=varargin; + Nargs=length(Args); + Sel=Args(Nargs); Nargs=Nargs-1; + Rf=Args(1); + N=2; + Mg=0; Ng=0; + if type(Args(N))==1 then + if length(Args(N))>2 then + U=Args(N); + Mg=length(U)-1; + N=N+1; + elseif length(Args(N))==2 then + Intab=Args(N); + Ag=Intab(1); Bg=Intab(2); + N=N+1; + else + Ag=Args(N); Bg=Args(N+1); + N=N+2; + end; + else // when type(Args(N))==10 + Tmp0=Args(N); + Tmp=mtlb_findstr("=",Tmp0); + if length(Tmp)>0 then + Tmp0=part(Tmp0,(Tmp+1):length(Tmp0)); + end; + Intab=evstr(Tmp0); + Ag=Intab(1); Bg=Intab(2); + N=N+1; + end; + if type(Args(N))==1 then + if length(Args(N))>2 then + V=Args(N); + Ng=length(V)-1; + N=N+1; + elseif length(Args(N))==2 then + Intab=Args(N); + Cg=Intab(1); Dg=Intab(2); + N=N+1; + else + Cg=Args(N); Dg=Args(N+1); + N=N+2; + end; + else // when type(Args(N))==10 + Tmp0=Args(N); + Tmp=mtlb_findstr("=",Tmp0); + if length(Tmp)>0 then + Tmp0=part(Tmp0,(Tmp+1):length(Tmp0)); + end; + Intab=evstr(Tmp0); + Cg=Intab(1); Dg=Intab(2); + N=N+1; + end; + if Mg==0 then + Mg=Args(N); + N=N+1; + U=[]; + for J=1:(Mg+1) + U=[U,Ag+(J-1)/Mg*(Bg-Ag)]; + end; + end; + if Ng==0 then + Ng=Args(N); + V=[]; + for K=1:(Ng+1) + V=[V,Cg+(K-1)/Ng*(Dg-Cg)]; + end; + end; + Objname(); // // 140907 + PL=list(); + for J=1:(Mg+1) + for K=1:(Ng+1) + P=Rf(U(J),V(K)); + Np=Writeobjpoint(P) + PL=lstcat(PL,list([P,Np])); + end; + end; + Idx=1:(Ng+1):(Ng+1)*Mg+1; + Pus=Mixsub(Idx,PL); + Idx=(Ng+1):(Ng+1):(Ng+1)*(Mg+1); + Pue=Mixsub(Idx,PL); + Idx=1:1:Ng+1; + Pvs=Mixsub(Idx,PL); + Idx=(Ng+1)*Mg+1:1:(Ng+1)*(Mg+1); + Pve=Mixsub(Idx,PL); + Printobjstr("vt 0 0"); + Printobjstr("vt 1 0"); + Printobjstr("vt 1 1"); + Printobjstr("vt 0 1"); + for J=1:Mg + for K=1:Ng + P1=sprintf("%1d",Op(4,PL((Ng+1)*(J-1)+K))) + P2=sprintf("%1d",Op(4,PL((Ng+1)*J+K))) + P3=sprintf("%1d",Op(4,PL((Ng+1)*J+K+1))) + P4=sprintf("%1d",Op(4,PL((Ng+1)*(J-1)+K+1))) + N1=""; N2=""; N3=""; N4=""; + if Sel=="+" then // 6.22 + Str="f "+P1+"/1/"+N1+" "+P2+"/2/"+N2+" "; + Str=Str+P3+"/3/"+N3+" "+P4+"/4/"+N4; + else + Str="f "+P1+"/1/"+N1+" "+P4+"/4/"+N4+" "; + Str=Str+P3+"/3/"+N3+" "+P2+"/2/",N2; + end; + Printobjstr(Str) + end; + end; + Out=list(U,V,Pus,Pue,Pvs,Pve) +endfunction |