]> gitweb.factorcode.org Git - factor.git/blob - unmaintained/gml/examples/doorway.gml
e6a5ee0b7081d383a74db7df195b251ecad193ae
[factor.git] / unmaintained / gml / examples / doorway.gml
1 usereg !nrml !backwall !wall !poly\r
2 { usereg !door !wall\r
3     :door edgemate :wall killFmakeRH\r
4     :door edgemate faceCCW\r
5     :wall makeEkillR\r
6     dup faceCCW faceCCW\r
7     :door edgemate\r
8     exch makeEF pop\r
9     faceCCW killEF\r
10 } !glue-ringface-edges\r
11 \r
12 :poly 0 get                     !pr\r
13 :poly -1 get                    !pl\r
14 :wall vertexpos                 !pw0\r
15 :wall edgemate vertexpos        !pw1\r
16 :pr :pw0 :pw1 project_ptline    !prb\r
17 :pl :pw0 :pw1 project_ptline    !plb\r
18 [ :plb :plb :prb :prb ]\r
19 :poly arrayappend               !poly\r
20 \r
21 :poly :nrml neg :backwall faceplane\r
22 project_polyplane\r
23     5 poly2doubleface edgemate  !backdoor\r
24 :poly 5 poly2doubleface         !door\r
25 :wall     :door     :glue-ringface-edges\r
26 :backwall :backdoor :glue-ringface-edges\r
27 :backdoor faceCCW :door 2 bridgerings\r
28 \r
29 !doorL\r
30 :doorL edgemate 2 faceCCW edgemate !doorR\r
31 :doorL edgemate faceCCW killEF\r
32 :doorR edgemate faceCCW killEmakeR pop\r
33 :doorL edgemate isBaseface {\r
34     :doorR edgemate makeFkillRH\r
35 } if\r
36 \r
37 :doorL :doorR\r