Thingiverse
OpenSCAD type detector
von arpruss
21
Downloads
8
Likes
0
Makes
This is a small library to detect the types of OpenSCAD variables/expressions. Publicly exposed functions are: `isVector(x)`, `isBoolean(x)`, `isFloat(x)`, `isDefiniteFloat(x)` (float, but not NaN or infinity), `isRange(x)`, `isString(x)` and `typeOf(x)`.
The last of these returns a string describing the type: `vector`, `boolean`, `float`, `range`, `string`, `undef`, `unknown`.
Googling showed other solutions to the type detection problem, but I worked to make my solution as efficient as possible.
**Update:** More speed. In particular, I now avoid `concat()` and I also noticed that `len()` runs in O(1) time when applied to a vector but O(n) when applied to a string of length n, so I now avoid applying `len()` to strings, and as a result all the functions should now run in O(1) time.
**Update:** May 8, 2017: Optimized `typeOf()` by removing function calls and duplication of code between tests.
The last of these returns a string describing the type: `vector`, `boolean`, `float`, `range`, `string`, `undef`, `unknown`.
Googling showed other solutions to the type detection problem, but I worked to make my solution as efficient as possible.
**Update:** More speed. In particular, I now avoid `concat()` and I also noticed that `len()` runs in O(1) time when applied to a vector but O(n) when applied to a string of length n, so I now avoid applying `len()` to strings, and as a result all the functions should now run in O(1) time.
**Update:** May 8, 2017: Optimized `typeOf()` by removing function calls and duplication of code between tests.
arpruss veröffentlicht auch auf
5 zusätzliche Modelle auf 1 weiteren Plattformen
Hast du dieses Modell gedruckt? Einloggen und dein Make teilen!
Melde dich an, um einen Kommentar zu hinterlassen
AnmeldenNoch keine Kommentare – sei der Erste!