File: do_delete2.sci

package info (click to toggle)
scilab 2.4-1
  • links: PTS
  • area: non-free
  • in suites: potato, slink
  • size: 55,196 kB
  • ctags: 38,019
  • sloc: ansic: 231,970; fortran: 148,976; tcl: 7,099; makefile: 4,585; sh: 2,978; csh: 154; cpp: 101; asm: 39; sed: 5
file content (43 lines) | stat: -rw-r--r-- 1,104 bytes parent folder | download | duplicates (2)
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
function [scs_m,DEL]=do_delete2(scs_m,K,gr)
//perform deletion of scs_m object whose index are given in the vector 
//K and all connected links. splits which are not given in K are not deleted
//!
// Copyright INRIA
DEL=[] //table of deleted objects
K0=K
while K<>[] do
  k=K(1);K(1)=[]
  o=scs_m(k);
  if find(DEL==k)==[] then typ=o(1);else typ='Deleted',end
  DEL=[DEL k]

  if typ=='Link' then
    [ct,from,to]=o(7:9)
    tokill=[%t,%t]

    scs_m(to(1))=mark_prt(scs_m(to(1)),to(2),'in',ct(2),0)

    scs_m(from(1))=mark_prt(scs_m(from(1)),from(2),'out',ct(2),0)
    
    // erase and delete link
    if gr==%t then drawobj(o),end
  elseif typ=='Block' then
    // get connected links
    connected=get_connected(scs_m,k)
    //ask for connected links deletion
    K=[K connected]
    // erase and delete block
    if gr==%t then drawobj(scs_m(k)),end
  elseif typ=='Text' then
    if gr==%t then drawobj(o),end
  elseif typ=='Deleted' then
  else
    message('This object can''t be deleted')
  end
end
if gr==%t then 
  if pixmap then xset('wshow'),end,
end
for k=DEL,scs_m(k)=list('Deleted'),end