This a collection of lighweight libraries to help out on development of other projects.
- All functions work on ascii strings or utf32 codepoint strings
- Simple helpers (trim, startsWith, endsWith)
- unicode transforms
- glob matching
- levenshtein distance
- a lot of tests
- File handling supporting utf32 filenames
- utf8 file loading
- Basic filename handlers
- cpp binary dumper
- This library requires Text lib
- Simple Logging system
- Threaded
- Thread safe
- Easing functions based on easings.net
- Core math helpers
- Vector2, Vector3, Vector4
- Matrix44
- Quaternion
- BoundingVolume
- Running Average calculator
- RMS calculator
- easy clock query
- ElapsedTimer timekeeping
- DurationProbe for debugging
- Super simple unit test library
- Used on smoking to test it's internal code. but it can be easely used standalone.
- Test cases are automatically registered.
- Dumb runner
- Planar image represention using floats
- Basic Mat structure with simple usage
- Nearest Neighbor and Bilinear interpolation resize
- Color Conversion (rgb <-> hsv)
- Convolutions
- Filters (Gaussian, sobel, etc)
- Harris Corner detector
- Shi-Tomasi Corner detector
- Homography calculation
- RANSAC fitting example for noisy matched features
- Lukas Kanade optical flow calculation
- Canny Edge Detector
- Max Cost Assigment
- Image rectangle extraction and warping
- Thresholding (Binary, BinaryInverted, Truncate, ToZero, ToZeroInverted) with otsu
- Circular buffer suitable for audio
- Wav Reader / Writer
- Wav Recorder
- Barrier primitive
- WaitEvent primitive
- Thread abstraction on a Worker class
- WorkQueue for task scheduling
git git@github.com:RuiVarela/Smokin.git
cd Smokin
mkdir build
cd build
cmake .. -DBUILD_UNIT_TESTS=On
cmake --build .
./Debug/test