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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
// NEW
// Faceremovaldata
// 09.10.24
// 09.10.26
// 09.10.27
function NohiddenL=Faceremovaldata(FL,CLadd,PT)
global PHHIDDENDATA VELNO VELHI;
NohiddenL=list();
HiddenL=list();
Eps=10^(-4);
if mtlb_findstr(PT,'para')~=[]
Ptype=1; //para
else
Ptype=-1; //pers
end;
if length(CLadd)>0
if type(CLadd)==1
C=list();
if size(CLadd,1)>1
for I=1:size(CLadd,1)
C($+1)=CLadd(I,:);
end;
else
for I=1:3:size(CLadd,2)
C($+1)=CLadd(1,I:I+2);
end;
end;
CrvL=list(C);
elseif type(CLadd(1))==1
CrvL=list();
for J=1:length(CL)
Ctmp=CLadd(J);
C=list();
if size(Ctmp,1)>1
for I=1:size(Ctmp,1)
C($+1)=Ctmp(I,:);
end;
else
for I=1:3:size(Ctmp,2)
C($+1)=Ctmp(1,I:I+2);
end;
end;
CrvL($+1)=C;
end;
else
CrvL=CLadd;
end;
else
CrvL=list();
end;
VELNO=list();
for I=1:length(CrvL)
Tmp=CrvL(I);
for J=1:length(Tmp)-1
Edge=list(Tmp(J),Tmp(J+1));
VELNO($+1)=list(Edge,0);
end;
end;
VELHI=list();
Out=MakeveLfaceL(FL);
FaceL=Out(2);
for Nf=1:length(FaceL)
Face=FaceL(Nf);
Menkakusi(Face,Nf,Ptype);
end;
for I=1:length(VELNO)
Edge=Op(1,VELNO(I));
if norm(Edge(1)-Edge(2))>Eps
NohiddenL($+1)=Spaceline(Edge);
end;
end;
for I=1:length(VELHI)
Edge=Op(1,VELHI(I));
if norm(Edge(1)-Edge(2))>Eps
HiddenL($+1)=Spaceline(Edge);
end;
end;
PHHIDDENDATA=HiddenL;
endfunction
|