1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-09-22 20:41:33 +02:00

1323 Commits
v3.1 ... v3.3

Author SHA1 Message Date
Justin Lin
bb33edfd75 add deprecated msg 2022-10-11 17:41:16 +08:00
Justin Lin
8bfcdc39a9 update RELEASE 2022-10-11 11:14:19 +08:00
Justin Lin
5e60756a27 update README 2022-10-11 11:11:03 +08:00
Justin Lin
2ea9bcdffc update note 2022-10-11 11:04:08 +08:00
Justin Lin
f26629cb4c update examples 2022-10-11 11:03:41 +08:00
Justin Lin
ea60a5628a add fidget_boo 2022-10-02 17:33:30 +08:00
Justin Lin
c1d1997714 spacing = 1.35 2022-09-26 07:07:19 +08:00
Justin Lin
78a23c0a12 spacing = 1.25 2022-09-25 21:42:14 +08:00
Justin Lin
17d6364865 add fidget_pumpkin 2022-09-25 19:43:12 +08:00
Justin Lin
fbb4024168 simplified symbols 2022-09-25 12:30:12 +08:00
Justin Lin
fcdcf0b2b4 change eyes 2022-09-24 16:31:30 +08:00
Justin Lin
e75fd110d7 adjust head 2022-09-24 16:17:35 +08:00
Justin Lin
49461b3ce1 adjust head 2022-09-24 15:11:52 +08:00
Justin Lin
86028431bf use pt hash 2022-09-21 17:11:08 +08:00
Justin Lin
c30e83d318 adjust position 2022-09-21 11:23:22 +08:00
Justin Lin
bd628815bd modify head 2022-09-21 10:02:52 +08:00
Justin Lin
7a6ea23903 modify mouth 2022-09-21 09:15:42 +08:00
Justin Lin
ebfc46fd26 add maze_maze 2022-09-18 12:00:18 +08:00
Justin Lin
469fdcc6f7 del sorted param 2022-09-18 11:15:39 +08:00
Justin Lin
5578c169b0 rename 2022-09-14 15:30:27 +08:00
Justin Lin
b90b83ebc5 format 2022-09-13 16:46:03 +08:00
Justin Lin
daaff1322f add tri_concave_hull 2022-09-13 14:56:36 +08:00
Justin Lin
84c83769db rename 2022-09-11 15:56:17 +08:00
Justin Lin
bb59ba0939 rename 2022-09-11 15:54:53 +08:00
Justin Lin
3c70c23afa add island_maze 2022-09-11 13:07:12 +08:00
Justin Lin
683074dc54 change rose scale 2022-09-03 11:25:49 +08:00
Justin Lin
9d2f6eaac2 add rose_scale 2022-09-03 11:17:29 +08:00
Justin Lin
4c46ac11fc use sf_hull 2022-09-03 09:48:24 +08:00
Justin Lin
fb73eced66 change param value 2022-09-02 16:13:44 +08:00
Justin Lin
7a890293fb reduce ovelapped propabilities 2022-09-02 16:07:43 +08:00
Justin Lin
7eff4d759e refactor 2022-09-02 14:31:28 +08:00
Justin Lin
d78bed91e7 more random 2022-09-02 13:13:05 +08:00
Justin Lin
f875bacaf8 add climbing_rose 2022-09-02 11:27:57 +08:00
Justin Lin
bc424ed7b3 add center 2022-09-02 10:39:15 +08:00
Justin Lin
ca7a0e7ef1 i is not required 2022-08-31 10:06:41 +08:00
Justin Lin
264d83cdf1 ci as a seed factor 2022-08-31 09:48:53 +08:00
Justin Lin
7af26906d0 update img 2022-08-29 11:57:34 +08:00
Justin Lin
ee0ffbabd3 larger rect 2022-08-29 11:56:01 +08:00
Justin Lin
ce257f859b add directions param 2022-08-27 17:31:36 +08:00
Justin Lin
4bdd3ca089 change param order 2022-08-27 17:30:21 +08:00
Justin Lin
18281f72fc refactor 2022-08-27 16:38:29 +08:00
Justin Lin
18d3757079 refactor for adding a directions function 2022-08-27 16:19:09 +08:00
Justin Lin
2d5a38194a update doc 2022-08-27 15:36:50 +08:00
Justin Lin
02895d6529 add convexity 2022-08-27 15:33:30 +08:00
Justin Lin
29594b8688 use sf_cylinder if angle is 360 2022-08-27 15:26:59 +08:00
Justin Lin
d0ea27a76c update doc 2022-08-27 15:13:05 +08:00
Justin Lin
ea8fc1da2b update docs 2022-08-27 14:58:41 +08:00
Justin Lin
d29ab4eb8a check if coplanar 2022-08-22 23:38:18 +08:00
Justin Lin
824168a006 optimization 2022-08-22 14:34:43 +08:00
Justin Lin
87ec19fb7a refactor lines_intersection 2022-08-22 11:01:17 +08:00
Justin Lin
2602a90388 refactor lines_intersection 2022-08-22 11:00:51 +08:00
Justin Lin
95b679d82a rename 2022-08-21 16:32:27 +08:00
Justin Lin
6e08ec5fdb giant_theta_maze 2022-08-21 11:01:22 +08:00
Justin Lin
6a98237517 update head 2022-08-20 15:49:08 +08:00
Justin Lin
4a9d935059 noise lower rock 2022-08-18 15:30:45 +08:00
Justin Lin
f587ffecd0 offset .1 2022-08-18 11:48:31 +08:00
Justin Lin
7689ac9c55 add giant maze 2022-08-18 11:46:47 +08:00
Justin Lin
b832cbec2e refactor 2022-08-17 15:28:21 +08:00
Justin Lin
174eb609d5 add doc 2022-08-16 10:36:34 +08:00
Justin Lin
40dfebe040 refactor 2022-08-13 17:30:58 +08:00
Justin Lin
795c7c0a87 don't use hull 2022-08-13 17:16:54 +08:00
Justin Lin
a403ca060e add fidget_skull 2022-08-12 17:12:01 +08:00
Justin Lin
995b531faf update README 2022-08-11 16:55:59 +08:00
Justin Lin
ce915abd33 update doc 2022-08-11 16:49:34 +08:00
Justin Lin
631e78d642 add doc 2022-08-11 16:45:52 +08:00
Justin Lin
2cf3ac6781 refactor 2022-08-11 09:33:14 +08:00
Justin Lin
04e089613a rename 2022-08-10 15:06:22 +08:00
Justin Lin
232a2a56bf add fourier_vase 2022-08-07 17:07:52 +08:00
Justin Lin
8fbf812bca change values 2022-08-06 15:20:49 +08:00
Justin Lin
582fc09262 fn 4 2022-08-06 15:05:57 +08:00
Justin Lin
3a4e6b2a19 halftone 2022-08-06 15:05:17 +08:00
Justin Lin
bd64388362 add photo_fibonacci_lattice 2022-08-05 08:51:31 +08:00
Justin Lin
a3933b945e fix error dir 2022-08-02 15:11:19 +08:00
Justin Lin
9ef35e42bd fix off-1 error 2022-08-02 15:04:59 +08:00
Justin Lin
ef07707cdb accept n = 0 2022-08-02 07:53:08 +08:00
Justin Lin
b33e725523 improve wave_smoothness 2022-08-01 09:21:36 +08:00
Justin Lin
0c29e2b108 don't require x, y 2022-08-01 09:07:45 +08:00
Justin Lin
6b6f0d832a update examples 2022-07-31 20:44:44 +08:00
Justin Lin
f35d04e0e6 update examples 2022-07-31 20:36:03 +08:00
Justin Lin
1e1587c600 add spiral_ripples 2022-07-30 09:11:12 +08:00
Justin Lin
390bef0061 refactor 2022-07-29 08:58:27 +08:00
Justin Lin
86d5da1e23 remove center param 2022-07-29 08:32:43 +08:00
Justin Lin
b83d9440c0 rename 2022-07-29 08:19:44 +08:00
Justin Lin
30b906a1c3 add test 2022-07-28 20:14:02 +08:00
Justin Lin
047c175a19 update note 2022-07-28 15:46:18 +08:00
Justin Lin
77f9750091 add comment 2022-07-28 15:30:02 +08:00
Justin Lin
5b8e62a559 add doc 2022-07-28 15:25:50 +08:00
Justin Lin
5b725bd6bb use matrix index convention 2022-07-28 15:21:02 +08:00
Justin Lin
abd5683698 fix x error 2022-07-27 11:35:04 +08:00
Justin Lin
49a68a9f84 update examples 2022-07-22 11:06:35 +08:00
Justin Lin
505e514075 update doc 2022-07-22 10:42:20 +08:00
Justin Lin
11f9a5b58a add demo 2022-07-22 10:38:21 +08:00
Justin Lin
3b1c12247c add center 2022-07-21 20:23:57 +08:00
Justin Lin
f732686823 update example 2022-07-21 18:58:10 +08:00
Justin Lin
15c1cd605f fix a_step == 0 2022-07-21 18:00:27 +08:00
Justin Lin
709c92714e add arc_great_circle 2022-07-21 17:17:52 +08:00
Justin Lin
ed75179dfe default to 0.8 2022-07-20 18:31:11 +08:00
Justin Lin
cb1ee004ce del * 2022-07-20 07:43:14 +08:00
Justin Lin
6d0eb7de03 rename var 2022-07-19 17:19:56 +08:00
Justin Lin
a51a8f2bd4 0.618 2022-07-19 11:50:55 +08:00
Justin Lin
e6e52f7ab8 golden angle 2022-07-19 11:36:14 +08:00
Justin Lin
4e2edcef5b update doc 2022-07-19 11:34:07 +08:00
Justin Lin
756fde7c0f fix dir 2022-07-19 11:32:27 +08:00
Justin Lin
f278d7430a del 0.5 2022-07-19 11:29:09 +08:00
Justin Lin
86e30155c8 update doc 2022-07-19 11:18:29 +08:00
Justin Lin
97860fdf67 update doc 2022-07-19 10:18:26 +08:00
Justin Lin
c93d1ae897 add fibonacci_lattice2 2022-07-19 10:05:36 +08:00
Justin Lin
0a5d64d999 rename 2022-07-17 11:01:10 +08:00
Justin Lin
8eba081532 add storage_box 2022-07-17 10:38:06 +08:00
Justin Lin
bcee313c0e refactor 2022-07-14 12:12:58 +08:00
Justin Lin
4b7133252f add tetrapod_doll 2022-07-14 10:05:21 +08:00
Justin Lin
7a6712d1b1 format 2022-07-14 08:37:18 +08:00
Justin Lin
32995370d0 refactor foot 2022-07-11 09:14:58 +08:00
Justin Lin
65b434878d scale fin 2022-07-10 18:27:00 +08:00
Justin Lin
22b14f7923 fix foot error 2022-07-10 18:09:26 +08:00
Justin Lin
e4f3522143 clean up 2022-07-10 17:55:50 +08:00
Justin Lin
d1f595dbf1 clean up 2022-07-10 16:31:55 +08:00
Justin Lin
28278e814a add treble_clef_dragon 2022-07-10 16:12:20 +08:00
Justin Lin
fbe58944e8 remove scale 2022-07-10 15:06:48 +08:00
Justin Lin
dd63a9574e update docs 2022-07-10 11:52:01 +08:00
Justin Lin
0c1e2049e2 start accept a list of points 2022-07-10 11:50:51 +08:00
Justin Lin
7f3da91174 fix var error 2022-07-10 11:50:41 +08:00
Justin Lin
c63d5c0d47 start accept a list of points 2022-07-10 11:39:57 +08:00
Justin Lin
160d2e67ac refactor 2022-07-03 10:37:23 +08:00
Justin Lin
a6e74ca978 update docs 2022-07-02 17:38:55 +08:00
Justin Lin
e39a7311f3 add comments 2022-07-02 17:33:50 +08:00
Justin Lin
f2f7438257 update note 2022-07-02 17:32:56 +08:00
Justin Lin
e436e09923 update doc 2022-07-02 17:32:19 +08:00
Justin Lin
10b99289c6 add docs 2022-07-02 17:32:01 +08:00
Justin Lin
2fab2309fe random start 2022-07-02 17:05:17 +08:00
Justin Lin
0d19380f74 start default to start 2022-07-02 17:03:43 +08:00
Justin Lin
b384817b98 rand startr 2022-07-02 17:03:14 +08:00
Justin Lin
e66aeccd33 update doc 2022-07-02 16:50:28 +08:00
Justin Lin
6df0170d81 start default to undef 2022-07-02 16:46:14 +08:00
Justin Lin
c551e96352 update note 2022-06-30 16:10:11 +08:00
Justin Lin
b0c521f8c1 rename 2022-06-30 16:09:33 +08:00
Justin Lin
0e8b676c09 add pp_poisson3 2022-06-30 16:08:15 +08:00
Justin Lin
183b3b74b6 add seed param 2022-06-30 10:54:22 +08:00
Justin Lin
964e6b5020 add pp_poisson 2022-06-29 16:55:28 +08:00
Justin Lin
c71143c113 add stereographic_foliage_scroll 2022-06-24 09:22:39 +08:00
Justin Lin
5772dcbc55 move 2022-06-24 09:03:42 +08:00
Justin Lin
243c3eb659 return spiral r 2022-06-24 08:52:38 +08:00
Justin Lin
623878b75e refactor 2022-06-24 08:35:01 +08:00
Justin Lin
b613b87536 refactor 2022-06-24 08:29:37 +08:00
Justin Lin
90b4c830be refactor 2022-06-24 08:24:56 +08:00
Justin Lin
f1fd2797a4 add foliage_scroll 2022-06-23 18:36:25 +08:00
Justin Lin
938507d02d move to pp 2022-06-19 11:47:54 +08:00
Justin Lin
2651a23524 conditional end_i 2022-06-19 09:38:00 +08:00
Justin Lin
ad4b54984b update test 2022-06-19 09:19:39 +08:00
Justin Lin
31e7ca6275 remove the extra section 2022-06-19 09:07:15 +08:00
Justin Lin
6a30eb0e76 move feet 2022-06-17 11:50:01 +08:00
Justin Lin
464fcc5f8f modify head 2022-06-16 11:13:55 +08:00
Justin Lin
669e7c4b1d remove shear 2022-06-16 08:13:10 +08:00
Justin Lin
ac4288d5f4 modify dorsal fin 2022-06-15 23:28:59 +08:00
Justin Lin
a169468da6 modify horn 2022-06-15 17:45:39 +08:00
Justin Lin
91b56e3a5a update doc 2022-06-14 09:00:48 +08:00
Justin Lin
273f83bd27 update readme 2022-06-14 08:56:43 +08:00
Justin Lin
45050f31cd del semicolon of use/include 2022-06-06 13:11:46 +08:00
Justin Lin
fd666676d6 rename 2022-06-06 11:51:23 +08:00
Justin Lin
5330981a19 del one_spiral param 2022-06-06 10:49:19 +08:00
Justin Lin
6bfe94ce1c add type, one_spiral params 2022-06-05 21:01:58 +08:00
Justin Lin
9333145a6d add start_n param 2022-06-05 20:56:32 +08:00
Justin Lin
0fc6e05d8f add golden_spiral_jigsaw 2022-06-05 19:01:46 +08:00
Justin Lin
98ae52b828 add star bunny 2022-06-04 21:14:56 +08:00
Justin Lin
dae4ee49cc add star_bunny 2022-06-04 21:14:43 +08:00
Justin Lin
5cde164bb5 support 3D triangles 2022-06-04 15:51:58 +08:00
Justin Lin
7356046aa7 add triangle/tri_subdivide 2022-06-04 14:53:35 +08:00
Justin Lin
8ce4b435c6 update README 2022-06-03 21:03:39 +08:00
Justin Lin
1ee48d6f13 update README 2022-06-03 21:02:55 +08:00
Justin Lin
cdd5452618 refactor out pack_one 2022-06-03 19:51:37 +08:00
Justin Lin
95f69374e4 rename param 2022-06-03 19:12:01 +08:00
Justin Lin
832174831f remove unused modules 2022-06-03 13:50:25 +08:00
Justin Lin
cf5d70c1ef add forest 2022-06-03 12:46:54 +08:00
Justin Lin
0c4c338046 move 2022-06-03 12:46:41 +08:00
Justin Lin
cdb403ae8e refactor 2022-06-03 10:41:34 +08:00
Justin Lin
3046b8eacd rename 2022-06-03 10:40:00 +08:00
Justin Lin
8371943c25 remove density param 2022-06-03 10:37:45 +08:00
Justin Lin
e0b32b96b7 refactor out a tri_circle_packing 2022-06-02 14:12:14 +08:00
Justin Lin
1b3ff91046 refactor 2022-06-02 12:30:58 +08:00
Justin Lin
c3025ea51c add circle_packing3 2022-05-31 16:11:35 +08:00
Justin Lin
e4661c74eb refactor 2022-05-31 16:11:28 +08:00
Justin Lin
5cd9b7e7a0 rename 2022-05-31 16:07:10 +08:00
Justin Lin
89790d50ae add circle_packing2 2022-05-31 15:50:45 +08:00
Justin Lin
6affac09a7 add tri_subdivide 2022-05-31 15:50:25 +08:00
Justin Lin
b80ea25688 use circle_packing 2022-05-31 14:36:23 +08:00
Justin Lin
8c3a7d7f7a add circle_packing 2022-05-31 14:27:18 +08:00
Justin Lin
e2ec67b67d block it 2022-05-30 17:39:42 +08:00
Justin Lin
8c88932588 add mandelbrot_set 2022-05-30 12:57:42 +08:00
Justin Lin
c7ea5b384b optimization 2022-05-29 16:19:59 +08:00
Justin Lin
a46e75c672 optimization 2022-05-29 15:57:48 +08:00
Justin Lin
fb001c8752 change value 2022-05-29 12:11:39 +08:00
Justin Lin
0c534e6133 add filled param 2022-05-29 12:10:35 +08:00
Justin Lin
4d611bb0b5 filled 2022-05-29 12:09:50 +08:00
Justin Lin
f1d5d6e472 use norm 2022-05-29 11:28:48 +08:00
Justin Lin
12e6ad672d add differential_line_growth_bowl 2022-05-28 15:59:17 +08:00
Justin Lin
e71ee91b90 clean code 2022-05-28 11:44:06 +08:00
Justin Lin
27701333c7 support 3D line 2022-05-28 11:40:29 +08:00
Justin Lin
238c2ede27 shorten allSep 2022-05-27 17:22:51 +08:00
Justin Lin
1fb449fdf6 refactor and add smooth params 2022-05-27 09:10:35 +08:00
Justin Lin
bce7487a96 add differential_line_growth 2022-05-26 18:19:56 +08:00
Justin Lin
27536f28f6 add count 2022-05-25 09:32:36 +08:00
Justin Lin
9ce272b434 fix typo 2022-05-25 09:06:18 +08:00
Justin Lin
1c04072738 update note 2022-05-21 14:16:53 +08:00
Justin Lin
9996fe9fad update README 2022-05-21 14:12:03 +08:00
Justin Lin
b8ccb792af update README 2022-05-21 14:10:58 +08:00
Justin Lin
d9bbdce328 update README 2022-05-21 14:09:07 +08:00
Justin Lin
cc8522dd05 add docs 2022-05-21 14:02:04 +08:00
Justin Lin
5a39846101 add Deprecated/Preview 2022-05-21 12:17:55 +08:00
Justin Lin
795ac56f50 draw OBTUSE & ACUTE 2022-05-20 10:17:23 +08:00
Justin Lin
6fa4fe0ea9 refactor 2022-05-20 10:05:41 +08:00
Justin Lin
d5dd12ffcd refactor 2022-05-20 09:54:04 +08:00
Justin Lin
bcc10201b3 refactor 2022-05-20 09:37:06 +08:00
Justin Lin
a3b8fc41b5 refactor 2022-05-20 08:40:06 +08:00
Justin Lin
e5d38e2d6f add penrose3_crystallization 2022-05-19 15:50:54 +08:00
Justin Lin
c2ce9d8b8a ship 3.2.2 2022-05-16 20:53:04 +08:00
Justin Lin
6f00785d6c use unit_vector 2022-05-16 17:06:16 +08:00
Justin Lin
be53dd21c1 add unit_vector 2022-05-16 13:12:31 +08:00
Justin Lin
1006fa6624 clean () 2022-05-16 09:11:33 +08:00
Justin Lin
766d01801e use vt mult 2022-05-16 09:11:26 +08:00
Justin Lin
6c1a1502dd use vt mult 2022-05-16 09:08:31 +08:00
Justin Lin
6d83e02312 remove if(m <= n) 2022-05-16 09:05:31 +08:00
Justin Lin
d0ec3a2b37 refactor 2022-05-16 09:03:52 +08:00
Justin Lin
6338019c29 < leng is not necessary 2022-05-16 09:00:57 +08:00
Justin Lin
c051817624 reuse vts 2022-05-16 08:37:57 +08:00
Justin Lin
12898673a8 reuse vts 2022-05-16 08:37:18 +08:00
Justin Lin
0d685a7280 just use min 2022-05-16 07:52:38 +08:00
Justin Lin
cb171262e7 refactor dir table 2022-05-16 07:41:51 +08:00
Justin Lin
5a63fe41f7 refactor 2022-05-15 20:48:46 +08:00
Justin Lin
7c22b6ceca use c-style for 2022-05-15 20:42:10 +08:00
Justin Lin
fb84664183 use each 2022-05-15 20:31:00 +08:00
Justin Lin
db1ff5822d refactor: re-cond 2022-05-15 20:21:17 +08:00
Justin Lin
6d7276b48a change dir_table 2022-05-15 16:30:51 +08:00
Justin Lin
a45434fa6e optimization 2022-05-15 16:11:21 +08:00
Justin Lin
4d9319d8ca re-org var 2022-05-15 14:42:33 +08:00
Justin Lin
c678589c15 use for comp 2022-05-15 14:33:30 +08:00
Justin Lin
cf32517302 re-org var 2022-05-15 10:20:20 +08:00
Justin Lin
ee9b198036 re-org var 2022-05-15 10:17:52 +08:00
Justin Lin
63aab80116 re-org vars 2022-05-15 10:11:16 +08:00
Justin Lin
22dfa7da2d use foreach 2022-05-15 10:04:35 +08:00
Justin Lin
fcf97a77e1 don't call ptf_xxx_twist when 0 2022-05-15 09:53:58 +08:00
Justin Lin
762c8b6859 compare to [0, 0] 2022-05-15 09:42:53 +08:00
Justin Lin
9e74b763e6 add decimal 2022-05-15 09:40:25 +08:00
Justin Lin
e2bf9f36b0 rename 2022-05-15 09:38:50 +08:00
Justin Lin
9b2bf9e19b rename 2022-05-14 21:03:46 +08:00
Justin Lin
d330331494 optimization 2022-05-14 21:02:48 +08:00
Justin Lin
bcaf7fe67c optimization 2022-05-14 20:57:30 +08:00
Justin Lin
3519f834e6 optimization 2022-05-14 20:49:48 +08:00
Justin Lin
eb1cdc29a0 use search 2022-05-14 18:15:22 +08:00
Justin Lin
e336cc14e4 clean code 2022-05-14 17:47:48 +08:00
Justin Lin
56b0a371b3 clean code 2022-05-14 17:46:51 +08:00
Justin Lin
87f3fcb105 clean code 2022-05-14 17:46:29 +08:00
Justin Lin
0fd3841ecc optimization 2022-05-14 17:20:53 +08:00
Justin Lin
eb901f5bba optimization 2022-05-14 17:19:02 +08:00
Justin Lin
3f504c0034 get tri from conn_indices_tris 2022-05-14 14:55:31 +08:00
Justin Lin
cbb8268456 get face frim cnn_indices_faces 2022-05-14 14:51:44 +08:00
Justin Lin
91b4b19ef3 refactor 2022-05-14 12:06:56 +08:00
Justin Lin
df4b2c702d optimization 2022-05-14 12:00:26 +08:00
Justin Lin
7d25a25a69 optimization 2022-05-14 11:56:53 +08:00
Justin Lin
04a78738e9 fix module missing 2022-05-14 11:37:29 +08:00
Justin Lin
c14b970bee optimization 2022-05-13 21:50:59 +08:00
Justin Lin
d978128f8f optimization 2022-05-13 21:45:00 +08:00
Justin Lin
db376e5290 rename 2022-05-13 13:13:01 +08:00
Justin Lin
ef361c5d22 optimization 2022-05-13 09:42:35 +08:00
Justin Lin
663c43f70e refactor 2022-05-13 08:59:54 +08:00
Justin Lin
038429ede7 refactor 2022-05-13 08:03:52 +08:00
Justin Lin
7b301bdc74 add tests 2022-05-13 07:58:14 +08:00
Justin Lin
b4c5c16451 refactor 2022-05-12 16:37:02 +08:00
Justin Lin
b2e9775e7f refactor 2022-05-12 13:01:18 +08:00
Justin Lin
705aa35e3e refactor 2022-05-12 08:19:02 +08:00
Justin Lin
4fad71c352 don't turn them into 3D 2022-05-12 08:10:36 +08:00
Justin Lin
f2e437fdd4 refactor 2022-05-11 10:51:41 +08:00
Justin Lin
8250c9ff32 refactor 2022-05-11 10:33:45 +08:00
Justin Lin
a88edea05a refactor 2022-05-11 10:31:04 +08:00
Justin Lin
e5daf6d060 refactor: reuse ry_matrix 2022-05-11 10:24:29 +08:00
Justin Lin
999e0196c0 remove modules 2022-05-11 10:24:21 +08:00
Justin Lin
e3fd9908d3 reuse rot matrix 2022-05-11 10:15:45 +08:00
Justin Lin
fc5965267f refactor: reuse matrix 2022-05-11 10:11:25 +08:00
Justin Lin
dce855611c add lo, hi params 2022-05-11 09:25:40 +08:00
Justin Lin
de97253d92 refactor: use max 2022-05-10 16:40:33 +08:00
Justin Lin
cf61ba06c2 use m_rotation 2022-05-10 10:50:14 +08:00
Justin Lin
412672b00c add binary_search 2022-05-10 09:08:34 +08:00
Justin Lin
b891640014 refactor 2022-05-10 06:59:36 +08:00
Justin Lin
997857b596 return [0, 0, 0] when [0, 0, 0] 2022-05-09 18:13:34 +08:00
Justin Lin
8a9011422a return [0, 0] if [0, 0] 2022-05-09 16:20:48 +08:00
Justin Lin
969595b4c8 remove module 2022-05-09 16:16:11 +08:00
Justin Lin
68db8eeb6c add quarter param 2022-05-09 15:42:24 +08:00
Justin Lin
e932cdaa0f add rock_horn 2022-05-09 13:37:01 +08:00
Justin Lin
a4c0d0be65 rename 2022-05-08 20:51:37 +08:00
Justin Lin
dbb10e1a1b refactor 2022-05-08 17:54:31 +08:00
Justin Lin
f3b7a8f101 only forward makes a line 2022-05-08 17:51:26 +08:00
Justin Lin
0b7bce54c3 remove slice 2022-05-08 17:24:47 +08:00
Justin Lin
3f40ae40dc refactor 2022-05-08 17:20:42 +08:00
Justin Lin
f0652c39f7 refactor 2022-05-08 17:00:09 +08:00
Justin Lin
eecfa85018 refactor 2022-05-08 16:14:35 +08:00
Justin Lin
05c55ff1bb refactor 2022-05-08 16:10:37 +08:00
Justin Lin
6549c22938 refactor: rename 2022-05-08 16:01:06 +08:00
Justin Lin
1428dc8307 refactor 2022-05-08 15:48:00 +08:00
Justin Lin
07170ed1f0 refactor: move funcs into comm 2022-05-08 11:27:34 +08:00
Justin Lin
bd34a907c2 refactor: don't each 2022-05-08 11:00:59 +08:00
Justin Lin
cd84c11213 add seed param 2022-05-08 10:38:30 +08:00
Justin Lin
01e8bce16b fix name error 2022-05-08 10:37:25 +08:00
Justin Lin
822891f53e fix name error 2022-05-08 10:25:43 +08:00
Justin Lin
61a0ccc069 refactor 2022-05-08 10:20:26 +08:00
Justin Lin
74411f32c3 refactor 2022-05-08 10:19:09 +08:00
Justin Lin
b37508dd94 avoid p1 == p2 2022-05-08 10:00:59 +08:00
Justin Lin
fca63e677f format 2022-05-07 18:08:02 +08:00
Justin Lin
8fb260b595 refactor 2022-05-07 18:07:25 +08:00
Justin Lin
0fae2d5dce refactor 2022-05-07 17:50:44 +08:00
Justin Lin
8bcdb263d3 refactor 2022-05-07 17:20:59 +08:00
Justin Lin
c513d0753c refactor 2022-05-07 17:02:11 +08:00
Justin Lin
6b353cb7a5 refactor 2022-05-07 16:47:44 +08:00
Justin Lin
916f833107 refactor 2022-05-07 16:41:00 +08:00
Justin Lin
871bee3d50 refactor: it's r 2022-05-07 16:28:35 +08:00
Justin Lin
ac262336fb refactor: use for 2022-05-07 16:24:00 +08:00
Justin Lin
62ef13a8bd refactor 2022-05-07 14:01:10 +08:00
Justin Lin
7bf7c17b36 use assert 2022-05-07 13:59:46 +08:00
Justin Lin
98a5a64293 fix det error 2022-05-07 13:57:48 +08:00
Justin Lin
03287724ff refactor 2022-05-07 13:57:11 +08:00
Justin Lin
015c2ba7ce refactor 2022-05-07 13:47:35 +08:00
Justin Lin
7f2e67b1b5 refactor 2022-05-07 13:41:46 +08:00
Justin Lin
5f3802951f refactor 2022-05-07 13:37:11 +08:00
Justin Lin
2ffb27095e update doc 2022-05-07 12:26:22 +08:00
Justin Lin
c5ac23200b use m_transpose 2022-05-07 12:20:16 +08:00
Justin Lin
6106f1fc56 use relative path 2022-05-07 12:09:26 +08:00
Justin Lin
358aea023a fix space error 2022-05-07 09:37:37 +08:00
Justin Lin
a2d9e02eea clean code 2022-05-07 09:22:25 +08:00
Justin Lin
07c661b025 max, min can apply on points 2022-05-07 09:21:44 +08:00
Justin Lin
593715cf23 refactor 2022-05-06 22:57:11 +08:00
Justin Lin
c4b4a00909 optimization 2022-05-06 19:58:20 +08:00
Justin Lin
42fa6df7cc refactor 2022-05-06 19:39:15 +08:00
Justin Lin
193f38d531 fix period missing 2022-05-06 18:37:43 +08:00
Justin Lin
590d8ab7c3 optimization 2022-05-06 17:54:26 +08:00
Justin Lin
8c483f6c8b use param 2022-05-06 14:55:45 +08:00
Justin Lin
c142e8b6e8 add ripple_sphere 2022-05-06 14:08:51 +08:00
Justin Lin
e55a4a6108 fix random seed error 2022-05-06 09:45:07 +08:00
Justin Lin
5da7a66fac refactor 2022-05-05 21:33:00 +08:00
Justin Lin
582d7642eb refactor 2022-05-05 21:28:14 +08:00
Justin Lin
748719d639 refactor 2022-05-05 21:23:03 +08:00
Justin Lin
ba4c8e36a4 refactor 2022-05-05 21:18:32 +08:00
Justin Lin
c7c59f58b5 abs is not required 2022-05-05 20:42:18 +08:00
Justin Lin
0ae64dcf6a optimization 2022-05-05 16:07:20 +08:00
Justin Lin
3fd7fd60d9 optimization 2022-05-05 15:54:08 +08:00
Justin Lin
88801575e8 refactor 2022-05-05 13:22:49 +08:00
Justin Lin
e863770245 refactor 2022-05-05 13:19:03 +08:00
Justin Lin
108e2cc0ea refactor 2022-05-05 13:16:56 +08:00
Justin Lin
420738c25b refactor 2022-05-05 13:14:27 +08:00
Justin Lin
b08afa8798 refactor 2022-05-05 13:12:41 +08:00
Justin Lin
65a19f5f42 optimization 2022-05-05 12:05:17 +08:00
Justin Lin
e714fb0bc3 refactor 2022-05-05 10:30:07 +08:00
Justin Lin
a4bb82698a refactor 2022-05-05 09:29:03 +08:00
Justin Lin
cb03a1437b add test 2022-05-05 08:41:27 +08:00
Justin Lin
659988abe2 use cross 2022-05-05 08:31:46 +08:00
Justin Lin
252bc5738e fix name 2022-05-05 08:28:41 +08:00
Justin Lin
f306c22306 add test 2022-05-05 08:27:28 +08:00
Justin Lin
e25fbf6690 add test 2022-05-05 08:18:35 +08:00
Justin Lin
7bdb470285 rename 2022-05-05 08:12:32 +08:00
Justin Lin
2f274c299b refactor 2022-05-05 06:29:12 +08:00
Justin Lin
0414c440a3 rename 2022-05-04 21:15:52 +08:00
Justin Lin
1ef1b46a93 refactor 2022-05-04 21:12:04 +08:00
Justin Lin
4e406b19cf refactor 2022-05-04 21:04:38 +08:00
Justin Lin
6e4efe2e9f refactor 2022-05-04 20:55:52 +08:00
Justin Lin
50a658c20a should be remain > 1 2022-05-04 15:17:29 +08:00
Justin Lin
86865c6861 refactor 2022-05-04 15:05:21 +08:00
Justin Lin
bc6288f5d2 refactor 2022-05-04 15:00:09 +08:00
Justin Lin
61fef89bfd fix join-miter error 2022-05-04 10:17:34 +08:00
Justin Lin
ccf77872ed refactor 2022-05-04 09:15:25 +08:00
Justin Lin
a53c15bafe refactor: loop once 2022-05-04 09:10:48 +08:00
Justin Lin
b739142514 refactor: del unnecessary param 2022-05-04 08:29:16 +08:00
Justin Lin
bd69e673b1 refactor 2022-05-04 08:10:03 +08:00
Justin Lin
794730402b refactor 2022-05-04 07:49:56 +08:00
Justin Lin
d92586e839 refactor: pass i 2022-05-04 07:49:48 +08:00
Justin Lin
444fde9cc0 refactor: use lookup 2022-05-04 07:15:15 +08:00
Justin Lin
3ea9715bc4 all counter-clockwise? 2022-05-03 19:31:01 +08:00
Justin Lin
2ba17bacf7 refactor 2022-05-03 18:41:09 +08:00
Justin Lin
4276c31b97 refactor 2022-05-03 18:15:27 +08:00
Justin Lin
7792030765 refactor 2022-05-03 17:24:28 +08:00
Justin Lin
5e289d6442 refactor 2022-05-03 16:49:47 +08:00
Justin Lin
b7bc803849 tail recursion 2022-05-03 16:49:01 +08:00
Justin Lin
c97b5a9ed0 refactor 2022-05-03 16:37:28 +08:00
Justin Lin
1a27de190f refactor 2022-05-03 16:32:50 +08:00
Justin Lin
bf13db43eb don't repeat calc angleyz_pts01 2022-05-03 10:12:54 +08:00
Justin Lin
060e695a1a update comment 2022-05-03 10:05:18 +08:00
Justin Lin
ec3ed59e6f refactor: rot_m from a,v directly 2022-05-03 10:03:46 +08:00
Justin Lin
8f4370be7a refactor: sh_pts for matrix multi 2022-05-03 09:56:23 +08:00
Justin Lin
af6903992b remove # 2022-05-03 09:49:28 +08:00
Justin Lin
19b4434c83 fix scale error 2022-05-03 09:47:03 +08:00
Justin Lin
29105549ae fix scale missing 2022-05-03 09:31:42 +08:00
Justin Lin
f8a5752dd2 refactor 2022-05-03 09:27:23 +08:00
Justin Lin
6046591497 refactor 2022-05-03 09:06:49 +08:00
Justin Lin
37974e6255 refactor 2022-05-03 07:13:30 +08:00
Justin Lin
327c15865b refactor 2022-05-02 16:39:35 +08:00
Justin Lin
060b0b421c refactor 2022-05-02 16:30:31 +08:00
Justin Lin
c69f63e5d3 refactor 2022-05-02 16:29:14 +08:00
Justin Lin
6024d22d45 refactor 2022-05-02 16:27:02 +08:00
Justin Lin
de00c9d2aa add convexity 2022-05-02 14:55:19 +08:00
Justin Lin
a341c1f855 remove # 2022-05-02 14:48:58 +08:00
Justin Lin
1c2fe403cb refactor: simplify formula 2022-05-02 14:48:13 +08:00
Justin Lin
7ff012f360 refactor formula 2022-05-02 13:47:26 +08:00
Justin Lin
8d324469f8 refactor: don't mod 256 2022-05-02 10:34:49 +08:00
Justin Lin
cf01d9626a optimization: use native rands 2022-05-02 10:32:07 +08:00
Justin Lin
f791eccf25 optimization 2022-05-02 09:05:07 +08:00
Justin Lin
99ee4e4e74 optimization 2022-05-02 07:58:50 +08:00
Justin Lin
19b2526483 optimization 2022-05-01 20:32:19 +08:00
Justin Lin
2c7db9d85c half_sort is enough 2022-05-01 18:11:34 +08:00
Justin Lin
fd4785bbaa refactor 2022-05-01 17:43:27 +08:00
Justin Lin
3481ca7b22 refactor 2022-05-01 17:17:01 +08:00
Justin Lin
c547ab4ec6 remove module 2022-05-01 17:00:51 +08:00
Justin Lin
2d38e55630 refactor 2022-05-01 16:57:37 +08:00
Justin Lin
9aa6bbb5ca refactor 2022-05-01 16:55:53 +08:00
Justin Lin
920b09ed07 refactor: loop onice 2022-05-01 16:34:56 +08:00
Justin Lin
5ccfbf4bbb move to maze 2022-05-01 16:22:52 +08:00
Justin Lin
7f4c25b9e3 refactor: re-orgnize formula 2022-05-01 16:19:40 +08:00
Justin Lin
e16a869a3f refactor: use sorted 2022-05-01 15:54:27 +08:00
Justin Lin
d2d3c1e707 refactor 2022-04-30 17:33:36 +08:00
Justin Lin
63110174f4 add reverse param 2022-04-29 23:19:25 +08:00
Justin Lin
c9213aaead contains can handle undef 2022-04-29 21:20:42 +08:00
Justin Lin
b68d053332 optimization 2022-04-29 21:17:05 +08:00
Justin Lin
bff5b022a7 optimization 2022-04-29 20:39:39 +08:00
Justin Lin
2f9afc38c4 norm is ok 2022-04-29 18:05:03 +08:00
Justin Lin
22c71d8946 refactor 2022-04-29 14:12:35 +08:00
Justin Lin
671aac9d55 refactor 2022-04-29 11:06:35 +08:00
Justin Lin
65b375995a refactor: sort by key 2022-04-29 10:59:27 +08:00
Justin Lin
e4709ab049 support key param 2022-04-29 10:59:17 +08:00
Justin Lin
77f74c36ec optimization 2022-04-29 09:12:10 +08:00
Justin Lin
309098dfcc refactor 2022-04-29 08:52:52 +08:00
Justin Lin
4fe19bf552 refactor: use _face_normal 2022-04-29 08:20:56 +08:00
Justin Lin
05443666c3 based on vertex normal 2022-04-28 10:08:39 +08:00
Justin Lin
4510f43cc0 refactor 2022-04-28 09:41:53 +08:00
Justin Lin
ae8e72a7f4 reverse is not required 2022-04-28 09:38:28 +08:00
Justin Lin
1ea86206bb use for comp 2022-04-28 09:33:02 +08:00
Justin Lin
aff15eae5e because [each undef] is [] 2022-04-28 09:08:22 +08:00
Justin Lin
d06455082e refactor: use contains/reverse 2022-04-28 09:02:17 +08:00
Justin Lin
b621da6e42 refactor 2022-04-27 18:05:03 +08:00
Justin Lin
87596567a1 refactor 2022-04-25 17:25:37 +08:00
Justin Lin
7be7badbe0 refactor 2022-04-24 20:50:10 +08:00
Justin Lin
c4d9674a0e change param 2022-04-24 18:48:54 +08:00
Justin Lin
4f43260f44 refactor 2022-04-24 17:10:37 +08:00
Justin Lin
68827f41cf refactor: acos 2022-04-24 16:46:22 +08:00
Justin Lin
a8dd6c1af8 refactor 2022-04-23 17:19:33 +08:00
Justin Lin
712ca010a1 refafctor: use cross 2022-04-23 17:08:21 +08:00
Justin Lin
bd0ee73350 refactor 2022-04-23 16:29:50 +08:00
Justin Lin
1cfd8d5b11 include _pt2_hash.scad 2022-04-23 16:25:59 +08:00
Justin Lin
5b6ec4271d refactor: use coord directly 2022-04-23 12:17:31 +08:00
Justin Lin
4d0c83ddc8 refafctor: search in notCollapsedCoords 2022-04-23 12:13:48 +08:00
Justin Lin
79f8495090 collapsing method by leng is enough 2022-04-22 08:40:03 +08:00
Justin Lin
a67873d22c just check len(nbr_tiles) == 1 2022-04-21 22:20:51 +08:00
Justin Lin
274d70a85b only doDir when nbr in notCollaspedCoords 2022-04-21 21:28:42 +08:00
Justin Lin
cb6cb51405 refactor: use contains 2022-04-21 21:05:26 +08:00
Justin Lin
b6f23978ce del unnecessary param 2022-04-21 21:01:14 +08:00
Justin Lin
f84f7d77f9 optimization 2022-04-21 09:06:31 +08:00
Justin Lin
9401aeb510 refactor: vt operation 2022-04-21 08:25:32 +08:00
Justin Lin
74b1715e97 refactor: vt operation 2022-04-21 07:48:07 +08:00
Justin Lin
a5887d3daa update comment 2022-04-20 23:02:02 +08:00
Justin Lin
d5fa8807e0 add polygon_abuse 2022-04-20 23:00:58 +08:00
Justin Lin
65280744b3 cal to i == 2 is enough 2022-04-20 22:57:05 +08:00
Justin Lin
526f6dac97 optimization 2022-04-20 20:31:44 +08:00
Justin Lin
1f0513b7ff refactor: p 2022-04-20 18:39:58 +08:00
Justin Lin
fd18bdd959 refactor: use m_replace 2022-04-20 18:38:07 +08:00
Justin Lin
61a1d3d2b1 refactor: include 1st class hash function 2022-04-20 07:51:19 +08:00
Justin Lin
7c998619b1 refactor: use constant name 2022-04-19 16:08:48 +08:00
Justin Lin
1e2d5f5d39 refactor: extract constants 2022-04-19 16:06:33 +08:00
Justin Lin
68f73a808a optimization 2022-04-19 13:33:34 +08:00
Justin Lin
ca6394bb19 refactor: del tilemap 2022-04-19 13:26:26 +08:00
Justin Lin
fa65d0687b optimization 2022-04-19 13:22:26 +08:00
Justin Lin
ac0e57f91b fix sample nbrs error 2022-04-19 11:05:51 +08:00
Justin Lin
68e7b5d517 optimization 2022-04-19 09:58:28 +08:00
Justin Lin
8342deaa56 refactor: sort first 2022-04-19 08:38:55 +08:00
Justin Lin
639737a207 refactor: extact dir cond 2022-04-18 22:37:26 +08:00
Justin Lin
2ffef05abb refactor 2022-04-18 22:32:41 +08:00
Justin Lin
96432c8525 refactor 2022-04-18 22:22:21 +08:00
Justin Lin
a0e465a635 refactor: del var 2022-04-18 18:28:25 +08:00
Justin Lin
4031fee5bb refactor: vt multi 2022-04-18 16:57:08 +08:00
Justin Lin
f62079f334 refactor: we don't need acos 2022-04-18 16:47:51 +08:00
Justin Lin
ed1027f9de refactor: is_undef(combine) 2022-04-18 16:35:40 +08:00
Justin Lin
493645bc7e refactor: use list comprehension 2022-04-18 16:32:06 +08:00
Justin Lin
3dc5a9fea2 update doc 2022-04-18 16:15:24 +08:00
Justin Lin
892aa245da format 2022-04-18 10:38:49 +08:00
Justin Lin
62849b5374 avoid floating error 2022-04-18 10:36:57 +08:00
Justin Lin
31fa1869c2 avoid floating error 2022-04-18 10:33:59 +08:00
Justin Lin
5e1f247679 fix typo 2022-04-17 20:44:52 +08:00
Justin Lin
9fabbecd7c fix wrong variable 2022-04-17 20:43:23 +08:00
Justin Lin
884e42478d format 2022-04-17 20:40:12 +08:00
Justin Lin
93704a6fd9 fix wrong variable 2022-04-17 20:40:04 +08:00
Justin Lin
c31804a29d refactor 2022-04-17 20:35:21 +08:00
Justin Lin
7bcf5d8f27 refactor: don't use each 2022-04-17 20:04:38 +08:00
Justin Lin
92190fbb21 rename 2022-04-17 19:53:21 +08:00
Justin Lin
eb96b767d4 refactor: loop once 2022-04-17 12:12:40 +08:00
Justin Lin
a9591e8df5 refactor: loop once 2022-04-17 12:09:39 +08:00
Justin Lin
d7872a467a refactor: less is more 2022-04-17 12:02:18 +08:00
Justin Lin
202e9dd17e refactor: use m_replace 2022-04-17 11:45:20 +08:00
Justin Lin
598f75dba8 refactor: use m_replace 2022-04-17 11:34:10 +08:00
Justin Lin
b982fdf331 refactor: use if/else 2022-04-17 11:34:03 +08:00
Justin Lin
261168ee7e refactor: use m_replace 2022-04-17 10:44:47 +08:00
Justin Lin
6f880aa794 add m_replace 2022-04-17 10:44:38 +08:00
Justin Lin
d3e1cfea97 refactor: each 2022-04-17 10:35:22 +08:00
Justin Lin
3e2d95e387 refactor: use each 2022-04-16 22:07:27 +08:00
Justin Lin
0524d5bc11 refactor: format cond 2022-04-16 21:57:33 +08:00
Justin Lin
97a7f38969 refactor: optimization 2022-04-16 21:45:40 +08:00
Justin Lin
dc6d5f8065 refactor: format 2022-04-16 17:42:44 +08:00
Justin Lin
1628c56f0d refactor: format 2022-04-16 17:39:50 +08:00
Justin Lin
b16da34c86 refactor: format 2022-04-16 17:36:59 +08:00
Justin Lin
4875aeeb98 refactor: format 2022-04-16 17:30:30 +08:00
Justin Lin
869e645bbd refactor: reverse 2022-04-16 17:25:16 +08:00
Justin Lin
ada3588fb4 refactor: clean code 2022-04-16 17:18:02 +08:00
Justin Lin
64515eec03 refactor: merge pts2 cond 2022-04-16 17:08:27 +08:00
Justin Lin
a56f451b26 update test 2022-04-16 17:07:49 +08:00
Justin Lin
276405c478 refactor: use each 2022-04-16 16:47:03 +08:00
Justin Lin
5ddc184e8b refactor: use radians, degrees 2022-04-16 16:42:23 +08:00
Justin Lin
d69e08c506 refactor: extract sgn 2022-04-16 16:11:50 +08:00
Justin Lin
449e7b520b refactor: reverse 2022-04-16 15:59:17 +08:00
Justin Lin
a8f9499093 refactor: sqrt 2022-04-16 14:24:27 +08:00
Justin Lin
8a0ea31c78 refactor 2022-04-16 14:16:02 +08:00
Justin Lin
9ea8812d0f add test 2022-04-16 14:16:00 +08:00
Justin Lin
17969d9a7a refactor: del code 2022-04-16 14:05:30 +08:00
Justin Lin
1da331441a refactor: vector multi 2022-04-16 13:50:29 +08:00
Justin Lin
07343e9e37 refactor 2022-04-16 12:59:58 +08:00
Justin Lin
6c78b0e090 del echo 2022-04-16 12:37:33 +08:00
Justin Lin
2c7442a76a refactor: use util/lerp.scad 2022-04-16 12:05:07 +08:00
Justin Lin
8dff911ab0 refactor 2022-04-16 11:53:11 +08:00
Justin Lin
b024c6084f refactor: avoid atan2 2022-04-16 11:34:21 +08:00
Justin Lin
3ba4b3fdec refactor: cosa, sina 2022-04-16 11:25:41 +08:00
Justin Lin
d432557fb2 refactor: sum vt 2022-04-15 21:26:31 +08:00
Justin Lin
39864c5e1a refactor: return uv 2022-04-15 20:53:36 +08:00
Justin Lin
c70d99213d refactor: don't loop uv every gen 2022-04-15 19:40:15 +08:00
Justin Lin
2227f8b95e refactor: reuse uy_ly rx_lx 2022-04-15 19:00:33 +08:00
Justin Lin
802bc6f8eb add maze_vase 2022-04-15 15:36:46 +08:00
Justin Lin
b20cd082f1 add case 2022-04-15 10:19:30 +08:00
Justin Lin
3ee549e89e use contains 2022-04-15 10:04:02 +08:00
Justin Lin
89a6cc2137 update doc 2022-04-15 09:56:57 +08:00
Justin Lin
5d26af0f31 refactor: use contains 2022-04-15 09:50:25 +08:00
Justin Lin
178e3372c6 update note 2022-04-15 09:46:00 +08:00
Justin Lin
fd34e9d5b9 refactor: use contains 2022-04-15 09:44:05 +08:00
Justin Lin
3ad74ff561 add contains 2022-04-15 09:43:23 +08:00
Justin Lin
4fb59ebcdb rollback 2022-04-15 09:42:07 +08:00
Justin Lin
8cd1638a61 always search 2022-04-15 09:38:07 +08:00
Justin Lin
9599d5434c refactor: we don't need sort 2022-04-15 09:31:51 +08:00
Justin Lin
ed4d8efb55 refactor: use sorted 2022-04-15 09:21:36 +08:00
Justin Lin
89b5602026 refactor: use sorted 2022-04-15 08:59:17 +08:00
Justin Lin
a6a2b9d3f5 refactor: use hashset 2022-04-15 08:51:52 +08:00
Justin Lin
4c3dca538d add test 2022-04-15 08:12:48 +08:00
Justin Lin
35cf05dd42 add sorted 2022-04-15 08:07:38 +08:00
Justin Lin
bde84c004c refactor: use hashset 2022-04-14 21:22:45 +08:00
Justin Lin
38ee4a9c66 refactor: rename var 2022-04-14 21:21:01 +08:00
Justin Lin
695e161724 add test 2022-04-14 21:19:53 +08:00
Justin Lin
5205a31bf2 refactor: use hashset 2022-04-14 21:14:12 +08:00
Justin Lin
ad5c2a984a refactor: check bucket [] 2022-04-14 21:03:08 +08:00
Justin Lin
9bb9dd4260 refactor: check bucket [] 2022-04-14 21:02:55 +08:00
Justin Lin
8e042ae635 add test 2022-04-14 21:01:09 +08:00
Justin Lin
64df730e47 add test 2022-04-14 20:14:37 +08:00
Justin Lin
eccf2e2bd9 add test 2022-04-14 18:10:20 +08:00
Justin Lin
17c9118494 refactor: use sort 2022-04-14 18:03:34 +08:00
Justin Lin
1838104e4b refactor: vector can be compared 2022-04-14 18:01:23 +08:00
Justin Lin
67745a8edf refactor: use sort 2022-04-14 17:58:08 +08:00
Justin Lin
00a0bf9749 format 2022-04-14 16:01:39 +08:00
Justin Lin
42f4c7eafd refactor 2022-04-14 15:57:56 +08:00
Justin Lin
6250cce455 refactor: vector addition 2022-04-14 10:47:18 +08:00
Justin Lin
2b58eb7528 del 2022-04-14 10:36:13 +08:00
Justin Lin
d6b2e40d8d refactor: provide closed shape 2022-04-14 10:36:01 +08:00
Justin Lin
f2e81bf3c3 refactor: del pts 2022-04-14 10:19:22 +08:00
Justin Lin
2400ad550b add test 2022-04-14 10:05:11 +08:00
Justin Lin
e3c5d035aa refactor: vector minus 2022-04-14 09:52:22 +08:00
Justin Lin
963bcab381 add test 2022-04-14 09:52:12 +08:00
Justin Lin
4215efe4fa update doc 2022-04-14 07:51:45 +08:00
Justin Lin
7039e9e379 refactor: use leap, vector mult 2022-04-13 20:59:14 +08:00
Justin Lin
a6cdb1c2c8 refactor: remove var 2022-04-13 10:09:11 +08:00
Justin Lin
220db1a3a4 refactor: var is not necessary 2022-04-13 10:07:52 +08:00
Justin Lin
5e8a053e0d refactor: inner _learp 2022-04-13 09:23:38 +08:00
Justin Lin
83242cb5fd refactor: based on vector addition 2022-04-13 09:23:24 +08:00
Justin Lin
3f6211d8a6 add test 2022-04-13 09:10:25 +08:00
Justin Lin
9b3eee5993 refactor 2022-04-13 08:26:10 +08:00
Justin Lin
06f144d38b refactor: we don't really need angle 2022-04-12 20:26:41 +08:00
Justin Lin
7b3f27358b refactor: we don't really need angle 2022-04-12 19:37:15 +08:00
Justin Lin
6548996334 refactor: readability is 1st 2022-04-12 15:59:20 +08:00
Justin Lin
21a822e989 combination of quick sort and insertion sort 2022-04-12 14:46:42 +08:00
Justin Lin
4f09162c28 refactor: extract a _sort function 2022-04-12 14:35:29 +08:00
Justin Lin
db0d381ceb refactor: vector minus 2022-04-12 09:40:48 +08:00
Justin Lin
903caed63c refactor: use norm 2022-04-12 09:33:54 +08:00
Justin Lin
2a29844a3f get weights when first_collasped_propagated 2022-04-11 18:24:23 +08:00
Justin Lin
8a8e55d54f refactor: sort and get elem 2022-04-11 17:13:27 +08:00
Justin Lin
ad760d1f4a refactor: use cross 2022-04-11 11:31:14 +08:00
Justin Lin
71f2156d3e refactor: check eq in _hashset 2022-04-11 11:11:02 +08:00
Justin Lin
233ae4b50a refactor: extract a template 2022-04-11 11:08:12 +08:00
Justin Lin
a63bbb47fd refactor: check eq in f_eq 2022-04-11 11:05:13 +08:00
Justin Lin
9141a4db4b refactor: check eq in _dedup 2022-04-11 10:46:09 +08:00
Justin Lin
949a48a74f refactor: del default value 2022-04-11 07:39:23 +08:00
Justin Lin
fe079986dc fix missing dir 2022-04-10 20:24:25 +08:00
Justin Lin
7c6268c54c refactor: check dirs directly 2022-04-10 20:17:35 +08:00
Justin Lin
dfdfda681d refactor: check four dirs directly 2022-04-10 20:10:07 +08:00
Justin Lin
55c61ffb74 refactor: 1st dir is always visitable 2022-04-10 18:59:20 +08:00
Justin Lin
b6d86a4faf refactor: 1st dir is always visitable 2022-04-10 18:54:32 +08:00
Justin Lin
29fc7ca2ad rename 2022-04-10 14:40:01 +08:00
Justin Lin
402cbb268d add 3dmaze_mickey 2022-04-10 11:08:05 +08:00
Justin Lin
c59025b432 refactor: extract draw_3dmaze 2022-04-10 11:07:59 +08:00
Justin Lin
f5e24e2239 add test 2022-04-09 19:21:51 +08:00
Justin Lin
a99456225f fix order 2022-04-09 19:14:22 +08:00
Justin Lin
12a7c918f1 refactor: tail recursion 2022-04-09 19:04:18 +08:00
Justin Lin
7af202f5e5 refactor: don't repeat it 2022-04-09 18:54:01 +08:00
Justin Lin
410c4153f4 refacto: swap when leng == 2 2022-04-09 18:48:35 +08:00
Justin Lin
18e0ecceae refactor: tail recursion/sort 2022-04-09 18:42:14 +08:00
Justin Lin
267f5ce301 it's cross 2022-04-09 18:24:43 +08:00
Justin Lin
fd404de056 refactor: sort by cross 2022-04-09 18:22:11 +08:00
Justin Lin
544c6e6d46 refactor: sort by cross 2022-04-09 17:39:21 +08:00
Justin Lin
73067c7557 use x, y attrs 2022-04-09 17:07:50 +08:00
Justin Lin
98280924c1 format 2022-04-08 15:39:04 +08:00
Justin Lin
a72185fdf8 rename 2022-04-08 13:02:12 +08:00
Justin Lin
71f5735439 rename 2022-04-08 13:01:55 +08:00
Justin Lin
cb4eb6f5df add maze3d_sphere 2022-04-08 11:35:29 +08:00
Justin Lin
672db85bf5 fix missing argument 2022-04-08 11:31:52 +08:00
Justin Lin
d5381e0047 update comment 2022-04-08 11:19:05 +08:00
Justin Lin
dc62e32b67 refactor: del variable 2022-04-08 11:02:02 +08:00
Justin Lin
3bb2111e2f ship 3.2.1 2022-04-06 17:50:07 +08:00
Justin Lin
d0474ed757 update doc 2022-04-06 17:44:11 +08:00
Justin Lin
adf07c5da8 format 2022-04-06 17:02:32 +08:00
Justin Lin
0b23e5666a Szudzik function 2022-04-06 15:56:28 +08:00
Justin Lin
f5c4320d5e Szudzik's function 2022-04-06 15:40:41 +08:00
Justin Lin
eeaa9b3b2f Horner's method 2022-04-06 14:27:57 +08:00
Justin Lin
029ddc4150 format 2022-04-06 12:11:38 +08:00
Justin Lin
c810e30003 refactor: rows, columns is not necessary 2022-04-05 22:44:44 +08:00
Justin Lin
1225d4bf47 rename 2022-04-05 22:42:38 +08:00
Justin Lin
aec1ec38d1 add maze_city_taiwan 2022-04-05 18:30:02 +08:00
Justin Lin
b9e77be7e7 move 2022-04-05 18:10:12 +08:00
Justin Lin
0468ecae77 format 2022-04-05 18:08:40 +08:00
Justin Lin
57ec3f46ef del 2022-04-05 11:52:37 +08:00
Justin Lin
84301af250 use rands_sphere 2022-04-05 11:52:35 +08:00
Justin Lin
617139d720 update note 2022-04-05 11:45:36 +08:00
Justin Lin
3d7c2c6f85 move 2022-04-05 11:44:16 +08:00
Justin Lin
21d5638e94 add rands_sphere, rands_disk 2022-04-05 11:40:16 +08:00
Justin Lin
25b61d8ded return [] if no intersection 2022-04-05 11:37:43 +08:00
Justin Lin
6d4f7661ec update example 2022-04-04 21:38:36 +08:00
Justin Lin
c981127471 remove sort 2022-04-04 21:38:07 +08:00
Justin Lin
7c40e28e64 det == 0 is never error 2022-04-04 21:27:11 +08:00
Justin Lin
38ce75b708 reverse if necessary 2022-04-04 21:00:06 +08:00
Justin Lin
d2a936a5a3 don't sort 2022-04-04 20:47:48 +08:00
Justin Lin
c3425143c3 refactor/format 2022-04-04 18:58:32 +08:00
Justin Lin
556fd1ed28 update doc 2022-04-04 16:39:28 +08:00
Justin Lin
7421fa97c4 update doc 2022-04-04 16:37:37 +08:00
Justin Lin
d90b0c20fc update doc 2022-04-04 16:31:44 +08:00
Justin Lin
438e9cfd93 refactor: extract lines 2022-04-04 15:35:21 +08:00
Justin Lin
f76fd33054 format 2022-04-04 14:36:41 +08:00
Justin Lin
820cf7de83 format 2022-04-04 10:58:08 +08:00
Justin Lin
a3b9e42098 use vector sub 2022-04-04 10:57:55 +08:00
Justin Lin
b3289dd55b use vector substractiokn 2022-04-04 10:55:36 +08:00
Justin Lin
659654f533 update doc 2022-04-04 10:41:56 +08:00
Justin Lin
770adea91f fix doc error 2022-04-04 10:40:58 +08:00
Justin Lin
dcacb8a267 refactor: extract dist cond 2022-04-03 14:30:25 +08:00
Justin Lin
047731d7d6 refactor: extract dist cond 2022-04-03 14:22:59 +08:00
Justin Lin
8ce96f9128 format 2022-04-03 14:16:17 +08:00
Justin Lin
fb4a626707 format 2022-04-03 13:08:42 +08:00
Justin Lin
336648434c format 2022-04-03 11:58:46 +08:00
Justin Lin
b8e52677b3 refactor: cal px, py directly 2022-04-01 22:15:24 +08:00
Justin Lin
4e0078f25c change params 2022-04-01 17:11:29 +08:00
Justin Lin
356966b8f6 format 2022-04-01 13:58:01 +08:00
Justin Lin
bb9c630e20 format 2022-04-01 13:50:17 +08:00
Justin Lin
98f9d8ea57 format 2022-04-01 13:44:49 +08:00
Justin Lin
197c542c5e del echo 2022-04-01 13:40:39 +08:00
Justin Lin
e900aefcce merge scale 2022-04-01 13:38:50 +08:00
Justin Lin
2a461a62b0 merge z 2022-04-01 13:34:43 +08:00
Justin Lin
2601d8425c format 2022-04-01 13:32:26 +08:00
Justin Lin
a0d07ea78f fix module name 2022-04-01 13:30:15 +08:00
Justin Lin
3a4b1224e6 refactor: use each 2022-04-01 13:27:56 +08:00
Justin Lin
48315257b1 format 2022-04-01 13:25:32 +08:00
Justin Lin
62e129614f refactor: when leng 2, swap if necessary 2022-04-01 12:52:57 +08:00
Justin Lin
1fb61fc3ec refactor: use built-in search 2022-04-01 09:52:32 +08:00
Justin Lin
7889c5608f refactor: use search if eq undef 2022-04-01 09:07:41 +08:00
Justin Lin
d16d419463 roll back 2022-04-01 08:56:40 +08:00
Justin Lin
d4c4a78d98 fix param name error 2022-04-01 08:18:14 +08:00
Justin Lin
fafd073840 find_index: test support elem 2022-04-01 08:15:45 +08:00
Justin Lin
f8f91df05a add comment 2022-03-31 20:25:52 +08:00
Justin Lin
896e0bbd2e support $fn 2022-03-31 20:24:52 +08:00
Justin Lin
d4fc1279dd fix type error 2022-03-31 16:51:02 +08:00
Justin Lin
8715bcc927 add maze3d 2022-03-31 10:20:29 +08:00
Justin Lin
3a5cd29732 refactor: built-in search 2022-03-31 08:21:34 +08:00
Justin Lin
d5d809c70d refactor: built-in search 2022-03-31 07:44:05 +08:00
Justin Lin
aa082712df format 2022-03-30 21:44:37 +08:00
Justin Lin
da03b782ed refactor: merge for 2022-03-30 21:44:14 +08:00
Justin Lin
280332fb8f refactor: use norm 2022-03-30 21:40:58 +08:00
Justin Lin
aa0c8e1cd7 refactor: use dv 2022-03-30 21:34:01 +08:00
Justin Lin
0af33f4008 use m_transpose 2022-03-30 21:29:40 +08:00
Justin Lin
a65a8e60cb fix syntax error 2022-03-30 21:28:58 +08:00
Justin Lin
950e929edb refactor: the same as m_transpose 2022-03-30 21:24:23 +08:00
Justin Lin
032db93442 fix missing variable 2022-03-30 21:22:51 +08:00
Justin Lin
0e3a4d4ccd refactor: reuse p 2022-03-30 21:15:21 +08:00
Justin Lin
379b0c3614 refactor: use slice 2022-03-30 21:11:59 +08:00
Justin Lin
76afd424e3 refactor: use find_index 2022-03-30 20:50:36 +08:00
Justin Lin
1188fe9bcc format 2022-03-30 17:26:55 +08:00
Justin Lin
8e5255fdc9 refactor: naming value 2022-03-30 17:02:17 +08:00
Justin Lin
9f189e1124 refactor: format 2022-03-30 16:58:54 +08:00
Justin Lin
22ec55cfac refactor: look_at or not 2022-03-30 14:37:00 +08:00
Justin Lin
ba5b184d16 format 2022-03-30 09:39:11 +08:00
Justin Lin
3e1044787f add convexity 2022-03-30 09:36:02 +08:00
Justin Lin
96c9cfc0c4 fix rotation bug 2022-03-30 09:17:27 +08:00
Justin Lin
af87c89ecc refactor: start from unit sphere 2022-03-28 17:11:52 +08:00
Justin Lin
1c893c3fc7 update note 2022-03-28 17:00:14 +08:00
Justin Lin
0430baeaa9 refactor: start from unit sphere 2022-03-28 16:58:14 +08:00
Justin Lin
cd2b3bf379 redefine period 2022-03-28 16:45:58 +08:00
Justin Lin
91dff32e23 update doc 2022-03-28 15:39:58 +08:00
Justin Lin
da2ba88798 add mz_cube 2022-03-28 11:39:55 +08:00
Justin Lin
aa60b6f570 change seed 2022-03-28 10:08:49 +08:00
Justin Lin
c1d191dc97 update note 2022-03-27 12:24:54 +08:00
Justin Lin
9f3ecd0b3c refactor: use new maze functions/modules 2022-03-27 12:24:34 +08:00
Justin Lin
15478290e1 rename 2022-03-27 12:13:28 +08:00
Justin Lin
4c68946b3f refactor: use mz_square 2022-03-27 12:04:53 +08:00
Justin Lin
a1a306995f refactor: two dim cells 2022-03-27 11:59:00 +08:00
Justin Lin
53ac475bbf add mz_theta 2022-03-27 11:52:23 +08:00
Justin Lin
5f329649b6 refactor: two dim cells 2022-03-27 11:51:36 +08:00
Justin Lin
1072876ac7 refactor: two dim cells 2022-03-27 11:49:03 +08:00
Justin Lin
a5408736e5 refactor: two dim maze 2022-03-27 11:39:52 +08:00
Justin Lin
f34bfe1d90 refactor: clean code 2022-03-27 11:36:09 +08:00
Justin Lin
3f7478710f add mz_square 2022-03-27 11:34:18 +08:00
Justin Lin
5595170b09 update comment 2022-03-26 16:36:00 +08:00
Justin Lin
fdf879dbae refactor: reuse dir_vs 2022-03-25 15:53:20 +08:00
Justin Lin
a4e8194938 refactor: del search 2022-03-25 15:21:40 +08:00
Justin Lin
193ff6f531 refactor 2022-03-25 15:21:09 +08:00
Justin Lin
6fac123aee refactor 2022-03-25 11:32:55 +08:00
Justin Lin
d2f961494b refactor: built-in sign 2022-03-25 10:39:52 +08:00
Justin Lin
cadbdc826d refactor 2022-03-25 10:37:18 +08:00
Justin Lin
73c3e2d54c refactor 2022-03-25 10:33:25 +08:00
Justin Lin
6292c8989a refactor: conditional value 2022-03-24 22:30:12 +08:00
Justin Lin
438e7752ac refactor: border params are flexible 2022-03-24 14:23:46 +08:00
Justin Lin
6247979899 refactor: check border automatically 2022-03-24 14:11:18 +08:00
Justin Lin
bebf3bfc53 refactor: accept cells 2022-03-24 14:01:05 +08:00
Justin Lin
00680fe1fc wrapping default to false 2022-03-24 09:37:55 +08:00
Justin Lin
3f8fc98145 support wrapping 2022-03-24 09:37:35 +08:00
Justin Lin
8326dcc38f refactor 2022-03-23 21:00:42 +08:00
Justin Lin
5d39610f11 refactor: use % 2022-03-23 20:46:14 +08:00
Justin Lin
19f5f66697 refactor: use % 2022-03-23 20:37:57 +08:00
Justin Lin
535d64a562 refactor: clean dep 2022-03-23 20:27:14 +08:00
Justin Lin
66c0b70417 refactor: use tf matrix 2022-03-23 17:53:42 +08:00
Justin Lin
6a9da8be00 refactor: vector addition 2022-03-22 15:15:02 +08:00
Justin Lin
5dd6d0abd5 refactor 2022-03-22 15:12:28 +08:00
Justin Lin
f38d7a784b refactor: use rands directly 2022-03-22 15:11:22 +08:00
Justin Lin
cded66d2c4 refactor: 9-nearest-neighbor 2022-03-22 15:06:47 +08:00
Justin Lin
6229ab6d8c refactor: 9-nearest-neighbor 2022-03-22 15:04:38 +08:00
Justin Lin
d2a9b4be93 refactor: search is faster 2022-03-22 07:59:54 +08:00
Justin Lin
d38c3b91fc refactor: search is faster 2022-03-21 20:28:19 +08:00
Justin Lin
62da7cebdc refactor: find min directly 2022-03-21 18:44:20 +08:00
Justin Lin
07ee15da1c refactor 2022-03-21 17:43:16 +08:00
Justin Lin
d609292ad2 refactor: rename 2022-03-21 15:39:14 +08:00
Justin Lin
cf1d5deaa9 refactor: rename 2022-03-21 15:34:44 +08:00
Justin Lin
71815a2cdc reuse calculated weights 2022-03-21 15:26:28 +08:00
Justin Lin
7e66869bca refactor: rename 2022-03-21 14:59:05 +08:00
Justin Lin
a9b40f133b refactor: no undef 2022-03-21 14:55:38 +08:00
Justin Lin
a0d4d732a7 rename 2022-03-21 13:42:30 +08:00
Justin Lin
7c613930d5 rename 2022-03-21 13:39:43 +08:00
Justin Lin
b939634f8b refactor: process wf directly 2022-03-21 13:36:35 +08:00
Justin Lin
f3b3029d01 refactor: return coord directly 2022-03-21 11:37:02 +08:00
Justin Lin
fdc8e2f29a update featured img 2022-03-21 10:25:47 +08:00
Justin Lin
d9bc2e29ea rename 2022-03-21 09:49:16 +08:00
Justin Lin
b67f4bf200 avoid path loop 2022-03-21 09:23:03 +08:00
Justin Lin
5825205a4f del i = 0 2022-03-21 09:20:26 +08:00
Justin Lin
5b85e635d2 use len(not_collapsed_coords) == 0 to stop 2022-03-21 09:06:14 +08:00
Justin Lin
cb0a4bed9f check from notCollaspedCoords 2022-03-20 22:10:04 +08:00
Justin Lin
7926667772 find notCollaspedCoords from notCollaspedCoords 2022-03-20 21:59:05 +08:00
Justin Lin
bb4700ba66 random start collasped_propagated 2022-03-20 21:43:50 +08:00
Justin Lin
11b39945df refactor: cache rx 2022-03-20 18:46:08 +08:00
Justin Lin
03563afb6f refactor: clean variables 2022-03-20 18:10:43 +08:00
Justin Lin
6f13757cbc refactor: replace states directly 2022-03-20 18:03:18 +08:00
Justin Lin
27190008bf refactor: replaced by compatible_nbr_tiles 2022-03-20 17:55:23 +08:00
Justin Lin
6f9660a67d refactor: just test threshold < state_weight[1] 2022-03-20 12:47:24 +08:00
Justin Lin
f0bc7e5dc2 refactor: tail recursion 2022-03-20 12:18:38 +08:00
Justin Lin
8c57db2e06 refactor 2022-03-19 23:31:02 +08:00
Justin Lin
05abb19126 default wall_thickness 1.6 2022-03-19 14:59:34 +08:00
Justin Lin
ad064532e5 always with bottom 2022-03-19 14:47:10 +08:00
Justin Lin
0ed3e296ea diff levels 2022-03-19 14:23:53 +08:00
Justin Lin
8158938c13 rename 2022-03-19 11:15:01 +08:00
Justin Lin
af521dd53f add with_bottom 2022-03-19 11:11:29 +08:00
Justin Lin
8b77eba322 add linear_extrude(wall_thickness) 2022-03-19 10:40:43 +08:00
Justin Lin
bc96e0ebd5 add maze_tai_chi 2022-03-19 10:39:53 +08:00
Justin Lin
679b0d0fc2 fix end condition 2022-03-18 19:31:48 +08:00
Justin Lin
39c1c1a9db avoid recursion limit 2022-03-18 18:22:31 +08:00
Justin Lin
f97366ccdf refactor 2022-03-18 16:19:27 +08:00
Justin Lin
3d24874d6d refactor 2022-03-18 15:54:58 +08:00
Justin Lin
7d1cbb9460 refactor 2022-03-18 14:34:27 +08:00
Justin Lin
2cd56758eb refactor 2022-03-18 13:08:33 +08:00
Justin Lin
120b7ea2c7 update note 2022-03-18 12:02:02 +08:00
Justin Lin
e9dd4418d1 refactor 2022-03-18 12:01:42 +08:00
Justin Lin
5c547351db don't care the last one 2022-03-18 09:24:42 +08:00
Justin Lin
7744b4e79c avoid repeating computation 2022-03-18 09:20:44 +08:00
Justin Lin
18991671f8 add count 2022-03-18 08:07:46 +08:00
Justin Lin
2a7c38915b count path leng 2022-03-18 07:11:00 +08:00
Justin Lin
a7ab17c149 refactor 2022-03-17 21:05:29 +08:00
Justin Lin
1d1479b531 sorting is not necessary 2022-03-17 20:26:06 +08:00
Justin Lin
1184258336 update note 2022-03-17 18:07:06 +08:00
Justin Lin
da5cd8a250 performanced improved 2022-03-17 18:04:20 +08:00
Justin Lin
3e110a045b format 2022-03-17 17:03:20 +08:00
Justin Lin
637dcf0840 refactor 2022-03-17 16:39:12 +08:00
Justin Lin
4a5c576630 refactor 2022-03-17 16:28:04 +08:00
Justin Lin
4b24c81eeb support mask 2022-03-17 16:21:46 +08:00
Justin Lin
06a785bfb1 support init_cells param 2022-03-17 16:21:31 +08:00
Justin Lin
22fdb8c2e5 update doc 2022-03-17 08:51:26 +08:00
Justin Lin
045acaa3ac update doc 2022-03-17 08:45:26 +08:00
Justin Lin
d7a6bb35ac refactor 2022-03-16 13:36:59 +08:00
Justin Lin
43d338eaaf performance improved 2022-03-16 11:46:04 +08:00
Justin Lin
1723ba3abe refactor 2022-03-16 09:46:31 +08:00
Justin Lin
2dc729d860 refactor 2022-03-16 09:35:01 +08:00
Justin Lin
68b13fc330 refactor 2022-03-16 09:22:17 +08:00
Justin Lin
f9274fa745 update note 2022-03-16 09:16:15 +08:00
Justin Lin
3dc36af58b add mz_hexwalls 2022-03-16 09:15:45 +08:00
Justin Lin
c8efde6258 fix rc error 2022-03-16 09:15:36 +08:00
Justin Lin
deb875b147 fix rc error 2022-03-16 09:15:25 +08:00
Justin Lin
9a1ac9a363 fix idx error 2022-03-16 09:15:04 +08:00
Justin Lin
0280293192 add mz_squarewalls 2022-03-16 08:25:01 +08:00
Justin Lin
aa70a75fa2 refactor 2022-03-16 08:13:29 +08:00
Justin Lin
6459cc582e refactor 2022-03-16 08:03:00 +08:00
Justin Lin
a93739474b refactor 2022-03-16 07:59:41 +08:00
Justin Lin
cb0e361671 refactor 2022-03-15 21:45:11 +08:00
Justin Lin
f5e403bbf0 refactor 2022-03-15 20:49:29 +08:00
Justin Lin
65116cbc78 refactor 2022-03-15 20:43:21 +08:00
Justin Lin
ac9368e74d update doc 2022-03-15 20:39:34 +08:00
Justin Lin
61ca95d3a1 update doc 2022-03-15 20:36:52 +08:00
Justin Lin
b5063e12bf refactor 2022-03-15 18:35:18 +08:00
Justin Lin
3357bd4e84 support mask 2022-03-15 18:02:55 +08:00
Justin Lin
2e135ef9ae update note 2022-03-15 13:43:31 +08:00
Justin Lin
9585c3a75a move 2022-03-15 13:42:50 +08:00
Justin Lin
3eed784234 add helix_lampshade 2022-03-15 07:54:03 +08:00
Justin Lin
d2ad4ff388 update example 2022-03-14 17:12:04 +08:00
Justin Lin
7cfc2f21dd update note 2022-03-14 08:42:09 +08:00
Justin Lin
d6f7219eb6 refactor 2022-03-14 08:41:24 +08:00
Justin Lin
8b90e319b3 fix cond 2022-03-12 23:01:37 +08:00
Justin Lin
1a99069057 refactor 2022-03-12 22:39:46 +08:00
Justin Lin
b89a800022 refactor 2022-03-12 22:30:10 +08:00
Justin Lin
951ed2daf2 refactor 2022-03-12 22:28:38 +08:00
Justin Lin
e048056057 refactor 2022-03-12 22:14:04 +08:00
Justin Lin
2f7aea6147 refactor 2022-03-12 22:08:36 +08:00
Justin Lin
57914a8245 refactor 2022-03-12 18:31:09 +08:00
Justin Lin
987bc3be5b refactor 2022-03-12 18:24:00 +08:00
Justin Lin
3cb77f3a7a refactor 2022-03-12 17:52:05 +08:00
Justin Lin
ed01eebf16 refactor 2022-03-12 16:30:01 +08:00
Justin Lin
6df459370e remove sum 2022-03-12 16:25:14 +08:00
Justin Lin
14b15a2b1c refactor 2022-03-12 16:25:05 +08:00
Justin Lin
4eb10d2b73 refactor 2022-03-12 16:23:02 +08:00
Justin Lin
b9d3cc8530 refactor 2022-03-12 16:22:55 +08:00
Justin Lin
d2b61f1c60 refactor 2022-03-12 16:22:45 +08:00
Justin Lin
ccb16cc4f7 refactor 2022-03-12 16:22:38 +08:00
Justin Lin
95edbbee76 refactor 2022-03-12 11:48:03 +08:00
Justin Lin
79f9a76087 refactor 2022-03-12 11:35:18 +08:00
Justin Lin
e5aff6782d refactor 2022-03-12 09:37:57 +08:00
Justin Lin
52b5a26006 refactor 2022-03-12 09:19:46 +08:00
Justin Lin
da4342441f refactor 2022-03-12 08:37:38 +08:00
Justin Lin
c76766f5b4 refactor 2022-03-11 23:01:34 +08:00
Justin Lin
8a528e2e2b refactor 2022-03-11 22:18:26 +08:00
Justin Lin
37b4855793 refactor 2022-03-11 21:10:47 +08:00
Justin Lin
d60b35dd0d refactor 2022-03-11 21:08:40 +08:00
Justin Lin
78f6acdabf update test 2022-03-11 21:03:57 +08:00
Justin Lin
84e5fb4c7b add test 2022-03-11 20:54:49 +08:00
Justin Lin
b07b1b1f3d refactor 2022-03-11 15:36:56 +08:00
Justin Lin
a38fd21f43 refactor 2022-03-11 15:31:25 +08:00
Justin Lin
32f44ec9c1 refactor 2022-03-11 15:29:15 +08:00
Justin Lin
ffbb7c5db4 add test 2022-03-11 15:29:11 +08:00
Justin Lin
21c00b52d3 refactor 2022-03-11 15:19:44 +08:00
Justin Lin
88a970b2ba add test 2022-03-11 15:10:51 +08:00
Justin Lin
fbca4bd868 refactor 2022-03-11 15:08:49 +08:00
Justin Lin
5f400c124d refactor 2022-03-11 12:07:31 +08:00
Justin Lin
2b3fc8f80e refactor 2022-03-11 08:56:42 +08:00
Justin Lin
62f6c4caa5 refactor 2022-03-11 08:24:24 +08:00
Justin Lin
0ce5d6e1da refactor 2022-03-10 21:57:21 +08:00
Justin Lin
63ddbd3104 refactor 2022-03-10 21:41:06 +08:00
Justin Lin
2b2d4dbefa refactor 2022-03-10 20:43:24 +08:00
Justin Lin
642242b204 refactor 2022-03-10 20:40:10 +08:00
Justin Lin
920509c3f1 add test 2022-03-10 20:40:06 +08:00
Justin Lin
5b04d11ac8 refactor 2022-03-10 20:27:14 +08:00
Justin Lin
fa63d1eec6 refactor 2022-03-10 20:25:27 +08:00
Justin Lin
9def71f194 add tests 2022-03-10 20:24:06 +08:00
Justin Lin
58f26d8e0f refactor 2022-03-10 20:24:01 +08:00
Justin Lin
20242f5d51 refactor 2022-03-10 20:19:57 +08:00
Justin Lin
84c5ea2d91 refactor 2022-03-10 20:18:32 +08:00
Justin Lin
2f3bf9c309 add test 2022-03-10 20:18:13 +08:00
Justin Lin
8f6c8f340a refactor 2022-03-10 20:16:40 +08:00
Justin Lin
e36fd9bd46 refactor 2022-03-10 20:14:13 +08:00
Justin Lin
2687844621 add test 2022-03-10 20:13:12 +08:00
Justin Lin
7ab33ba03c del 2022-03-10 20:13:06 +08:00
Justin Lin
738ca61cab update docs 2022-03-09 10:32:44 +08:00
Justin Lin
dd76edf17f move 2022-03-08 09:33:41 +08:00
Justin Lin
ff89443ff2 update doc 2022-03-08 09:33:35 +08:00
Justin Lin
adf3ea365f refactor 2022-03-07 15:04:57 +08:00
Justin Lin
762d16b2a4 refactor 2022-03-07 11:24:06 +08:00
Justin Lin
118e1191dd refactor 2022-03-07 10:48:56 +08:00
Justin Lin
90006a6b20 refactor 2022-03-07 10:17:38 +08:00
Justin Lin
d9a93b401e refactor 2022-03-06 22:50:47 +08:00
Justin Lin
dbc918cfe1 refactor 2022-03-06 17:23:58 +08:00
Justin Lin
0a41e6bcc1 refactor 2022-03-06 17:18:11 +08:00
Justin Lin
5b37c7ad86 refactor 2022-03-06 16:24:37 +08:00
Justin Lin
dff52fd168 Merge pull request #27 from FranDias/patch-1
umber -> number in readme
2022-03-06 08:53:22 +08:00
Francisco Dias
fef3a55965 umber -> number in readme 2022-03-05 19:22:23 -05:00
Justin Lin
0ca2eb4e93 refactor 2022-03-05 11:46:03 +08:00
Justin Lin
ff8f754dcc refactor 2022-03-05 11:20:53 +08:00
Justin Lin
f16de19a00 refactor 2022-03-05 11:11:34 +08:00
Justin Lin
fe71af113f refactor 2022-03-05 11:10:12 +08:00
Justin Lin
ec276b274f refactor 2022-03-05 10:47:24 +08:00
Justin Lin
a8e903ccb7 refactor 2022-03-04 21:01:23 +08:00
Justin Lin
b89c2d90d3 return first when leng is 1 2022-03-04 19:52:16 +08:00
Justin Lin
2771e2cd31 performance improved 2022-03-04 19:44:08 +08:00
Justin Lin
ccbcac6a10 refactor 2022-03-04 18:05:25 +08:00
Justin Lin
d9c890d8c3 refactor 2022-03-04 15:58:33 +08:00
Justin Lin
18ecbcee93 refactor 2022-03-04 13:40:29 +08:00
Justin Lin
dff91873b3 refactor 2022-03-04 13:24:44 +08:00
Justin Lin
c7897c47c0 refactor 2022-03-04 09:37:48 +08:00
Justin Lin
26592f72cd fix Issue #26 2022-03-04 08:32:22 +08:00
Justin Lin
b0f8f5c4f4 refactor 2022-03-03 23:08:24 +08:00
Justin Lin
96ec1e0c26 refactor 2022-03-01 15:52:17 +08:00
Justin Lin
8475049fad refactor 2022-03-01 13:06:27 +08:00
Justin Lin
1d7d45e3ed refactor 2022-03-01 10:02:42 +08:00
Justin Lin
17fcdbb92e refactor 2022-03-01 09:56:45 +08:00
Justin Lin
14ad6b4090 refactor 2022-03-01 09:54:48 +08:00
Justin Lin
769023f639 update test 2022-03-01 09:24:14 +08:00
Justin Lin
fc7c8ae32f refactor 2022-03-01 09:07:15 +08:00
Justin Lin
716f48c450 update test 2022-03-01 09:04:42 +08:00
Justin Lin
943d7bffca refactor 2022-03-01 09:01:28 +08:00
Justin Lin
cb7c28d01a refactor 2022-03-01 08:48:01 +08:00
Justin Lin
e04381bdea use [each lt, v] to replace concat(lt, [v]) 2022-02-28 11:22:58 +08:00
Justin Lin
9a143a9f72 refactor 2022-02-28 11:07:35 +08:00
Justin Lin
8f76446bd8 use [each lt, v] to replace concat(lt, [v]) 2022-02-28 11:05:50 +08:00
Justin Lin
c9370160a7 use [each lt, v] to replace concat(lt, [v]) 2022-02-28 10:52:47 +08:00
Justin Lin
57f800f1fc use [each lt, v] to replace concat(lt, [v]) 2022-02-27 22:32:57 +08:00
Justin Lin
8dc6336f2f use [each lt, v] to replace concat(lt, [v]) 2022-02-27 22:02:51 +08:00
Justin Lin
042feb4951 use [each lt, v] to replace concat(lt, [v]) 2022-02-27 18:53:03 +08:00
Justin Lin
fd9eb1fe4d Merge branch 'master' of https://github.com/JustinSDK/dotSCAD 2022-02-27 18:50:23 +08:00
Justin Lin
7d407d8cda use [each lt, v] to replace concat(lt, [v]) 2022-02-27 18:50:19 +08:00
Justin Lin
97e6e5755e Merge pull request #25 from vaaski/patch-1
fix: readme typo
2022-02-26 08:29:33 +08:00
vaaski
70cdccd280 fix: readme typo 2022-02-25 17:24:53 +01:00
Justin Lin
69bfe3fdfa rename 2022-02-13 18:03:22 +08:00
Justin Lin
74aadcb514 add ruyi 2022-02-13 18:03:11 +08:00
Justin Lin
81ba7db6cc rand top 2022-02-13 16:51:17 +08:00
Justin Lin
0ac32c05b8 formatting 2022-02-13 15:59:24 +08:00
Justin Lin
00861bc751 scale 50 2022-02-13 15:56:11 +08:00
Justin Lin
ca6c2ba7ee add pineapple 2022-02-13 15:48:23 +08:00
Justin Lin
acdf107222 del 2022-02-05 11:23:20 +08:00
Justin Lin
97f2fd8d62 update top 2022-02-03 15:42:12 +08:00
Justin Lin
0835f77aaa update top 2022-02-03 14:23:31 +08:00
Justin Lin
b8d61e7578 add crystal_cluster 2022-02-03 11:47:47 +08:00
Justin Lin
0409c35375 rename 2022-01-26 16:51:44 +08:00
Justin Lin
dd632d5845 add reaction_diffusion 2022-01-24 18:05:37 +08:00
Justin Lin
9320125b42 change params 2022-01-20 17:22:11 +08:00
Justin Lin
7113cce683 add voronoi_melon 2022-01-20 17:06:39 +08:00
Justin Lin
86d0c65108 use rand_pts_sphere 2022-01-19 16:25:53 +08:00
Justin Lin
2cfc99a08c change phi 2022-01-17 20:04:21 +08:00
Justin Lin
6e0c0cfc78 change infinity 2022-01-17 20:03:04 +08:00
Justin Lin
a9938bfcfd add voronoi_sphere 2022-01-17 16:57:18 +08:00
Justin Lin
b3aaecd32c change infinity 2022-01-11 15:44:15 +08:00
Justin Lin
84eeaf913a add vrn_sphere 2022-01-11 11:34:12 +08:00
Justin Lin
1ec50f7b85 add gyroid 2022-01-09 18:48:50 +08:00
Justin Lin
3569617313 update note 2022-01-07 09:09:42 +08:00
Justin Lin
eca8947822 add sf_cylinder 2022-01-07 09:06:42 +08:00
Justin Lin
773dc87be9 add owls 2022-01-04 08:16:02 +08:00
Justin Lin
530faeec35 refactor 2022-01-03 08:07:24 +08:00
Justin Lin
48e986ce14 add detail param 2022-01-02 22:54:25 +08:00
Justin Lin
f3216c2062 df rock 2022-01-02 20:44:30 +08:00
Justin Lin
2942651117 adjust beak 2022-01-02 19:12:05 +08:00
Justin Lin
8d78ec4253 adjust beak 2022-01-02 19:10:45 +08:00
Justin Lin
39fc86e67e add owl 2022-01-02 17:49:03 +08:00
Justin Lin
09125eb667 remove polyline2d 2022-01-02 17:37:04 +08:00
Justin Lin
9ba754162a refactor 2021-12-27 09:20:43 +08:00
Justin Lin
b2e58ac763 refactor 2021-12-27 09:18:47 +08:00
Justin Lin
c917ffee41 refactor 2021-12-27 09:17:48 +08:00
Justin Lin
5270d6c606 add maze_city 2021-12-26 18:50:33 +08:00
Justin Lin
cd4dda3b39 add mz_wang_tiles 2021-12-26 18:50:16 +08:00
Justin Lin
cc15a7df8b add ripple_vase 2021-12-19 17:48:12 +08:00
Justin Lin
a299949c42 add amplitude 2021-12-19 16:00:03 +08:00
Justin Lin
47bdb4b31d refactor 2021-12-19 15:57:26 +08:00
Justin Lin
0fb6f4b9a1 add ripples 2021-12-19 15:52:51 +08:00
Justin Lin
9facafaf61 update gallery img 2021-12-14 21:56:21 +08:00
Justin Lin
cd16a74d08 rotate fin 2021-12-12 11:17:08 +08:00
Justin Lin
496a151005 rename 2021-12-11 09:36:04 +08:00
Justin Lin
2e12d6b79a add tail hair 2021-12-10 16:31:20 +08:00
Justin Lin
d5221e1289 rotate tail 2021-12-10 13:07:59 +08:00
Justin Lin
382d1c60b8 offset mountain 2021-12-10 11:16:07 +08:00
Justin Lin
d3d0517376 adjust 2021-12-10 11:08:41 +08:00
Justin Lin
43a71ead1d add spiral_dragon2 2021-12-10 10:56:44 +08:00
Justin Lin
e5f17508da new mountain 2021-12-10 08:46:02 +08:00
Justin Lin
3ff2961a6d update hair 2021-12-09 22:01:12 +08:00
Justin Lin
819a76d81c update tail 2021-12-09 21:31:49 +08:00
Justin Lin
efdd6c1078 update img 2021-12-09 21:12:52 +08:00
Justin Lin
4029ab4641 add tail hair 2021-12-09 21:12:48 +08:00
Justin Lin
14ca2c48ae update hair 2021-12-09 20:45:37 +08:00
Justin Lin
f8c89b1dab update hair 2021-12-09 20:37:59 +08:00
Justin Lin
2e92394513 format 2021-12-09 17:50:16 +08:00
Justin Lin
bd7d16d6e5 add tail hair 2021-12-09 17:46:45 +08:00
Justin Lin
6d212c8722 thicken road 2021-12-09 10:45:07 +08:00
Justin Lin
1d946647eb ship 3.2 2021-12-09 07:56:05 +08:00
Justin Lin
c5a99c3223 add rubber_duck_debugging 2021-12-05 13:55:41 +08:00
Justin Lin
39e363d59c thin tail 2021-12-04 16:50:36 +08:00
Justin Lin
9478d1ec60 update docs 2021-12-04 12:16:20 +08:00
Justin Lin
134ca1b364 refactor 2021-12-04 11:52:25 +08:00
Justin Lin
e7c38fa876 dot notation indexing 2021-12-04 11:23:04 +08:00
Justin Lin
bd8f755a6c it's y 2021-12-04 11:21:48 +08:00
Justin Lin
91d5c40336 use polyline_join 2021-12-04 10:57:29 +08:00
Justin Lin
5c8c0b8139 update doc 2021-12-04 10:17:13 +08:00
Justin Lin
324693a38f dot notation indexing 2021-12-04 10:16:45 +08:00
Justin Lin
14a6348771 update test 2021-12-04 09:58:07 +08:00
Justin Lin
7d9cb94f22 dot notation indexing 2021-12-04 09:58:00 +08:00
Justin Lin
90a29ceecd dot notation indexing 2021-12-04 08:56:09 +08:00
Justin Lin
e7bfb3c951 update doc 2021-12-03 09:45:52 +08:00
Justin Lin
59eb3a1dc2 update doc 2021-12-03 09:43:24 +08:00
Justin Lin
e49c40e0f0 add polar_zonohedra 2021-12-03 09:30:06 +08:00
Justin Lin
d822688eaf modify jaw 2021-12-02 16:03:55 +08:00
Justin Lin
d25b73dbda update note 2021-12-02 10:48:12 +08:00
Justin Lin
22dce8fee2 add polar_zonohedra 2021-12-02 10:47:32 +08:00
Justin Lin
abd287b29e rename 2021-12-02 10:25:53 +08:00
Justin Lin
a82827e389 pitch 2021-12-01 19:55:03 +08:00
Justin Lin
c6a661e074 add polar_zonohedra 2021-12-01 17:36:44 +08:00
Justin Lin
0490da4b91 add infinity_dragon 2021-11-30 10:36:59 +08:00
Justin Lin
364488970b update length 2021-11-30 09:13:33 +08:00
Justin Lin
4eda143bbb move 2021-11-30 08:23:41 +08:00
Justin Lin
2a87a2221f add lemniscate_2circles 2021-11-29 10:45:25 +08:00
Justin Lin
39cbc9a069 add comment 2021-11-29 10:01:00 +08:00
Justin Lin
55e64dcb53 change a default 2021-11-29 09:56:47 +08:00
Justin Lin
154436382c add lemniscate_curve 2021-11-29 09:49:45 +08:00
Justin Lin
90c6db16d5 union all 2021-11-22 18:02:10 +08:00
Justin Lin
0ec9f0e0e5 update doc 2021-11-22 09:46:34 +08:00
Justin Lin
218830d252 update README 2021-11-22 09:39:21 +08:00
Justin Lin
84f3636bf0 update note 2021-11-22 09:37:14 +08:00
Justin Lin
d9dd44db29 update README 2021-11-22 09:36:37 +08:00
Justin Lin
9577f68d13 deprecated 2021-11-22 09:32:36 +08:00
Justin Lin
7a8c152607 use new modules/functions 2021-11-22 09:31:05 +08:00
Justin Lin
345603551b use shape_star 2021-11-19 16:17:00 +08:00
Justin Lin
610c9588bd use polyline_join 2021-11-18 08:08:50 +08:00
Justin Lin
7b1095d130 update docs 2021-11-17 11:05:38 +08:00
Justin Lin
884892a3f1 use path_scaling_sections 2021-11-14 18:36:23 +08:00
Justin Lin
2600504dd5 add tiled_line_ring 2021-11-14 10:39:13 +08:00
Justin Lin
f27250d285 format 2021-11-13 09:44:22 +08:00
Justin Lin
5016231000 refactor 2021-11-12 09:54:03 +08:00
Justin Lin
402aa95289 update README 2021-11-10 11:27:14 +08:00
Justin Lin
50d11142d5 refine feet 2021-11-09 21:06:36 +08:00
Justin Lin
031438a4df update README 2021-11-09 18:17:41 +08:00
Justin Lin
9063d9da05 add torus_knot_dragon_and_pearl 2021-11-09 18:17:37 +08:00
Justin Lin
3fbee973a9 refactor 2021-11-09 16:57:51 +08:00
Justin Lin
3b5af34041 add doc 2021-11-07 16:01:53 +08:00
Justin Lin
824aefefd9 rename 2021-11-05 08:34:33 +08:00
Justin Lin
4cdeb5b4a6 add doc 2021-11-05 08:33:44 +08:00
Justin Lin
9271c79a3a add doc 2021-11-03 08:04:28 +08:00
Justin Lin
3b2b07ae25 del svg 2021-11-02 18:01:41 +08:00
Justin Lin
214b0a2640 update LICENSE 2021-11-02 17:55:28 +08:00
Justin Lin
29da8be872 add doc 2021-11-01 08:10:17 +08:00
Justin Lin
10930e8b1c add star 2021-10-29 16:49:18 +08:00
Justin Lin
756ed377c3 update README 2021-10-29 11:48:50 +08:00
Justin Lin
300f72a959 update note 2021-10-29 11:47:10 +08:00
Justin Lin
faf53b3846 add shape_star 2021-10-29 11:45:14 +08:00
Justin Lin
2376e429d1 update README 2021-10-28 15:15:44 +08:00
Justin Lin
b0817f2339 del unused module 2021-10-28 15:13:30 +08:00
Justin Lin
0304233cdc delete unused function 2021-10-28 15:11:34 +08:00
Justin Lin
4176cb476e add wormhole 2021-10-28 10:38:26 +08:00
Justin Lin
3901e4f1ea add doc 2021-10-28 08:20:03 +08:00
Justin Lin
9022cb731d rename 2021-10-28 08:04:26 +08:00
Justin Lin
b76a2f9c32 add doc 2021-10-28 07:42:16 +08:00
Justin Lin
bb2f10043f update example 2021-10-27 15:51:35 +08:00
Justin Lin
5b65cc16a7 rename 2021-10-26 16:51:54 +08:00
Justin Lin
8cdfe435ee rename 2021-10-26 10:29:10 +08:00
Justin Lin
1cddbc3453 rename 2021-10-26 10:25:49 +08:00
Justin Lin
50621b0306 change param 2021-10-26 09:36:26 +08:00
Justin Lin
8dad1bd4b6 add platonic_solid_frame 2021-10-26 09:33:47 +08:00
Justin Lin
c6b0c30fd8 reverse face 2021-10-26 09:08:01 +08:00
Justin Lin
a6d0c85dbe update README 2021-10-25 11:30:33 +08:00
Justin Lin
87deb39a4b add central_scale 2021-10-24 14:08:23 +08:00
Justin Lin
bfa0fd2b11 add doc 2021-10-21 17:09:54 +08:00
Justin Lin
2bd663d46b update doc 2021-10-18 16:06:05 +08:00
Justin Lin
5c1c6a7463 update doc 2021-10-18 16:04:53 +08:00
Justin Lin
ca92286690 update doc 2021-10-18 16:04:29 +08:00
Justin Lin
cbff19c33e add comment 2021-10-18 16:02:19 +08:00
Justin Lin
43b22a0f4c add comments 2021-10-18 16:01:53 +08:00
Justin Lin
6bda39ecef add doc 2021-10-18 16:00:56 +08:00
Justin Lin
37c3a647a5 refactor 2021-10-15 10:20:18 +08:00
Justin Lin
59ae93ba5f calculate r_base directly 2021-10-14 22:11:14 +08:00
Justin Lin
6d6f62c77f refactor 2021-10-14 18:25:10 +08:00
Justin Lin
a8ae7c18e4 rewrite polyhedra 2021-10-14 18:22:05 +08:00
Justin Lin
9c3c92ab13 update README 2021-10-13 16:12:17 +08:00
Justin Lin
f1116dc8cf add doc 2021-10-13 16:09:12 +08:00
Justin Lin
5a44454547 fix join index 2021-10-13 16:06:22 +08:00
Justin Lin
57d46eda8d update README 2021-10-12 16:38:05 +08:00
Justin Lin
4a19b445ab update README 2021-10-12 16:35:02 +08:00
Justin Lin
675f80159e add doc 2021-10-12 16:24:03 +08:00
Justin Lin
1132451009 i can be ignored 2021-10-12 16:23:55 +08:00
Justin Lin
c78fb13731 update README 2021-10-08 10:05:14 +08:00
Justin Lin
a53c202c48 update README 2021-10-08 10:04:24 +08:00
Justin Lin
ccbd81b88e update note 2021-10-08 09:36:51 +08:00
Justin Lin
a14c5676d4 use polyline_join 2021-10-08 09:36:01 +08:00
Justin Lin
e9440e55d6 scale first cat 2021-10-07 09:49:55 +08:00
Justin Lin
8f1d6a6e1a refactor 2021-10-06 16:33:17 +08:00
Justin Lin
95dc133d0d refactor 2021-10-06 16:29:33 +08:00
Justin Lin
dbdf8a757d move octahedron 2021-10-06 16:08:20 +08:00
Justin Lin
d6affc1ff5 add polyhedra 2021-10-06 15:54:20 +08:00
Justin Lin
f7e81a78e3 update readme 2021-10-06 15:53:57 +08:00
Justin Lin
63a5e53572 refactor 2021-10-04 12:39:16 +08:00
Justin Lin
006572c5bf move 2021-10-04 08:01:18 +08:00
Justin Lin
3678b8b6d7 move 2021-10-04 07:58:45 +08:00
Justin Lin
89eb57652b refactor 2021-10-01 14:17:53 +08:00
Justin Lin
0a24f4fc67 refactor 2021-10-01 13:39:12 +08:00
Justin Lin
6e8277c91d rename 2021-10-01 13:28:30 +08:00
Justin Lin
9071ac3788 update doc 2021-10-01 10:30:10 +08:00
Justin Lin
f1b1239950 fix wrong angleyz 2021-10-01 10:28:42 +08:00
Justin Lin
71b6203d9c fix 2D to 3D bugs 2021-10-01 09:54:47 +08:00
Justin Lin
fa0e77ebaf depends on $children 2021-10-01 09:15:06 +08:00
Justin Lin
6e38061655 refactor 2021-10-01 08:47:45 +08:00
Justin Lin
ac2c420487 refactor 2021-10-01 08:46:08 +08:00
Justin Lin
a29b851500 update note 2021-10-01 08:31:00 +08:00
Justin Lin
bc17a2df19 add polyline_hull 2021-10-01 08:27:07 +08:00
Justin Lin
d701b537f0 remove children support 2021-10-01 08:26:06 +08:00
Justin Lin
4683ff5a46 refactor 2021-10-01 08:20:49 +08:00
Justin Lin
06c1ef94bc refactor 2021-10-01 08:08:11 +08:00
Justin Lin
e2958b6ae1 use for-loop 2021-10-01 08:03:07 +08:00
Justin Lin
a2971ec1d0 add fidget_cat 2021-09-24 16:11:25 +08:00
Justin Lin
1634403e28 refactor 2021-09-23 07:46:45 +08:00
Justin Lin
57da4b39ad add hexahedron 2021-09-22 16:56:46 +08:00
Justin Lin
5374999967 add tetrahedron 2021-09-22 16:39:04 +08:00
Justin Lin
60f3698200 delete unnecessary code 2021-09-22 16:36:21 +08:00
Justin Lin
83b1843f3f add octahedron 2021-09-22 16:35:22 +08:00
Justin Lin
b2d2940ef1 refactor 2021-09-22 16:30:28 +08:00
Justin Lin
3c0c524186 format 2021-09-22 16:22:45 +08:00
Justin Lin
4eef2c6dde refactor 2021-09-22 16:22:09 +08:00
Justin Lin
af9cfb16e4 add dodecahedron 2021-09-22 16:08:48 +08:00
Justin Lin
9340f73f1a add geom_dodecahedron 2021-09-22 16:07:34 +08:00
Justin Lin
66d02d02e2 change default values 2021-09-19 10:40:12 +08:00
Justin Lin
44165275e7 create bottom 2021-09-19 09:32:37 +08:00
Justin Lin
dcda61390c shell param is not necessary 2021-09-18 17:14:15 +08:00
Justin Lin
58a7a20c53 don't concat 2021-09-18 16:26:28 +08:00
Justin Lin
d0bc8c0f7f shell_random_threshold default to 0.5 2021-09-18 16:22:12 +08:00
Justin Lin
26fcdbe8e3 add shell_random_threshold 2021-09-18 16:21:44 +08:00
Justin Lin
704ed1e725 add shell param 2021-09-18 12:22:46 +08:00
Justin Lin
702aab846e add shell 2021-09-18 12:21:03 +08:00
Justin Lin
fbc07cec80 we don't have to mod nums_of_buckets 2021-09-16 07:50:37 +08:00
Justin Lin
b1b61fddbf single a_step is ok 2021-09-10 15:17:33 +08:00
Justin Lin
89096ad329 update comment 2021-09-10 12:22:25 +08:00
Justin Lin
e5b1a6cf93 add superellipsoid 2021-09-10 12:11:38 +08:00
Justin Lin
523ce3cb33 add perlin_sphere 2021-09-10 09:45:53 +08:00
Justin Lin
ea36c97ac7 performance improved 2021-09-09 17:37:33 +08:00
Justin Lin
5e7b5f1691 update doc 2021-09-09 16:31:42 +08:00
Justin Lin
8fb3d5b579 add rand_pts_circle 2021-09-08 18:02:17 +08:00
Justin Lin
cafa0ebd06 update comment 2021-09-08 18:01:59 +08:00
Justin Lin
a2fee75749 adjust size of bucket 2021-09-08 11:45:04 +08:00
Justin Lin
0725d945de delete unused modules 2021-09-08 10:49:21 +08:00
Justin Lin
41ebc07fd0 don't use quick_mode 2021-09-08 10:48:43 +08:00
Justin Lin
c59fdc5f1d provide quick_mode 2021-09-08 08:36:33 +08:00
Justin Lin
23ed306148 performance improved 2021-09-07 15:59:11 +08:00
Justin Lin
657c10a9cc performance improved 2021-09-07 15:47:07 +08:00
Justin Lin
8da1912fff add _pt3_hash 2021-09-07 15:47:01 +08:00
Justin Lin
fd375dd50f rename 2021-09-07 10:21:24 +08:00
Justin Lin
69e2a79488 use geom_isosphere to rewrite 2021-09-07 10:14:45 +08:00
Justin Lin
e5af7b3027 refactor 2021-09-07 10:12:29 +08:00
Justin Lin
9c532acce4 refactor 2021-09-07 10:03:47 +08:00
Justin Lin
1d085c35d0 add isosphere 2021-09-06 17:36:44 +08:00
Justin Lin
09d898c035 add tri_subdivide 2021-09-06 17:23:51 +08:00
Justin Lin
12e6af2492 delete repeated function 2021-09-05 15:33:26 +08:00
Justin Lin
f3a5ce76e3 delete unused function 2021-09-05 15:28:16 +08:00
Justin Lin
8ca4e12b22 add fidget_heart 2021-09-04 08:39:36 +08:00
Justin Lin
e021750d7b clean code 2021-09-03 15:37:35 +08:00
Justin Lin
43fa3fb5fd rename variables 2021-09-03 11:40:08 +08:00
Justin Lin
853da1f9e2 refactor 2021-09-03 11:38:21 +08:00
Justin Lin
346cea1db8 add r_union 2021-09-03 11:29:32 +08:00
Justin Lin
c6ca52aba8 add r_union2 2021-09-03 11:18:03 +08:00
Justin Lin
5863a5c3f6 clean code 2021-09-03 07:40:17 +08:00
Justin Lin
43d614ba7c add euler_spiral 2021-08-31 11:28:42 +08:00
Justin Lin
fb0672480f dedup befor drawing 2021-08-31 10:02:48 +08:00
Justin Lin
3d1a4cbb33 rename 2021-08-31 08:29:37 +08:00
Justin Lin
0494ef7f32 del unnecessary code 2021-08-30 08:09:29 +08:00
Justin Lin
9850227fe4 adjust face 2021-08-29 21:39:18 +08:00
Justin Lin
4f22f8489a accept diff font and font_size 2021-08-29 17:51:37 +08:00
Justin Lin
210844c9f8 emoticon moai 2021-08-29 09:01:35 +08:00
Justin Lin
e9095eaff5 add ears 2021-08-29 08:21:16 +08:00
Justin Lin
950c7a5937 add moai 2021-08-27 19:50:18 +08:00
Justin Lin
9cbac21f17 del unused module 2021-08-27 07:54:06 +08:00
Justin Lin
30f83865f1 add tri_arc_path 2021-08-26 21:13:12 +08:00
Justin Lin
b6d86ab4ba angle_between adds a ccw param 2021-08-26 21:09:32 +08:00
Justin Lin
2355820034 change param 2021-08-26 20:27:42 +08:00
Justin Lin
679e3aae62 add tri_is_ccw 2021-08-26 18:49:42 +08:00
Justin Lin
21754293c8 add lavender 2021-08-25 17:33:24 +08:00
Justin Lin
d4a865080c fix error vector 2021-08-25 14:43:47 +08:00
Justin Lin
b79131f9bc add nose param 2021-08-24 16:46:54 +08:00
Justin Lin
7aad397860 rename 2021-08-24 16:44:16 +08:00
Justin Lin
b209c40d99 remove render 2021-08-24 09:10:54 +08:00
Justin Lin
d8122150a1 allow one word 2021-08-24 09:05:16 +08:00
Justin Lin
e507f71619 scale decoratiokn 2021-08-24 08:58:41 +08:00
Justin Lin
966f6f6850 rename 2021-08-23 15:31:27 +08:00
Justin Lin
d35fe91246 font default to 思源黑體 Medium 2021-08-23 15:20:27 +08:00
Justin Lin
2f9509c249 model default to both 2021-08-23 15:17:32 +08:00
Justin Lin
0810d86314 scale 0.7 2021-08-23 15:16:39 +08:00
Justin Lin
52e43aa03c adjust 2021-08-23 09:10:00 +08:00
Justin Lin
d875d41e4c rename 2021-08-23 08:44:51 +08:00
Justin Lin
82ec74eee1 add tumbler_helmet 2021-08-22 20:33:03 +08:00
Justin Lin
3390b0587d refactor 2021-08-22 20:32:47 +08:00
Justin Lin
433040f363 use string directly 2021-08-22 17:45:54 +08:00
Justin Lin
8cc0eeebc3 don't cut bottom 2021-08-22 16:04:06 +08:00
Justin Lin
803906e8cd remove render 2021-08-22 15:36:25 +08:00
Justin Lin
03f4939fe1 scale when smoothing 2021-08-22 15:33:02 +08:00
Justin Lin
066e5fc55d add tumbler 2021-08-22 15:21:57 +08:00
Justin Lin
aeb9dec141 change param value 2021-08-21 12:37:02 +08:00
Justin Lin
bfa3d6b8ff rename 2021-08-21 10:43:15 +08:00
Justin Lin
4fb0f9ac7b add engraved param 2021-08-21 10:11:46 +08:00
Justin Lin
e5eeb77292 delete extra support 2021-08-20 21:41:40 +08:00
Justin Lin
2e5b245167 update note 2021-08-20 21:29:57 +08:00
Justin Lin
a37c6030e9 add convexity param 2021-08-20 21:28:17 +08:00
Justin Lin
13ca93e9db extra support 2021-08-20 21:11:13 +08:00
Justin Lin
749079767d refactor 2021-08-19 16:37:58 +08:00
Justin Lin
d8a444099f add ivory_ball_fern_leaf 2021-08-19 16:36:42 +08:00
Justin Lin
0dc5544e2e use relative path 2021-08-19 16:12:40 +08:00
Justin Lin
ac41769faa change param name 2021-08-19 12:37:35 +08:00
Justin Lin
bcbc4e09a5 add worley_sphere 2021-08-19 12:30:54 +08:00
Justin Lin
888460d2e3 add param 2021-08-19 10:42:12 +08:00
Justin Lin
c5be2d398a add polyhedron_abuse param (hidden feature) 2021-08-18 17:56:30 +08:00
Justin Lin
798676e2eb refactor 2021-08-18 16:24:57 +08:00
Justin Lin
ad6b0ae4f1 add fidget ball 2021-08-18 12:44:32 +08:00
Justin Lin
9829c5c201 add kogan_sphere 2021-08-16 18:22:02 +08:00
Justin Lin
fd6fbbc92f add penrose_basket 2021-08-16 13:13:31 +08:00
Justin Lin
6aaab429fb add ptf_c2sphere 2021-08-16 12:23:27 +08:00
Justin Lin
d00f51edcb update examples 2021-08-15 14:02:56 +08:00
Justin Lin
0c1e85e5db init from OBTUSE 2021-08-15 13:58:14 +08:00
Justin Lin
ed3b8c1422 add triangles param 2021-08-15 11:48:57 +08:00
Justin Lin
7574f0aa3d mirror tri to tile 2021-08-15 11:24:32 +08:00
Justin Lin
62c4e1c656 add triangles param 2021-08-15 10:23:11 +08:00
Justin Lin
af88ee6e86 add worley_vase 2021-08-14 09:26:13 +08:00
Justin Lin
30d60d643f add images 2021-08-14 09:24:56 +08:00
Justin Lin
0d63029c4c update note 2021-08-14 09:10:48 +08:00
Justin Lin
c58e019b69 add rail_extruded_sections 2021-08-14 09:10:11 +08:00
Justin Lin
249cced4c7 update doc 2021-08-14 09:09:47 +08:00
Justin Lin
2a4bd4c006 use rails2sections 2021-08-14 08:44:09 +08:00
Justin Lin
569a0091c3 add rails2sections 2021-08-14 08:34:41 +08:00
Justin Lin
beaf6fb776 delete depreated doc 2021-08-14 08:29:41 +08:00
Justin Lin
9f8614397b better bottom fitness 2021-08-13 20:50:33 +08:00
Justin Lin
0c3c0286e9 tri is [type, vertices] 2021-08-13 15:01:02 +08:00
Justin Lin
026cd9391e add tile_penrose2 2021-08-13 14:59:25 +08:00
Justin Lin
58a293f6c8 fix fn 2021-08-12 16:03:14 +08:00
Justin Lin
0e6d98fd1e delete q 2021-08-12 08:03:29 +08:00
Justin Lin
7d8bfc6099 change vertices order 2021-08-11 20:18:33 +08:00
Justin Lin
2844a30d91 change vertices order 2021-08-11 20:03:51 +08:00
Justin Lin
9b0c825f92 simplify subdivid 2021-08-11 17:48:01 +08:00
Justin Lin
428af98b5d update type 2021-08-11 17:38:42 +08:00
Justin Lin
505e384343 rename fn 2021-08-11 17:16:50 +08:00
Justin Lin
9fe43dc7b2 delete ) 2021-08-11 17:14:24 +08:00
Justin Lin
9955169c75 update example 2021-08-11 17:01:57 +08:00
Justin Lin
d350362c47 refactor 2021-08-11 08:28:57 +08:00
Justin Lin
26a0d7a62e refactor 2021-08-10 19:30:07 +08:00
Justin Lin
091f071cb5 add tile_penrose3 2021-08-10 11:34:52 +08:00
Justin Lin
401c6baca4 add twist_taiji 2021-08-09 16:45:11 +08:00
Justin Lin
bbe59b9dbb move 2021-08-09 16:28:14 +08:00
Justin Lin
02fd718ca7 rename 2021-08-09 15:12:59 +08:00
Justin Lin
a00945ae1f scale foot 2021-08-09 08:37:03 +08:00
Justin Lin
a599842933 add caterpillar 2021-08-08 20:26:36 +08:00
Justin Lin
da08e75e73 refactor 2021-08-08 19:25:56 +08:00
Justin Lin
a129aa547c add shape2wire 2021-08-08 14:57:52 +08:00
Justin Lin
eceb3fa282 66 vertices 2021-08-03 22:01:37 +08:00
Justin Lin
a16a8373d3 elaborate fin 2021-08-03 16:15:05 +08:00
Justin Lin
4a516bf64d elaborate it 2021-08-03 16:05:56 +08:00
Justin Lin
43285d49b1 scale down tail 2021-08-03 11:43:04 +08:00
Justin Lin
3d081ed0c3 change peral position 2021-08-03 10:23:44 +08:00
Justin Lin
9ad1835322 rename 2021-08-03 09:19:44 +08:00
Justin Lin
05737e0512 add a pearl 2021-08-03 09:18:21 +08:00
Justin Lin
8b65a1cb5c chane tail scale 2021-08-03 08:59:28 +08:00
Justin Lin
179701330f change body path 2021-08-03 08:57:25 +08:00
Justin Lin
50f87275e0 dragon 2021-08-02 22:26:03 +08:00
Justin Lin
f8037bf484 adjust head 2021-08-02 17:00:53 +08:00
Justin Lin
3f3d799870 elaborate it 2021-08-02 16:54:25 +08:00
Justin Lin
3bb5553698 random hair 2021-08-02 16:46:52 +08:00
Justin Lin
ad826cfb77 elaborate it 2021-08-02 15:24:49 +08:00
Justin Lin
fabfd1a9ce add dragon_claw 2021-08-02 15:02:15 +08:00
Justin Lin
ecd8311921 clean code 2021-08-01 16:51:11 +08:00
Justin Lin
2939d03879 re-design scales 2021-08-01 16:46:51 +08:00
Justin Lin
2d3315f9ad refactor 2021-08-01 15:31:21 +08:00
Justin Lin
7c8dec3671 re-design scales 2021-08-01 15:18:45 +08:00
Justin Lin
6bed665368 thicken beard 2021-08-01 13:24:44 +08:00
Justin Lin
5a5ee9cc0c re-design body scales 2021-08-01 13:10:15 +08:00
Justin Lin
3784469c59 refactor 2021-07-31 16:23:26 +08:00
Justin Lin
1544546cdd remove params 2021-07-31 16:19:40 +08:00
Justin Lin
7bd7326794 remove params 2021-07-31 16:18:02 +08:00
Justin Lin
0a117e0c09 rename and refactor 2021-07-31 16:16:58 +08:00
Justin Lin
3b48de2c47 add tile_hitomezashi 2021-07-31 15:25:19 +08:00
Justin Lin
0295b0ded0 refactor 2021-07-31 12:34:50 +08:00
Justin Lin
4bddf3ca33 refactor 2021-07-31 12:34:43 +08:00
Justin Lin
a8472c0831 add knot_tiles 2021-07-31 12:32:30 +08:00
Justin Lin
a56cf44b4c add choose_children 2021-07-31 12:31:56 +08:00
Justin Lin
a213a797a0 add rand_pts_sphere 2021-07-30 18:05:02 +08:00
Justin Lin
4cd74cb0bf del echo 2021-07-30 12:18:19 +08:00
Justin Lin
b722d178e7 add tiled_quarter_circles 2021-07-30 12:02:15 +08:00
Justin Lin
bf8cb44595 rename param 2021-07-30 11:43:31 +08:00
Justin Lin
6e3d3e0a4b move 2021-07-30 11:07:03 +08:00
Justin Lin
352ca21300 refactor 2021-07-30 11:06:47 +08:00
Justin Lin
5399224ff0 move 2021-07-30 11:02:55 +08:00
Justin Lin
574e4b695a refactor 2021-07-30 11:02:42 +08:00
Justin Lin
2e1959f3ef move 2021-07-30 11:02:27 +08:00
Justin Lin
8829123ade add tile_truchet 2021-07-30 10:55:36 +08:00
Justin Lin
1812e732bb refactor 2021-07-29 18:54:09 +08:00
Justin Lin
021716cf80 add tile_w2c 2021-07-29 16:58:48 +08:00
Justin Lin
3f499ca32d round-robin edges 2021-07-29 15:24:19 +08:00
Justin Lin
a11eae4aaa rename 2021-07-29 12:06:48 +08:00
Justin Lin
61f7988820 refactor 2021-07-29 12:05:18 +08:00
Justin Lin
7d47d56bdd refactor 2021-07-29 11:55:27 +08:00
Justin Lin
1a6ce7ea0a thicken beard 2021-07-22 16:25:20 +08:00
Justin Lin
9c487ec304 refactor 2021-07-22 13:31:16 +08:00
Justin Lin
5d593ecbc3 fin lifted 2021-07-21 20:55:06 +08:00
Justin Lin
9153c997eb add torus_knot_dragon2 2021-07-21 18:08:19 +08:00
Justin Lin
904e15667d simplify it 2021-07-21 13:36:42 +08:00
Justin Lin
cdccc4723b rename param 2021-07-21 11:08:22 +08:00
Justin Lin
88775366db rename param 2021-07-21 11:08:10 +08:00
Justin Lin
0d188fa96c update README 2021-07-21 11:06:19 +08:00
Justin Lin
fd1b426d4f update doc 2021-07-21 11:06:08 +08:00
Justin Lin
e1a5fcb928 simplify it 2021-07-21 09:20:42 +08:00
Justin Lin
d77581d717 adjust head 2021-07-20 17:21:59 +08:00
Justin Lin
81f5e05840 sharpen mouth 2021-07-20 16:45:09 +08:00
Justin Lin
e312c03414 fix CG error 2021-07-20 16:20:11 +08:00
Justin Lin
6c6093d46b flame mountain 2021-07-20 14:19:59 +08:00
Justin Lin
61faa5ae06 fix CG error 2021-07-20 13:32:34 +08:00
Justin Lin
ccfca4e246 curve nose 2021-07-20 12:47:46 +08:00
Justin Lin
f4fa300fac delete duplicated module 2021-07-20 12:44:17 +08:00
Justin Lin
404a01b29b curved nose 2021-07-20 12:43:10 +08:00
Justin Lin
3cae424fb4 rename 2021-07-19 18:18:25 +08:00
Justin Lin
ad926d2def rotate meme 2021-07-19 17:50:14 +08:00
Justin Lin
96f9d8c38a refactor 2021-07-19 17:49:14 +08:00
Justin Lin
3c43ef8fc2 add ms_paperclip_meme 2021-07-19 15:30:15 +08:00
Justin Lin
0d71103959 random hair 2021-07-19 11:28:07 +08:00
Justin Lin
da07c95497 random hair 2021-07-18 17:58:47 +08:00
Justin Lin
ccafbe8a3a refactor 2021-07-18 10:09:35 +08:00
Justin Lin
bed658178e refactor 2021-07-18 09:20:14 +08:00
Justin Lin
7b6e873b2a del unnecessary code 2021-07-17 20:04:48 +08:00
Justin Lin
780ecc3c06 update params 2021-07-17 18:12:12 +08:00
Justin Lin
97f4cfa60d add maze_tower 2021-07-17 17:54:40 +08:00
Justin Lin
66bf0f89bf fix seed missing 2021-07-17 14:41:46 +08:00
Justin Lin
246fc3006c rename 2021-07-15 13:52:57 +08:00
Justin Lin
aa42d2cd4e delete y_offset 2021-07-15 12:23:48 +08:00
Justin Lin
4583305c76 modify examples 2021-07-15 12:21:06 +08:00
Justin Lin
f3473e8765 add shape 2021-07-15 12:01:54 +08:00
Justin Lin
e855403d7a add shape 2021-07-15 11:31:53 +08:00
Justin Lin
d3a51b280a rename 2021-07-15 11:26:33 +08:00
Justin Lin
9863b718a0 use arc_path 2021-07-15 10:57:24 +08:00
Justin Lin
0551981b07 generalize shape 2021-07-15 10:53:07 +08:00
Justin Lin
e6639cd01c rename 2021-07-14 15:39:33 +08:00
Justin Lin
8d39873360 add twisted_donut 2021-07-14 14:52:54 +08:00
968 changed files with 19768 additions and 8975 deletions

