Thingiverse
OpenSCAD type detector
door 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 publiceert ook op
5 extra modellen op 1 andere platforms
Heb je dit model geprint? Inloggen en deel je make!
Log in om een reactie achter te laten
InloggenNog geen reacties – wees de eerste!