# Overview

Library SML includes classes, which represent matrix objects and geometrical objects allowing various operations with them.

Library SML includes the following base classes/functions groups:

##
- Basic geometrical objects

SMLMatrix3f class defines 3x3 matrixes.

SMLMatrix4f class defines 4x4 matrixes.

SMLVec2f class represents 2x1 vector.

SMLVec3f class represents 3x1 vector.

SMLVec4f class represents 4x1 vector.

SMLLine class represents a line in 3D space.

SMLRay creates object with properties of ray.

SMLPlane class represents plane.

SMLBound class is an abstract class providing basic interface for bounding objects

SMLBoxBound class defines parallelepiped by coordinates of its center and corners.

SMLSphereBound class determines spheres with radius and coordinates of the center.

##
- Enchanced matrices support

SMLXMatrix class is a base class for all resizable matrix objects.

SMLXSpatialVector class represents spatial vector objects.

SMLXTmpMatrix class represents temporary matrix objects.

SMLXTransposedMatrix class represents transposed matrices.

Basic geometrical objects are implemented to achieve maximum performance, while SMLXMatrix and SMLXSpatialVector classes are designed to provide convenient interface with overloaded mathematical operations and hidden memory management.

# Platforms Supported

The SM Library runs on Intel® Architecture-based personal computers. This manual presents "collection of the classes" which provides a C++ - language interface to the library.

## Software Requirements

- Microsoft* Windows NT or Windows 95/98
- Microsoft Visual C++ 5.x or later
- Intel® C/C++ Compiler version 4.0 or later (to build Pentium® III version of the library)

## Installation Procedure

In order to build Pentium® III version of the library, _PIII_CODE_ preprocessing definition should be defined. Otherwise, library will be optimized for Pentium® II processor. Source code and a binary library are included in the ..\samples subdirectory.

Note:

For some versions of Microsoft Visual C++ 5.X, compilation of smlxmatrix.cpp file may led to "internal compiler error". In this case you will need Intel® C/C++ Compiler to build the library for Pentium® II processor as well as for Pentium® III processor.

[top]