View File

@@ -1,7 +1,7 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="84" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="84" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h47v20H0z"/><path fill="#007ec6" d="M47 0h37v20H47z"/><path fill="url(#b)" d="M0 0h84v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"><text x="23.5" y="15" fill="#010101" fill-opacity=".3">license</text><text x="23.5" y="14">license</text><text x="64.5" y="15" fill="#010101" fill-opacity=".3">LGPL</text><text x="64.5" y="14">LGPL</text></g></svg>

Before

Width:  |  Height:  |  Size: 793 B

246
README.md
View File

@@ -1,10 +1,8 @@
# dotSCAD 3.1
# dotSCAD 3.3
> **Reduce the burden of mathematics/algorithm when playing OpenSCAD.**
![dotSCAD](featured_img/TorusKnotMaze.JPG)
[![license/LGPL](LICENSE.svg)](https://github.com/JustinSDK/lib-openscad/blob/master/LICENSE)
![dotSCAD](featured_img/Owls.JPG)
## Introduction
@@ -12,7 +10,7 @@ Some of my [3D models](https://github.com/JustinSDK/dotSCAD#examples) require co
The idea of the name dotSCAD comes from the filename extension ".scad" of OpenSCAD.
## Get Started
## Getting started
OpenSCAD uses three library locations, the installation library, built-in library, and user defined libraries. Check [Setting OPENSCADPATH](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Libraries#Setting_OPENSCADPATH) in [OpenSCAD User Manual/Libraries](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Libraries) for details.
@@ -20,13 +18,13 @@ OpenSCAD uses three library locations, the installation library, built-in librar
Every public module/function has the same name as the .scad file. Here's an example using the `line2d` module:
use <line2d.scad>;
use <line2d.scad>
line2d(p1 = [0, 0], p2 = [5, 0], width = 1);
The library uses directories to categorize some modules/functions. For example, vx_circle.scad exists in `voxel` directory. Prefix the directory name when using `vx_circle`.
use <voxel/vx_circle.scad>;
use <voxel/vx_circle.scad>
points = vx_circle(radius = 10);
for(pt = points) {
@@ -39,111 +37,109 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp
[![examples](examples/images/gallery.JPG)](examples#dogfooding-examples)
# API Documentation
# API Reference
## 2D Module
Signature | Description
--|--
[**arc**(radius, angle, width = 1, width_mode = "LINE_CROSS")](https://openhome.cc/eGossip/OpenSCAD/lib3x-arc.html) | create an arc.
[**arc**(radius, angle[, width, width_mode"])](https://openhome.cc/eGossip/OpenSCAD/lib3x-arc.html) | create an arc.
[**hexagons**(radius, spacing, levels)](https://openhome.cc/eGossip/OpenSCAD/lib3x-hexagons.html) | create hexagons in a hexagon.
[**hull_polyline2d**(points, width = 1)](https://openhome.cc/eGossip/OpenSCAD/lib3x-hull_polyline2d.html) | create a 2D polyline from a list of `[x, y]`.
[**line2d**(p1, p2, width = 1, p1Style = "CAP_SQUARE", p2Style = "CAP_SQUARE")](https://openhome.cc/eGossip/OpenSCAD/lib3x-line2d.html) | create a line from two points.
[**multi_line_text**(lines, line_spacing = 15, size = 10, font = "Arial", ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-multi_line_text.html) | create multi-line text from a list of strings.
[**line2d**(p1, p2[, width, p1Style, p2Style])](https://openhome.cc/eGossip/OpenSCAD/lib3x-line2d.html) | create a line from two points.
[**multi_line_text**(lines[, line_spacing, size, font, ...])](https://openhome.cc/eGossip/OpenSCAD/lib3x-multi_line_text.html) | create multi-line text from a list of strings.
[**pie**(radius, angle)](https://openhome.cc/eGossip/OpenSCAD/lib3x-pie.html) | create polyline2de a pie (circular sector).
[**polyline2d**(points, width = 1, startingStyle = "CAP_SQUARE", endingStyle = "CAP_SQUARE", ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyline2d.html) | create a polyline from a list of `[x, y]` coordinates.
[**polyline2d**(points[, width, startingStyle, endingStyle, ...])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyline2d.html) | create a polyline from a list of `[x, y]` coordinates.
[**polygon_hull**(points)](https://openhome.cc/eGossip/OpenSCAD/lib3x-polygon_hull.html) | create a convex polygon by hulling a list of points. It avoids using hull and small 2D primitives to create the polygon.
[**rounded_square**(size, corner_r, center = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-rounded_square.html) | create a rounded square in the first quadrant.
[**rounded_square**(size, corner_r[, center])](https://openhome.cc/eGossip/OpenSCAD/lib3x-rounded_square.html) | create a rounded square in the first quadrant.
## 3D Module
Signature | Description
--|--
[**crystal_ball**(radius, theta = 360, phi = 180, thickness = undef)](https://openhome.cc/eGossip/OpenSCAD/lib3x-crystal_ball.html) | create a crystal ball based on [spherical coordinates (r, θ, φ) used in mathematics](https://en.wikipedia.org/wiki/Spherical_coordinate_system).
[**hull_polyline3d**(points, diameter = 1)](https://openhome.cc/eGossip/OpenSCAD/lib3x-hull_polyline3d.html) | create a 3D polyline from a list of `[x, y, z]`.
[**line3d**(p1, p2, diameter = 1, p1Style = "CAP_CIRCLE", p2Style = "CAP_CIRCLE")](https://openhome.cc/eGossip/OpenSCAD/lib3x-line3d.html) | create a 3D line from two points.
[**loft**(sections, slices = 1)](https://openhome.cc/eGossip/OpenSCAD/lib3x-loft.html) | develop a smooth skin between crosssections with different geometries.
[**crystal_ball**(radius[, theta, phi, thickness])](https://openhome.cc/eGossip/OpenSCAD/lib3x-crystal_ball.html) | create a crystal ball based on [spherical coordinates (r, θ, φ) used in mathematics](https://en.wikipedia.org/wiki/Spherical_coordinate_system).
[**line3d**(p1, p2[, diameter, p1Style, p2Style])](https://openhome.cc/eGossip/OpenSCAD/lib3x-line3d.html) | create a 3D line from two points.
[**loft**(sections[, slices])](https://openhome.cc/eGossip/OpenSCAD/lib3x-loft.html) | develop a smooth skin between crosssections with different geometries.
[**polyhedron_hull**(points)](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedron_hull.html) | create a convex polyhedron by hulling a list of points. It avoids using `hull` and small 3D primitives to create the polyhedron.
[**polyline3d**(points, diameter, startingStyle = "CAP_CIRCLE", endingStyle = "CAP_CIRCLE")](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyline3d.html) | create a polyline from a list of `[x, y, z]`.
[**rounded_cube**(size, corner_r, center = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-rounded_cube.html) | create a cube in the first octant.
[**rounded_cylinder**(radius, h, round_r, convexity = 2, center = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-rounded_cylinder.html) | create a rounded cylinder.
[**starburst**(r1, r2, n, height)](https://openhome.cc/eGossip/OpenSCAD/lib3x-starburst.html) | a 3D version of [`shape_starburst`](https://openhome.cc/eGossip/OpenSCAD/lib3x-starburst.html).
[**sweep**(sections, triangles = "SOLID")](https://openhome.cc/eGossip/OpenSCAD/lib3x-sweep.html) | develop a smooth skin from crosssections with the same umber of sides.
[**polyline3d**(points, diameter[, startingStyle, endingStyle])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyline3d.html) | create a polyline from a list of `[x, y, z]`.
[**rounded_cube**(size, corner_r[, center])](https://openhome.cc/eGossip/OpenSCAD/lib3x-rounded_cube.html) | create a cube in the first octant.
[**rounded_cylinder**(radius, h, round_r[, convexity, center])](https://openhome.cc/eGossip/OpenSCAD/lib3x-rounded_cylinder.html) | create a rounded cylinder.
[**sweep**(sections[, triangles])](https://openhome.cc/eGossip/OpenSCAD/lib3x-sweep.html) | develop a smooth skin from crosssections with the same number of sides.
## Transformation
Signature | Description
--|--
[**along_with**(points, angles, twist = 0, scale = 1.0, method = "AXIS_ANGLE")](https://openhome.cc/eGossip/OpenSCAD/lib3x-along_with.html) | put children along the given path. If there's only one child, put the child for each point.
[**bend**(size, angle, frags = 24)](https://openhome.cc/eGossip/OpenSCAD/lib3x-bend.html) | bend a 3D object.
[**along_with**(points, angles[, twist, scale, method])](https://openhome.cc/eGossip/OpenSCAD/lib3x-along_with.html) | put children along the given path. If there's only one child, put the child for each point.
[**bend**(size, angle[, frags])](https://openhome.cc/eGossip/OpenSCAD/lib3x-bend.html) | bend a 3D object.
[**hollow_out**(shell_thickness) ](https://openhome.cc/eGossip/OpenSCAD/lib3x-hollow_out.html)| hollow out a 2D object.
[**shear**(sx = [0, 0], sy = [0, 0], sz = [0, 0])](https://openhome.cc/eGossip/OpenSCAD/lib3x-shear.html) | shear all child elements along the X-axis, Y-axis, or Z-axis.
[**shear**([sx, sy, sz])](https://openhome.cc/eGossip/OpenSCAD/lib3x-shear.html) | shear all child elements along the X-axis, Y-axis, or Z-axis.
[**select**(i)](https://openhome.cc/eGossip/OpenSCAD/lib3x-select.html) | select module objects.
[**polyline_join**(points)](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyline_join.html) | place a join on each point. Hull each pair of joins and union all convex hulls.
## 2D Function
Signature | Description
--|--
[**bijection_offset**(pts, d, epsilon = 0.0001)](https://openhome.cc/eGossip/OpenSCAD/lib3x-bijection_offset.html) | move 2D outlines outward or inward by a given amount. Each point of the offsetted shape is paired with exactly one point of the original shape.
[**bijection_offset**(pts, d[, epsilon])](https://openhome.cc/eGossip/OpenSCAD/lib3x-bijection_offset.html) | move 2D outlines outward or inward by a given amount. Each point of the offsetted shape is paired with exactly one point of the original shape.
[**contours**(points, threshold)](https://openhome.cc/eGossip/OpenSCAD/lib3x-contours.html) | compute contour polygons by applying [marching squares](https://en.wikipedia.org/wiki/Marching_squares) to a rectangular list of numeric values.
[**in_shape**(shapt_pts, pt, include_edge = false, epsilon = 0.0001)](https://openhome.cc/eGossip/OpenSCAD/lib3x-in_shape.html) | check whether a point is inside a shape.
[**trim_shape**(shape_pts, from, to, epsilon = 0.0001)](https://openhome.cc/eGossip/OpenSCAD/lib3x-trim_shape.html) | trim a tangled-edge shape to a non-tangled shape.
[**in_shape**(shapt_pts, pt[, include_edge, epsilon])](https://openhome.cc/eGossip/OpenSCAD/lib3x-in_shape.html) | check whether a point is inside a shape.
[**trim_shape**(shape_pts, from, to[, epsilon])](https://openhome.cc/eGossip/OpenSCAD/lib3x-trim_shape.html) | trim a tangled-edge shape to a non-tangled shape.
## 2D/3D Function
Signature | Description
--|--
[**angle_between**(vt1, vt2)](https://openhome.cc/eGossip/OpenSCAD/lib3x-angle_between.html) | return the angle between two vectors.
[**bezier_smooth**(path_pts, round_d, t_step = 0.1, closed = false, angle_threshold = 0)](https://openhome.cc/eGossip/OpenSCAD/lib3x-bezier_smooth.html) | use bazier curves to smooth a path.
[**cross_sections**(shape_pts, path_pts, angles, twist = 0, scale = 1.0)](https://openhome.cc/eGossip/OpenSCAD/lib3x-cross_sections.html) | given a 2D shape, points and angles along the path, this function returns all cross-sections.
[**in_polyline**(line_pts, pt, epsilon = 0.0001)](https://openhome.cc/eGossip/OpenSCAD/lib3x-in_polyline.html) | check whether a point is on a line.
[**lines_intersection**(line1, line2, ext = false, epsilon = 0.0001)](https://openhome.cc/eGossip/OpenSCAD/lib3x-lines_intersection.html) | find the intersection of two line segments. Return `[]` if lines don't intersect.
[**paths2sections**(paths)](https://openhome.cc/eGossip/OpenSCAD/lib3x-paths2sections.html) | given a list of paths, this function returns all cross-sections described by those paths.
[**bezier_smooth**(path_pts, round_d[, t_step, closed, angle_threshold])](https://openhome.cc/eGossip/OpenSCAD/lib3x-bezier_smooth.html) | use bezier curves to smooth a path.
[**cross_sections**(shape_pts, path_pts, angles[, twist, scale])](https://openhome.cc/eGossip/OpenSCAD/lib3x-cross_sections.html) | given a 2D shape, points and angles along the path, this function returns all cross-sections.
[**in_polyline**(line_pts, pt[, epsilon])](https://openhome.cc/eGossip/OpenSCAD/lib3x-in_polyline.html) | check whether a point is on a line.
[**lines_intersection**(line1, line2[, ext, epsilon])](https://openhome.cc/eGossip/OpenSCAD/lib3x-lines_intersection.html) | find the intersection of two line segments. Return `[]` if lines don't intersect.
[**path_scaling_sections**(shape_pts, edge_path)](https://openhome.cc/eGossip/OpenSCAD/lib3x-path_scaling_sections.html) | given an edge path with the first point at the outline of a shape, this function uses the path to calculate scaling factors and returns all scaled sections in the reversed order of the edge path.
[**midpt_smooth**(points, n, closed = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-midpt_smooth.html) | given a 2D path, this function constructs a mid-point smoothed version by joining the mid-points of the lines of the path.
[**midpt_smooth**(points, n[, closed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-midpt_smooth.html) | given a 2D path, this function constructs a mid-point smoothed version by joining the mid-points of the lines of the path.
## Path
Signature | Description
--|--
[**arc_path**(radius, angle)](https://openhome.cc/eGossip/OpenSCAD/lib3x-arc_path.html) | create an arc path.
[**archimedean_spiral**(arm_distance, init_angle, point_distance, num_of_points, rt_dir = "CT_CLK")](https://openhome.cc/eGossip/OpenSCAD/lib3x-archimedean_spiral.html) | get all points and angles on the path of an archimedean spiral.
[**bauer_spiral**(n, radius = 1, rt_dir = "CT_CLK")](https://openhome.cc/eGossip/OpenSCAD/lib3x-bauer_spiral.html) | create visually even spacing of n points on the surface of the sphere. Successive points will all be approximately the same distance apart.
[**archimedean_spiral**(arm_distance, init_angle, point_distance, num_of_points[, rt_dir])](https://openhome.cc/eGossip/OpenSCAD/lib3x-archimedean_spiral.html) | get all points and angles on the path of an archimedean spiral.
[**bauer_spiral**(n, radius = 1[, rt_dir])](https://openhome.cc/eGossip/OpenSCAD/lib3x-bauer_spiral.html) | create visually even spacing of n points on the surface of the sphere. Successive points will all be approximately the same distance apart.
[**bezier_curve**(t_step, points)](https://openhome.cc/eGossip/OpenSCAD/lib3x-bezier_curve.html) | given a set of control points, this function returns points of the Bézier path.
[**bspline_curve**(t_step, degree, points, knots, weights)](https://openhome.cc/eGossip/OpenSCAD/lib3x-bspline_curve.html) | B-spline interpolation using [de Boor's algorithm](https://en.wikipedia.org/wiki/De_Boor%27s_algorithm).
[**curve**(t_step, points, tightness = 0)](https://openhome.cc/eGossip/OpenSCAD/lib3x-curve.html) | create a curved path. An implementation of [Centripetal Catmull-Rom spline](https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline).
[**fibonacci_lattice**(n, radius = 1, dir = "CT_CLK")](https://openhome.cc/eGossip/OpenSCAD/lib3x-fibonacci_lattice.html) | create visually even spacing of n points on the surface of the sphere. Nearest-neighbor points will all be approximately the same distance apart.
[**golden_spiral**(from, to, point_distance, rt_dir = "CT_CLK")](https://openhome.cc/eGossip/OpenSCAD/lib3x-golden_spiral.html) | get all points and angles on the path of a golden spiral based on Fibonacci numbers. The distance between two points is almost constant.
[**helix**(radius, levels, level_dist, vt_dir = "SPI_DOWN", rt_dir = "CT_CLK")](https://openhome.cc/eGossip/OpenSCAD/lib3x-helix.html) | get all points on the path of a spiral around a cylinder.
[**sphere_spiral**(radius, za_step, z_circles = 1, begin_angle = 0, end_angle = 0, ...) ](https://openhome.cc/eGossip/OpenSCAD/lib3x-sphere_spiral.html)| create all points and angles on the path of a spiral around a sphere. It returns a vector of `[[x, y, z], [ax, ay, az]]`.
[**curve**(t_step, points[, tightness])](https://openhome.cc/eGossip/OpenSCAD/lib3x-curve.html) | create a curved path. An implementation of [Centripetal Catmull-Rom spline](https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline).
[**fibonacci_lattice**(n, radius = 1[, dir])](https://openhome.cc/eGossip/OpenSCAD/lib3x-fibonacci_lattice.html) | create visually even spacing of n points on the surface of the sphere. Nearest-neighbor points will all be approximately the same distance apart.
[**golden_spiral**(from, to, point_distance[, rt_dir)]](https://openhome.cc/eGossip/OpenSCAD/lib3x-golden_spiral.html) | get all points and angles on the path of a golden spiral based on Fibonacci numbers. The distance between two points is almost constant.
[**helix**(radius, levels, level_dist[, vt_dir, rt_dir])](https://openhome.cc/eGossip/OpenSCAD/lib3x-helix.html) | get all points on the path of a spiral around a cylinder.
[**sphere_spiral**(radius, za_step[, z_circles, begin_angle, end_angle, ...]) ](https://openhome.cc/eGossip/OpenSCAD/lib3x-sphere_spiral.html)| create all points and angles on the path of a spiral around a sphere. It returns a vector of `[[x, y, z], [ax, ay, az]]`.
[**torus_knot**(p, q, phi_step)](https://openhome.cc/eGossip/OpenSCAD/lib3x-torus_knot.html) | generate a path of [The (p,q)-torus knot](https://en.wikipedia.org/wiki/Torus_knot).
## Extrusion
Signature | Description
--|--
[**bend_extrude**(size, thickness, angle, frags = 24)](https://openhome.cc/eGossip/OpenSCAD/lib3x-bend_extrude.html) | extrude and bend a 2D shape.
[**box_extrude**(height, shell_thickness, bottom_thickness, offset_mode = "delta", chamfer = false, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-box_extrude.html) | create a box (container) from a 2D object.
[**ellipse_extrude**(semi_minor_axis, height, center = false, convexity = 10, twist = 0, slices = 20)](https://openhome.cc/eGossip/OpenSCAD/lib3x-ellipse_extrude.html) | extrude a 2D object along the path of an ellipse from 0 to 180 degrees.
[**rounded_extrude**(size, round_r, angle = 90, twist = 0, convexity = 10)](https://openhome.cc/eGossip/OpenSCAD/lib3x-rounded_extrude.html) | extrude a 2D object roundly from 0 to 180 degrees.
[**bend_extrude**(size, thickness, angle[, frags])](https://openhome.cc/eGossip/OpenSCAD/lib3x-bend_extrude.html) | extrude and bend a 2D shape.
[**box_extrude**(height, shell_thickness, bottom_thickness[, offset_mode, chamfer, ...])](https://openhome.cc/eGossip/OpenSCAD/lib3x-box_extrude.html) | create a box (container) from a 2D object.
[**ellipse_extrude**(semi_minor_axis, height[, center, convexity, twist, slices])](https://openhome.cc/eGossip/OpenSCAD/lib3x-ellipse_extrude.html) | extrude a 2D object along the path of an ellipse from 0 to 180 degrees.
[**rounded_extrude**(size, round_r[, angle, twist, convexity])](https://openhome.cc/eGossip/OpenSCAD/lib3x-rounded_extrude.html) | extrude a 2D object roundly from 0 to 180 degrees.
[**stereographic_extrude**(shadow_side_leng)](https://openhome.cc/eGossip/OpenSCAD/lib3x-stereographic_extrude.html) | take a 2D polygon as input and extend it onto a sphere.
## 2D Shape
Signature | Description
--|--
[**shape_arc**(radius, angle, width, width_mode = "LINE_CROSS")](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_arc.html) | return points on the path of an arc shape.
[**shape_arc**(radius, angle, width[, width_mode])](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_arc.html) | return points on the path of an arc shape.
[**shape_circle**(radius, n)](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_circle.html) | return points on the path of a circle.
[**shape_cyclicpolygon**(sides, circle_r, corner_r)](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_cyclicpolygon.html) | return points on the path of a regular cyclic polygon.
[**shape_ellipse**(axes)](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_ellipse.html) | return points on the path of an ellipse.
[**shape_liquid_splitting**(radius, centre_dist, tangent_angle = 30, t_step = 0.1)](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_liquid_splitting.html) | return shape points of two splitting liquid shapes, kind of how cells divide.
[**shape_path_extend**(stroke_pts, path_pts, scale = 1.0, closed = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_path_extend.html) | extend a 2D stroke along a path to create a 2D shape.
[**shape_liquid_splitting**(radius, centre_dist[, tangent_angle, t_step])](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_liquid_splitting.html) | return shape points of two splitting liquid shapes, kind of how cells divide.
[**shape_path_extend**(stroke_pts, path_pts[, scale, closed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_path_extend.html) | extend a 2D stroke along a path to create a 2D shape.
[**shape_pentagram**(r)](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_pentagram.html) | return shape points of a pentagram.
[**shape_pie**(radius, angle)](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_pie.html) | return shape points of a pie (circular sector) shape.
[**shape_square**(size, corner_r = 0)](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_square.html) | return shape points of a rounded square or rectangle.
[**shape_starburst**(r1, r2, n)](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_starburst.html) | returns shape points of a star.
[**shape_superformula**(phi_step, m1, m2, n1, n2 = 1, n3 = 1, a = 1, b = 1)](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_superformula.html) | return shape points of [Superformula](https://en.wikipedia.org/wiki/Superformula).
[**shape_taiwan**(h, distance = 0)](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_taiwan.html) | return shape points of [Taiwan](https://www.google.com.tw/maps?q=taiwan&um=1&ie=UTF-8&sa=X&ved=0ahUKEwjai9XrqurTAhVIopQKHbEHClwQ_AUICygC).
[**shape_trapezium**(length, h, corner_r = 0)](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_trapezium.html) | return shape points of an isosceles trapezoid.
[**shape_square**(size[, corner_r])](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_square.html) | return shape points of a rounded square or rectangle.
[**shape_star**([outer_radius, inner_radius, n])](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_star.html) | create a 2D star.
[**shape_superformula**(phi_step, m1, m2, n1, [n2, n3, a, b])](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_superformula.html) | return shape points of [Superformula](https://en.wikipedia.org/wiki/Superformula).
[**shape_taiwan**(h[, distance])](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_taiwan.html) | return shape points of [Taiwan](https://www.google.com.tw/maps?q=taiwan&um=1&ie=UTF-8&sa=X&ved=0ahUKEwjai9XrqurTAhVIopQKHbEHClwQ_AUICygC).
[**shape_trapezium**(length, h[, corner_r])](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_trapezium.html) | return shape points of an isosceles trapezoid.
## 2D Shape Extrusion
@@ -153,7 +149,7 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp
[**golden_spiral_extrude**(shape_pts, from, to, point_distance, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-golden_spiral_extrude.html) | extrude a 2D shape along the path of a golden spiral.
[**helix_extrude**(shape_pts, radius, levels, level_dist, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-helix_extrude.html) | extrude a 2D shape along a helix path.
[**path_extrude**(shape_pts, path_pts, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-path_extrude.html) | extrude a 2D shape along a path.
[**ring_extrude**(shape_pts, radius, angle = 360, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-ring_extrude.html) | rotational extrusion spins a 2D shape around the Z-axis.
[**ring_extrude**(shape_pts, radius[, angle = 360])](https://openhome.cc/eGossip/OpenSCAD/lib3x-ring_extrude.html) | rotational extrusion spins a 2D shape around the Z-axis.
[**sphere_spiral_extrude**(shape_pts, radius, za_step, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-sphere_spiral_extrude.html) | extrude a 2D shape along the path of a sphere spiral.
## Util
@@ -162,27 +158,28 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp
Signature | Description
--|--
[**util/bsearch**(sorted, target)](https://openhome.cc/eGossip/OpenSCAD/lib3x-bsearch.html) | search a value in a list whose elements must be sorted by zyx.
[**util/has**(lt, elem, sorted = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-has.html) | return `true` if `lt` contains elem.
[**util/binary_search**(sorted, target[, lo, hi])](https://openhome.cc/eGossip/OpenSCAD/lib3x-binary_search.html) | search a value in a sorted list.
[**util/contains**(lt, elem)](https://openhome.cc/eGossip/OpenSCAD/lib3x-contains.html) | return `true` if `lt` contains `elem`.
[**util/find_index**(lt, test)](https://openhome.cc/eGossip/OpenSCAD/lib3x-find_index.html) | return the index of the first element that satisfies the testing function.
[**util/dedup**(lt, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-dedup.html) | eliminate duplicate vectors.
[**util/flat**(lt, depth = 1)](https://openhome.cc/eGossip/OpenSCAD/lib3x-flat.html) | return a new list with all sub-list elements concatenated into it recursively up to the specified depth.
[**util/flat**(lt[, depth])](https://openhome.cc/eGossip/OpenSCAD/lib3x-flat.html) | return a new list with all sub-list elements concatenated into it recursively up to the specified depth.
[**util/reverse**(lt)](https://openhome.cc/eGossip/OpenSCAD/lib3x-reverse.html) | reverse a list.
[**util/slice**(lt, begin, end)](https://openhome.cc/eGossip/OpenSCAD/lib3x-slice.html) | return a list selected from `begin` to `end`, or to the `end` of the list (`end` not included).
[**util/sort**(lt, by = "idx", idx = 0)](https://openhome.cc/eGossip/OpenSCAD/lib3x-sort.html) | sort a list.
[**util/sorted**(lt[, cmp, key, reverse])](https://openhome.cc/eGossip/OpenSCAD/lib3x-sorted.html) | sort a list.
[**util/sum**(lt)](https://openhome.cc/eGossip/OpenSCAD/lib3x-sum.html) | use `+` to sum up all elements in a list.
[**util/swap**(lt, i, j)](https://openhome.cc/eGossip/OpenSCAD/lib3x-swap.html) | swap two elements in a list.
[**util/zip**(lts, combine)](https://openhome.cc/eGossip/OpenSCAD/lib3x-zip.html) | make a list that aggregates elements from each of the lists.
[**util/every**(lt, test)](https://openhome.cc/eGossip/OpenSCAD/lib3x-every.html) | test whether all elements in the list pass the test implemented by the provided function.
[**util/some**(lt, test)](https://openhome.cc/eGossip/OpenSCAD/lib3x-some.html) | test whether at least one element in the list passes the test implemented by the provided function.
[**util/count**(lt, test)](https://openhome.cc/eGossip/OpenSCAD/lib3x-count.html) | return the number of times `test` return `true` in the list.
### util/random
Signature | Description
--|--
[**util/choose**(choices, seed)](https://openhome.cc/eGossip/OpenSCAD/lib3x-choose.html) | choose an element from the given list.
[**util/rand**(min_value = 0, max_value = 1, seed_value = undef)](https://openhome.cc/eGossip/OpenSCAD/lib3x-rand.html) | generate a pseudo random number.
[**util/shuffle**(lt, seed = undef)](https://openhome.cc/eGossip/OpenSCAD/lib3x-shuffle.html) | randomizes the order of the elements.
[**util/rand**([min_value, max_value, seed_value])](https://openhome.cc/eGossip/OpenSCAD/lib3x-rand.html) | generate a pseudo random number.
[**util/shuffle**(lt[, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-shuffle.html) | randomizes the order of the elements.
### util/string
@@ -235,9 +232,10 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp
[**matrix/m_mirror**(v)](https://openhome.cc/eGossip/OpenSCAD/lib3x-m_mirror.html) | generate a transformation matrix which can pass into `multmatrix` to mirror the child element on a plane through the origin.
[**matrix/m_rotation**(a, v)](https://openhome.cc/eGossip/OpenSCAD/lib3x-m_rotation.html) | Generate a transformation matrix which can pass into `multmatrix` to rotate the child element about the axis of the coordinate system or around an arbitrary axis.
[**matrix/m_scaling**(s)](https://openhome.cc/eGossip/OpenSCAD/lib3x-m_scaling.html) | generate a transformation matrix which can pass into `multmatrix` to scale its child elements using the specified vector.
[**matrix/m_shearing**(sx = [0, 0], sy = [0, 0], sz = [0, 0])](https://openhome.cc/eGossip/OpenSCAD/lib3x-m_shearing.html) | generate a transformation matrix which can pass into `multmatrix` to shear all child elements along the X-axis, Y-axis, or Z-axis in 3D.
[**matrix/m_shearing**([sx, sy, sz])](https://openhome.cc/eGossip/OpenSCAD/lib3x-m_shearing.html) | generate a transformation matrix which can pass into `multmatrix` to shear all child elements along the X-axis, Y-axis, or Z-axis in 3D.
[**matrix/m_translation**(v)](https://openhome.cc/eGossip/OpenSCAD/lib3x-m_translation.html) | generate a transformation matrix which can pass into multmatrix to translates (moves) its child elements along the specified vector.
[**maxtrix/m_transpose**(m)](https://openhome.cc/eGossip/OpenSCAD/lib3x-m_transpose.html) | transpose a matrix.
[**matrix/m_replace**(m, i, j, value)](https://openhome.cc/eGossip/OpenSCAD/lib3x-m_replace.html) | replace the aᵢⱼ element of a matrix.
## Point Transformation
@@ -245,10 +243,10 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp
--|--
[**ptf/ptf_bend**(size, point, radius, angle)](https://openhome.cc/eGossip/OpenSCAD/lib3x-ptf_bend.html) | transform a point inside a rectangle to a point of an arc.
[**ptf/ptf_circle**(size, point)](https://openhome.cc/eGossip/OpenSCAD/lib3x-ptf_circle.html) | transform a point inside a rectangle to a point inside a circle.
[**ptf/ptf_ring**(size, point, radius, angle = 360, twist = 0)](https://openhome.cc/eGossip/OpenSCAD/lib3x-ptf_ring.html) | transform a point inside a rectangle to a point of a ring.
[**ptf/ptf_ring**(size, point, radius[, angle, twist])](https://openhome.cc/eGossip/OpenSCAD/lib3x-ptf_ring.html) | transform a point inside a rectangle to a point of a ring.
[**ptf/ptf_rotate**(point, a, v)](https://openhome.cc/eGossip/OpenSCAD/lib3x-ptf_rotate.html) | rotate a point a degrees around the axis of the coordinate system or an arbitrary axis.
[**ptf/ptf_sphere**(size, point, radius, angle = [180, 360])](https://openhome.cc/eGossip/OpenSCAD/lib3x-ptf_sphere.html) | transform a point inside a rectangle to a point of a sphere.
[**ptf/ptf_torus**(size, point, radius, angle = [360, 360], twist = 0)](https://openhome.cc/eGossip/OpenSCAD/lib3x-ptf_torus.html) | transform a point inside a rectangle to a point of a torus.
[**ptf/ptf_sphere**(size, point, radius[, angle])](https://openhome.cc/eGossip/OpenSCAD/lib3x-ptf_sphere.html) | transform a point inside a rectangle to a point of a sphere.
[**ptf/ptf_torus**(size, point, radius[, angle, twist])](https://openhome.cc/eGossip/OpenSCAD/lib3x-ptf_torus.html) | transform a point inside a rectangle to a point of a torus.
[**ptf/ptf_x_twist**(size, point, angle)](https://openhome.cc/eGossip/OpenSCAD/lib3x-ptf_x_twist.html) | twist a point along the x-axis.
[**ptf/ptf_y_twist**(size, point, angle)](https://openhome.cc/eGossip/OpenSCAD/lib3x-ptf_y_twist.html) | twist a point along the y-axis.
@@ -258,11 +256,12 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp
--|--
[**triangle/tri_circumcenter**(shape_pts)](https://openhome.cc/eGossip/OpenSCAD/lib3x-tri_circumcenter.html) | return the circumcenter of a triangle.
[**triangle/tri_incenter**(shape_pts)](https://openhome.cc/eGossip/OpenSCAD/lib3x-tri_incenter.html) | return the incenter of a triangle.
[**triangle/tri_ear_clipping**(shape_pts, ret = "TRI_INDICES", ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-tri_ear_clipping.html) | triangulation by [ear clipping](https://en.wikipedia.org/wiki/Polygon_triangulation#Ear_clipping_method).
[**triangle/tri_delaunay**(points, ret = "TRI_INDICES")](https://openhome.cc/eGossip/OpenSCAD/lib3x-tri_delaunay.html) | Join a set of points to make a [Delaunay triangulation](https://en.wikipedia.org/wiki/Delaunay_triangulation).
[**triangle/tri_ear_clipping**(shape_pts[, ret, ...])](https://openhome.cc/eGossip/OpenSCAD/lib3x-tri_ear_clipping.html) | triangulation by [ear clipping](https://en.wikipedia.org/wiki/Polygon_triangulation#Ear_clipping_method).
[**triangle/tri_delaunay**(points[, ret])](https://openhome.cc/eGossip/OpenSCAD/lib3x-tri_delaunay.html) | Join a set of points to make a [Delaunay triangulation](https://en.wikipedia.org/wiki/Delaunay_triangulation).
[**triangle/tri_delaunay_indices**(d)](https://openhome.cc/eGossip/OpenSCAD/lib3x-tri_delaunay_indices.html) | return triangle indices from a delaunay object.
[**triangle/tri_delaunay_shapes**(d)](https://openhome.cc/eGossip/OpenSCAD/lib3x-tri_delaunay_shapes.html) | return triangle shapes from a delaunay object.
[**triangle/tri_delaunay_voronoi**(d)](https://openhome.cc/eGossip/OpenSCAD/lib3x-tri_delaunay_voronoi.html) | return [Voronoi](https://en.wikipedia.org/wiki/Voronoi_diagram) cells from a delaunay object.
[**triangle/tri_subdivide**(shape_pts[, n])](https://openhome.cc/eGossip/OpenSCAD/lib3x-tri_subdivide.html) | subdivide a triangle `n` times.
----
@@ -270,10 +269,10 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp
Signature | Description
--|--
[**turtle/footprints2**(cmds, start = [0, 0])](https://openhome.cc/eGossip/OpenSCAD/lib3x-footprints2.html) | drive a turtle with `["forward", length]` or `["turn", angle]`. This function is intended to use a turtle to imitate freehand drawing.
[**turtle/footprints3**(cmds, start = [0, 0, 0])](https://openhome.cc/eGossip/OpenSCAD/lib3x-footprints3.html) | a 3D verion of `footprint2`.
[**turtle/lsystem2**(axiom, rules, n, angle, leng = 1, heading = 0, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-lsystem2.html) | 2D implementation of [L-system](https://en.wikipedia.org/wiki/L-system).
[**turtle/lsystem3**(axiom, rules, n, angle, leng = 1, heading = 0, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-lsystem3.html) | 3D implementation of [L-system](https://en.wikipedia.org/wiki/L-system).
[**turtle/footprints2**(cmds[, start])](https://openhome.cc/eGossip/OpenSCAD/lib3x-footprints2.html) | drive a turtle with `["forward", length]` or `["turn", angle]`. This function is intended to use a turtle to imitate freehand drawing.
[**turtle/footprints3**(cmds[, start])](https://openhome.cc/eGossip/OpenSCAD/lib3x-footprints3.html) | a 3D verion of `footprint2`.
[**turtle/lsystem2**(axiom, rules, n, angle[, leng, heading, ...])](https://openhome.cc/eGossip/OpenSCAD/lib3x-lsystem2.html) | 2D implementation of [L-system](https://en.wikipedia.org/wiki/L-system).
[**turtle/lsystem3**(axiom, rules, n, angle[, leng, heading, ...])](https://openhome.cc/eGossip/OpenSCAD/lib3x-lsystem3.html) | 3D implementation of [L-system](https://en.wikipedia.org/wiki/L-system).
[**turtle/t2d**(t, cmd, point, angle, leng)](https://openhome.cc/eGossip/OpenSCAD/lib3x-t2d.html) | an implementation of Turtle Graphics.
[**turtle/t3d**(t, cmd, point, unit_vectors, leng, angle)](https://openhome.cc/eGossip/OpenSCAD/lib3x-t3d.html) | a 3D version of `t2d`.
@@ -281,40 +280,40 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp
Signature | Description
--|--
[**voxel/vx_ascii**(char, center = false, invert = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_ascii.html) | generate 8x8 voxel points of printable ASCII characters (codes 32dec to 126dec).
[**voxel/vx_ascii**(char[, center, invert])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_ascii.html) | generate 8x8 voxel points of printable ASCII characters (codes 32dec to 126dec).
[**voxel/vx_bezier**(p1, p2, p3, p4)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_bezier.html) | return voxel-by-voxel points of Bézier Curve.
[**voxel/vx_circle**(radius, filled = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_circle.html) | return points that can be used to draw a voxel-style circle.
[**voxel/vx_contour**(points, sorted = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_contour.html) | return the contour which encircles the area.
[**voxel/vx_curve**(points, tightness = 0)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_curve.html) | the curve is drawn only from the 2nd control point to the second-last control point.
[**voxel/vx_cylinder**(r, h, filled = false, thickness = 1)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_cylinder.html) | return points that can be used to draw a voxel-style cylinder.
[**voxel/vx_circle**(radius[, filled])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_circle.html) | return points that can be used to draw a voxel-style circle.
[**voxel/vx_contour**(points[, sorted])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_contour.html) | return the contour which encircles the area.
[**voxel/vx_curve**(points[, tightness])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_curve.html) | the curve is drawn only from the 2nd control point to the second-last control point.
[**voxel/vx_cylinder**(r, h[, filled, thickness])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_cylinder.html) | return points that can be used to draw a voxel-style cylinder.
[**voxel/vx_difference**(points1, points2)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_difference.html) | create a difference of two lists of points.
[**voxel/vx_from**(binaries, center = false, invert = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_from.html) | given a list of 0s and 1s that represent a black-and-white image. This function translates them into voxel points.
[**voxel/vx_gray**(levels, center = false, invert = false, normalize = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_gray.html) | given a list of numbers (0 ~ 255) that represent a gray image. This function translates them into a list of `[x, y, level]`s.
[**voxel/vx_from**(binaries[, center, invert])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_from.html) | given a list of 0s and 1s that represent a black-and-white image. This function translates them into voxel points.
[**voxel/vx_gray**(levels[, center, invert, normalize])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_gray.html) | given a list of numbers (0 ~ 255) that represent a gray image. This function translates them into a list of `[x, y, level]`s.
[**voxel/vx_intersection**(points1, points2)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_intersection.html) | create an intersection of two lists of points.
[**voxel/vx_line**(p1, p2)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_line.html) | given two points. it returns points that can be used to draw a voxel-style line.
[**voxel/vx_polygon**(points, filled = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_polygon.html) | return points that can be used to draw a voxel-style polygon.
[**voxel/vx_polygon**(points[, filled])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_polygon.html) | return points that can be used to draw a voxel-style polygon.
[**voxel/vx_polyline**(points)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_polyline.html) | return points that can be used to draw a voxel-style polyline.
[**voxel/vx_sphere**(radius, filled = false, thickness = 1)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_sphere.html) | return points that can be used to draw a voxel-style sphere.
[**voxel/vx_sphere**(radius[, filled, thickness])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_sphere.html) | return points that can be used to draw a voxel-style sphere.
[**voxel/vx_union**(points1, points2)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vx_union.html) | create a union of two lists of points.
## Part
Signature | Description
--|--
[**part/cone**(radius, length = 0, spacing = 0.5, angle = 50, void = false, ends = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-cone.html) | create a cone for rotatable models.
[**part/connector_peg**(radius, height, spacing = 0.5, void = false, ends = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-connector_peg.html) | create a connector peg.
[**part/joint_T**(shaft_r, shaft_h, t_leng, thickness, spacing = 0.5, center = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-joint_T.html) | create a joint_T for rotatable models.
[**part/cone**(radius[, length, spacing, angle, void, ends])](https://openhome.cc/eGossip/OpenSCAD/lib3x-cone.html) | create a cone for rotatable models.
[**part/connector_peg**(radius, height[, spacing, void, ends])](https://openhome.cc/eGossip/OpenSCAD/lib3x-connector_peg.html) | create a connector peg.
[**part/joint_T**(shaft_r, shaft_h, t_leng, thickness,[ spacing, center])](https://openhome.cc/eGossip/OpenSCAD/lib3x-joint_T.html) | create a joint_T for rotatable models.
## Surface
Signature | Description
--|--
[**surface/sf_bend**(levels, radius, thickness, depth, angle = 180, invert = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_bend.html) | bend a photo.
[**surface/sf_ring**(levels, radius, thickness, depth, angle = 360, twist = 0, invert = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_ring.html) | turn a photo into a ring.
[**surface/sf_solidify**(surface1, surface2, slicing = "SLASH")](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_solidify.html) | solidify two square surfaces.
[**surface/sf_sphere**(levels, radius, thickness, depth, angle = [180, 360], invert = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_sphere.html) | map a photo onto a sphere.
[**surface/sf_square**(levels, thickness, depth, x_twist = 0, y_twist = 0, invert = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_square.html) | turn a photo into a twistable square.
[**surface/sf_torus**(levels, radius, thickness, depth, angle = [360, 360], twist = 0, invert = false)](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_torus.html) | turn a photo to a torus.
[**surface/sf_bend**(levels, radius, thickness, depth[, angle, invert])](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_bend.html) | bend a photo.
[**surface/sf_ring**(levels, radius, thickness, depth[, angle, twist, invert])](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_ring.html) | turn a photo into a ring.
[**surface/sf_solidify**(surface1, surface2[, slicing])](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_solidify.html) | solidify two square surfaces.
[**surface/sf_sphere**(levels, radius, thickness, depth[, angle, invert)]](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_sphere.html) | map a photo onto a sphere.
[**surface/sf_square**(levels, thickness, depth[, x_twist, y_twist, invert])](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_square.html) | turn a photo into a twistable square.
[**surface/sf_torus**(levels, radius, thickness, depth[, angle, twist, invert])](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_torus.html) | turn a photo to a torus.
[**surface/sf_curve**(levels, curve_path, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_curve.html) | curve a photo.
[**surface/sf_splines**(ctrl_pts, row_spline, column_spline)](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_splines.html) | generalized-spline surface.
[**surface/sf_thicken**(points, thickness, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-sf_thicken.html) | thicken a surface.
@@ -325,38 +324,63 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp
Signature | Description
--|--
[**noise/nz_cell**(points, p, dist = "euclidean")](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_cell.html) | an implementation of [Worley noise](https://en.wikipedia.org/wiki/Worley_noise).
[**noise/nz_perlin1**(x, seed = undef)](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_perlin1.html) | return the 1D [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) value at the x coordinate.
[**noise/nz_perlin1s**(xs, seed = undef)](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_perlin1s.html) | return 1D [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) values at x coordinates.
[**noise/nz_perlin2**(x, y, seed = undef)](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_perlin2.html) | return the 2D [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) value at the (x, y) coordinate.
[**noise/nz_perlin2s**(points, seed = undef)](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_perlin2s.html) | return 2D [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) values at (x, y) coordinates.
[**noise/nz_perlin3**(x, y, z, seed = undef)](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_perlin3.html) | return the 3D [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) value at the (x, y, z) coordinate.
[**noise/nz_perlin3s**(points, seed = undef)](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_perlin3s.html) | return 3D [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) values at (x, y, z) coordinates.
[**noise/nz_worley2**(x, y, seed = undef, grid_w = 10, dist = "euclidean")](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_worley2.html) | return the 2D [Worley noise](https://en.wikipedia.org/wiki/Worley_noise) value at the (x, y) coordinate.
[**noise/nz_worley2s**(points, seed = undef, grid_w = 10, dist = "euclidean")](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_worley2s.html) | return 2D [Worley noise](https://en.wikipedia.org/wiki/Worley_noise) values at (x, y) coordinates.
[**noise/nz_worley3**(x, y, z, seed = undef, tile_w = 10, dist = "euclidean")](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_worley3.html) | return the 3D [Worley noise](https://en.wikipedia.org/wiki/Worley_noise) value at the (x, y, z) coordinate.
[**noise/nz_worley3s**(points, seed = undef, tile_w = 10, dist = "euclidean")](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_worley3s.html) | return 3D [Worley noise](https://en.wikipedia.org/wiki/Worley_noise) values at (x, y, z) coordinates.
[**noise/nz_cell**(points, p[, dist])](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_cell.html) | an implementation of [Worley noise](https://en.wikipedia.org/wiki/Worley_noise).
[**noise/nz_perlin1**(x[, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_perlin1.html) | return the 1D [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) value at the x coordinate.
[**noise/nz_perlin1s**(xs[, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_perlin1s.html) | return 1D [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) values at x coordinates.
[**noise/nz_perlin2**(x, y[, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_perlin2.html) | return the 2D [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) value at the (x, y) coordinate.
[**noise/nz_perlin2s**(points[, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_perlin2s.html) | return 2D [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) values at (x, y) coordinates.
[**noise/nz_perlin3**(x, y, z[, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_perlin3.html) | return the 3D [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) value at the (x, y, z) coordinate.
[**noise/nz_perlin3s**(points[, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_perlin3s.html) | return 3D [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) values at (x, y, z) coordinates.
[**noise/nz_worley2**(x, y[, seed, grid_w, dist])](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_worley2.html) | return the 2D [Worley noise](https://en.wikipedia.org/wiki/Worley_noise) value at the (x, y) coordinate.
[**noise/nz_worley2s**(points[, seed, grid_w, dist])](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_worley2s.html) | return 2D [Worley noise](https://en.wikipedia.org/wiki/Worley_noise) values at (x, y) coordinates.
[**noise/nz_worley3**(x, y, z[, seed, grid_w, dist])](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_worley3.html) | return the 3D [Worley noise](https://en.wikipedia.org/wiki/Worley_noise) value at the (x, y, z) coordinate.
[**noise/nz_worley3s**(points[, seed, grid_w, dist])](https://openhome.cc/eGossip/OpenSCAD/lib3x-nz_worley3s.html) | return 3D [Worley noise](https://en.wikipedia.org/wiki/Worley_noise) values at (x, y, z) coordinates.
## Voronoi
Signature | Description
--|--
[**voronoi/vrn2_cells_from**(points)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vrn2_cells_from.html) | create cell shapes of [Voronoi](https://en.wikipedia.org/wiki/Voronoi_diagram) from a list of points.
[**voronoi/vrn2_cells_space**(size, grid_w, seed = undef)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vrn2_cells_space.html) | create cell shapes of [Voronoi](https://en.wikipedia.org/wiki/Voronoi_diagram) in the first quadrant.
[**voronoi/vrn2_from**(points, spacing = 1, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vrn2_from.html) | create a [Voronoi](https://en.wikipedia.org/wiki/Voronoi_diagram) from a list of points.
[**voronoi/vrn2_space**(size, grid_w, seed = undef, spacing = 1, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vrn2_space.html) | create a [Voronoi](https://en.wikipedia.org/wiki/Voronoi_diagram) in the first quadrant.
[**voronoi/vrn3_from**(points, spacing = 1)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vrn3_from.html) | create a 3D version of [Voronoi](https://en.wikipedia.org/wiki/Voronoi_diagram).
[**voronoi/vrn3_space**(size, grid_w, seed = undef, spacing = 1)](https://openhome.cc/eGossip/OpenSCAD/lib3x-vrn3_space.html) | create a [Voronoi](https://en.wikipedia.org/wiki/Voronoi_diagram) in the first octant.
[**voronoi/vrn2_cells_space**(size, grid_w[, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vrn2_cells_space.html) | create cell shapes of [Voronoi](https://en.wikipedia.org/wiki/Voronoi_diagram) in the first quadrant.
[**voronoi/vrn2_from**(points[, spacing, ...])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vrn2_from.html) | create a [Voronoi](https://en.wikipedia.org/wiki/Voronoi_diagram) from a list of points.
[**voronoi/vrn2_space**(size, grid_w[, seed, spacing, ...])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vrn2_space.html) | create a [Voronoi](https://en.wikipedia.org/wiki/Voronoi_diagram) in the first quadrant.
[**voronoi/vrn3_from**(points[, spacing])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vrn3_from.html) | create a 3D version of [Voronoi](https://en.wikipedia.org/wiki/Voronoi_diagram).
[**voronoi/vrn3_space**(size, grid_w[, seed, spacing])](https://openhome.cc/eGossip/OpenSCAD/lib3x-vrn3_space.html) | create a [Voronoi](https://en.wikipedia.org/wiki/Voronoi_diagram) in the first octant.
## Maze
Signature | Description
--|--
[**maze/mz_square_cells**(rows, columns, start = [0, 0], ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_square_cells.html) | return cell data of a square maze.
[**maze/mz_square**([rows, columns, start, init_cells, x_wrapping, y_wrapping, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_square.html) | return cell data of a square maze.
[**maze/mz_square_get**(cell, query)](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_square_get.html) | a helper for getting data from a square-maze cell.
[**maze/mz_square_walls**(cells, rows, columns, cell_width, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_square_walls.html) | a helper for creating square wall data from maze cells.
[**maze/mz_hex_walls**(cells, rows, columns, cell_radius, ...)](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_hex_walls.html) | a helper for creating hex wall data from maze cells.
[**maze/mz_squarewalls**(cells, cell_width[, left_border, bottom_border])](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_squarewalls.html) | a helper for creating square wall data from maze cells.
[**maze/mz_hexwalls**(cells, cell_radius[, left_border, bottom_border])](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_hexwalls.html) | a helper for creating hex wall data from maze cells.
[**maze/mz_square_initialize**(rows, columns, mask)](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_square_initialize.html) | a helper for initializing cell data of a maze.
[**maze/mz_hamiltonian**(rows, columns, start = [0, 0], seed = undef)](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_hamiltonian.html) | create a hamiltonian path from a maze.
[**maze/mz_theta_cells**(rows, beginning_number, start = [0, 0], seed = undef)](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_theta_cells.html) | return cell data of a theta maze.
[**maze/mz_theta_get**(cell, query)](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_theta_get.html) | a helper for getting data from a theta-maze cell.
[**maze/mz_hamiltonian**(rows, columns[, start, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_hamiltonian.html) | create a hamiltonian path from a maze.
[**maze/mz_theta_cells**(rows, beginning_number[, start, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_theta_cells.html) | return cell data of a theta maze.
[**maze/mz_theta**(rings, beginning_number[, start, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_theta.html) | return cell data of a theta maze.
[**maze/mz_tiles**(cells[, left_border, bottom_border])](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_tiles.html) | turn maze cells into tiles.
## Polyhedra
Signature | Description
--|--
[**polyhedra/star**([outerRadius, innerRadius, height, n])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_star.html) | create a 3D star.
[**polyhedra/polar_zonohedra**(n[, theta])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_polar_zonohedra.html) | create a [polar zonohedra](https://mathworld.wolfram.com/PolarZonohedron.html).
[**polyhedra/tetrahedron**(radius[, detail])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_tetrahedron.html) | create a tetrahedron.
[**polyhedra/hexahedron**(radius[, detail])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_hexahedron.html) | create a hexahedron.
[**polyhedra/octahedron**(radius[, detail])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_octahedron.html) | create a octahedron.
[**polyhedra/dodecahedron**(radius[, detail])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_dodecahedron.html) | create a dodecahedron.
[**polyhedra/icosahedron**(radius[, detail])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_icosahedron.html) | create a icosahedron.
[**polyhedra/superellipsoid**(radius[, detail])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_superellipsoid.html) | create a superellipsoid.
## Point Picking
Signature | Description
--|--
[**pp/pp_disk**(radius, value_count[, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-pp_disk.html) | generate random points over a disk.
[**pp/pp_sphere**(radius, value_count[, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-pp_sphere.html) | pick random points on the surface of a sphere.
[**pp/pp_poisson2**(size, r[, start, k, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-pp_poisson2.html) | perform poisson sampling over a rectangle area.
[**pp/pp_poisson3**(size, r[, start, k, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-pp_poisson3.html) | perform poisson sampling over a cube space.
----

View File

@@ -1,5 +1,121 @@
> Version numbers are based on [Semantic Versioning](https://semver.org/).
# v3.3
## Deprecated
Signature | Description
--|--
**rails2sections** | use [`maxtrix/m_transpose`](https://openhome.cc/eGossip/OpenSCAD/lib3x-m_transpose.html) instead.
**util/sort** | use [`util/sorted`](https://openhome.cc/eGossip/OpenSCAD/lib3x-sorted.html) instead.
**util/has** | use [`util/contains`](https://openhome.cc/eGossip/OpenSCAD/lib3x-contains.html) instead.
**util/bsearch** | use [`util/binary_search`](https://openhome.cc/eGossip/OpenSCAD/lib3x-binary_search.html) instead.
**maze/mz_square_cells** | use [`maze/mz_square`](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_square.html).
**maze/mz_square_walls** | use [`maze/mz_squarewalls`](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_squarewalls.html) instead.
**maze/mz_hex_walls** | use [`maze/mz_hexwalls`](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_hexwalls.html) instead.
**maze/mz_theta_cells** | use [`maze/mz_theta`](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_theta.html) instead.
## Util
Signature | Description
--|--
[**util/sorted**(lt[, cmp, key, reverse])](https://openhome.cc/eGossip/OpenSCAD/lib3x-sorted.html) | sort a list.
[**util/contains**(lt, elem)](https://openhome.cc/eGossip/OpenSCAD/lib3x-contains.html) | return `true` if `lt` contains `elem`.
[**util/binary_search**(sorted, target[, lo, hi])](https://openhome.cc/eGossip/OpenSCAD/lib3x-binary_search.html) | search a value in a sorted list.
[**util/count**(lt, test)](https://openhome.cc/eGossip/OpenSCAD/lib3x-count.html) | return the number of times `test` return `true` in the list.
## Matrix
Signature | Description
--|--
[**matrix/m_replace**(m, i, j, value)](https://openhome.cc/eGossip/OpenSCAD/lib3x-m_replace.html) | replace the aᵢⱼ element of a matrix.
## Triangle
Signature | Description
--|--
[**triangle/tri_subdivide**(shape_pts[, n])](https://openhome.cc/eGossip/OpenSCAD/lib3x-tri_subdivide.html) | subdivide a triangle `n` times.
## Point Picking
Signature | Description
--|--
[**pp/pp_disk**(radius, value_count[, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-pp_disk.html) | generate random points over a disk.
[**pp/pp_sphere**(radius, value_count[, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-pp_sphere.html) | pick random points on the surface of a sphere.
[**pp/pp_poisson2**(size, r[, start, k, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-pp_poisson2.html) | perform poisson sampling over a rectangle area.
[**pp/pp_poisson3**(size, r[, start, k, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-pp_poisson3.html) | perform poisson sampling over a cube space.
## Maze
Signature | Description
--|--
[**maze/mz_square**([rows, columns, start, init_cells, x_wrapping, y_wrapping, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_square.html) | return cell data of a square maze.
[**maze/mz_squarewalls**(cells, cell_width[, left_border, bottom_border])](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_squarewalls.html) | a helper for creating square wall data from maze cells.
[**maze/mz_hexwalls**(cells, cell_radius[, left_border, bottom_border])](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_hexwalls.html) | a helper for creating hex wall data from maze cells.
[**maze/mz_theta**(rings, beginning_number[, start, seed])](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_theta.html) | return cell data of a theta maze.
[**maze/mz_tiles**(cells[, left_border, bottom_border])](https://openhome.cc/eGossip/OpenSCAD/lib3x-mz_tiles.html) | turn maze cells into tiles.
# v3.2.2
Maintenance release: bug fixes & performance improvements.
# v3.2.1
Maintenance release: bug fixes & performance improvements.
# v3.2
## Deprecated:
Name | Description
--|--
**paths2sections** | use **rails2sections** instead.
**hull_polyline2d**, **hull_polyline3d** | use **polyline_join** instead.
**shape_starburst**, **shape_pentagram** | use **shape_star** instead.
**starburst** | use **polyhedra/star** instead.
## New parameters:
- `angle_between` adds `ccw`.
## New modules/functions:
### Matrix
## 2D/3D Function
Signature | Description
--|--
[**rails2sections**(rails)](https://openhome.cc/eGossip/OpenSCAD/lib3x-rails2sections.html) | create sections along rails.
## Transformation
Signature | Description
--|--
[**select**(i)](https://openhome.cc/eGossip/OpenSCAD/lib3x-select.html) | select module objects.
[**polyline_join**(points)](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyline_join.html) | place a join on each point. Hull each pair of joins and union all convex hulls.
## 2D Shape
Signature | Description
--|--
[**shape_star**([outer_radius, inner_radius, n])](https://openhome.cc/eGossip/OpenSCAD/lib3x-shape_star.html) | create a 2D star.
## Polyhedra
Signature | Description
--|--
[**polyhedra/star**([outerRadius, innerRadius, height, n])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_star.html) | create a 3D star.
[**polyhedra/polar_zonohedra**(n[, theta])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_polar_zonohedra.html) | create a [polar zonohedra](https://mathworld.wolfram.com/PolarZonohedron.html).
[**polyhedra/tetrahedron**(radius[, detail])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_tetrahedron.html) | create a tetrahedron.
[**polyhedra/hexahedron**(radius[, detail])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_hexahedron.html) | create a hexahedron.
[**polyhedra/octahedron**(radius[, detail])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_octahedron.html) | create a octahedron.
[**polyhedra/dodecahedron**(radius[, detail])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_dodecahedron.html) | create a dodecahedron.
[**polyhedra/icosahedron**(radius[, detail])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_icosahedron.html) | create a icosahedron.
[**polyhedra/superellipsoid**(radius[, detail])](https://openhome.cc/eGossip/OpenSCAD/lib3x-polyhedra_superellipsoid.html) | create a superellipsoid.
# v3.1
## Deprecated:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

View File

@@ -1,6 +1,6 @@
# along_with
Puts children along the given path. If there's only one child, it will put the child for each point.
If you want to place objects precisely, their points and angles are required. When you have only points or you don't care their precise angles, `along_with` puts children along the given path. If there's only one child, it will put the child for each point.
## Parameters
@@ -12,8 +12,8 @@ Puts children along the given path. If there's only one child, it will put the c
## Examples
use <along_with.scad>;
use <shape_circle.scad>;
use <along_with.scad>
use <shape_circle.scad>
$fn = 24;
@@ -24,8 +24,8 @@ Puts children along the given path. If there's only one child, it will put the c
![along_with](images/lib3x-along_with-1.JPG)
use <along_with.scad>;
use <shape_circle.scad>;
use <along_with.scad>
use <shape_circle.scad>
$fn = 24;
@@ -44,8 +44,8 @@ Puts children along the given path. If there's only one child, it will put the c
![along_with](images/lib3x-along_with-2.JPG)
use <along_with.scad>;
use <golden_spiral.scad>;
use <along_with.scad>
use <golden_spiral.scad>
pts_angles = golden_spiral(
from = 5,
@@ -57,32 +57,32 @@ Puts children along the given path. If there's only one child, it will put the c
angles = [for(p_a = pts_angles) p_a[1]];
along_with(points, angles)
rotate([90, 0, 0])
linear_extrude(1, center = true)
text("A", valign = "center", halign = "center");
rotate([90, 0, 0])
linear_extrude(1, center = true)
text("A", valign = "center", halign = "center");
![along_with](images/lib3x-along_with-3.JPG)
use <bezier_curve.scad>;
use <along_with.scad>;
use <bezier_curve.scad>
use <along_with.scad>
module scales() {
module one_scale() {
rotate([0, 60, 0])
linear_extrude(1, center = true)
scale([2, 1])
circle(1.25, $fn = 24);
linear_extrude(1, center = true)
scale([2, 1])
circle(1.25, $fn = 24);
}
for(a = [0:30:330]) {
rotate(a)
translate([5, 0, 0])
one_scale();
rotate(a + 15)
translate([5, 0, 1.75])
one_scale();
}
translate([5, 0, 0])
one_scale();
rotate(a + 15)
translate([5, 0, 1.75])
one_scale();
}
}
t_step = 0.01;

View File

@@ -11,7 +11,7 @@ Returns the angle between two vectors.
## Examples
use <angle_between.scad>;
use <angle_between.scad>
assert(angle_between([0, 1], [1, 0]) == 90);
assert(angle_between([0, 1, 0], [1, 0, 0]) == 90);

View File

@@ -13,7 +13,7 @@ Creates an arc. You can pass a 2 element vector to define the central angle. Its
## Examples
use <arc.scad>;
use <arc.scad>
$fn = 24;
arc(radius = 20, angle = [45, 290], width = 2);
@@ -21,7 +21,7 @@ Creates an arc. You can pass a 2 element vector to define the central angle. Its
![arc](images/lib3x-arc-1.JPG)
use <arc.scad>;
use <arc.scad>
$fn = 24;
arc(radius = 20, angle = [45, 290], width = 2, width_mode = "LINE_OUTWARD");
@@ -29,7 +29,7 @@ Creates an arc. You can pass a 2 element vector to define the central angle. Its
![arc](images/lib3x-arc-2.JPG)
use <arc.scad>;
use <arc.scad>
$fn = 24;
arc(radius = 20, angle = [45, 290], width = 2, width_mode = "LINE_INWARD");

View File

@@ -11,21 +11,23 @@ Creates an arc path. You can pass a 2 element vector to define the central angle
## Examples
use <arc_path.scad>;
use <hull_polyline2d.scad>;
$fn = 24;
points = arc_path(radius = 20, angle = [45, 290]);
hull_polyline2d(points, width = 2);
use <arc_path.scad>
use <polyline_join.scad>
$fn = 24;
points = arc_path(radius = 20, angle = [45, 290]);
polyline_join(points)
circle(1);
![arc_path](images/lib3x-arc_path-1.JPG)
use <arc_path.scad>;
use <hull_polyline2d.scad>;
use <arc_path.scad>
use <polyline_join.scad>
$fn = 24;
points = arc_path(radius = 20, angle = 135);
hull_polyline2d(points, width = 2);
polyline_join(points)
circle(1);
![arc_path](images/lib3x-arc_path-2.JPG)

View File

@@ -16,8 +16,8 @@ An `init_angle` less than 180 degrees is not recommended because the function us
## Examples
use <polyline2d.scad>;
use <archimedean_spiral.scad>;
use <polyline2d.scad>
use <archimedean_spiral.scad>
points_angles = archimedean_spiral(
arm_distance = 10,
@@ -32,7 +32,7 @@ An `init_angle` less than 180 degrees is not recommended because the function us
![archimedean_spiral](images/lib3x-archimedean_spiral-1.JPG)
use <archimedean_spiral.scad>;
use <archimedean_spiral.scad>
points_angles = archimedean_spiral(
arm_distance = 10,
@@ -47,22 +47,22 @@ An `init_angle` less than 180 degrees is not recommended because the function us
}
![archimedean_spiral](images/lib3x-archimedean_spiral-2.JPG)
include <archimedean_spiral.scad>;
t = "3.141592653589793238462643383279502884197169399375105820974944592307816406286";
points = archimedean_spiral(
use <archimedean_spiral.scad>
t = "3.141592653589793238462643383279502884197169399375105820974944592307816406286";
points_angles = archimedean_spiral(
arm_distance = 15,
init_angle = 450,
point_distance = 12,
num_of_points = len(t)
);
for(i = [0: len(points) - 1]) {
translate(points[i][0])
rotate(points[i][1] + 90)
text(t[i], valign = "center", halign = "center");
for(i = [0: len(points_angles) - 1]) {
translate(points_angles[i][0])
rotate(points_angles[i][1] + 90)
text(t[i], valign = "center", halign = "center");
}
![archimedean_spiral](images/lib3x-archimedean_spiral-3.JPG)

View File

@@ -14,7 +14,7 @@ When using this module, you should use points to represent the 2D shape. If your
## Examples
use <archimedean_spiral_extrude.scad>;
use <archimedean_spiral_extrude.scad>
shape_pts = [
[5, 0],

View File

@@ -14,8 +14,8 @@ Creates visually even spacing of n points on the surface of the sphere. Successi
## Examples
use <bauer_spiral.scad>;
use <hull_polyline3d.scad>;
use <bauer_spiral.scad>
use <polyline_join.scad>
n = 200;
radius = 20;
@@ -26,7 +26,8 @@ Creates visually even spacing of n points on the surface of the sphere. Successi
sphere(1, $fn = 24);
}
hull_polyline3d(pts, 1);
polyline_join(pts)
sphere(.5);
![bauer_spiral](images/lib3x-bauer_spiral-1.JPG)

View File

@@ -12,7 +12,7 @@ Bends a 3D object into an arc shape.
The containing cube of the target object should be laid down on the x-y plane. For example.
use <bend.scad>;
use <bend.scad>
x = 9.25;
y = 9.55;
@@ -25,7 +25,7 @@ The containing cube of the target object should be laid down on the x-y plane. F
Once you have the size of the containing cube, you can use it as the `size` argument of the `bend` module.
use <bend.scad>;
use <bend.scad>
x = 9.25;
y = 9.55;
@@ -34,21 +34,22 @@ Once you have the size of the containing cube, you can use it as the `size` argu
*cube(size = [x, y, z]);
bend(size = [x, y, z], angle = 270)
linear_extrude(z) text("A");
linear_extrude(z)
text("A");
![bend](images/lib3x-bend-2.JPG)
The arc shape is smoother if the `frags` value is larger.
use <bend.scad>;
use <bend.scad>
x = 9.25;
y = 9.55;
z = 1;
bend(size = [x, y, z], angle = 270, frags = 360)
linear_extrude(z)
text("A");
linear_extrude(z)
text("A");
![bend](images/lib3x-bend-3.JPG)

View File

@@ -25,7 +25,7 @@ The containing square of the target shape should be laid down on the x-y plane.
Once you have the size of the containing square, you can use it as the `size` argument of the `bend_extrude` module.
use <bend_extrude.scad>;
use <bend_extrude.scad>
x = 9.25;
y = 9.55;

View File

@@ -1,21 +1,21 @@
# bezier_curve
Given a set of control points, the `bezier_curve` function returns points of the Bézier path. Combined with the `polyline`, `polyline3d` or `hull_polyline3d` module defined in my library, you can create a Bézier curve.
Given a set of control points, the `bezier_curve` function returns points of the Bézier path.
## Parameters
- `t_step` : The distance between two points of the Bézier path.
- `t_step` : 0 ~ 1. Control the distance between two points of the Bézier path.
- `points` : A list of `[x, y]` or `[x, y, z]` control points.
## Examples
If you have four control points and combine with the `hull_polyline3d` module:
If you have four control points:
use <hull_polyline3d.scad>;
use <bezier_curve.scad>;
use <polyline_join.scad>
use <bezier_curve.scad>
t_step = 0.05;
width = 2;
radius = 2;
p0 = [0, 0, 0];
p1 = [40, 60, 35];
@@ -26,6 +26,7 @@ If you have four control points and combine with the `hull_polyline3d` module:
[p0, p1, p2, p3]
);
hull_polyline3d(points, width);
polyline_join(points)
sphere(radius);
![bezier_curve](images/lib3x-bezier_curve-1.JPG)

View File

@@ -12,8 +12,8 @@ Given a path, the `bezier_smooth` function uses bazier curves to smooth all corn
## Examples
use <hull_polyline3d.scad>;
use <bezier_smooth.scad>;
use <polyline_join.scad>
use <bezier_smooth.scad>
width = 2;
round_d = 15;
@@ -25,19 +25,19 @@ Given a path, the `bezier_smooth` function uses bazier curves to smooth all corn
[-10, -10, 50]
];
hull_polyline3d(
path_pts, width
);
polyline_join(path_pts)
sphere(width / 2);
smoothed_path_pts = bezier_smooth(path_pts, round_d);
color("red") translate([30, 0, 0]) hull_polyline3d(
smoothed_path_pts, width
);
color("red")
translate([30, 0, 0])
polyline_join(smoothed_path_pts)
sphere(width / 2);
![bezier_smooth](images/lib3x-bezier_smooth-1.JPG)
use <bezier_smooth.scad>;
use <bezier_smooth.scad>
round_d = 10;
@@ -51,6 +51,7 @@ Given a path, the `bezier_smooth` function uses bazier curves to smooth all corn
smoothed_path_pts = bezier_smooth(path_pts, round_d, closed = true);
translate([50, 0, 0]) polygon(smoothed_path_pts);
translate([50, 0, 0])
polygon(smoothed_path_pts);
![bezier_smooth](images/lib3x-bezier_smooth-2.JPG)

View File

@@ -12,7 +12,7 @@ Move 2D outlines outward or inward by a given amount. Each point of the offsette
## Examples
use <bijection_offset.scad>;
use <bijection_offset.scad>
shape = [
[15, 0],
@@ -22,19 +22,19 @@ Move 2D outlines outward or inward by a given amount. Each point of the offsette
[-15, 0]
];
color("red") polygon(bijection_offset(shape, 3));
color("red") polygon(bijection_offset(shape, 3));
color("orange") polygon(bijection_offset(shape, 2));
color("yellow") polygon(bijection_offset(shape, 1));
color("green") polygon(shape);
color("blue") polygon(bijection_offset(shape, -1));
color("green") polygon(shape);
color("blue") polygon(bijection_offset(shape, -1));
color("indigo") polygon(bijection_offset(shape, -2));
color("purple") polygon(bijection_offset(shape, -3));
![bijection_offset](images/lib3x-bijection_offset-1.JPG)
use <bijection_offset.scad>;
use <path_extrude.scad>;
use <bezier_curve.scad>;
use <bijection_offset.scad>
use <path_extrude.scad>
use <bezier_curve.scad>
shape = [
[5, 0],
@@ -43,7 +43,6 @@ Move 2D outlines outward or inward by a given amount. Each point of the offsette
[-5, 0]
];
offsetted = bijection_offset(shape, 1);
offsetted2 = bijection_offset(shape, 2);
offsetted3 = bijection_offset(shape, 3);

View File

@@ -0,0 +1,28 @@
# binary_search
A general-purpose function to search a value in a sorted list.
**Since:** 3.3
## Parameters
- `sorted` : The sorted list.
- `target` : The target element or a function literal that returns a negative integer, zero, or a positive integer as the element is less than, equal to, or greater than the value you want to search.
- `lo` : Default to 0. The lower bound to be searched.
- `hi` : Default to the end of the list. The higher bound to be searched.
## Examples
use <util/sorted.scad>
use <util/binary_search.scad>
points = [[1, 1], [3, 4], [7, 2], [5, 2]];
lt = sorted(points); // [[1, 1], [3, 4], [5, 2], [7, 2]]
assert(binary_search(lt, [7, 2]) == 3);
xIs5 = function(elem) elem[0] - 5;
assert(binary_search(lt, xIs5) == 2);
yIs4 = function(elem) elem[1] - 4;
assert(binary_search(lt, yIs4) == 1);

View File

@@ -12,14 +12,14 @@ Creates a box (container) from a 2D object.
## Examples
use <box_extrude.scad>;
use <box_extrude.scad>
box_extrude(height = 30, shell_thickness = 2)
circle(r = 30);
![box_extrude](images/lib3x-box_extrude-1.JPG)
use <box_extrude.scad>;
use <box_extrude.scad>
box_extrude(height = 30, shell_thickness = 2)
text("XD", size = 40, font = "Cooper Black");

View File

@@ -11,8 +11,8 @@ The `bsearch` function is a general-purpose function to search a value in a list
## Examples
use <util/sort.scad>;
use <util/bsearch.scad>;
use <util/sort.scad>
use <util/bsearch.scad>
points = [[1, 1], [3, 4], [7, 2], [5, 2]];
sorted = sort(points, by = "vt"); // [[1, 1], [5, 2], [7, 2], [3, 4]]

View File

@@ -1,6 +1,6 @@
# bspline_curve
[B-spline](https://en.wikipedia.org/wiki/B-spline) interpolation using [de Boor's algorithm](https://en.wikipedia.org/wiki/De_Boor%27s_algorithm). This function returns points of the B-spline path. Combined with the `polyline`, `polyline3d` or `hull_polyline3d` module, you can create a B-spline curve.
[B-spline](https://en.wikipedia.org/wiki/B-spline) interpolation using [de Boor's algorithm](https://en.wikipedia.org/wiki/De_Boor%27s_algorithm). This function returns points of the B-spline path.
**Since:** 2.1
@@ -14,7 +14,7 @@
## Examples
use <bspline_curve.scad>;
use <bspline_curve.scad>
points = [
[-10, 0],
@@ -37,7 +37,7 @@
![bspline_curve](images/lib3x-bspline_curve-1.JPG)
use <bspline_curve.scad>;
use <bspline_curve.scad>
points = [
[-10, 0],
@@ -49,7 +49,8 @@
// a non-uniform B-spline curve
knots = [0, 1/8, 1/4, 1/2, 3/4, 4/5, 1];
color("red") for(p = points) {
color("red")
for(p = points) {
translate(p)
sphere(0.5);
}
@@ -61,7 +62,7 @@
![bspline_curve](images/lib3x-bspline_curve-2.JPG)
use <bspline_curve.scad>;
use <bspline_curve.scad>
points = [
[-10, 0],
@@ -73,7 +74,8 @@
// For a clamped B-spline curve, the first `degree + 1` and the last `degree + 1` knots must be identical.
knots = [0, 0, 0, 1, 2, 2, 2];
color("red") for(p = points) {
color("red")
for(p = points) {
translate(p)
sphere(0.5);
}

View File

@@ -11,6 +11,6 @@ Choose an element from the given list randomly.
## Examples
use <util/choose.scad>;
use <util/choose.scad>
echo(choose([1, 2, 3, 4]));

View File

@@ -10,7 +10,7 @@ Sometimes you need all points on the path of a circle. Here's the function. Its
## Examples
use <circle_path.scad>;
use <circle_path.scad>
$fn = 24;
@@ -21,9 +21,9 @@ Sometimes you need all points on the path of a circle. Here's the function. Its
step_angle = 360 / leng;
for(i = [0:leng - 1]) {
translate(points[i])
rotate([90, 0, 90 + i * step_angle])
linear_extrude(1, center = true)
text("A", valign = "center", halign = "center");
rotate([90, 0, 90 + i * step_angle])
linear_extrude(1, center = true)
text("A", valign = "center", halign = "center");
}
![circle_path](images/lib3x-circle_path-1.JPG)

View File

@@ -18,7 +18,7 @@ Create a cone for rotatable models.
## Examples
use <part/cone.scad>;
use <part/cone.scad>
radius = 2.5;
length = 2;
@@ -41,7 +41,7 @@ Create a cone for rotatable models.
![cone](images/lib3x-cone-2.JPG)
use <part/cone.scad>;
use <part/cone.scad>
radius = 2.5;
length = 2;

View File

@@ -17,7 +17,7 @@ Create a connector peg.
## Examples
use <part/connector_peg.scad>;
use <part/connector_peg.scad>
radius = 2.5;
spacing = 0.5;
@@ -37,7 +37,7 @@ Create a connector peg.
![connector_peg](images/lib3x-connector_peg-1.JPG)
use <part/connector_peg.scad>;
use <part/connector_peg.scad>
radius = 2.5;
spacing = 0.5;

19
docs/lib3x-contains.md Normal file
View File

@@ -0,0 +1,19 @@
# contains
If `lt` contains `elem`, this function returns `true`.
**Since:** 3.3
## Parameters
- `lt` : A list of vectors.
- `elem` : A element.
## Examples
use <voxel/vx_circle.scad>
use <util/contains.scad>
pts = vx_circle(10);
assert(contains(pts, [2, -10]));
assert(!contains(pts, [0, 0]));

View File

@@ -11,9 +11,9 @@ Computes contour polygons by applying [marching squares](https://en.wikipedia.or
## Examples
use <hull_polyline2d.scad>;
use <surface/sf_thicken.scad>;
use <contours.scad>;
use <polyline_join.scad>
use <surface/sf_thicken.scad>
use <contours.scad>
min_value = 1;
max_value = 360;
@@ -23,10 +23,10 @@ Computes contour polygons by applying [marching squares](https://en.wikipedia.or
points = [
for(y = [min_value:resolution:max_value])
[
for(x = [min_value:resolution:max_value])
[x, y, f(x, y)]
]
[
for(x = [min_value:resolution:max_value])
[x, y, f(x, y)]
]
];
sf_thicken(points, 1);
@@ -36,7 +36,8 @@ Computes contour polygons by applying [marching squares](https://en.wikipedia.or
translate([0, 0, z])
linear_extrude(1)
for(isoline = contours(points, z)) {
hull_polyline2d(isoline, width = 1);
polyline_join(isoline)
circle(.5);
}
}

15
docs/lib3x-count.md Normal file
View File

@@ -0,0 +1,15 @@
# count
Returns the number of times `test` return `true` in the list.
**Since:** 3.3
## Parameters
- `lt` : The list.
- `test` : A testing function.
## Examples
points = [[7, 2, 2], [1, 1, 2], [3, 4, 2], [3, 4, 2], [1, 2, 3]];
assert(count(points, function(p) norm(p) > 5) == 3);

View File

@@ -12,9 +12,9 @@ Given a 2D shape, points and angles along the path, this function will return al
## Examples
use <sweep.scad>;
use <cross_sections.scad>;
use <archimedean_spiral.scad>;
use <sweep.scad>
use <cross_sections.scad>
use <archimedean_spiral.scad>
shape_pts = [
[-2, -10],

View File

@@ -14,7 +14,7 @@ Uses spherical coordinate system to create a crystal ball.
## Examples
use <crystal_ball.scad>;
use <crystal_ball.scad>
crystal_ball(radius = 6);

View File

@@ -6,7 +6,7 @@ Draws a curved line from control points. The curve is drawn only from the 2nd co
## Parameters
- `t_step` : The distance between two points of the generated curve.
- `t_step` : 0 ~ 1. Control the distance between two points of the generated curve.
- `points` : A list of `[x, y]` or `[x, y, z]` control points.
- `tightness` : You can view it as the curve tigntness if you provide a value between 0.0 and 1.0. The default value is 0.0. The value 1.0 connects all the points with straight lines. The value greater than 1.0 or less than 0.0 is also acceptable because it defines how to generate a bezier curve every four control points.
@@ -16,8 +16,8 @@ Draws a curved line from control points. The curve is drawn only from the 2nd co
## Examples
use <curve.scad>;
use <hull_polyline3d.scad>;
use <curve.scad>
use <polyline_join.scad>
pts = [
[28, 2, 1],
@@ -32,12 +32,14 @@ Draws a curved line from control points. The curve is drawn only from the 2nd co
tightness = 0;
points = curve(t_step, pts, tightness);
hull_polyline3d(points, 1);
polyline_join(points)
sphere(.5);
#for(pt = pts) {
translate(pt)
sphere(1);
}
#hull_polyline3d(pts, .1);
#polyline_join(pts)
sphere(.05);
![curve](images/lib3x-curve-3.JPG)

View File

@@ -13,6 +13,8 @@ Eliminating duplicate copies of repeating vectors.
## Examples
use <util/dedup.scad>
eq = function(e1, e2) e1[0] == e2[0] && e1[1] == e2[1] && e1[2] == e2[2];
points = [[1, 1, 2], [3, 4, 2], [7, 2, 2], [3, 4, 2], [1, 2, 3]];

View File

@@ -10,6 +10,6 @@ Converts a radian measurement to the corresponding value in degrees.
## Examples
use <util/degrees.scad>;
use <util/degrees.scad>
assert(degrees(PI) == 180);

View File

@@ -10,7 +10,7 @@ Extrudes a 2D object along the path of an ellipse from 0 to 180 degrees. The sem
## Examples
use <ellipse_extrude.scad>;
use <ellipse_extrude.scad>
semi_minor_axis = 5;
@@ -19,7 +19,7 @@ Extrudes a 2D object along the path of an ellipse from 0 to 180 degrees. The sem
![ellipse_extrude](images/lib3x-ellipse_extrude-1.JPG)
use <ellipse_extrude.scad>;
use <ellipse_extrude.scad>
semi_minor_axis = 5;
@@ -28,18 +28,20 @@ Extrudes a 2D object along the path of an ellipse from 0 to 180 degrees. The sem
![ellipse_extrude](images/lib3x-ellipse_extrude-2.JPG)
use <ellipse_extrude.scad>;
use <ellipse_extrude.scad>
semi_minor_axis = 5;
ellipse_extrude(semi_minor_axis)
text("♥", size = 40, valign = "center", halign = "center");
mirror([0, 0, 1]) ellipse_extrude(semi_minor_axis)
mirror([0, 0, 1])
ellipse_extrude(semi_minor_axis)
text("♥", size = 40, valign = "center", halign = "center");
![ellipse_extrude](images/lib3x-ellipse_extrude-3.JPG)
use <ellipse_extrude.scad>;
use <ellipse_extrude.scad>
semi_minor_axis = 10;

View File

@@ -11,7 +11,7 @@ The `every` function tests whether all elements in the list pass the test implem
## Examples
use <util/every.scad>;
use <util/every.scad>
biggerThanZero = function(elem) elem > 0;
assert(every([1, 30, 39, 29, 10, 13], biggerThanZero));

View File

@@ -1,6 +1,6 @@
# fibonacci_lattice
Creates visually even spacing of n points on the surface of the sphere. Nearest-neighbor points will all be approximately the same distance apart. There're 8 spirals on the sphere.
Creates visually even spacing of n points on the surface of the sphere. Nearest-neighbor points will all be approximately the same distance apart.
(It's called "visually even spacing" because only the vertices of the 5 [Platonic solids](https://en.wikipedia.org/wiki/Platonic_solid) can be said to be truly evenly spaced around the surface of a sphere.)
@@ -14,7 +14,7 @@ Creates visually even spacing of n points on the surface of the sphere. Nearest-
## Examples
use <fibonacci_lattice.scad>;
use <fibonacci_lattice.scad>
n = 200;
radius = 20;
@@ -29,9 +29,9 @@ Creates visually even spacing of n points on the surface of the sphere. Nearest-
![fibonacci_lattice](images/lib3x-fibonacci_lattice-1.JPG)
use <fibonacci_lattice.scad>;
use <hull_polyline3d.scad>;
use <fibonacci_lattice.scad>
use <polyline_join.scad>
n = 200;
radius = 20;
@@ -41,15 +41,18 @@ Creates visually even spacing of n points on the surface of the sphere. Nearest-
translate(p)
sphere(1);
}
sphere(radius);
spirals = [for(j = [0:7])
[for(i = j; i < len(pts); i = i + 8) pts[i]]
sphere(radius * 0.9);
// You can pick spirals from points.
spirals = [for(j = [0:20])
[for(i = j; i < len(pts); i = i + 21) pts[i]]
];
for(spiral = spirals) {
hull_polyline3d(spiral, 1);
polyline_join(spiral)
sphere(.25);
}
![fibonacci_lattice](images/lib3x-fibonacci_lattice-2.JPG)

View File

@@ -11,6 +11,6 @@ Generate a Fibonacci sequence.
## Examples
use <util/fibseq.scad>;
use <util/fibseq.scad>
echo(fibseq(1, 10)); // ECHO: [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

View File

@@ -11,6 +11,6 @@ Returns the index of the first element in the list that satisfies the testing fu
## Examples
use <util/find_index.scad>;
use <util/find_index.scad>
assert(find_index([10, 20, 30, 40], function(e) e > 10) == 1);

View File

@@ -11,31 +11,26 @@ returns a new list with all sub-list elements concatenated into it recursively u
## Examples
use <util/flat.scad>;
use <util/flat.scad>
vt = [[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]];
assert(
flat([1, 2, [3, 4]]) ==
[1, 2, 3, 4]
flat([1, 2, [3, 4]]) == [1, 2, 3, 4]
);
assert(
flat([[1, 2], [3, 4]]) ==
[1, 2, 3, 4]
flat([[1, 2], [3, 4]]) == [1, 2, 3, 4]
);
assert(
flat([[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]]) ==
[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
flat([[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]]) == [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
);
assert(
flat([[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]], 2) ==
[[1, 2], [3, 4], [5, 6], [7, 8]]
flat([[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]], 2) == [[1, 2], [3, 4], [5, 6], [7, 8]]
);
assert(
flat([[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]], 3) ==
[1, 2, 3, 4, 5, 6, 7, 8]
flat([[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]], 3) == [1, 2, 3, 4, 5, 6, 7, 8]
);

View File

@@ -11,8 +11,8 @@ Drive a turtle with `["forward", length]` or `["turn", angle]`. This function is
## Examples
use <polyline2d.scad>;
use <turtle/footprints2.scad>;
use <polyline_join.scad>
use <turtle/footprints2.scad>
function arc_cmds(radius, angle, steps) =
let(
@@ -20,35 +20,33 @@ Drive a turtle with `["forward", length]` or `["turn", angle]`. This function is
ta = fa / 2,
leng = sin(ta) * radius * 2
)
concat(
[["turn", ta]],
[
[
["turn", ta],
each [
for(i = [0:steps - 2])
each [["forward", leng], ["turn", fa]]
],
[["forward", leng], ["turn", ta]]
);
["forward", leng],
["turn", ta]
];
poly = footprints2(
concat(
[
["forward", 10],
["turn", 90],
["forward", 10]
],
arc_cmds(5, 180, 12),
[
["turn", -90],
["forward", 10],
["turn", 90],
["forward", 10],
["turn", 90],
["forward", 10]
]
)
[
["forward", 10],
["turn", 90],
["forward", 10],
each arc_cmds(5, 180, 12),
["turn", -90],
["forward", 10],
["turn", 90],
["forward", 10],
["turn", 90],
["forward", 10]
]
);
polyline2d(poly, width = 1);
polyline_join(poly)
circle(.5);
![footprints2](images/lib3x-footprints2-1.JPG)

View File

@@ -11,8 +11,8 @@ A 3D verion of [footprint2](https://openhome.cc/eGossip/OpenSCAD/lib3x-footprint
## Examples
use <hull_polyline3d.scad>;
use <turtle/footprints3.scad>;
use <polyline_join.scad>
use <turtle/footprints3.scad>
function xy_arc_cmds(radius, angle, steps) =
let(
@@ -20,36 +20,32 @@ A 3D verion of [footprint2](https://openhome.cc/eGossip/OpenSCAD/lib3x-footprint
ta = fa / 2,
leng = sin(ta) * radius * 2
)
concat(
[["turn", ta]],
[
[
["turn", ta],
each [
for(i = [0:steps - 2])
each [["forward", leng], ["turn", fa]]
],
[["forward", leng], ["turn", ta]]
);
["forward", leng],
["turn", ta]
];
poly = footprints3(
concat(
[
["forward", 10],
["turn", 90],
["forward", 10]
],
xy_arc_cmds(5, 180, 12),
[
["pitch", 90],
["forward", 10],
["roll", 90]
],
xy_arc_cmds(5, 180, 12),
[
["forward", 10]
]
)
[
["forward", 10],
["turn", 90],
["forward", 10],
each xy_arc_cmds(5, 180, 12),
["pitch", 90],
["forward", 10],
["roll", 90],
each xy_arc_cmds(5, 180, 12),
["forward", 10]
]
);
hull_polyline3d(poly, thickness = 1);
polyline_join(poly)
sphere(.5);
![footprints3](images/lib3x-footprints3-1.JPG)

View File

@@ -13,7 +13,7 @@ It returns a vector of `[[x, y], angle]`.
## Examples
use <golden_spiral.scad>;
use <golden_spiral.scad>
pts_angles = golden_spiral(
from = 3,
@@ -28,7 +28,7 @@ It returns a vector of `[[x, y], angle]`.
![golden_spiral](images/lib3x-golden_spiral-1.JPG)
use <golden_spiral.scad>;
use <golden_spiral.scad>
pts_angles = golden_spiral(
from = 5,
@@ -38,9 +38,9 @@ It returns a vector of `[[x, y], angle]`.
for(pt_angle = pts_angles) {
translate(pt_angle[0])
rotate([90, 0, pt_angle[1]])
linear_extrude(1, center = true)
text("A", valign = "center", halign = "center");
rotate([90, 0, pt_angle[1]])
linear_extrude(1, center = true)
text("A", valign = "center", halign = "center");
}
![golden_spiral](images/lib3x-golden_spiral-2.JPG)

View File

@@ -17,7 +17,7 @@ When using this module, you should use points to represent the 2D shape. If your
## Examples
use <golden_spiral_extrude.scad>;
use <golden_spiral_extrude.scad>
shape_pts = [
[2, -10],
@@ -38,8 +38,8 @@ When using this module, you should use points to represent the 2D shape. If your
![golden_spiral_extrude](images/lib3x-golden_spiral_extrude-1.JPG)
use <shape_circle.scad>;
use <golden_spiral_extrude.scad>;
use <shape_circle.scad>
use <golden_spiral_extrude.scad>
$fn = 12;

View File

@@ -12,9 +12,9 @@ If `lt` contains `elem`, this function returns `true`. If you want to test eleme
## Examples
use <voxel/vx_circle.scad>;
use <util/sort.scad>;
use <util/has.scad>;
use <voxel/vx_circle.scad>
use <util/sort.scad>
use <util/has.scad>
pts = vx_circle(10);
assert(has(pts, [2, -10]));

View File

@@ -21,14 +21,14 @@ This function maps keys to values. You can use the following to process the retu
## Examples
use <util/map/hashmap.scad>;
use <util/map/hashmap_len.scad>;
use <util/map/hashmap_put.scad>;
use <util/map/hashmap_get.scad>;
use <util/map/hashmap_del.scad>;
use <util/map/hashmap_keys.scad>;
use <util/map/hashmap_values.scad>;
use <util/map/hashmap_entries.scad>;
use <util/map/hashmap.scad>
use <util/map/hashmap_len.scad>
use <util/map/hashmap_put.scad>
use <util/map/hashmap_get.scad>
use <util/map/hashmap_del.scad>
use <util/map/hashmap_keys.scad>
use <util/map/hashmap_values.scad>
use <util/map/hashmap_entries.scad>
m1 = hashmap([["k1", 10], ["k2", 20], ["k3", 30]]);
assert(hashmap_len(m1) == 3);
@@ -39,14 +39,14 @@ This function maps keys to values. You can use the following to process the retu
m3 = hashmap_del(m2, "k1");
assert(hashmap_get(m3, "k1") == undef);
echo(hashmap_keys(m3)); // a list contains "k2", "k2", "k3"
echo(hashmap_values(m3)); // a list contains 20, 30, 40
echo(hashmap_entries(m3)); // a list contains ["k2", 20], ["k3", 30], ["k4", 40]
assert(hashmap_keys(m3) == ["k2", "k3", "k4"]);
assert(hashmap_values(m3) == [20, 30, 40]);
assert(hashmap_entries(m3) == [["k2", 20], ["k3", 30], ["k4", 40]]);
Want to simulate class-based OO in OpenSCAD? Here's my experiment.
use <util/map/hashmap.scad>;
use <util/map/hashmap_get.scad>;
use <util/map/hashmap.scad>
use <util/map/hashmap_get.scad>
function methods(mths) = hashmap(mths);
function _(name, instance) = hashmap_get(instance, name);
@@ -54,7 +54,7 @@ Want to simulate class-based OO in OpenSCAD? Here's my experiment.
function clz_list(data) = function(name) _(name,
methods([
["get", function(i) data[i]],
["append", function(n) clz_list(concat(data, [n]))]
["append", function(n) clz_list([each data, n])]
])
);

View File

@@ -7,15 +7,15 @@ This function deletes the mapping for the specified key from a [util/map/hashmap
## Parameters
- `map` : The original map.
- `key` : Adds the specified element to the specified set
- `key` : The specified key.
- `eq` : A equality function. If it's ignored, use `==` to compare elements.
- `hash` : A hash function. If it's ignored, convert each element to a string and hash it.
## Examples
use <util/map/hashmap.scad>;
use <util/map/hashmap_get.scad>;
use <util/map/hashmap_del.scad>;
use <util/map/hashmap.scad>
use <util/map/hashmap_get.scad>
use <util/map/hashmap_del.scad>
m1 = hashmap([["k1", 10], ["k2", 20], ["k3", 30]]);
m2 = hashmap_del(m1, "k1");

View File

@@ -10,8 +10,8 @@ Returns a list containing all `[key, value]`s in a [util/map/hashmap](https://op
## Examples
use <util/map/hashmap.scad>;
use <util/map/hashmap_entries.scad>;
use <util/map/hashmap.scad>
use <util/map/hashmap_entries.scad>
m = hashmap([["k1", 10], ["k2", 20], ["k3", 30]]);
echo(hashmap_entries(m)); // a list contains ["k1", 10], ["k2", 20], ["k3", 30]

View File

@@ -7,14 +7,14 @@ This function gets the value of the specified key from a [util/map/hashmap](http
## Parameters
- `map` : The original map.
- `key` : Adds the specified element to the specified set
- `key` : The specified key.
- `eq` : A equality function. If it's ignored, use `==` to compare elements.
- `hash` : A hash function. If it's ignored, convert each element to a string and hash it.
## Examples
use <util/map/hashmap.scad>;
use <util/map/hashmap_get.scad>;
use <util/map/hashmap.scad>
use <util/map/hashmap_get.scad>
m = hashmap([["k1", 10], ["k2", 20], ["k3", 30]]);
assert(hashmap_get(m, "k2") == 20);

View File

@@ -10,8 +10,8 @@ Returns a list containing all keys in a [util/map/hashmap](https://openhome.cc/e
## Examples
use <util/map/hashmap.scad>;
use <util/map/hashmap_keys.scad>;
use <util/map/hashmap.scad>
use <util/map/hashmap_keys.scad>
m = hashmap([["k1", 10], ["k2", 20], ["k3", 30]]);

View File

@@ -10,8 +10,8 @@ Returns the length of a [util/map/hashmap](https://openhome.cc/eGossip/OpenSCAD/
## Examples
use <util/map/hashmap.scad>;
use <util/map/hashmap_len.scad>;
use <util/map/hashmap.scad>
use <util/map/hashmap_len.scad>
m = hashmap([["k1", 10], ["k2", 20], ["k3", 30]]);
assert(hashmap_len(m) == 3);

View File

@@ -7,12 +7,16 @@ Puts a key/value pair to a [util/map/hashmap](https://openhome.cc/eGossip/OpenSC
## Parameters
- `map` : The original map.
- `key` : The specified key.
- `value` : The specified value.
- `eq` : A equality function. If it's ignored, use `==` to compare elements.
- `hash` : A hash function. If it's ignored, convert each element to a string and hash it.
## Examples
use <util/map/hashmap.scad>;
use <util/map/hashmap_put.scad>;
use <util/map/hashmap_get.scad>;
use <util/map/hashmap.scad>
use <util/map/hashmap_put.scad>
use <util/map/hashmap_get.scad>
m1 = hashmap([["k1", 10], ["k2", 20], ["k3", 30]]);

View File

@@ -10,8 +10,8 @@ Returns a list containing all values in a [util/map/hashmap](https://openhome.cc
## Examples
use <util/map/hashmap.scad>;
use <util/map/hashmap_values.scad>;
use <util/map/hashmap.scad>
use <util/map/hashmap_values.scad>
m = hashmap([["k1", 10], ["k2", 20], ["k3", 30]]);

View File

@@ -19,12 +19,12 @@ This function models the mathematical set, backed by a hash table. You can use t
## Examples
use <util/set/hashset.scad>;
use <util/set/hashset_add.scad>;
use <util/set/hashset_has.scad>;
use <util/set/hashset_del.scad>;
use <util/set/hashset_len.scad>;
use <util/set/hashset_elems.scad>;
use <util/set/hashset.scad>
use <util/set/hashset_add.scad>
use <util/set/hashset_has.scad>
use <util/set/hashset_del.scad>
use <util/set/hashset_len.scad>
use <util/set/hashset_elems.scad>
s1 = hashset([1, 2, 3, 4, 5, 2, 3, 5]);
assert(hashset_len(s1) == 5);
@@ -35,4 +35,4 @@ This function models the mathematical set, backed by a hash table. You can use t
s3 = hashset_del(s2, 2);
assert(!hashset_has(s3, 2));
echo(hashset_elems(s3)); // a list contains 1, 3, 4, 5, 9
assert(hashset_elems(s3) == [1, 3, 4, 5, 9]);

View File

@@ -13,9 +13,9 @@ This function adds an element to a [util/set/hashset](https://openhome.cc/eGossi
## Examples
use <util/set/hashset.scad>;
use <util/set/hashset_add.scad>;
use <util/set/hashset_has.scad>;
use <util/set/hashset.scad>
use <util/set/hashset_add.scad>
use <util/set/hashset_has.scad>
s1 = hashset([1, 2, 3, 4, 5]);
s2 = hashset_add(s1, 9);

View File

@@ -13,9 +13,9 @@ This function dels an element from a [util/set/hashset](https://openhome.cc/eGos
## Examples
use <util/set/hashset.scad>;
use <util/set/hashset_del.scad>;
use <util/set/hashset_has.scad>;
use <util/set/hashset.scad>
use <util/set/hashset_del.scad>
use <util/set/hashset_has.scad>
s1 = hashset([1, 2, 3, 4, 5]);
s2 = hashset_del(s1, 3);

View File

@@ -10,9 +10,9 @@ Returns a list containing all elements in a [util/set/hashset](https://openhome.
## Examples
use <util/set/hashset.scad>;
use <util/set/hashset_elems.scad>;
use <util/set/hashset.scad>
use <util/set/hashset_elems.scad>
s = hashset([1, 2, 3, 4, 5]);
echo(hashset_elems(s)); // a list contains 1, 2, 3, 4, 5
assert(hashset_elems(s) == [1, 2, 3, 4, 5]);

View File

@@ -13,8 +13,8 @@ Returns `true` if a [util/set/hashset](https://openhome.cc/eGossip/OpenSCAD/lib3
## Examples
use <util/set/hashset.scad>;
use <util/set/hashset_has.scad>;
use <util/set/hashset.scad>
use <util/set/hashset_has.scad>
s = hashset([1, 2, 3, 4, 5]);
assert(hashset_has(s, 3));

View File

@@ -10,8 +10,8 @@ Returns the length of the elements in a [util/set/hashset](https://openhome.cc/e
## Examples
use <util/set/hashset.scad>;
use <util/set/hashset_len.scad>;
use <util/set/hashset.scad>
use <util/set/hashset_len.scad>
s = hashset([1, 2, 3, 4, 5]);
assert(hashset_len(s) == 5);

View File

@@ -13,8 +13,8 @@ Gets all points on the path of a spiral around a cylinder. Its `$fa`, `$fs` and
## Examples
use <helix.scad>;
use <hull_polyline3d.scad>;
use <helix.scad>
use <polyline_join.scad>
$fn = 12;
@@ -27,15 +27,17 @@ Gets all points on the path of a spiral around a cylinder. Its `$fa`, `$fs` and
);
for(p = points) {
translate(p) sphere(5);
translate(p)
sphere(5);
}
hull_polyline3d(points, 2);
polyline_join(points)
sphere(1);
![helix](images/lib3x-helix-1.JPG)
use <helix.scad>;
use <hull_polyline3d.scad>;
use <helix.scad>
use <polyline_join.scad>
$fn = 12;
@@ -47,7 +49,8 @@ Gets all points on the path of a spiral around a cylinder. Its `$fa`, `$fs` and
rt_dir = "CLK"
);
hull_polyline3d(points, 2);
polyline_join(points)
sphere(1);
%cylinder(h = 100, r1 = 40, r2 = 20);

View File

@@ -21,7 +21,7 @@ Its `$fa`, `$fs` and `$fn` parameters are consistent with the `cylinder` module.
## Examples
use <helix_extrude.scad>;
use <helix_extrude.scad>
shape_pts = [
[5, -2],
@@ -43,7 +43,7 @@ Its `$fa`, `$fs` and `$fn` parameters are consistent with the `cylinder` module.
![helix_extrude](images/lib3x-helix_extrude-1.JPG)
use <helix_extrude.scad>;
use <helix_extrude.scad>
r1 = 40;
r2 = 20;

View File

@@ -10,7 +10,7 @@ This module creates hexagons in a hexagon.
## Examples
use <hexagons.scad>;
use <hexagons.scad>
radius = 20;
spacing = 2;
@@ -20,7 +20,7 @@ This module creates hexagons in a hexagon.
![hexagons](images/lib3x-hexagons-1.JPG)
use <hexagons.scad>;
use <hexagons.scad>
radius = 20;
spacing = 2;

View File

@@ -8,9 +8,12 @@ Hollows out a 2D object.
## Examples
use <hollow_out.scad>;
use <hollow_out.scad>
hollow_out(shell_thickness = 1) circle(r = 3, $fn = 48);
hollow_out(shell_thickness = 1) square([10, 5]);
hollow_out(shell_thickness = 1)
circle(r = 3, $fn = 48);
hollow_out(shell_thickness = 1)
square([10, 5]);
![hollow_out](images/lib3x-hollow_out-1.JPG)

View File

@@ -1,22 +0,0 @@
# hull_polyline2d
Creates a 2D polyline from a list of `[x, y]` coordinates. As the name says, it uses the built-in hull operation for each pair of points (created by the `circle` module). It's slow. However, it can be used to create metallic effects for a small `$fn`, large `$fa` or `$fs`.
## Parameters
- `points` : The list of `[x, y]` points of the polyline. The points are indexed from 0 to n-1.
- `width` : The line width. Default to 1.
- `$fa`, `$fs`, `$fn` : Check [the circle module](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_the_2D_Subsystem#circle) for more details.
## Examples
use <hull_polyline2d.scad>;
$fn = 4;
hull_polyline2d(
points = [[1, 2], [-5, -4], [-5, 3], [5, 5]],
width = 1
);
![hull_polyline3d](images/lib3x-hull_polyline2d-1.JPG)

View File

@@ -1,45 +0,0 @@
# hull_polyline3d
Creates a 3D polyline from a list of `[x, y, z]` coordinates. As the name says, it uses the built-in hull operation for each pair of points (created by the `sphere` module). It's slow. However, it can be used to create metallic effects for a small `$fn`, large `$fa` or `$fs`.
## Parameters
- `points` : The list of `[x, y, z]` points of the polyline. The points are indexed from 0 to n-1.
- `diameter` : The line diameter. Default to 1.
- `$fa`, `$fs`, `$fn` : Check [the sphere module](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids#sphere) for more details.
## Examples
use <hull_polyline3d.scad>;
hull_polyline3d(
points = [
[1, 2, 3],
[4, -5, -6],
[-1, -3, -5],
[0, 0, 0]
],
diameter = 1,
$fn = 3
);
![polyline3d](images/lib3x-hull_polyline3d-1.JPG)
use <hull_polyline3d.scad>;
r = 50;
points = [
for(a = [0:180])
[
r * cos(-90 + a) * cos(a),
r * cos(-90 + a) * sin(a),
r * sin(-90 + a)
]
];
for(i = [0:7]) {
rotate(45 * i)
hull_polyline3d(points, 2, $fn = 3);
}
![polyline3d](images/lib3x-hull_polyline3d-2.JPG)

View File

@@ -12,7 +12,7 @@ Checks whether a point is on a line.
## Examples
use <in_polyline.scad>;
use <in_polyline.scad>
pts = [
[0, 0],
@@ -20,14 +20,14 @@ Checks whether a point is on a line.
[10, 10]
];
echo(in_polyline(pts, [-2, -3])); // false
echo(in_polyline(pts, [5, 0])); // true
echo(in_polyline(pts, [10, 5])); // true
echo(in_polyline(pts, [10, 15])); // false
assert(!in_polyline(pts, [-2, -3]));
assert(in_polyline(pts, [5, 0]));
assert(in_polyline(pts, [10, 5]));
assert(!in_polyline(pts, [10, 15]));
----
use <in_polyline.scad>;
use <in_polyline.scad>
pts = [
[10, 0, 10],
@@ -35,7 +35,7 @@ Checks whether a point is on a line.
[20, 10, 10]
];
echo(in_polyline(pts, [10, 0, 10])); // true
echo(in_polyline(pts, [15, 0, 10])); // true
echo(in_polyline(pts, [15, 1, 10])); // false
echo(in_polyline(pts, [20, 11, 10])); // false
assert(in_polyline(pts, [10, 0, 10]));
assert(in_polyline(pts, [15, 0, 10]));
assert(!in_polyline(pts, [15, 1, 10]));
assert(!in_polyline(pts, [20, 11, 10]));

View File

@@ -13,8 +13,8 @@ Checks whether a point is inside a shape.
## Examples
use <shape_taiwan.scad>;
use <in_shape.scad>;
use <shape_taiwan.scad>
use <in_shape.scad>
points = shape_taiwan(30);

View File

@@ -17,7 +17,7 @@ Create a joint_T for rotatable models.
## Examples
use <part/joint_T.scad>;
use <part/joint_T.scad>
$fn = 48;

View File

@@ -6,12 +6,12 @@ Linear interpolate the vector v1 to v2.
## Parameters
- `v1` : Minimum value of random number range. Default to 0.
- `v2` : Maximum value of random number range. Default to 1.
- `v1` : The vector v1.
- `v2` : The vector v2.
- `amt` : The amount of interpolation. Some value between 0.0 and 1.0.
## Examples
use <util/lerp.scad>;
use <util/lerp.scad>
assert(lerp([0, 0, 0], [100, 100, 100], 0.5) == [50, 50, 50]);

Some files were not shown because too many files have changed in this diff Show More