From dc71274f16f7ff65145e034900f582b62453a033 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 14 Oct 2017 11:43:11 +0900 Subject: rename and update ketpic -> ketcindy --- .../ketcindy/ketlib/ketpicscifiles6/Menkakusi.sci | 206 +++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Menkakusi.sci (limited to 'texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Menkakusi.sci') diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Menkakusi.sci b/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Menkakusi.sci new file mode 100644 index 00000000..de8d4b0d --- /dev/null +++ b/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Menkakusi.sci @@ -0,0 +1,206 @@ +// 08.08.21 +// 09.10.24 +// 09.10.26 + +function Menkakusi(Face,Nf,Ptype) + global THETA PHI EyePoint FocusPoint VELNO VELHI; + Eps0=10^(-6); + Eps=10^(-4); + Tmp1=Face(1)-Face(2); + Tmp2=Face(3)-Face(2); + if norm(Tmp1)-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Out2L($+1)=list(Edge,Ne,Nenm); + end; + end; + continue; + end; + Flg=0; + for I=1:Mixlength(VL)-1 + Tmp=VL(I+1)-VL(I); + if norm(Tmp)-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Out2L($+1)=list(Edge,Ne,Nenm); + end; + end; + continue; + end; + if Tmp>1-Eps + if Ng1==0 + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp1=Edge(1)-Face(1); + Tmp1=Dotprod(Tmp1,Vec); + if Tmp1>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Out2L($+1)=list(Edge,Ne,Nenm); + end; + end; + continue; + end; + if Ng1==0 & Ng2==0 + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp1=KL(1); + Tmp1=Tmp1(1); + if Ptype==-1 + Tmp=Invperspt(Tmp1,Spaceline(Edge)); + else + Tmp=Invparapt(Tmp1,Spaceline(Edge)) + end; + Ak=Tmp(1); + if Ng1==1 + Tmp1=Edge(1)-Face(1); + Tmp1=Dotprod(Tmp1,Vec); + if Tmp1>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp2=list(Ak,Edge(2)); + Out1L($+1)=list(Tmp2,Ne,Nenm); + Tmp2=list(Edge(1),Ak); + Out2L($+1)=list(Tmp2,Ne,Nenm); + end; + end; + if Ng2==1 + Tmp1=Edge(2)-Face(1); + Tmp1=Dotprod(Tmp1,Vec); + if Tmp1>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp2=list(Edge(1),Ak); + Out1L($+1)=list(Tmp2,Ne,Nenm); + Tmp2=list(Ak,Edge(2)); + Out2L($+1)=list(Tmp2,Ne,Nenm); + end; + end; + end; + end; + if Mixlength(KL)==2 + Tmp1=KL(1); + Tmp1=Tmp1(2); + Tmp2=KL(2); + Tmp2=Tmp2(2); + if Tmp1>Tmp2 + KL=list(KL(2),KL(1)); + end; + Tmp=Spaceline(Edge); + Tmp1=KL(1); + Tmp1=Tmp1(1); + Tmp2=KL(2); + Tmp2=Tmp2(1); + if Ptype==-1 + Ak=Mixop(1,Invperspt(Tmp1,Tmp)); + Bk=Mixop(1,Invperspt(Tmp2,Tmp)) + else + Ak=Mixop(1,Invparapt(Tmp1,Tmp)); + Bk=Mixop(1,Invparapt(Tmp2,Tmp)) + end; + Tmp1=(Ak+Bk)*0.5-Face(1); + Tmp=Dotprod(Tmp1,Vec); + if Tmp>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Out1L($+1)=list(list(Edge(1),Ak),Ne,Nenm); + Out1L($+1)=list(list(Bk,Edge(2)),Ne,Nenm); + Out2L($+1)=list(list(Ak,Bk),Ne,Nenm); + end; + end; + end; + VELNO=Out1L; + VELHI=Out2L; +endfunction + -- cgit v1.2.3