summaryrefslogtreecommitdiff
path: root/texmf-dist/scripts/ketcindy/ketlib/ketpic2escifiles6/KoutenList.sci
blob: 82cf1e2ca4e571dfbf71d40cfb17722c34fa71c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// 08.05.18
// 08.05.20
// 08.06.02

function TenL=KoutenList(PA,V,Bdy)
  Eps=10.0^(-6);
  TenL=[];
  for N=1:Mixlength(Bdy)
    KL=Op(N,Bdy);
    for K=1:size(KL,1)-1
      P=KL(K,:); Q=KL(K+1,:);
      if P~='/' & Q~='/'
        Tmp=Kouten(PA,V,P,Q);
        if Tmp~=[%inf,-%inf]
          Ten=Mixadd(Tmp,N);
          Flg=0;
          NN=Mixlength(TenL);
          I=1;
          while Flg==0 & I<=NN
            Tmp=Op(I,TenL);
            if Op(1,Ten)<Op(1,Tmp)-Eps
              Tmp=Mixsub(1:I-1,TenL);
              Tmp1=Mixadd(Tmp,Ten);
              Tmp2=Mixsub(I:Mixlength(TenL),TenL);
              TenL=Mixjoin(Tmp1,Tmp2);
              Flg=1;
            elseif Op(1,Ten)<Op(1,Tmp)+Eps
              if Op(4,Ten)~=Op(4,Tmp)
                Tmp=Mixsub(1:I-1,TenL);
                Tmp1=Mixadd(Tmp,Ten);
                Tmp2=Mixsub(I:Mixlength(TenL),TenL);
                TenL=Mixjoin(Tmp1,Tmp2);
                Flg=1;
              elseif Op(3,Ten)~=Op(3,Tmp)
                Tmp1=Mixsub(1:I-1,TenL);
                Tmp2=Mixsub(I+1:Mixlength(TenL),TenL);
                TenL=Mixjoin(Tmp1,Tmp2);
              end
              Flg=1;
            end
            I=I+1;
          end
          if Flg==0
            TenL=Mixadd(TenL,Ten);
          end
        end
      end
    end
  end
endfunction