// Last edited on 2020-03-07 22:24:27 by jstolfi #include "homunculus_parts.inc" #macro homunculus(XYZ, tx) // Returns a matchstick human figure. // {XYZ} is an array of 20 elements with coordinates // of marker points (in mm). // Original: // 00 coudeD // 01 poignetD // 02 mibrasD // 03 doigtD // 04 epauleD // 05 D1 // 06 epauleG // 07 coudeG // 08 poignetG // 09 doigtG // 10 hancheD // 11 genouD // 12 malD // 13 piedD // 14 hancheG // 15 genouG // 16 malG // 17 piedG // 18 oeilD // 19 oreilleG union{ object{ homunculus_stick(XYZ, 18, 19) } // oeilD, oreilleG object{ homunculus_stick(XYZ, 18, 05) } // oeilD, D1 object{ homunculus_stick(XYZ, 19, 05) } // oreilleG, D1 object{ homunculus_stick(XYZ, 04, 05) } // D1, epauleD object{ homunculus_stick(XYZ, 06, 05) } // D1, epauleG object{ homunculus_stick(XYZ, 04, 00) } // epauleD, coudeD object{ homunculus_stick(XYZ, 06, 07) } // epauleG, coudeG object{ homunculus_stick(XYZ, 04, 06) } // epauleD, epauleG object{ homunculus_stick(XYZ, 00, 01) } // coudeD, poignetD object{ homunculus_stick(XYZ, 07, 08) } // coudeG, poignetG object{ homunculus_stick(XYZ, 01, 03) } // poignetD, doigtD object{ homunculus_stick(XYZ, 08, 09) } // poignetG, doigtG object{ homunculus_stick(XYZ, 04, 10) } // epauleD, hancheD object{ homunculus_stick(XYZ, 06, 14) } // epauleG, hancheG object{ homunculus_stick(XYZ, 10, 14) } // hancheD, hancheG object{ homunculus_stick(XYZ, 10, 11) } // hancheD, genouD object{ homunculus_stick(XYZ, 14, 15) } // hancheG, genouG object{ homunculus_stick(XYZ, 11, 12) } // genouD, malD object{ homunculus_stick(XYZ, 15, 16) } // genouG, malG object{ homunculus_stick(XYZ, 12, 13) } // malD, piedD object{ homunculus_stick(XYZ, 16, 17) } // malG, piedG texture{ tx } } #end