Mini Spin-X is a cut down version of a "core" library I have been developing over the years to support my various coding projects, licensed under MIT. It has bunch of useful stuff like math library, xml parsing, loading/saving image files, file system, loading 3D assets, etc. for developing small programs. I have compiled it on different platforms, but because my main development environment is MSVC in Windows I only very occasionally check e.g. Linux/GCC. The library doesn't use STL but provides some alternatives e.g. for containers and has only few dependencies to external libs included in sxp_extlibs/
dir. Everything should be included and just compile as is without need to download other libs. MSVC project/solution files can be found in build/
sxp_src/core/
- Low-level core components
File/Dir | Description |
---|---|
class.h |
Generic class introspection and object management. |
config.h |
The library configuration file. |
containers.h |
Collection of containers (e.g. array , list , deque , hash_map , etc.) |
core.h |
The most fundamental omnipresent core stuff. Always included either directly or indirectly. |
crypto.h |
Cryptographic functions (md5, sha256). |
cstr.h |
Low-level c-string functions. |
enum.inc |
Used to define enums with reflection. |
expression.h |
Math expression parsing. |
functor.h |
Functor implementations. |
inet.h |
Network stuff. |
iterators.h |
Free iterators (e.g. for intrusive singly-linked lists. |
main.h |
For defining platform agnostic main(). |
memory.h |
Memory management classes. |
meta.h |
Meta-programming stuff. |
node_graph.h |
Classes for generic node graph. |
preprocessor.h |
Preprocessor file parsing. |
sort.h |
Sorting functions. |
str.h |
String management classes. |
streams.h |
Stream library (abstract writing/reading data). |
utils.h |
Just a bucket of misc "utility" stuff. |
xml.h |
XML parsing. |
zip.h |
ZIP file streams. |
sxp_src/core/fsys/
- File system
File/Dir | Description |
---|---|
cipher_fsys.h |
Extremely poor-security streams. |
fsys.h |
File system classes. |
zip_fsys.h |
ZIP file system implementation (read files straight from ZIP file). |
sxp_src/core/math/
- Math library
File/Dir | Description |
---|---|
bit_math.h |
Bit twiddling hacks. |
color.h |
Color classes (RGB/XYZ/YIQ/HSV) and functions. |
fast_math.h |
Fast-math hacks. |
geo3.h |
3D geometry processing (calculating convex hull, bounding box) |
math.h |
Templated linear algebra classes (vector, matrix, quaternion, complex). |
math_adv.h |
"Advanced" math. |
monte_carlo.h |
Some Monte-Carlo sampling functions. |
numeric.h |
Numeric type traits. |
optics.h |
Optics functions (BRDF, reflections, etc.) |
parametric.h |
Parametric surfaces and lines (Bezier, Hermite, etc.) |
simd_math.h |
SIMD-optimized linear algebra classes. |
tform3.h |
Higher level 3D transform related classes (camera, affine transforms). |
prim2/prim2.h |
2D primitives. |
prim2/prim2_isect.h |
2D primitive intersection functions. |
prim3/prim3.h |
3D primitives. |
prim3/prim3_angle.h |
3D primitive angle functions. |
prim3/prim3_bvol.h |
3D primitive bounding volume functions. |
prim3/prim3_dist.h |
3D primitive distance functions. |
prim3/prim3_isect.h |
3D primitive intersection functions. |
sxp_src/core/mp/
- Multiprocessing library
File/Dir | Description |
---|---|
mp.h |
Abstracted low-level multiprocessing funcs (atomics, threads, etc.) |
mp_fiber.h |
Fiber lib for co-operative multitasking. |
mp_job_queue.h |
Light weight job queue. |
mp_memory.h |
Thread-safe memory classes. |
mp_msg_queue.h |
Thread-safe message queue for interthread communication. |
sxp_src/core_engine/
- Higher "engine" level core components
File/Dir | Description |
---|---|
mesh.h |
Classes for loading and managing 3D meshes. |
texture.h |
Classes for loading and managing textures. |
track_set.h |
Classes for loading and managing animation tracks. |
loaders/ |
Loaders for asset files (used by mesh.h , texture.h and track_set.h ). |
sxp_src/platform/
- Platform specific implementations
File/Dir | Description |
---|---|
linux/ |
Core component implementations for Linux/GCC (file system, SIMD, multithreading, network, etc.) |
posix/ |
Core component implementations for Posix |
win/ |
Core component implementations for Windows |
Mini Spin-X Library is licensed under MIT license. See LICENSE for details.