{ "artefact-metadata-hxa7241-www": {
"title": "C++ Library",
"author": "Harrison Ainsworth",
"date": "2007-12-28",
"id": "urn:uuid:D1A3A27C-B126-4E7B-B73E-B4ACFD5A62B9",
"subtype": "text/html",
"type": "summary" } }
C++ Library
some quite reusable c++ code
Description
A collection of quite reusable graphics-oriented C++ code. Fairly refined as individual parts, but the package as a whole is a bit casual.
Comprising 29 modules, and about 8500 lines. Mostly classes, but several functions too. Not all tests are included.
Modules
general
standalone:
| FpToInt | Int-float conversion functions |
| Clamps | Functions to clamp numerics between bounds |
| Bounded | Scalar value within a restricted range |
| Float01 | Float value between 0 and 1, open or closed interval |
| hxa7241vector | std::vector storage manipulation functions |
| Array | Simpler, compacter alternative to std::vector |
| RandomMwc1 | Simple, fast, good random number generator, v1 |
| RandomMwc2 | Simple, fast, good random number generator, v2 |
| LogFast | Fast approximation to log |
| PowFast | Fast approximation to pow |
dependent on above:
| Sheet | A simple 2D dynamic array, suitable for images |
graphics
standalone:
| ColorConstants | Standard and common color constants |
| Filters | Some 2D radial filter functions |
| Polar | Disk-square mapping, and coordinate conversion functions |
| HaltonSequence | Halton sequence, with optional jittering |
| SobolSequence | One dimension of a sobol sequence (choice of 40) |
| Coord2 | 2D coordinate class template |
| Vector3f | Yes, its the 3D vector class! |
| XyzE | Greg Ward-Larson realpixel, for any float triplet |
dependent on above:
| ColorSpace | Trichromatic color space, with conversions to/from XYZ |
| UnitVector3f | Unitized 3D vector |
| Vector4f | 4D vector of floats |
| Matrix3f | 3D matrix of floats, with extra translation capability |
| Matrix4f | 4D matrix of floats |
| Quaternion | Unit quaternion |
| Spherahedron | Make a sphere of triangles, in shared-vertex form |
image
standalone:
| ppm | IO for the nice-and-simple PPM file format |
| rgbe | IO for the Radiance RGBE file format |
| quantizing | Conversions between integer and float [0,1] triplet images |
Download
| 🌊 hxa7241-cpp-library-1.zip | zipped C++ source code (128 KB) |