Open Search
    Math Library

    Detailed Description

    Classes

    class  UInteger< N >
     
    class  UInteger< SIZEOF(UIntegerBase) *8 >
     
    class  LinearCongruentialRandom< FLOAT >
     
    class  PseudoRandom< FLOAT >
     
    struct  SqrMat3< V >
     
    struct  Mat3< V >
     
    struct  SqrMat2< V >
     
    struct  Mat2< V >
     
    struct  SqrMat4< V >
     
    class  Range< T >
     
    struct  IsZeroInitialized< Range< T > >
     
    class  TimeValue
     
    class  Hours
     
    class  Minutes
     
    class  Seconds
     
    class  Milliseconds
     
    class  Microseconds
     
    class  Nanoseconds
     
    class  LIMIT< T >
     
    class  LIMIT< Bool >
     
    class  LIMIT< Int64 >
     
    class  LIMIT< UInt64 >
     
    class  LIMIT< Int32 >
     
    class  LIMIT< UInt32 >
     
    class  LIMIT< Int16 >
     
    class  LIMIT< UInt16 >
     
    class  LIMIT< Char >
     
    class  LIMIT< UChar >
     
    class  LIMIT< Float32 >
     
    class  LIMIT< Float64 >
     
    struct  Sum< VALUES >
     
    struct  Sum< X, Y... >
     
    struct  Sum<>
     
    struct  Or< T, VALUES >
     
    struct  Or< T, X, Y... >
     
    struct  Or< T >
     
    class  Complex< T >
     
    class  MatrixNxM< TYPE >
     
    class  MatrixNxMInterface
     
    class  ConstMatrixNxMInterface
     
    class  NoiseInterface
     
    class  RenderNoiseInterface
     
    class  PolynomSolver< T >
     
    class  Quaternion< ValueType >
     
    class  FormulaParseErrorInterface
     
    class  FormulaExecutionErrorInterface
     
    class  FormulaNumberErrorInterface
     
    class  FormulaParserCacheInterface
     
    class  FormulaParserInterface
     

    Macros

    #define MATH_VECTOR
     
    #define MATH_COLOR
     
    #define MATH_MATRIX
     
    #define MATH_SQUAREMATRIX
     
    #define MATH_VECTOR2
     
    #define MATH_MATRIX2
     
    #define MATH_SQUAREMATRIX2
     
    #define SIZEOF(...)
     
    #define COORDINATESYSTEM_LEFT_HANDED
     

    Typedefs

    using UIntegerBase = UInt32
     
    using NativeUInteger = UInteger< SIZEOF(Int) *8 >
     
    using TransformColorDelegate32 = Delegate< Color32(const Color32 &)>
     
    using TransformColorDelegate64 = Delegate< Color64(const Color64 &)>
     
    using TransformValueDelegate32 = Delegate< Float32(const Float32 &)>
     
    using TransformValueDelegate64 = Delegate< Float64(const Float64 &)>
     
    using TransformColorDelegate = TransformColorDelegate64
     
    using TransformValueDelegate = TransformValueDelegate64
     
    using SquareMatrix32 = SqrMat3< Vector32 >
     
    using SquareMatrix64 = SqrMat3< Vector64 >
     
    using SquareMatrix = SqrMat3< Vector >
     
    using Matrix32 = Mat3< Vector32 >
     
    using Matrix64 = Mat3< Vector64 >
     
    using Matrix = Mat3< Vector >
     
    using SquareMatrix2d32 = SqrMat2< Vector2d32 >
     
    using SquareMatrix2d64 = SqrMat2< Vector2d64 >
     
    using SquareMatrix2d = SqrMat2< Vector2d >
     
    using Matrix2d32 = Mat2< Vector2d32 >
     
    using Matrix2d64 = Mat2< Vector2d64 >
     
    using Matrix2d = Mat2< Vector2d >
     
    using SquareMatrix4d32 = SqrMat4< Vector4d32 >
     
    using SquareMatrix4d64 = SqrMat4< Vector4d64 >
     
    using SquareMatrix4d = SqrMat4< Vector4d >
     
    using Frame = Range< Vector2d >
     
    using IntFrame = Range< IntVector2d >
     
    using Vector32 = Vec3< Float32, 1 >
     
    using Vector64 = Vec3< Float64, 1 >
     
    using Vector = Vec3< Float, 1 >
     
    using IntVector32 = Vec3< Int32, 1 >
     
    using UIntVector32 = Vec3< UInt32, 1 >
     
    using IntVector64 = Vec3< Int64, 1 >
     
    using IntVector = Vec3< Int, 1 >
     
    using Color32 = Col3< Float32, 1 >
     
    using Color64 = Col3< Float64, 1 >
     
    using Color = Col3< Float, 1 >
     
    using GenericVector = Vec3< GenericArithmetic, 1 >
     
    using Vector2d32 = Vec2< Float32, 1 >
     
    using Vector2d64 = Vec2< Float64, 1 >
     
    using Vector2d = Vec2< Float, 1 >
     
    using IntVector2d32 = Vec2< Int32, 1 >
     
    using UIntVector2d32 = Vec2< UInt32, 1 >
     
    using IntVector2d64 = Vec2< Int64, 1 >
     
    using UIntVector2d64 = Vec2< UInt64, 1 >
     
    using IntVector2d = Vec2< Int, 1 >
     
    using GenericVector2d = Vec2< GenericArithmetic, 1 >
     
    using Vector4d32 = Vec4< Float32, 1 >
     
    using Vector4d64 = Vec4< Float64, 1 >
     
    using Vector4d = Vec4< Float, 1 >
     
    using IntVector4d32 = Vec4< Int32, 1 >
     
    using IntVector4d64 = Vec4< Int64, 1 >
     
    using IntVector4d = Vec4< Int, 1 >
     
    using ColorA32 = Col4< Float32, 1 >
     
    using ColorA64 = Col4< Float64, 1 >
     
    using ColorA = Col4< Float, 1 >
     
    using GenericVector4d = Vec4< GenericArithmetic, 1 >
     
    using FbmTableRef = OpaqueRef
     
    using FbmTablePtr = OpaqueBase const *
     

    Enumerations

    enum class  ROTATIONORDER {
      ZXYGLOBAL ,
      ZYXGLOBAL ,
      YXZGLOBAL ,
      YZXGLOBAL ,
      XZYGLOBAL ,
      XYZGLOBAL ,
      YXZLOCAL ,
      XYZLOCAL ,
      ZXYLOCAL ,
      XZYLOCAL ,
      YZXLOCAL ,
      ZYXLOCAL
    }
     
    enum class  TIMEFORMAT {
      SECONDS ,
      FRAMES ,
      SMPTE ,
      SMPTE_DROPFRAMES
    }
     
    enum class  METRICUNIT {
      NONE ,
      KM ,
      M ,
      CM ,
      MM ,
      UM ,
      NM ,
      MILE ,
      YARD ,
      FEET ,
      INCH
    }
     
    enum class  ANGLEUNIT {
      DEGREE ,
      RADIANS
    }
     

    Functions

    Int Ctz32 (Int32 x)
     
    Int Ctz64 (Int64 x)
     
    Int Clz32 (Int32 x)
     
    Int Clz64 (Int64 x)
     
    template<typename T >
    Int Clz (T x)
     
    template<typename T >
    Int Ctz (T x)
     
    Bool CompareFloat (Float32 a, Float32 b, Float32 epsilon=1e-10f)
     
    Bool CompareFloat (Float64 a, Float64 b, Float64 epsilon=1e-10)
     
    Bool CompareFloatTolerant (Float32 a, Float32 b)
     
    Bool CompareFloatTolerant (Float64 a, Float64 b)
     
    Bool CheckFloat (Float32 r)
     
    Bool CheckFloat (Float64 r)
     
    Float32 RepairFloat (Float32 r)
     
    Float64 RepairFloat (Float64 r)
     
    Float32 BoxStep (Float32 lowerLimit, Float32 upperLimit, Float32 x)
     
    Float64 BoxStep (Float64 lowerLimit, Float64 upperLimit, Float64 x)
     
    Float32 SmoothStep (Float32 lowerLimit, Float32 upperLimit, Float32 x)
     
    Float64 SmoothStep (Float64 lowerLimit, Float64 upperLimit, Float64 x)
     
    Float32 Modulo (Float32 a, Float32 b)
     
    Float64 Modulo (Float64 a, Float64 b)
     
    Int32 Modulo (Int32 a, Int32 b)
     
    Int64 Modulo (Int64 a, Int64 b)
     
    Float32 Bias (Float32 b, Float32 x)
     
    Float64 Bias (Float64 b, Float64 x)
     
    Float32 Truncate (Float32 x)
     
    Float64 Truncate (Float64 x)
     
    Bool LessThan (UInt a1, UInt a2, UInt b1, UInt b2)
     
    template<typename FLOAT >
    SqrMat3< Vec3< FLOAT > > VectorToSquareMatrix (const Vec3< FLOAT > &dirVector, const Vec3< FLOAT > &upVector)
     
    template<typename FLOAT >
    SqrMat3< Vec3< FLOAT > > CheckedVectorToSquareMatrix (const Vec3< FLOAT > &dirVector, const Vec3< FLOAT > &upVector)
     
    template<typename FLOAT >
    Mat3< Vec3< FLOAT > > VectorToMatrix (const Vec3< FLOAT > &dirVector, const Vec3< FLOAT > &upVector)
     
    template<typename FLOAT >
    Mat3< Vec3< FLOAT > > GetTranslationMatrix (const Vec3< FLOAT > &translation)
     
    template<typename FLOAT >
    SqrMat3< Vec3< FLOAT > > GetScaleMatrix (const Vec3< FLOAT > &scale)
     
    template<typename FLOAT >
    SqrMat3< Vec3< FLOAT > > GetRotationMatrixX (FLOAT angle)
     
    template<typename FLOAT >
    SqrMat3< Vec3< FLOAT > > GetRotationMatrixY (FLOAT angle)
     
    template<typename FLOAT >
    SqrMat3< Vec3< FLOAT > > GetRotationMatrixZ (FLOAT angle)
     
    template<typename FLOAT >
    Mat2< Vec2< FLOAT > > GetTranslationMatrix (const Vec2< FLOAT > &translation)
     
    template<typename FLOAT >
    SqrMat2< Vec2< FLOAT > > GetScaleMatrix (const Vec2< FLOAT > &scale)
     
    template<typename FLOAT >
    SqrMat2< Vec2< FLOAT > > GetRotationMatrix (FLOAT angle)
     
    enum maxon::ROTATIONORDER MAXON_ENUM_LIST (ROTATIONORDER)
     
    template<typename FLOAT >
    Vec3< FLOAT > GetRotationAngles (const SqrMat3< Vec3< FLOAT >> &m, ROTATIONORDER rotationOrder)
     
    template<typename FLOAT >
    Vec3< FLOAT > GetRotationAngles (const Vec3< FLOAT > &direction, ROTATIONORDER rotationOrder)
     
    template<typename FLOAT >
    SqrMat3< Vec3< FLOAT > > GetRotationMatrix (const Vec3< FLOAT > &rotation, ROTATIONORDER rotationOrder)
     
    template<typename FLOAT >
    Mat3< Vec3< FLOAT > > GetPSRMatrix (const Vec3< FLOAT > &position, const Vec3< FLOAT > &scale, const Vec3< FLOAT > &rotation, ROTATIONORDER rotationOrder)
     
    template<typename FLOAT >
    Vec3< FLOAT > GetOptimumRotation (const Vec3< FLOAT > &oldRotation, const Vec3< FLOAT > &newRotation, ROTATIONORDER rotationOrder)
     
    template<typename FLOAT >
    Vec3< FLOAT > GetClosestPointOnLine (const Vec3< FLOAT > &lineOrigin, const Vec3< FLOAT > &lineDirection, const Vec3< FLOAT > &point)
     
    template<typename FLOAT >
    FLOAT GetPointLineDistance (const Vec3< FLOAT > &lineOrigin, const Vec3< FLOAT > &lineDirection, const Vec3< FLOAT > &point)
     
    template<typename FLOAT >
    Vec3< FLOAT > ReflectRay (const Vec3< FLOAT > &direction, const Vec3< FLOAT > &normal)
     
    template<typename FLOAT >
    Vec3< FLOAT > RGBToHSV (const Col3< FLOAT > &color)
     
    template<typename FLOAT >
    Col3< FLOAT > HSVToRGB (const Vec3< FLOAT > &color)
     
    template<typename FLOAT >
    Vec3< FLOAT > RGBToHSL (const Col3< FLOAT > &color)
     
    template<typename FLOAT >
    Col3< FLOAT > HSLToRGB (const Vec3< FLOAT > &color)
     
    template<typename FLOAT >
    void GetRotationAxis (const SqrMat3< Vec3< FLOAT >> &m, Vec3< FLOAT > &axisVector, FLOAT &axisRotation)
     
    template<typename FLOAT >
    SqrMat3< Vec3< FLOAT > > GetRotationMatrixFromAxis (const Vec3< FLOAT > &axisVector, FLOAT axisRotation)
     
    template<typename MATRIXTYPE >
    Bool IsMatrixRectangular (const MATRIXTYPE &m, typename MATRIXTYPE::ValueType epsilon=1e-10_f)
     
    template<typename ITERABLETYPE >
    MAXON_ATTRIBUTE_FORCE_INLINE std::remove_reference< ITERABLETYPE >::type::ValueType GetSum (ITERABLETYPE &&array)
     
    template<typename ITERABLETYPE >
    MAXON_ATTRIBUTE_FORCE_INLINE std::remove_reference< ITERABLETYPE >::type::ValueType GetAverage (ITERABLETYPE &&array)
     
    template<typename V , typename V2 >
    Mat3< typename MultiplicativePromotion< V, typename V2::ValueType >::typeoperator* (const SqrMat3< V > &m, const Mat3< V2 > &m2)
     
    template<typename V , typename V2 >
    Mat2< typename MultiplicativePromotion< V, typename V2::ValueType >::typeoperator* (const SqrMat2< V > &m, const Mat2< V2 > &m2)
     
    template<typename T >
    PrivateRangeValueTypeHelper (OverloadRank0)
     
    template<typename T >
    T::ValueType PrivateRangeValueTypeHelper (OverloadRank1)
     
    template<GET_DATATYPE_POLICY POLICY, typename T >
    Result< DataTypePrivateGetDataType (Range< T > **, OverloadRank0)
     
    enum maxon::TIMEFORMAT MAXON_ENUM_LIST (TIMEFORMAT)
     
    constexpr Hours operator""_h (long double value)
     
    constexpr Minutes operator""_min (long double value)
     
    constexpr Seconds operator""_sec (long double value)
     
    constexpr Milliseconds operator""_ms (long double value)
     
    constexpr Microseconds operator""_us (long double value)
     
    constexpr Nanoseconds operator""_ns (long double value)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Clamp01 (Float32 a)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Clamp01 (Float64 a)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Sin (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Sin (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Cos (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Cos (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Tan (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Tan (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 ATan (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 ATan (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 ATan2 (Float32 valY, Float32 valX)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 ATan2 (Float64 valY, Float64 valX)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Exp (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Exp (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Exp2 (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Exp2 (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Ln (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Ln (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Log10 (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Log10 (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Log2 (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Log2 (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Sqrt (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Sqrt (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Floor (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Floor (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Ceil (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Ceil (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Round (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Round (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Pow (Float32 v1, Float32 v2)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Pow (Float64 v1, Float64 v2)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Sinh (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Sinh (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Cosh (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Cosh (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Tanh (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Tanh (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 FMod (Float32 v1, Float32 v2)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 FMod (Float64 v1, Float64 v2)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Abs (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Abs (Float64 val)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Float32 Inverse (Float32 f)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Float64 Inverse (Float64 f)
     
    template<typename X >
    constexpr MAXON_ATTRIBUTE_FORCE_INLINEAbs (X f)
     
    template<typename X >
    constexpr MAXON_ATTRIBUTE_FORCE_INLINEMin (X a, X b)
     
    template<typename X >
    constexpr MAXON_ATTRIBUTE_FORCE_INLINEMax (X a, X b)
     
    template<typename X >
    MAXON_ATTRIBUTE_FORCE_INLINE void Swap (X &a, X &b)
     
    template<typename X >
    MAXON_ATTRIBUTE_FORCE_INLINEClampValue (X value, X lowerLimit, X upperLimit)
     
    template<typename X , typename Y >
    MAXON_ATTRIBUTE_FORCE_INLINEBlend (const X &value1, const X &value2, Y blendValue)
     
    template<typename X >
    MAXON_ATTRIBUTE_FORCE_INLINESqr (X a, X b)
     
    template<typename X >
    MAXON_ATTRIBUTE_FORCE_INLINESqr (X a)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Gamma (Float32 value, Float32 gamma)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Gamma (Float64 value, Float64 gamma)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Si (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Si (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 Sinc (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 Sinc (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 ASin (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 ASin (Float64 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float32 ACos (Float32 val)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float64 ACos (Float64 val)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Float32 DegToRad (Float32 r)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Float64 DegToRad (Float64 r)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Float32 RadToDeg (Float32 r)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Float64 RadToDeg (Float64 r)
     
    MAXON_ATTRIBUTE_FORCE_INLINE void SinCos (Float32 val, Float32 &sn, Float32 &cs)
     
    MAXON_ATTRIBUTE_FORCE_INLINE void SinCos (Float64 val, Float64 &sn, Float64 &cs)
     
    template<typename DEST >
    MAXON_ATTRIBUTE_FORCE_INLINE DEST SafeConvert (Float64 src)
     
    template<typename DEST >
    MAXON_ATTRIBUTE_FORCE_INLINE DEST SafeConvert (Float32 src)
     
    template<typename T >
    MAXON_ATTRIBUTE_FORCE_INLINE void SetMax (T &a, const typename SFINAEHelper< T >::type &b)
     
    template<typename T >
    MAXON_ATTRIBUTE_FORCE_INLINE void SetMin (T &a, const typename SFINAEHelper< T >::type &b)
     
    template<typename X >
    MAXON_ATTRIBUTE_FORCE_INLINE Int Sign (X f)
     
    template<typename T >
    MAXON_ATTRIBUTE_FORCE_INLINEMod (T a, T b)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Bool IsPowerOfTwo (UInt32 x)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Bool IsPowerOfTwo (UInt64 x)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA IntToColor (UInt r, UInt g, UInt b, UInt a)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA IntToColor (UInt r, UInt g, UInt b)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA FloatToColor (Float r, Float g, Float b, Float a)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA FloatToColor (Float r, Float g, Float b)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA ColorSetAlpha (const ColorA &col, Float alpha)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA ColorMultiplyAlpha (const ColorA &col, Float alpha)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Color BlendColors (const Color &col1, const Color &col2, Float alpha)
     
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA BlendColors (const ColorA &col1, const ColorA &col2, Float alpha)
     
    template<typename COLORTYPE >
    constexpr MAXON_ATTRIBUTE_FORCE_INLINE COLORTYPE BlendColor (const COLORTYPE &col1, const COLORTYPE &col2, const typename COLORTYPE::ValueType blendValue)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Float GetPerceivedBrightness (const ColorA &color)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Bool IsColorPerceivedAsDark (const ColorA &color)
     
     MAXON_REGISTRY (Class< RenderNoise >, RenderNoiseClasses, "net.maxon.render.registry.rendernoiseclasses")
     
    enum maxon::METRICUNIT MAXON_ENUM_LIST (METRICUNIT)
     
    enum maxon::ANGLEUNIT MAXON_ENUM_LIST (ANGLEUNIT)
     

    Variables

    const Float64 FRAMERATE_DEFAULT
     
    const Float64 FRAMERATE_NTSC
     
    const Float64 FRAMERATE_PAL
     
    const Float64 FRAMERATE_FILM
     
    const Float64 FRAMERATE_FILM_NTSC
     
    static constexpr Seconds TIMEVALUE_INFINITE
     
    static constexpr Seconds TIMEVALUE_INVALID
     
    static constexpr Float32 MINVALUE_FLOAT32
     
    static constexpr Float32 MAXVALUE_FLOAT32
     
    static constexpr Float64 MINVALUE_FLOAT64
     
    static constexpr Float64 MAXVALUE_FLOAT64
     
    static constexpr Float32 MINVALUE_INT32_FLOAT32
     
    static constexpr Float32 MAXVALUE_INT32_FLOAT32
     
    static constexpr Float64 MINVALUE_INT64_FLOAT64
     
    static constexpr Float64 MAXVALUE_INT64_FLOAT64
     
    static constexpr Float32 MINRANGE_FLOAT32
     
    static constexpr Float32 MAXRANGE_FLOAT32
     
    static constexpr Float64 MINRANGE_FLOAT64
     
    static constexpr Float64 MAXRANGE_FLOAT64
     
    static constexpr Float MINVALUE_FLOAT
     
    static constexpr Float MAXVALUE_FLOAT
     
    static constexpr Float MINRANGE_FLOAT
     
    static constexpr Float MAXRANGE_FLOAT
     
    static constexpr Int NOTOK
     
    static constexpr Float64 PI
     
    static constexpr Float64 PI_INV
     
    static constexpr Float64 PI2
     
    static constexpr Float64 PI2_INV
     
    static constexpr Float64 PI05
     
    static constexpr Float64 PI05_INV
     
    static constexpr Float64 SQRT2
     
    static constexpr Float64 SQRT_PI2
     
    static constexpr Float64 SQRT2_INV
     
    static constexpr Float64 SQRT3
     
    static constexpr Float64 LOG2
     
    static const Float PERCEIVED_BRIGHTNESS_FACTOR_RED
     
    static const Float PERCEIVED_BRIGHTNESS_FACTOR_GREEN
     
    static const Float PERCEIVED_BRIGHTNESS_FACTOR_BLUE
     
    static const Float PERCEIVED_BRIGHTNESS_CUTOFF
     

    Macro Definition Documentation

    ◆ MATH_VECTOR

    #define MATH_VECTOR

    ◆ MATH_COLOR

    #define MATH_COLOR

    ◆ MATH_MATRIX

    #define MATH_MATRIX

    ◆ MATH_SQUAREMATRIX

    #define MATH_SQUAREMATRIX

    ◆ MATH_VECTOR2

    #define MATH_VECTOR2

    ◆ MATH_MATRIX2

    #define MATH_MATRIX2

    ◆ MATH_SQUAREMATRIX2

    #define MATH_SQUAREMATRIX2

    ◆ SIZEOF

    #define SIZEOF (   ...)

    Calculates the size of a datatype or element.

    ◆ COORDINATESYSTEM_LEFT_HANDED

    #define COORDINATESYSTEM_LEFT_HANDED

    Major control to define the used coordinate system. So far C4D runs only with left-handed coordinates.

    Typedef Documentation

    ◆ UIntegerBase

    ◆ NativeUInteger

    ◆ TransformColorDelegate32

    ◆ TransformColorDelegate64

    ◆ TransformValueDelegate32

    ◆ TransformValueDelegate64

    ◆ TransformColorDelegate

    ◆ TransformValueDelegate

    ◆ SquareMatrix32

    Single-precision 3×3 matrix.

    ◆ SquareMatrix64

    Double-precision 3×3 matrix.

    ◆ SquareMatrix

    3×3 matrix with the precision of Float.

    ◆ Matrix32

    Single-Precision Matrix.

    The matrix has a dimension of 4×4 and consists of four rows and four columns. The first row is always "1, 0, 0, 0" and not stored in the class, which means that there are 12 actual numbers used. These numbers are grouped into four vectors, one for the remaining numbers in each column. The four vectors are called off, v1, v2 and v3, together these four vectors can be used to represent the coordinate system. A coordinate system consists of three axes, one for each coordinate (X, Y and Z). The system also has a base position, from which the three axes originate. This base position is stored in off, and the three axis vectors are stored in v1, v2 and v3 respectively. For a rectangular, normalized matrix v3 equals the cross product of v1 and v2 (v1v2). C4D by default uses a left-handed coordinate system (see define COORDINATESYSTEM_LEFT_HANDED).

    ◆ Matrix64

    Double-Precision Matrix.

    The matrix has a dimension of 4×4 and consists of four rows and four columns. The first row is always "1, 0, 0, 0" and not stored in the class, which means that there are 12 actual numbers used. These numbers are grouped into four vectors, one for the remaining numbers in each column. The four vectors are called off, v1, v2 and v3, together these four vectors can be used to represent the coordinate system. A coordinate system consists of three axes, one for each coordinate (X, Y and Z). The system also has a base position, from which the three axes originate. This base position is stored in off, and the three axis vectors are stored in v1, v2 and v3 respectively. For a rectangular, normalized matrix v3 equals the cross product of v1 and v2 (v1v2). C4D by default uses a left-handed coordinate system (see define COORDINATESYSTEM_LEFT_HANDED).

    ◆ Matrix

    using Matrix = Mat3<Vector>

    Matrix with the precision of Float.

    The matrix has a dimension of 4×4 and consists of four rows and four columns. The first row is always "1, 0, 0, 0" and not stored in the class, which means that there are 12 actual numbers used. These numbers are grouped into four vectors, one for the remaining numbers in each column. The four vectors are called off, v1, v2 and v3, together these four vectors can be used to represent the coordinate system. A coordinate system consists of three axes, one for each coordinate (X, Y and Z). The system also has a base position, from which the three axes originate. This base position is stored in off, and the three axis vectors are stored in v1, v2 and v3 respectively. For a rectangular, normalized matrix v3 equals the cross product of v1 and v2 (v1v2). C4D by default uses a left-handed coordinate system (see define COORDINATESYSTEM_LEFT_HANDED).

    ◆ SquareMatrix2d32

    Single-precision 2×2 matrix.

    ◆ SquareMatrix2d64

    Double-precision 2×2 matrix.

    ◆ SquareMatrix2d

    2×2 matrix with the precision of Float.

    ◆ Matrix2d32

    Single-Precision Matrix. The matrix has a dimension of 3×3 and consists of three rows and three columns. The first row is always "1, 0, 0" and not stored in the class, which means that there are 6 actual numbers used. These numbers are grouped into three vectors, one for the remaining numbers in each column. The three vectors are called off, v1 and v2, together these three vectors can be used to represent the coordinate system. A coordinate system consists of two axes, one for each coordinate (X and Y). The system also has a base position, from which the two axes originate. This base position is stored in off, and the two axis vectors are stored in v1 and v2 respectively

    ◆ Matrix2d64

    Double-Precision Matrix. The matrix has a dimension of 3×3 and consists of three rows and three columns. The first row is always "1, 0, 0" and not stored in the class, which means that there are 6 actual numbers used. These numbers are grouped into three vectors, one for the remaining numbers in each column. The three vectors are called off, v1 and v2, together these three vectors can be used to represent the coordinate system. A coordinate system consists of two axes, one for each coordinate (X and Y). The system also has a base position, from which the two axes originate. This base position is stored in off, and the two axis vectors are stored in v1 and v2 respectively

    ◆ Matrix2d

    Matrix with the precision of Float. The matrix has a dimension of 3×3 and consists of three rows and three columns. The first row is always "1, 0, 0" and not stored in the class, which means that there are 6 actual numbers used. These numbers are grouped into three vectors, one for the remaining numbers in each column. The three vectors are called off, v1 and v2, together these three vectors can be used to represent the coordinate system. A coordinate system consists of two axes, one for each coordinate (X and Y). The system also has a base position, from which the two axes originate. This base position is stored in off, and the two axis vectors are stored in v1 and v2 respectively

    ◆ SquareMatrix4d32

    Single-Precision Matrix.

    ◆ SquareMatrix4d64

    Double-Precision Matrix.

    ◆ SquareMatrix4d

    Matrix with the precision of Float.

    ◆ Frame

    using Frame = Range<Vector2d>

    Range with the precision of Float.

    ◆ IntFrame

    Range with the precision of Int.

    ◆ Vector32

    using Vector32 = Vec3<Float32, 1>

    Single-Precision Vector. A vector contains three components X, Y and Z

    ◆ Vector64

    using Vector64 = Vec3<Float64, 1>

    Double-Precision Vector. A vector contains three components X, Y and Z

    ◆ Vector

    using Vector = Vec3<Float, 1>

    Vector with the precision of Float. A vector contains three components X, Y and Z

    ◆ IntVector32

    using IntVector32 = Vec3<Int32, 1>

    32-bit Int Vector. A vector contains three components X, Y and Z

    ◆ UIntVector32

    using UIntVector32 = Vec3<UInt32, 1>

    32-bit UInt Vector. A vector contains three components X, Y and Z

    ◆ IntVector64

    using IntVector64 = Vec3<Int64, 1>

    64-bit Int Vector. A vector contains three components X, Y and Z

    ◆ IntVector

    using IntVector = Vec3<Int, 1>

    Vector of Int. A vector contains three components X, Y and Z

    ◆ Color32

    using Color32 = Col3<Float32, 1>

    Single-Precision Color. A color contains three components R, G and B

    ◆ Color64

    using Color64 = Col3<Float64, 1>

    Double-Precision Color. A color contains three components R, G and B

    ◆ Color

    using Color = Col3<Float, 1>

    Color with the precision of Float. A color contains three components R, G and B

    ◆ GenericVector

    Generic arithmetic vector type.

    ◆ Vector2d32

    using Vector2d32 = Vec2<Float32, 1>

    Single-Precision Vector. A vector contains two components X and Y

    ◆ Vector2d64

    using Vector2d64 = Vec2<Float64, 1>

    Double-Precision Vector. A vector contains two components X and Y

    ◆ Vector2d

    using Vector2d = Vec2<Float, 1>

    Vector with the precision of Float. A vector contains two components X and Y

    ◆ IntVector2d32

    using IntVector2d32 = Vec2<Int32, 1>

    32-bit Int Vector. A vector contains three components X, Y and Z

    ◆ UIntVector2d32

    using UIntVector2d32 = Vec2<UInt32, 1>

    32-bit UInt Vector. A vector contains three components X, Y and Z

    ◆ IntVector2d64

    using IntVector2d64 = Vec2<Int64, 1>

    64-bit Int Vector. A vector contains three components X, Y and Z

    ◆ UIntVector2d64

    using UIntVector2d64 = Vec2<UInt64, 1>

    64-bit UInt Vector. A vector contains three components X, Y and Z

    ◆ IntVector2d

    using IntVector2d = Vec2<Int, 1>

    Vector of Int. A vector contains three components X, Y and Z

    ◆ GenericVector2d

    Generic arithmetic vector type.

    ◆ Vector4d32

    using Vector4d32 = Vec4<Float32, 1>

    Single-Precision Vector. A vector contains three components X, Y, Z and W

    ◆ Vector4d64

    using Vector4d64 = Vec4<Float64, 1>

    Double-Precision Vector. A vector contains three components X, Y, Z and W

    ◆ Vector4d

    using Vector4d = Vec4<Float, 1>

    Vector with the precision of Float. A vector contains four components X, Y, Z and W

    ◆ IntVector4d32

    using IntVector4d32 = Vec4<Int32, 1>

    32-bit Int Vector. A vector contains four components X, Y, Z and W

    ◆ IntVector4d64

    using IntVector4d64 = Vec4<Int64, 1>

    64-bit Int Vector. A vector contains four components X, Y, Z and W

    ◆ IntVector4d

    using IntVector4d = Vec4<Int, 1>

    Vector of Int. A vector contains four components X, Y, Z and W

    ◆ ColorA32

    using ColorA32 = Col4<Float32, 1>

    Single-Precision Color with Alpha. A color contains three components R, G, B and A

    ◆ ColorA64

    using ColorA64 = Col4<Float64, 1>

    Double-Precision Color with Alpha. A color contains three components R, G, B and A

    ◆ ColorA

    using ColorA = Col4<Float, 1>

    Color with Alpha with the precision of Float. A color contains four components R, G, B and A

    ◆ GenericVector4d

    Generic arithmetic vector type.

    ◆ FbmTableRef

    ◆ FbmTablePtr

    using FbmTablePtr = OpaqueBase const*

    Enumeration Type Documentation

    ◆ ROTATIONORDER

    enum ROTATIONORDER
    strong

    Defines in which order rotations are executed. Global means that the rotation will always be done around the world axes. Local means that the rotation will always be done around an already rotated axis of an axis system. For each global rotation there is a local counterpart and vice versa. All rotations are done so that a positive angle rotates counter-clockwise (when the rotation axis is facing towards the viewer).

    Enumerator
    ZXYGLOBAL 
    ZYXGLOBAL 
    YXZGLOBAL 
    YZXGLOBAL 
    XZYGLOBAL 
    XYZGLOBAL 
    YXZLOCAL 
    XYZLOCAL 
    ZXYLOCAL 
    XZYLOCAL 
    YZXLOCAL 
    ZYXLOCAL 

    ◆ TIMEFORMAT

    enum TIMEFORMAT
    strong

    format in which time values are displayed

    Enumerator
    SECONDS 

    display time in seconds

    FRAMES 

    display time as a frame number

    SMPTE 

    display time as SMPTE time code

    SMPTE_DROPFRAMES 

    display clock time as SMPTE time code (see here for information on drop frames)

    ◆ METRICUNIT

    enum METRICUNIT
    strong

    Metric unit.

    Enumerator
    NONE 

    No metric unit.

    KM 

    kilometer

    meter

    CM 

    centimeter

    MM 

    millimeter

    UM 

    micrometer

    NM 

    nanometer

    MILE 

    mile (1.609344 km)

    YARD 

    yard (91.44 cm)

    FEET 

    feet (30.48 cm)

    INCH 

    inch (2.54 cm)

    ◆ ANGLEUNIT

    enum ANGLEUNIT
    strong

    Angle unit.

    Enumerator
    DEGREE 

    trigonometric functions expect degree values

    RADIANS 

    trigonometric functions expect radians values

    Function Documentation

    ◆ Ctz32()

    Int maxon::Ctz32 ( Int32  x)

    ◆ Ctz64()

    Int maxon::Ctz64 ( Int64  x)

    ◆ Clz32()

    Int maxon::Clz32 ( Int32  x)

    ◆ Clz64()

    Int maxon::Clz64 ( Int64  x)

    ◆ Clz()

    Int maxon::Clz ( x)

    Counts the number of leading zero bits of x. If x is zero, the bit width of T is returned. Note that the result depends on the bit width, i.e., Clz((Int16) 0xff) will return 8, while Clz((Int32) 0xff) will return 24.

    Parameters
    [in]xValue of which leading zero bits shall be counted.
    Template Parameters
    TType of x, this has to be an integral type.
    Returns
    Number of leading zero bits of x.

    ◆ Ctz()

    Int maxon::Ctz ( x)

    Counts the number of trailing zero bits of x. If x is zero, the 0 is returned.

    Parameters
    [in]xValue of which trailing zero bits shall be counted.
    Template Parameters
    TType of x, this has to be an integral type.
    Returns
    Number of trailing zero bits of x.

    ◆ CompareFloat() [1/2]

    Bool maxon::CompareFloat ( Float32  a,
    Float32  b,
    Float32  epsilon = 1e-10f 
    )

    Compare two floating point values according to a given epsilon.

    Returns
    The result is true if the values are identical or nearly identical (according to epsilon)

    ◆ CompareFloat() [2/2]

    Bool maxon::CompareFloat ( Float64  a,
    Float64  b,
    Float64  epsilon = 1e-10 
    )

    Compare two floating point values according to a given epsilon.

    Returns
    The result is true if the values are identical or nearly identical (according to epsilon)

    ◆ CompareFloatTolerant() [1/2]

    Bool maxon::CompareFloatTolerant ( Float32  a,
    Float32  b 
    )

    Compare two floating point values.

    Returns
    The result is true if the values are identical or nearly identical (the last 3 bits may be different)

    ◆ CompareFloatTolerant() [2/2]

    Bool maxon::CompareFloatTolerant ( Float64  a,
    Float64  b 
    )

    Compare two floating point values.

    Returns
    The result is true if the values are identical or nearly identical (the last 3 bits may be different)

    ◆ CheckFloat() [1/2]

    Bool maxon::CheckFloat ( Float32  r)

    Tests if a floating point number is valid.

    Returns
    True for FP_NORMAL, FP_SUBNORMAL, FP_ZERO and false for FP_NAN, FP_INFINITE.

    ◆ CheckFloat() [2/2]

    Bool maxon::CheckFloat ( Float64  r)

    Tests if a floating point number is valid.

    Returns
    True for FP_NORMAL, FP_SUBNORMAL, FP_ZERO and false for FP_NAN, FP_INFINITE.

    ◆ RepairFloat() [1/2]

    Float32 maxon::RepairFloat ( Float32  r)

    Repair floating point number. Only NANs and Infinity are corrected - denormalized numbers stay unchanged

    ◆ RepairFloat() [2/2]

    Float64 maxon::RepairFloat ( Float64  r)

    Repair floating point number. Only NANs and Infinity are corrected - denormalized numbers stay unchanged

    ◆ BoxStep() [1/2]

    Float32 maxon::BoxStep ( Float32  lowerLimit,
    Float32  upperLimit,
    Float32  x 
    )

    calculates the relative position of x in the range [lowerLimit..upperLimit]. if x <= lowerLimit the return value is 0.0, if x >= upperLimit it is 1.0, otherwise the relative position: (x - lowerLimit) / (upperLimit - lowerLimit)

    ◆ BoxStep() [2/2]

    Float64 maxon::BoxStep ( Float64  lowerLimit,
    Float64  upperLimit,
    Float64  x 
    )

    calculates the relative position of x in the range [lowerLimit..upperLimit]. if x <= lowerLimit the return value is 0.0, if x >= upperLimit it is 1.0, otherwise the relative position: (x - lowerLimit) / (upperLimit - lowerLimit)

    ◆ SmoothStep() [1/2]

    Float32 maxon::SmoothStep ( Float32  lowerLimit,
    Float32  upperLimit,
    Float32  x 
    )

    identical to Boxstep, but with a soft curve instead of linear behaviour in the range of [lowerLimit..upperLimit].

    ◆ SmoothStep() [2/2]

    Float64 maxon::SmoothStep ( Float64  lowerLimit,
    Float64  upperLimit,
    Float64  x 
    )

    identical to Boxstep, but with a soft curve instead of linear behaviour in the range of [lowerLimit..upperLimit].

    ◆ Modulo() [1/4]

    Float32 maxon::Modulo ( Float32  a,
    Float32  b 
    )

    Calculates the modulo of two floating point values. If the first value is positive, it behaves like a regular C++ modulo. Below zero the results are different though as the modulo continues to operate like in the positive domain: e.g. -1 % 7 = 6 or -8 % 7 = 6.

    Parameters
    [in]aPositive or negative value.
    [in]bThis value must be positive, otherwise the return value will be zero.

    ◆ Modulo() [2/4]

    Float64 maxon::Modulo ( Float64  a,
    Float64  b 
    )

    Calculates the modulo of two floating point values. If the first value is positive, it behaves like a regular C++ modulo. Below zero the results are different though as the modulo continues to operate like in the positive domain: e.g. -1 % 7 = 6 or -8 % 7 = 6.

    Parameters
    [in]aPositive or negative value.
    [in]bThis value must be positive, otherwise the return value will be zero.

    ◆ Modulo() [3/4]

    Int32 maxon::Modulo ( Int32  a,
    Int32  b 
    )

    Calculates the modulo of two integer values. If the first value is positive, it behaves like a regular C++ modulo. Below zero the results are different though as the modulo continues to operate like in the positive domain: e.g. -1 % 7 = 6 or -8 % 7 = 6.

    Parameters
    [in]aPositive or negative value.
    [in]bThis value must be positive, otherwise the return value will be zero.

    ◆ Modulo() [4/4]

    Int64 maxon::Modulo ( Int64  a,
    Int64  b 
    )

    Calculates the modulo of two integer values. If the first value is positive, it behaves like a regular C++ modulo. Below zero the results are different though as the modulo continues to operate like in the positive domain: e.g. -1 % 7 = 6 or -8 % 7 = 6.

    Parameters
    [in]aPositive or negative value.
    [in]bThis value must be positive, otherwise the return value will be zero.

    ◆ Bias() [1/2]

    Float32 maxon::Bias ( Float32  b,
    Float32  x 
    )

    calculates x ^ log2(b). b must be > 0.0

    ◆ Bias() [2/2]

    Float64 maxon::Bias ( Float64  b,
    Float64  x 
    )

    calculates x ^ log2(b) b must be > 0.0

    ◆ Truncate() [1/2]

    Float32 maxon::Truncate ( Float32  x)

    returns Floor for positive values and zero or Ceil for negative values

    ◆ Truncate() [2/2]

    Float64 maxon::Truncate ( Float64  x)

    returns Floor for positive values and zero or Ceil for negative values

    ◆ LessThan()

    Bool maxon::LessThan ( UInt  a1,
    UInt  a2,
    UInt  b1,
    UInt  b2 
    )

    Returns true if a1*a2 is less than b1*b2. The products and the comparison are carried out with the double bit width of Int so that no overflow occurs.

    Parameters
    [in]a1First factor of first comparison operand.
    [in]a2Second factor of first comparison operand.
    [in]b1First factor of second comparison operand.
    [in]b2Second factor of second comparison operand.
    Returns
    True if a1*a2 < b1*b2.

    ◆ VectorToSquareMatrix()

    SqrMat3<Vec3<FLOAT> > maxon::VectorToSquareMatrix ( const Vec3< FLOAT > &  dirVector,
    const Vec3< FLOAT > &  upVector 
    )

    Convert a facing direction and up direction to a square matrix.

    Template Parameters
    FLOATThe vector's internal type.
    Parameters
    [in]dirVectorThe matrix's z axis.
    [in]upVectorWorld's up vector used to calculate matrix.
    Returns
    The matrix.

    ◆ CheckedVectorToSquareMatrix()

    SqrMat3<Vec3<FLOAT> > maxon::CheckedVectorToSquareMatrix ( const Vec3< FLOAT > &  dirVector,
    const Vec3< FLOAT > &  upVector 
    )
    See also
    VectorToSquareMatrix. Same but will add a parallel check between the supplied vector and rotate #dirVector 90 degrees until they are not parallel anymore.

    ◆ VectorToMatrix()

    Mat3<Vec3<FLOAT> > maxon::VectorToMatrix ( const Vec3< FLOAT > &  dirVector,
    const Vec3< FLOAT > &  upVector 
    )

    Convert a facing direction and up direction to a matrix.

    Template Parameters
    FLOATThe vector's internal type.
    Parameters
    [in]dirVectorThe matrix's z axis.
    [in]upVectorWorld's up vector used to calculate matrix.
    Returns
    The matrix.

    ◆ GetTranslationMatrix() [1/2]

    Mat3<Vec3<FLOAT> > maxon::GetTranslationMatrix ( const Vec3< FLOAT > &  translation)

    Calculates a matrix to move / translate.

    ◆ GetScaleMatrix() [1/2]

    SqrMat3<Vec3<FLOAT> > maxon::GetScaleMatrix ( const Vec3< FLOAT > &  scale)

    Calculates a matrix to scale.

    ◆ GetRotationMatrixX()

    SqrMat3<Vec3<FLOAT> > maxon::GetRotationMatrixX ( FLOAT  angle)

    Calculates a matrix to rotate around the X axis. A positive angle rotates counter-clockwise (when the rotation axis is facing towards the viewer).

    ◆ GetRotationMatrixY()

    SqrMat3<Vec3<FLOAT> > maxon::GetRotationMatrixY ( FLOAT  angle)

    Calculates a matrix to rotate around the Y axis. A positive angle rotates counter-clockwise (when the rotation axis is facing towards the viewer).

    ◆ GetRotationMatrixZ()

    SqrMat3<Vec3<FLOAT> > maxon::GetRotationMatrixZ ( FLOAT  angle)

    Calculates a matrix to rotate around the Z axis. A positive angle rotates counter-clockwise (when the rotation axis is facing towards the viewer).

    ◆ GetTranslationMatrix() [2/2]

    Mat2<Vec2<FLOAT> > maxon::GetTranslationMatrix ( const Vec2< FLOAT > &  translation)

    Calculates a matrix to move / translate.

    ◆ GetScaleMatrix() [2/2]

    SqrMat2<Vec2<FLOAT> > maxon::GetScaleMatrix ( const Vec2< FLOAT > &  scale)

    Calculates a matrix to scale.

    ◆ GetRotationMatrix() [1/2]

    SqrMat2<Vec2<FLOAT> > maxon::GetRotationMatrix ( FLOAT  angle)

    Calculates a rotation matrix. A positive angle rotates counter-clockwise. Note that the 2d rotation is different from the GetRotationMatrixZ rotation in 3d - the latter one rotates looking onto the axis, thus clockwise if you look from the front.

    ◆ MAXON_ENUM_LIST() [1/4]

    enum maxon::ROTATIONORDER maxon::MAXON_ENUM_LIST ( ROTATIONORDER  )

    ◆ GetRotationAngles() [1/2]

    Vec3<FLOAT> maxon::GetRotationAngles ( const SqrMat3< Vec3< FLOAT >> &  m,
    ROTATIONORDER  rotationOrder 
    )

    Calculates rotation values of a matrix.

    Parameters
    [in]mMatrix. The axes do not need to be normalized, but should be perpendicular. The 'offset' component has no influence on the outcome.
    [in]rotationOrderRotation order in which the rotations shall be executed.
    Returns
    Calculated rotation values, which can be used to re-create the matrix again using GetRotationMatrix. A positive angle rotates counter-clockwise (when the rotation axis is facing towards the viewer).

    ◆ GetRotationAngles() [2/2]

    Vec3<FLOAT> maxon::GetRotationAngles ( const Vec3< FLOAT > &  direction,
    ROTATIONORDER  rotationOrder 
    )

    Calculates a rotation from a given direction vector.

    Parameters
    [in]directionDirection vector, does not need to be normalized. The direction vector defines the first rotation axis of any (global) rotation order. So, e.g. for ROTATIONORDER::XYZGLOBAL 'direction' defines the +X direction.
    [in]rotationOrderRotation order in which the rotations shall be executed.
    Returns
    Rotation that can be transformed into a matrix using GetRotationMatrix. The first rotation axis (according to the rotation order) will be parallel to 'direction' (e.g. for ROTATIONORDER::XYZGLOBAL this is the +X axis).

    ◆ GetRotationMatrix() [2/2]

    SqrMat3<Vec3<FLOAT> > maxon::GetRotationMatrix ( const Vec3< FLOAT > &  rotation,
    ROTATIONORDER  rotationOrder 
    )

    Constructs a rotation matrix from a given rotation. A positive angle rotates counter-clockwise (when the rotation axis is facing towards the viewer).

    Parameters
    [in]rotationRotation value that is interpreted depending on the rotation order.
    [in]rotationOrderRotation order in which the rotations shall be executed.
    Returns
    A matrix with normalized, perpendicular vectors and offset 0.0.

    ◆ GetPSRMatrix()

    Mat3<Vec3<FLOAT> > maxon::GetPSRMatrix ( const Vec3< FLOAT > &  position,
    const Vec3< FLOAT > &  scale,
    const Vec3< FLOAT > &  rotation,
    ROTATIONORDER  rotationOrder 
    )

    Constructs a matrix from a given position, scale and rotation. A positive angle rotates counter-clockwise (when the rotation axis is facing towards the viewer).

    Parameters
    [in]positionTranslation value (offset of the resulting matrix).
    [in]scaleScale value (length of the resulting axes).
    [in]rotationRotation value that is interpreted depending on the rotation order.
    [in]rotationOrderRotation order in which the rotations shall be executed.
    Returns
    A matrix with normalized, perpendicular vectors and offset 0.0.

    ◆ GetOptimumRotation()

    Vec3<FLOAT> maxon::GetOptimumRotation ( const Vec3< FLOAT > &  oldRotation,
    const Vec3< FLOAT > &  newRotation,
    ROTATIONORDER  rotationOrder 
    )

    Corrects a new rotational value to match an old one as close as possible. This will avoid singularity effects (sudden 'flips' when a rotation jumps from 360 to 0 degrees).

    Parameters
    [in]oldRotationLast rotation value.
    [in]newRotationNew rotation value that needs to be corrected.
    [in]rotationOrderRotation order in which the rotations shall be executed.
    Returns
    The rotation value that is closest to oldRotation, but creates the same matrix.

    ◆ GetClosestPointOnLine()

    Vec3<FLOAT> maxon::GetClosestPointOnLine ( const Vec3< FLOAT > &  lineOrigin,
    const Vec3< FLOAT > &  lineDirection,
    const Vec3< FLOAT > &  point 
    )

    Calculates the closest point on a line.

    Parameters
    [in]lineOriginThe starting point of the line.
    [in]lineDirectionThe direction vector of the line (does not need to be normalized)
    [in]pointThe point.
    Returns
    The closest point on the line (with the minimum distance to the given point). If lineDirection was a null vector, the result will be lineOrigin.

    ◆ GetPointLineDistance()

    FLOAT maxon::GetPointLineDistance ( const Vec3< FLOAT > &  lineOrigin,
    const Vec3< FLOAT > &  lineDirection,
    const Vec3< FLOAT > &  point 
    )

    Calculates the distance of a point and a line.

    Parameters
    [in]lineOriginThe starting point of the line.
    [in]lineDirectionThe direction vector of the line (does not need to be normalized)
    [in]pointThe point.
    Returns
    The minimum distance of the given line and point. If lineDirection was a null vector, the result will be 0.0.

    ◆ ReflectRay()

    Vec3<FLOAT> maxon::ReflectRay ( const Vec3< FLOAT > &  direction,
    const Vec3< FLOAT > &  normal 
    )

    Reflects a ray on a surface.

    Parameters
    [in]directionThe direction of the ray, must be normalized.
    [in]normalSurface normal, must be normalized.
    Returns
    The reflected ray, which is also normalized.

    ◆ RGBToHSV()

    Vec3<FLOAT> maxon::RGBToHSV ( const Col3< FLOAT > &  color)

    Converts RGB into HSV color space.

    Parameters
    [in]colorThe RGB color (with r/g/b >= 0.0)
    Returns
    The HSV (hue, saturation, value) color.

    ◆ HSVToRGB()

    Col3<FLOAT> maxon::HSVToRGB ( const Vec3< FLOAT > &  color)

    Converts HSV into RGB color space.

    Parameters
    [in]colorThe HSV (hue, saturation, value) color (with h/s/v >= 0.0)
    Returns
    The RGB color.

    ◆ RGBToHSL()

    Vec3<FLOAT> maxon::RGBToHSL ( const Col3< FLOAT > &  color)

    Converts RGB into HSL color space.

    Parameters
    [in]colorThe RGB color (with r/g/b >= 0.0)
    Returns
    The HSL (hue, saturation, lightness) color.

    ◆ HSLToRGB()

    Col3<FLOAT> maxon::HSLToRGB ( const Vec3< FLOAT > &  color)

    Converts HSL into RGB color space.

    Parameters
    [in]colorThe HSL (hue, saturation, lightness) color (with h/s/l >= 0.0)
    Returns
    The RGB color.

    ◆ GetRotationAxis()

    void maxon::GetRotationAxis ( const SqrMat3< Vec3< FLOAT >> &  m,
    Vec3< FLOAT > &  axisVector,
    FLOAT &  axisRotation 
    )

    Calculates axis and rotation from a matrix. A positive angle rotates counter-clockwise (when the rotation axis is facing towards the viewer).

    Parameters
    [in]mMatrix with perpendicular vectors. Its vectors do not need to be normalized.
    [out]axisVectorThe calculated axis (normalized vector)
    [out]axisRotationThe calculated rotation. If the matrix was singular a null vector will be returned for axisVector.

    ◆ GetRotationMatrixFromAxis()

    SqrMat3<Vec3<FLOAT> > maxon::GetRotationMatrixFromAxis ( const Vec3< FLOAT > &  axisVector,
    FLOAT  axisRotation 
    )

    Calculates matrix from axis and rotation. A positive angle rotates counter-clockwise (when the rotation axis is facing towards the viewer).

    Parameters
    [in]axisVectorAxis vector, does not need to be normalized.
    [in]axisRotationThe rotation.
    Returns
    The calculated matrix (perpendicular & normalized vectors). If the passed axis was a null vector an identity matrix will be returned.

    ◆ IsMatrixRectangular()

    Bool maxon::IsMatrixRectangular ( const MATRIXTYPE &  m,
    typename MATRIXTYPE::ValueType  epsilon = 1e-10_f 
    )

    Verify if matrix is orthogonal.

    Template Parameters
    MATRIXTYPEThe Matrix type, 32 or 64.
    Parameters
    [in]mMatrix to verify.
    [in]epsilonAllowed epsilon.
    Returns
    True if Matrix is valid.

    ◆ GetSum()

    MAXON_ATTRIBUTE_FORCE_INLINE std::remove_reference<ITERABLETYPE>::type::ValueType maxon::GetSum ( ITERABLETYPE &&  array)

    Returns the sum of all elements.

    ◆ GetAverage()

    MAXON_ATTRIBUTE_FORCE_INLINE std::remove_reference<ITERABLETYPE>::type::ValueType maxon::GetAverage ( ITERABLETYPE &&  array)

    Returns the average of all elements.

    ◆ operator*() [1/2]

    Mat3<typename MultiplicativePromotion<V, typename V2::ValueType>::type> maxon::operator* ( const SqrMat3< V > &  m,
    const Mat3< V2 > &  m2 
    )

    Multiplies two matrices. The rule is m1 AFTER m2 If you transform a point with the result matrix this is identical to first transforming with m2 and then with m1

    ◆ operator*() [2/2]

    Mat2<typename MultiplicativePromotion<V, typename V2::ValueType>::type> maxon::operator* ( const SqrMat2< V > &  m,
    const Mat2< V2 > &  m2 
    )

    Multiplies two matrices. The rule is m1 AFTER m2 If you transform a point with the result matrix this is identical to first transforming with m2 and then with m1

    ◆ PrivateRangeValueTypeHelper() [1/2]

    T maxon::PrivateRangeValueTypeHelper ( OverloadRank0  )

    ◆ PrivateRangeValueTypeHelper() [2/2]

    T::ValueType maxon::PrivateRangeValueTypeHelper ( OverloadRank1  )

    ◆ PrivateGetDataType()

    Result<DataType> maxon::PrivateGetDataType ( Range< T > **  ,
    OverloadRank0   
    )

    ◆ MAXON_ENUM_LIST() [2/4]

    enum maxon::TIMEFORMAT maxon::MAXON_ENUM_LIST ( TIMEFORMAT  )

    ◆ operator""_h()

    constexpr Hours maxon::operator""_h ( long double  value)
    constexpr

    Literal to allow definition of hours.

    ◆ operator""_min()

    constexpr Minutes maxon::operator""_min ( long double  value)
    constexpr

    Literal to allow definition of minutes.

    ◆ operator""_sec()

    constexpr Seconds maxon::operator""_sec ( long double  value)
    constexpr

    Literal to allow definition of seconds.

    ◆ operator""_ms()

    constexpr Milliseconds maxon::operator""_ms ( long double  value)
    constexpr

    Literal to allow definition of milliseconds.

    ◆ operator""_us()

    constexpr Microseconds maxon::operator""_us ( long double  value)
    constexpr

    Literal to allow definition of microseconds.

    ◆ operator""_ns()

    constexpr Nanoseconds maxon::operator""_ns ( long double  value)
    constexpr

    Literal to allow definition of nanoseconds.

    ◆ Clamp01() [1/2]

    Clip a floating point number against the lower limit 0 and the upper limit 1. The result will be returned.

    ◆ Clamp01() [2/2]

    Clip a floating point number against the lower limit 0 and the upper limit 1. The result will be returned.

    ◆ Sin() [1/2]

    Calculates the sine of a value.

    ◆ Sin() [2/2]

    Calculates the sine of a value.

    ◆ Cos() [1/2]

    Calculates the cosine of a value.

    ◆ Cos() [2/2]

    Calculates the cosine of a value.

    ◆ Tan() [1/2]

    Calculates the tangent of a value. Note that the input needs to be checked for proper range, so that no exceptions will be generated.

    ◆ Tan() [2/2]

    Calculates the tangent of a value. Note that the input needs to be checked for proper range, so that no exceptions will be generated.

    ◆ ATan() [1/2]

    Calculates the arcustangens of a value.

    ◆ ATan() [2/2]

    Calculates the arcustangens of a value.

    ◆ ATan2() [1/2]

    MAXON_ATTRIBUTE_FORCE_INLINE Float32 maxon::ATan2 ( Float32  valY,
    Float32  valX 
    )

    Calculates the arcustangens2 of a value. Returns the principal value of the arc tangent of y/x, expressed in radians. To compute the value, the function takes into account the sign of both arguments in order to determine the quadrant. If x is zero, depending on the sign of y +/- PI05 is returned. If x and y are both zero the function returns zero.

    ◆ ATan2() [2/2]

    MAXON_ATTRIBUTE_FORCE_INLINE Float64 maxon::ATan2 ( Float64  valY,
    Float64  valX 
    )

    Calculates the arcustangens2 of a value. Returns the principal value of the arc tangent of y/x, expressed in radians. To compute the value, the function takes into account the sign of both arguments in order to determine the quadrant. If x is zero, depending on the sign of y +/- PI05 is returned. If x and y are both zero the function returns zero.

    ◆ Exp() [1/2]

    Calculates e^value.

    ◆ Exp() [2/2]

    Calculates e^value.

    ◆ Exp2() [1/2]

    Returns the base-2 exponential function of x, which is 2 raised to the power x: 2x.

    ◆ Exp2() [2/2]

    Returns the base-2 exponential function of x, which is 2 raised to the power x: 2x.

    ◆ Ln() [1/2]

    Calculates logarithm of a value. Note that the input needs to be positive, so that no exceptions will be generated.

    ◆ Ln() [2/2]

    Calculates logarithm of a value. Note that the input needs to be positive, so that no exceptions will be generated.

    ◆ Log10() [1/2]

    Calculates logarithm with base 10 of a value. Note that the input needs to be positive, so that no exceptions will be generated.

    ◆ Log10() [2/2]

    Calculates logarithm with base 10 of a value. Note that the input needs to be positive, so that no exceptions will be generated.

    ◆ Log2() [1/2]

    Calculates logarithm with base 2 of a value. Note that the input needs to be positive, so that no exceptions will be generated.

    ◆ Log2() [2/2]

    Calculates logarithm with base 2 of a value. Note that the input needs to be positive, so that no exceptions will be generated.

    ◆ Sqrt() [1/2]

    Calculates square root of a value. Note that the input must not be be negative, so that no exceptions will be generated.

    ◆ Sqrt() [2/2]

    Calculates square root of a value. Note that the input must not be be negative, so that no exceptions will be generated.

    ◆ Floor() [1/2]

    Rounds to the largest previous integer number.

    ◆ Floor() [2/2]

    Rounds to the largest previous integer number.

    ◆ Ceil() [1/2]

    Rounds to the smallest following integer number.

    ◆ Ceil() [2/2]

    Rounds to the smallest following integer number.

    ◆ Round() [1/2]

    Rounds to the nearest integer number.

    ◆ Round() [2/2]

    Rounds to the nearest integer number.

    ◆ Pow() [1/2]

    MAXON_ATTRIBUTE_FORCE_INLINE Float32 maxon::Pow ( Float32  v1,
    Float32  v2 
    )

    Calculates v1^v2.

    ◆ Pow() [2/2]

    MAXON_ATTRIBUTE_FORCE_INLINE Float64 maxon::Pow ( Float64  v1,
    Float64  v2 
    )

    Calculates v1^v2.

    ◆ Sinh() [1/2]

    Calculates hyperbolic sine.

    ◆ Sinh() [2/2]

    Calculates hyperbolic sine.

    ◆ Cosh() [1/2]

    Calculates hyperbolic cosine.

    ◆ Cosh() [2/2]

    Calculates hyperbolic cosine.

    ◆ Tanh() [1/2]

    Calculates hyperbolic tangent.

    ◆ Tanh() [2/2]

    Calculates hyperbolic tangent.

    ◆ FMod() [1/2]

    MAXON_ATTRIBUTE_FORCE_INLINE Float32 maxon::FMod ( Float32  v1,
    Float32  v2 
    )

    Calculates floating point modulo.

    ◆ FMod() [2/2]

    MAXON_ATTRIBUTE_FORCE_INLINE Float64 maxon::FMod ( Float64  v1,
    Float64  v2 
    )

    Calculates floating point modulo.

    ◆ Abs() [1/3]

    Calculates the absolute value of a floating point number.

    ◆ Abs() [2/3]

    Calculates the absolute value of a floating point number.

    ◆ Inverse() [1/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Float32 maxon::Inverse ( Float32  f)
    constexpr

    Calculates the reciprocal value (multiplicative inverse). If the input value is zero, zero will be returned for safety to avoid exceptions.

    ◆ Inverse() [2/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Float64 maxon::Inverse ( Float64  f)
    constexpr

    Calculates the reciprocal value (multiplicative inverse). If the input value is zero, zero will be returned for safety to avoid exceptions.

    ◆ Abs() [3/3]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE X maxon::Abs ( f)
    constexpr

    Calculates the absolute value of any data type.

    ◆ Min()

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE X maxon::Min ( a,
    b 
    )
    constexpr

    Calculates the minimum of two values and return it.

    ◆ Max()

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE X maxon::Max ( a,
    b 
    )
    constexpr

    Calculates the maximum of two values and return it.

    ◆ Swap()

    MAXON_ATTRIBUTE_FORCE_INLINE void maxon::Swap ( X &  a,
    X &  b 
    )

    Swaps two values. If available, move semantics will be used.

    ◆ ClampValue()

    MAXON_ATTRIBUTE_FORCE_INLINE X maxon::ClampValue ( value,
    lowerLimit,
    upperLimit 
    )

    Clips a value against a lower and upper limit. The new value is returned.

    ◆ Blend()

    MAXON_ATTRIBUTE_FORCE_INLINE X maxon::Blend ( const X &  value1,
    const X &  value2,
    blendValue 
    )

    Blends two values. If blendValue is 0.0 value1 is returned, if blendValue is 1.0 value2 is returned. No clipping below 0.0 or 1.0 takes place (in that case use BoxStep).

    ◆ Sqr() [1/2]

    MAXON_ATTRIBUTE_FORCE_INLINE X maxon::Sqr ( a,
    b 
    )

    Calculates square difference of two values.

    ◆ Sqr() [2/2]

    MAXON_ATTRIBUTE_FORCE_INLINE X maxon::Sqr ( a)

    Calculates square of a value.

    ◆ Gamma() [1/2]

    MAXON_ATTRIBUTE_FORCE_INLINE Float32 maxon::Gamma ( Float32  value,
    Float32  gamma 
    )

    Calculates the gamma correction. The input value is clipped to [0.0, 1.0] for safety to avoid exceptions.

    ◆ Gamma() [2/2]

    MAXON_ATTRIBUTE_FORCE_INLINE Float64 maxon::Gamma ( Float64  value,
    Float64  gamma 
    )

    Calculates the gamma correction. The input value is clipped to [0.0, 1.0] for safety to avoid exceptions.

    ◆ Si() [1/2]

    Calculates si (the unnormalized sinc function). The input value is checked for 0 to avoid exceptions.

    ◆ Si() [2/2]

    Calculates si (the unnormalized sinc function). The input value is checked for 0 to avoid exceptions.

    ◆ Sinc() [1/2]

    Calculates sinc. The input value is checked for 0 to avoid exceptions.

    ◆ Sinc() [2/2]

    Calculates sinc. The input value is checked for 0 to avoid exceptions.

    ◆ ASin() [1/2]

    Calculates arcsine. The input value is clipped for safety to avoid exceptions.

    ◆ ASin() [2/2]

    Calculates arcsine. The input value is clipped for safety to avoid exceptions. @MAXON_ANNOTATION{reflection="net.maxon.ASin"}

    ◆ ACos() [1/2]

    Calculates arccosine. The input value is clipped for safety to avoid exceptions.

    ◆ ACos() [2/2]

    Calculates arccosine. The input value is clipped for safety to avoid exceptions.

    ◆ DegToRad() [1/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Float32 maxon::DegToRad ( Float32  r)
    constexpr

    Converts float value from degrees to radians.

    ◆ DegToRad() [2/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Float64 maxon::DegToRad ( Float64  r)
    constexpr

    Converts float value from degrees to radians.

    ◆ RadToDeg() [1/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Float32 maxon::RadToDeg ( Float32  r)
    constexpr

    Converts float value from radians to degrees.

    ◆ RadToDeg() [2/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Float64 maxon::RadToDeg ( Float64  r)
    constexpr

    Converts float value from radians to degrees.

    ◆ SinCos() [1/2]

    MAXON_ATTRIBUTE_FORCE_INLINE void maxon::SinCos ( Float32  val,
    Float32 sn,
    Float32 cs 
    )

    Calculates both sine and cosine of a value.

    ◆ SinCos() [2/2]

    MAXON_ATTRIBUTE_FORCE_INLINE void maxon::SinCos ( Float64  val,
    Float64 sn,
    Float64 cs 
    )

    Calculates both sine and cosine of a value.

    ◆ SafeConvert() [1/2]

    MAXON_ATTRIBUTE_FORCE_INLINE DEST maxon::SafeConvert ( Float64  src)

    Safely converts a 64 bit float value into another scalar value. The resulting value will be clipped against its boundaries, without raising an exception.

    ◆ SafeConvert() [2/2]

    MAXON_ATTRIBUTE_FORCE_INLINE DEST maxon::SafeConvert ( Float32  src)

    Safely converts a 32 bit float value into another scalar value. The resulting value will be clipped against its boundaries, without raising an exception.

    ◆ SetMax()

    MAXON_ATTRIBUTE_FORCE_INLINE void maxon::SetMax ( T &  a,
    const typename SFINAEHelper< T >::type b 
    )

    Assigns the maximum of two values to the first value.

    Parameters
    [in,out]aFirst value.
    [in]bSecond value.

    ◆ SetMin()

    MAXON_ATTRIBUTE_FORCE_INLINE void maxon::SetMin ( T &  a,
    const typename SFINAEHelper< T >::type b 
    )

    Assigns the minimum of two values to the first value.

    Parameters
    [in,out]aFirst value.
    [in]bSecond value.

    ◆ Sign()

    MAXON_ATTRIBUTE_FORCE_INLINE Int maxon::Sign ( f)

    Calculates the sign of a value.

    Parameters
    [in]fValue to test.
    Returns
    1 if the value is 0 or positive, -1 otherwise.

    ◆ Mod()

    MAXON_ATTRIBUTE_FORCE_INLINE T maxon::Mod ( a,
    b 
    )

    Calculates the modulo (non-negative remainder of division) value for integer values. It works continuously for negative dividends, e.g. Mod(-1, 9) == 8 and Mod(1, 9) == 1.

    Parameters
    [in]aDividend.
    [in]bDivisor, must be > 0 (positive).
    Returns
    Modulo result.

    ◆ IsPowerOfTwo() [1/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Bool maxon::IsPowerOfTwo ( UInt32  x)
    constexpr

    Returns true if x is a power of two, i.e., if it has exactly one bit set.

    Parameters
    [in]xValue to check.
    Returns
    True if x is a power of two.

    ◆ IsPowerOfTwo() [2/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Bool maxon::IsPowerOfTwo ( UInt64  x)
    constexpr

    Returns true if x is a power of two, i.e., if it has exactly one bit set.

    Parameters
    [in]xValue to check.
    Returns
    True if x is a power of two.

    ◆ IntToColor() [1/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA maxon::IntToColor ( UInt  r,
    UInt  g,
    UInt  b,
    UInt  a 
    )
    constexpr

    Converts RGBA UInt [0, 255] values to a ColorA.

    Parameters
    [in]rRed value.
    [in]gGreen value
    [in]bBlue value.
    [in]aAlpha value.
    Returns
    Converted ColorA.

    ◆ IntToColor() [2/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA maxon::IntToColor ( UInt  r,
    UInt  g,
    UInt  b 
    )
    constexpr

    Converts RGB UInt [0, 255] values to a ColorA.

    Parameters
    [in]rRed value.
    [in]gGreen value
    [in]bBlue value.
    Returns
    Converted ColorA.

    ◆ FloatToColor() [1/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA maxon::FloatToColor ( Float  r,
    Float  g,
    Float  b,
    Float  a 
    )
    constexpr

    Converts RGBA Float [0.0, 1.0] values to a ColorA.

    Parameters
    [in]rRed value.
    [in]gGreen value
    [in]bBlue value.
    [in]aAlpha value.
    Returns
    Converted ColorA.

    ◆ FloatToColor() [2/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA maxon::FloatToColor ( Float  r,
    Float  g,
    Float  b 
    )
    constexpr

    Converts RGB Float [0.0, 1.0] values to a ColorA.

    Parameters
    [in]rRed value.
    [in]gGreen value
    [in]bBlue value.
    Returns
    Converted ColorA.

    ◆ ColorSetAlpha()

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA maxon::ColorSetAlpha ( const ColorA col,
    Float  alpha 
    )
    constexpr

    Sets the alpha value of a ColorA.

    Parameters
    [in]colGiven ColorA.
    [in]alphaAlpha value.
    Returns
    Converted ColorA.

    ◆ ColorMultiplyAlpha()

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA maxon::ColorMultiplyAlpha ( const ColorA col,
    Float  alpha 
    )
    constexpr

    Multiplies a ColorA with an alpha value.

    Parameters
    [in]colGiven ColorA.
    [in]alphaMultiply alpha value.
    Returns
    Converted ColorA.

    ◆ BlendColors() [1/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE Color maxon::BlendColors ( const Color col1,
    const Color col2,
    Float  alpha 
    )
    constexpr

    Blends two colors based on an alpha factor.

    Parameters
    [in]col1First color.
    [in]col2Second color.
    [in]alphaAlpha blending factor. Valid range goes from 0.0 (Col1) to 1.0 (Col2).
    Returns
    Blended color.

    ◆ BlendColors() [2/2]

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE ColorA maxon::BlendColors ( const ColorA col1,
    const ColorA col2,
    Float  alpha 
    )
    constexpr

    Blends two colors based on an alpha factor. Note: only RGB values are used, color alpha values are ignored.

    Parameters
    [in]col1First color. Alpha is ignored.
    [in]col2Second color. Alpha is ignored.
    [in]alphaAlpha blending factor. Valid range goes from 0.0 (Col1) to 1.0 (Col2).
    Returns
    Blended color with an alpha value of 1.0.

    ◆ BlendColor()

    constexpr MAXON_ATTRIBUTE_FORCE_INLINE COLORTYPE maxon::BlendColor ( const COLORTYPE &  col1,
    const COLORTYPE &  col2,
    const typename COLORTYPE::ValueType  blendValue 
    )
    constexpr

    Blend linear between two CanvasColors.

    Parameters
    [in]col1First ColorA.
    [in]col2Second ColorA.
    [in]blendValueBlend value [0.0, 1.0].
    Returns
    Blended ColorA value

    ◆ GetPerceivedBrightness()

    MAXON_ATTRIBUTE_FORCE_INLINE Float maxon::GetPerceivedBrightness ( const ColorA color)

    Gets the perceived brightness from the color. Source: http://stackoverflow.com/a/596243/1577282

    Parameters
    [in]colorThe color whose perceived brightness will be calculated.
    Returns
    The perceived brightness value.

    ◆ IsColorPerceivedAsDark()

    MAXON_ATTRIBUTE_FORCE_INLINE Bool maxon::IsColorPerceivedAsDark ( const ColorA color)

    Checks if a color is perceived as dark by the human eye. Source: http://www.nbdtech.com/Blog/archive/2008/04/27/Calculating-the-Perceived-Brightness-of-a-Color.aspx Source: https://robots.thoughtbot.com/closer-look-color-lightness

    Parameters
    [in]colorThe color whose darkness will be evaluated.
    Returns
    True: the color is perceived as dark, False: the color is perceived as light.

    ◆ MAXON_REGISTRY()

    maxon::MAXON_REGISTRY ( Class< RenderNoise >  ,
    RenderNoiseClasses  ,
    "net.maxon.render.registry.rendernoiseclasses"   
    )

    ◆ MAXON_ENUM_LIST() [3/4]

    enum maxon::METRICUNIT maxon::MAXON_ENUM_LIST ( METRICUNIT  )

    ◆ MAXON_ENUM_LIST() [4/4]

    enum maxon::ANGLEUNIT maxon::MAXON_ENUM_LIST ( ANGLEUNIT  )

    Variable Documentation

    ◆ FRAMERATE_DEFAULT

    const Float64 FRAMERATE_DEFAULT

    Default frame rate of 30 fps.

    ◆ FRAMERATE_NTSC

    const Float64 FRAMERATE_NTSC

    NTSC frame rate is approximately 29.97 fps.

    ◆ FRAMERATE_PAL

    const Float64 FRAMERATE_PAL

    PAL frame rate is 25 fps.

    ◆ FRAMERATE_FILM

    const Float64 FRAMERATE_FILM

    Movie frame rate is 24 fps.

    ◆ FRAMERATE_FILM_NTSC

    const Float64 FRAMERATE_FILM_NTSC

    Modified movie frame rate to avoid frame roll when transfering video to NTSC, approx. 23.976 fps.

    ◆ TIMEVALUE_INFINITE

    constexpr Seconds TIMEVALUE_INFINITE
    staticconstexpr

    ◆ TIMEVALUE_INVALID

    constexpr Seconds TIMEVALUE_INVALID
    staticconstexpr

    ◆ MINVALUE_FLOAT32

    constexpr Float32 MINVALUE_FLOAT32
    staticconstexpr

    the minimum value a Float32 can represent

    ◆ MAXVALUE_FLOAT32

    constexpr Float32 MAXVALUE_FLOAT32
    staticconstexpr

    the maximum value a Float32 can represent

    ◆ MINVALUE_FLOAT64

    constexpr Float64 MINVALUE_FLOAT64
    staticconstexpr

    the minimum value a Float64 can represent

    ◆ MAXVALUE_FLOAT64

    constexpr Float64 MAXVALUE_FLOAT64
    staticconstexpr

    the maximum value a Float64 can represent

    ◆ MINVALUE_INT32_FLOAT32

    constexpr Float32 MINVALUE_INT32_FLOAT32
    staticconstexpr

    minimum Float32 value that can be represented by Int32 (-0x7FFFFF80). Lower values will results in an overflow

    ◆ MAXVALUE_INT32_FLOAT32

    constexpr Float32 MAXVALUE_INT32_FLOAT32
    staticconstexpr

    maximum Float32 value that can be represented by Int32 ( 0x7FFFFF80). Higher values will results in an overflow

    ◆ MINVALUE_INT64_FLOAT64

    constexpr Float64 MINVALUE_INT64_FLOAT64
    staticconstexpr

    minimum Float64 value that can be represented by Int64 (-0x7ffffffffffffdff). Lower values will results in an overflow

    ◆ MAXVALUE_INT64_FLOAT64

    constexpr Float64 MAXVALUE_INT64_FLOAT64
    staticconstexpr

    maximum Float64 value that can be represented by Int64 ( 0x7ffffffffffffdff). Higher values will results in an overflow

    ◆ MINRANGE_FLOAT32

    constexpr Float32 MINRANGE_FLOAT32
    staticconstexpr

    'safe' minimum range for Float32. Guarantees that multiplication of two numbers doesn't produce an overflow

    ◆ MAXRANGE_FLOAT32

    constexpr Float32 MAXRANGE_FLOAT32
    staticconstexpr

    'safe' maximum range for Float32. Guarantees that multiplication of two numbers doesn't produce an overflow

    ◆ MINRANGE_FLOAT64

    constexpr Float64 MINRANGE_FLOAT64
    staticconstexpr

    'safe' minimum range for Float. Guarantees that multiplication of two numbers doesn't produce an overflow

    ◆ MAXRANGE_FLOAT64

    constexpr Float64 MAXRANGE_FLOAT64
    staticconstexpr

    'safe' maximum range for Float. Guarantees that multiplication of two numbers doesn't produce an overflow

    ◆ MINVALUE_FLOAT

    constexpr Float MINVALUE_FLOAT
    staticconstexpr

    the minimum value a Float can represent

    ◆ MAXVALUE_FLOAT

    constexpr Float MAXVALUE_FLOAT
    staticconstexpr

    the maximum value a Float can represent

    ◆ MINRANGE_FLOAT

    constexpr Float MINRANGE_FLOAT
    staticconstexpr

    'safe' minimum range for Float64. Guarantees that multiplication of two numbers doesn't produce an overflow

    ◆ MAXRANGE_FLOAT

    constexpr Float MAXRANGE_FLOAT
    staticconstexpr

    'safe' maximum range for Float64. Guarantees that multiplication of two numbers doesn't produce an overflow

    ◆ NOTOK

    constexpr Int NOTOK
    staticconstexpr

    constant used for special cases

    ◆ PI

    constexpr Float64 PI
    staticconstexpr

    floating point constant: PI

    ◆ PI_INV

    constexpr Float64 PI_INV
    staticconstexpr

    floating point constant: 1.0 / PI

    ◆ PI2

    constexpr Float64 PI2
    staticconstexpr

    floating point constant: 2.0 * PI

    ◆ PI2_INV

    constexpr Float64 PI2_INV
    staticconstexpr

    floating point constant: 1.0 / (2.0 * PI)

    ◆ PI05

    constexpr Float64 PI05
    staticconstexpr

    floating point constant: 0.5 * PI

    ◆ PI05_INV

    constexpr Float64 PI05_INV
    staticconstexpr

    floating point constant: 1.0 / (0.5 * PI)

    ◆ SQRT2

    constexpr Float64 SQRT2
    staticconstexpr

    floating point constant: Sqrt(2.0)

    ◆ SQRT_PI2

    constexpr Float64 SQRT_PI2
    staticconstexpr

    floating point constant: Sqrt(2.0 * PI)

    ◆ SQRT2_INV

    constexpr Float64 SQRT2_INV
    staticconstexpr

    floating point constant: 1.0 / Sqrt(2.0)

    ◆ SQRT3

    constexpr Float64 SQRT3
    staticconstexpr

    floating point constant: Sqrt(3.0)

    ◆ LOG2

    constexpr Float64 LOG2
    staticconstexpr

    floating point constant: Log(2.0)

    ◆ PERCEIVED_BRIGHTNESS_FACTOR_RED

    const Float PERCEIVED_BRIGHTNESS_FACTOR_RED
    static

    ◆ PERCEIVED_BRIGHTNESS_FACTOR_GREEN

    const Float PERCEIVED_BRIGHTNESS_FACTOR_GREEN
    static

    ◆ PERCEIVED_BRIGHTNESS_FACTOR_BLUE

    const Float PERCEIVED_BRIGHTNESS_FACTOR_BLUE
    static

    ◆ PERCEIVED_BRIGHTNESS_CUTOFF

    const Float PERCEIVED_BRIGHTNESS_CUTOFF
    static