Welcome to cyCodeBase, an open source programming resource intended for graphics programmers.
Here you can download code releases of some of my general-purpose C++ classes as easy to use header files.
They are written in a clean form and documented.
You can also find tutorials and simple solutions to common graphics programming problems in the solutions section.
Removed Legacy Headers
July 9, 2022
Some old code releases that are no longer used are removed.
I do not expect that they were used by many people, so hopefully this will be an uneventful cleanup.
cyVector and cyIVector
August 22, 2019
The old
cyPoint and
cyIPoint code releases are replaced with the new
cyVector and
cyIVector code releases.
The new releases provide the same classes as the old ones with different names and some minor improvements.
cyPoint and
cyIPoint are kept for backwards compatibility.
cyGL code release
January 24, 2017
A new code release
cyGL is now available in the
code release section.
This release includes classes that simplify the use of some OpenGL functionalities.
cyIPoint code release
December 23, 2016
A new code release
cyIPoint is now available in the
code release section.
This release includes classes for 2D, 3D, and ND integer points.
Using BCC Files
December 23, 2016
I released my
yarn-level cloth models
in a format that I call Binary Curve Collection (BCC).
I added a tutorial in the solution section about
using BCC files.
Sample Elimination
November 21, 2016
An implementation of the
weighted sample elimination
algorithm for generating blue noise (Poisson disk) sample sets and supporting
PointCloud (using a k-d tree) and
Heap classes are added.
Templates and GIT
September 18, 2016
cyCodeBase is now on
github!
Also, many fundamental classes are converted to templates
for supporting both single precision and double precision floating point operations.
The old
Cg classes are removed.
Updated Points and Matrices
September 17, 2016
Minor fixes, performance improvements, and additional methods for matrix classes in the
cyPoint and
cyMatrix code releases.
Update for Matrices
September 30, 2015
Bug fixes, performance improvements, and additional methods for matrix classes in the
cyMatrix code release.
MTL file format support
November 30, 2014
Updates to the
cyTriMesh code release.
The new version can parse MTL files while loading an OBJ file.
Bounding Volume Hierarchy
September 29, 2013
The new code release
cyBVH
has a general purpose bounding volume hierarchy (BVH) class, as well as a BVH class for triangular meshes.
Triangular Mesh class
September 23, 2013
The new code release
cyTriMesh
has a triangular mesh class that can read OBJ files and triangulate the non-triangular faces.
Color class
September 17, 2013
The new code release
cyColor
has color classes with 3 or 4 channels, each of which are single precision floats or 8-bit bytes.
Minor Update
August 23, 2012
Minor bug fix to the matrix classes. The GetInverse methods are now declared as const, as they should have been.
Quaternion class
October 6, 2007
The new code release
cyQuat
has a quaternion class designed for rotation operations of 3D vectors.
HAIR file class
September 10, 2007
The new code release
cyHair
has methods to read and write HAIR model files.
There is also a new solution for
using HAIR files.
Cg code release update
September 5, 2007
New methods to destroy Cg programs added to
cyCgBaseProgram.
You can download the new version in the
code release section.
String class
June 10, 2007
A general purpose string class for char arrays
is added to the
code release section.
Timer classes
June 9, 2007
There is a new code release that includes timer classes.
There is also a new solution for easy performance analysis using these classes.
Spatial Vector Algebra
June 7, 2007
A new code release for spatial vector algebra classes is in the
code release section.
There are also minor updates in other code releases.
Cg classes
May 30, 2007
A new code release is waiting for you in the
code release section.
This release includes classes that simplifies the use of Cg shaders with OpenGL.