namespace CCL::Math

Overview

namespace Math {

// typedefs

typedef Rational <int> Rational32;
typedef Rational <int64> Rational64;
typedef Core::TPoint <double> Point;
typedef const Point& PointRef;

// structs

template <typename T>
struct Constants;

template <>
struct Constants<float>;

template <>
struct Constants<double>;

template <>
struct Functions<double>;

template <typename T>
struct Functions;

template <>
struct Functions<float>;

template <class T>
struct Range;

// classes

class CubicBezierCurve;
class CubicCurve;
class Curve;
class CurveApproacher;
class CurveNormalizer;
class ExponentialCurve;
class LinearCurve;
class LinearSpline;
class LogarithmicCurve;
class NaturalSpline;
class QuadraticCurve;

template <class T>
class RangeList;

template <class T>
class RangeListIterator;

template <class T>
class Rational;

class Region;
class RegionIterator;
class ScaledCurve;
class SplineIterator;
class StepSpline;

// global functions

template  <typename T>
T degreesToRad (T a);

template  <typename T>
T radToDegrees (T a);

template  <typename T>
T millimeterToInch (T mm);

template  <typename T>
T inchToMillimeter (T inch);

template  <typename T>
T inchToCoord (T inch, T dpi);

template  <typename T>
T millimeterToCoord (T mm, T dpi);

template  <typename T>
T dpiFromCoordSizeInch (T coordSizeInInch);

template  <typename T>
T dpiFromCoordSizeMillimeter (T coordSizeInMM);

template  <typename T>
T centToFreqFactor (T cent);

template  <typename T>
T centToFreq (T cent);

template  <typename T>
T freqToCent (T freq);

template  <class T>
T dbToFactor (T db);

template  <class T>
T factorToDb (T factor);

template  <class T>
T timeCentToSeconds (T timeCent);

template  <class T>
T secondsToTimeCent (T seconds);

template  <class T>
T concave (T v);

template  <class T>
T convex (T v);

template  <class T>
T quadConcave (T v);

template  <class T>
T quadConvex (T v);

template  <class T>
void cartesianToPolar (T& theta, T& r, T deltaX, T deltaY);

template  <class T>
void polarToCartesian (T& deltaX, T& deltaY, T theta, T r);

template  <class T>
T stretchRadiusToSquare (T theta, T r);

template  <class T>
void normalizeAngle (T& angle);

} // namespace Math

Detailed Documentation

Global Functions

template  <typename T>
T degreesToRad (T a)

Convert degrees to radians.

template  <typename T>
T radToDegrees (T a)

Convert radians to degrees.

template  <typename T>
T millimeterToInch (T mm)

Convert mm to inch .

template  <typename T>
T inchToMillimeter (T inch)

Convert inch to mm.

template  <typename T>
T inchToCoord (T inch, T dpi)

Convert inch to coordinates (dots).

template  <typename T>
T millimeterToCoord (T mm, T dpi)

Convert millimeter to coordinates (dots).

template  <typename T>
T dpiFromCoordSizeInch (T coordSizeInInch)

Calculate DPI when one dot (coordinate) should be x inches wide.

template  <typename T>
T dpiFromCoordSizeMillimeter (T coordSizeInMM)

Calculate DPI when one dot (coordinate) should be x millimeters wide.

template  <typename T>
T centToFreqFactor (T cent)

Convert cent to frequency factor.

template  <typename T>
T centToFreq (T cent)

Convert cent to freq.

template  <typename T>
T freqToCent (T freq)

Convert freq to cent

template  <class T>
T dbToFactor (T db)

Convert dB to factor.

template  <class T>
T factorToDb (T factor)

Convert factor to dB.

template  <class T>
T timeCentToSeconds (T timeCent)

Convert timecent to seconds.

template  <class T>
T secondsToTimeCent (T seconds)

Convert seconds to timecent.

template  <class T>
T concave (T v)

Modify input value using a concave logarithmic curve.

template  <class T>
T convex (T v)

Modify input value using a convex logarithmic curve.

template  <class T>
T quadConcave (T v)

Modify input value using a concave quadratic curve.

template  <class T>
T quadConvex (T v)

Modify input value using a convex quadratic curve.

template  <class T>
void cartesianToPolar (T& theta, T& r, T deltaX, T deltaY)

convert xy-coordinates to angle and length

template  <class T>
void polarToCartesian (T& deltaX, T& deltaY, T theta, T r)

convert angle and length to xy-coordinates

template  <class T>
T stretchRadiusToSquare (T theta, T r)

stretch the radius of a circle to a square

template  <class T>
void normalizeAngle (T& angle)

normalize an angle in radians to (-pi, pi)