====== Introduction to the Core library ====== Core is the lowest level library, providing the most basic functionality. Core is written in C++ and is graphics-API independent. It offers the following functionality: * Parses .stsdk files generated by the [[http://docs9.speedtree.com/modeler/doku.php|SpeedTree Modeler]] application, which store the complete definition of a SpeedTree games model, including the following: * [[geometry-overview|Geometry]] * [[level-of-detail|Level of detail (LOD)]] * [[materials-and-textures|Materials and texture references]] (actual texture contents are not embedded in the file) * [[wind-overview|Wind data]] * Bones * [[collision-objects|Collision objects]] * Provides an interface for [[accessing-3d-geometry|retrieving the tree file data]]. * Defines a [[callback-system|callback system]] for tracking heap allocations/deletions, file operations, and error messaging. * Computes LOD values needed to render LOD states (and constants that are uploaded to the wind shaders) that match those set by the artist in the Modeler. * Provides access to a [[cwindstatemgr-in-core|wind class]] that controls the wind animation parameters uploaded to the wind shaders. * Allows an alternate [[coordinate-systems|coordinate systems]] to be set using the ''CCoordSys'' class defined in the Core library. * Defines a number of basic mathematical and utility classes that are used throughout the SDK. The [[forest-library-introduction|Forest library]] is the next highest level library. It depends directly on Core and deals with collections of Core objects in order to build and manage an entire dynamic forest.