Faces from a mesh: Difference between revisions
Content added Content deleted
(→{{header|Go}}: No need for 'names' slice.) |
m (→{{header|zkl}}: piddle) |
||
Line 414: | Line 414: | ||
<lang zkl>fcn perimSame(p1, p2){ |
<lang zkl>fcn perimSame(p1, p2){ |
||
if(p1.len() != p2.len()) return(False); |
if(p1.len() != p2.len()) return(False); |
||
False == p1.filter1('wrap(p){ (not p2.holds(p)) }) |
|||
True |
|||
} |
} |
||
Line 422: | Line 421: | ||
p,last := ( if(edges) edges.pop(0).copy() else T ), ( p and p[-1] or Void ); |
p,last := ( if(edges) edges.pop(0).copy() else T ), ( p and p[-1] or Void ); |
||
while(edges){ |
while(edges){ |
||
foreach |
foreach i,j in (edges){ |
||
⚫ | |||
i,j := ij; |
|||
if( |
else if(j==last){ p.append( last=i ); edges.del(__iWalker.idx); break; } |
||
⚫ | |||
} |
} |
||
fallthrough{ return(">>>Error! Invalid edge format<<<") } |
fallthrough{ return(">>>Error! Invalid edge format<<<") } |
||
} |
} |
||
p[0,-1] |
p[0,-1] // last element not part of result |
||
}</lang> |
}</lang> |
||
<lang zkl>println("Perimeter format equality checks:"); |
<lang zkl>println("Perimeter format equality checks:"); |