File: compose

package info (click to toggle)
euslisp 9.27%2Bdfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 55,344 kB
  • sloc: ansic: 41,162; lisp: 3,339; makefile: 256; sh: 208; asm: 138; python: 53
file content (99 lines) | stat: -rw-r--r-- 4,639 bytes parent folder | download | duplicates (3)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
\section{$B@\?(J*BN$N9g@.(J}

\subsection{$B%"%k%4%j%:%`$N35MW(J}
2$B$D$NJ*BN$r(Jbody1, body2$B$H$9$k!#(J
$B9g@.$N7W;;$O!"<!$N$h$&$K?JE8$9$k!#(J
\begin{enumerate}
\item $B8r:9$NEPO?(J(insert-intersections)
\item $B8r:9$K$h$C$F6h@Z$i$l$?@~J,$+$i(Jedge$B$r@8@.(J(make-edge-segments)
\item $B8r:9$rLL$N>e$G$D$J$$$GAj4S@~$r@8@.(J(make-crossing-edges)
\item $B@~J,$rLL$4$H$K%=!<%H(J
\item $B@\?($7$F$$$kLL$NH/8+(J(find-contacting-faces)
\item $B=E$J$C$F$$$kLL$NH/8+(J(find-aligned-faces)
\item $B@\?($7$F$$$kLL$NJ;9g(J(merge-contacting-faces)
\item $B=E$J$C$F$$$kLL$NJ;9g(J(merge-aligned-faces)
\item $B6&DL$NLL$KM3Mh$9$k@~J,$N%j%9%H$+$iJDO)$r8+$D$1!"LL!"7j$r:n$k(J
(construct-faces)
\item $BLL$+$i(Jbody$B$N@8@.(J
\end{enumerate}

\subsubsection{insert-intersections}

body1$B$N$9$Y$F$N%(%C%8$H(Jbody2$B$N$9$Y$F$NLL$N8r:9$r(Jintersect1$B$K!"(J
body2$B$N$9$Y$F$N%(%C%8$H(Jbody1$B$N$9$Y$F$NLL$N8r:9$r(Jintersects2$B$K5-O?$9$k!#(J
intersects[12]$B$N3FMWAG$O!"0J2<$N$h$&$J%j%9%H!#(J
  (edge	(param1 point1 [face1])
	(param2 point2 [face2])
	. . .)

$B%(%C%8$,LL$H$[$H$s$IJ?9T$J>l9g$O!"8r:9$,$J$$$b$N$H$_$J$9!#(J
$BJ?9T@-$O!"%(%C%8$NC<E@$HLL$H$N(Jplane-distance$B$r(J*coplanar-threshold*
$B$HHf3S$7$F8!::$9$k!#(J

$B0l$D$N%(%C%8$,!"$=$N>e$N0l$D$NE@$N6aK5$GFs$D0J>e$NLL$H8r:9$9$k$H(J
$BH=Dj$5$l$k>l9g$,$"$k!#$?$H$($P!"1_Cl$N>e$K1_?m$,>h$C$F$$$k>l9g!"(J
$B1_Cl$NB&LL$N<4J}8~$N%(%C%8$O!"$=$NC<E@$K$*$$$F!"1_?m$NDlLL$*$h$S(J
$BB&LL$NN>J}$H8r:9$9$k$HH=Dj$5$l$k2DG=@-$,$"$k!#$3$l$r0l$D$NLL$K(J
$B9J$kJ}K!$O$$$/$D$+9M$($i$l$k$,!"$3$3$G$O!":G$bD>3Q$K6a$$3QEY$G(J
$B8r:9$9$kLL$rA*$S!"B>$r<N$F$k!#(J

$B%(%C%8$NC<E@!"$9$J$o$A(Jparam=0 or 1$B$NE@$O!"$?$H$(8r:9$,$J$/$F$b(J
intersects$B$K5-O?$5$l$k!#$3$l$O!"%(%C%8%;%0%a%s%H$r<h$j=P$9:n6H$r(J
$B4JC1$K$9$k$?$a!#$^$?!"(Jintlist$B$N3FMWAG$O!"(Jparameter$B$,(J0$B$+$i(J1$B$K8~$+$C$F(J
$B>.$5$$=g$K%=!<%H$5$l$k!#(J


\subsubsection{make-edge-segments}

intersects[12]$BCf$N3FMWAG$K$D$$$F!"%(%C%8$N%;%0%a%s%H$r@Z$j=P$9!#(J
$B%Q%i%a!<%?$G6h@Z$i$l$?%;%0%a%s%H$NCfE@$r5a$a!"$=$l$,Aj<jJ*BN$N(J
$BFbIt(J(inside)$B$+!"LL>e(J(border)$B$+!"30It(J(outside)$B$+$rH=Dj$9$k!#(J
union$B$r<h$k>l9g$O!"(Jinside$B$HH=Dj$5$l$?%;%0%a%s%H$r<N$F!"(Jborder, outside
$B$N%;%0%a%s%H$r(Jedge$B%*%V%8%'%/%H$H$7$F@8@.$9$k!#7k2L$O!"(Jsegments[12]
$B$K%j%9%H$5$l$k!#(Jedge$B%*%V%8%'%/%H$N(Jpface, nface$B%9%m%C%H$K$O!"JX59E*$K(J
$B85$N%(%C%8$N(Jpface, nface$B$r%3%T!<$7$F$*$/!#$3$l$O!"8e$KLL$N2s$j$K(J
$B1h$C$F%(%C%8$r%H%i%P!<%9$7$F%5!<%-%C%H(J(closed-region)$B$r7A@.$9$k$?$a!#(J

\subsubsection{body :insidep}

$BE@$,J*BN$NFbIt$K$"$k$+30It$K$"$k$+$NH=Dj$K$O!"(Jbody$B$N(J:insidep$B%a%=%C%I$r(J
$BMQ$$$k!#(J:insidep$B$O!"J*BN$,FLJ*BN$+1zJ*BN$+$G0[$J$k%"%k%4%j%:%`$r(J
$B<B9T$9$k!#FL$N>l9g!"E@$HJ*BN$r9=@.$9$k3FLL$H$NId9g$D$-5wN%$r7W;;$9$k!#(J
$B5wN%$,!"@5$G(J*coplanar-threshold*$B0J>e$G$"$l$P!"30It$G$"$k!#5wN%$,(J
*coplanar-threshold*$B$NHO0OFb$G$[$H$s$I%<%m$G$"$j!"$=$NLL$NFbIt$K$"$l$P(J
border$B$HH=Dj$9$k!#%(%C%8>e$K$"$k$+!"LL>e$K$"$k$+$OH=Dj$7$J$$!#(J
$B1z$N>l9g!"$^$:!"E@$HLL$H$N5wN%$r7W;;$7!"(J*coplanar-threshold*$B$NHO0OFb$G(J
$B@\?($7$F$$$l$P(Jborder$B$HH=Dj$9$k!#<!$K!"E@$+$i%i%s%@%`$JJ}8~$KD>@~$rEj<M$7!"(J
$B3FLL$H$N8r:9$rNs5s$9$k!#8r:9$N?t$,4q?t$G$"$l$PFbIt!"6v?t$G$"$l$P30It$H(J
$BH=Dj$9$k!#(J

\subsubsection{face :insidep}

$BLL$NFb30H=Dj$O!"(Jface, closed-region$B$N(J:insidep$B%a%=%C%I$,9T$J$&!#(Jconvexp$B$,(J
T$B$N>l9g!"(Jtriangle$B4X?t$rMQ$$$F!"E@$,%(%C%8$NF1$8B&LL$K$"$&$3$H$rD4$Y$k!#(J
triangle$B$O!"(J3$B$D$NE@$,:n$k;03Q7A$NId9gIULL@Q$N(J2$BG\$rJV$9!#$3$NCM$,!"(J
$B%(%C%8$ND9$5$KHf$Y$F(J(*epsilon*$B$NHO0OFb$G(J)$B$[$H$s$I%<%m$G$"$k>l9g!"(J
border$B$HH=Dj$9$k!#1z$N>l9g!"E@$+$iLL$N3F%(%C%8$r8+9~$`3QEY$r!"(Jvector-angle
$B4X?t$rMQ$$$F7W;;$7!"$=$NAmOB$r<h$k!#FbE@$G$O$3$NAmOB$,(J2pi$B$K$J$j!"(J
$B30E@$G$O%<%m$K$J$k!#$"$k%(%C%8$K$D$$$F8+9~$_3Q$,(Jpi$B$K6a$$>l9g!"(J
border$B$HH=Dj$9$k!#(J

\subsubsection{make-crossing-edges}
intfaces1, intfaces2, first$B$N;0$D$r0z?t$H$7$F<u$1$H$k!#(J
intfaces1$B$O!"(Jbody1$B$N%(%C%8$K$D$$$F(Jbody2$B$NLL$H$N8r:9$r(Jbody1$B$NLLKh$K%j%9%H$7$?$b$N!"(J
intfaces2$B$O!"(Jbody2$B$N%(%C%8$K$D$$$F(Jbody1$B$NLL$H$N8r:9$r(Jbody2$B$NLLKh$K%j%9%H$7$?$b$N$G$"$k!#(J
intfaces1$B$N0l$D$NMWAG$O!"<!$N$h$&$JFbMF$N%j%9%H!#(J

\begin{verbatim}
  (face1
      (original-edge11
          created-edge111
             crossing-face11a
             crossing-face11b
             location (inside/outside/border)
             parameter11a
             parameter11b)
      . . .)
\end{verbatim}