About
The Cinema API provides basic mathematical constants and functions to perform mathematical operations using its data types.
See also Primitive Data Types Manual (Cinema API).
- Warning
 - For Maxon API maths functions see Mathematical Functions.
 
Constants
These mathematical constants are defined as a ::Float64 values:
  
 
  GeData data;
 
  const Float64 radius = data.GetFloat();
 
NONE
Definition: asset_browser.h:1
 
MAXON_ATTRIBUTE_FORCE_INLINE Float32 Pow(Float32 v1, Float32 v2)
Calculates v1^v2.
Definition: apibasemath.h:278
 
static constexpr Float64 PI
floating point constant: PI
Definition: apibasemath.h:139
 
#define ConstDescID(...)
Definition: lib_description.h:592
 
maxon::Float64 Float64
Definition: ge_sys_math.h:58
 
@ PRIM_DISC_ORAD
Definition: odisc.h:7
 
 Further constants are:
- ::COLORTOINT_MULTIPLIER: Constant to convert from vectors color components to integers. See also Color Functions Manual.
 
- PERCENT: Constant to convert from 0.0-1.0 range to percentage.
 
- THIRD: Constant to calculate the third of a value.
 
- ::SIXTH: Constant to calculate the sixth of a value.
 
- MAXRANGE: Maximum value for metric data.
 
- MAXELEMENTS: Maximum number of points of a polygon or spline object.
 
- MIN_EPSILON: Minimum epsilon value.
 
Generic Datatypes
These template functions can be applied to all data types that support the required operations. The list, not limited to, includes:
- Abs(X f): Calculates the absolute value of any data type.
 
- Min(X a, X b): Calculates the minimum of two values and returns it.
 
- Max(X a, X b): Calculates the maximum of two values and returns it.
 
- Swap(X &a, X &b): Swaps two values. If available, move semantics will be used.
 
- ClampValue(X a, X b, X c): Clips a value against a lower and an upper limit. The new value is returned.
 
- Sqr(X a, X b): Calculates square of a value.
 
- SetMax(T & a,const T & b): Assigns the maximum of two values to the first value.
 
- SetMin(T & a,const T & b): Assigns the minimum of two values to the first value.
 
- Sign(X f): Calculates the sign of a value.
 
- Mod(T a, U b): Calculates a modulo b.
 
Exponent
These exponential functions are available for ::Float32 and ::Float64 values. The list, not limited to, includes:
- Exp(): Calculates e raised to the power of the given value.
 
- Pow(): Calculates v1 raised to the power of v2.
 
- Ln(): Calculates the natural logarithm of the given value.
 
- Log10(): Calculates the logarithm in base 10 of the given value.
 
- Log2(): Calculates the logarithm in base 2 of the given value.
 
- Sqrt(): Calculates the square root of the given value.
 
- Sqr(): Calculates the square of the given value.
 
- Note
 - If faulty input values are given to these functions, no exceptions will be generated.
 
    
 
    const Vector posA { 1, 1, 0 };
 
    const Vector posB { 9, 16, 0 };
 
 
    const Vector vec = posB - posA;
 
MAXON_ATTRIBUTE_FORCE_INLINE Float32 Sqrt(Float32 val)
Calculates square root of a value. Note that the input must not be be negative, so that no exceptions...
Definition: apibasemath.h:254
 
MAXON_ATTRIBUTE_FORCE_INLINE X Sqr(X a, X b)
Calculates square difference of two values.
Definition: apibasemath.h:361
 
maxon::Float Float
Definition: ge_sys_math.h:57
 
maxon::Vec3< maxon::Float64, 1 > Vector
Definition: ge_math.h:140
 
  
Trigonometry
These trigonometric functions are available for ::Float32 and ::Float64 values. The list, not limited to, includes:
- Sin(): Calculates the sine of the given value.
 
- Cos(): Calculates the cosine of the given value.
 
- SinCos(): Calculates the sine and cosine of the given value in one operation.
 
- Tan(): Calculates the tangent of the given value.
 
- ATan(): Calculates the arctangent of the given value (for first and forth quadrants).
 
- ATan2(): Calculates the arctangent of the given value (for all four quadrants).
 
- Sinh(): Calculates the hyperbolic sine of the given value.
 
- Cosh(): Calculates the hyperbolic cosine of the given value.
 
- Tanh(): Calculates the hyperbolic tangent of the given value.
 
- ASin(): Calculates the arcsine of the given value.
 
- ACos(): Calculates the arccosine of the given value.
 
- DegToRad(): Converts float value from degrees to radians.
 
- RadToDeg(): Converts float value from radians to degrees.
 
- Note
 - If faulty input values are given to these functions, no exceptions will be generated.
 
  
 
  {
    
 
    
    BaseObject* 
const nullObject = BaseObject::Alloc(
Onull);
 
    if (nullObject == nullptr)
 
    
    const Vector pos { sin* 100.0, cos* 100.0, 0 };
 
    nullObject->SetAbsPos(
pos);
 
 
    doc->InsertObject(nullObject, 
nullptr, 
nullptr);
 
 
    
  }
Py_ssize_t i
Definition: abstract.h:645
 
Py_ssize_t count
Definition: abstract.h:640
 
void Py_ssize_t * pos
Definition: dictobject.h:50
 
@ FORMAT_DEGREE
Floating point with degree sign. Measured in radians, displayed in degrees.
Definition: c4d_gui.h:47
 
MAXON_ATTRIBUTE_FORCE_INLINE void SinCos(Float32 val, Float32 &sn, Float32 &cs)
Calculates both sine and cosine of a value.
Definition: apibasemath.h:474
 
#define Onull
Null.
Definition: ge_prepass.h:1077
 
#define MAXON_SOURCE_LOCATION
Definition: memoryallocationbase.h:69
 
String FormatNumber(const GeData &val, Int32 format, Int32 fps, Bool bUnit=true)
 
maxon::Int Int
Definition: ge_sys_math.h:55
 
const char * doc
Definition: pyerrors.h:226
 
PyObject PyObject * step
Definition: sliceobject.h:34
 
  
Limit
These functions are available for ::Float32 and ::Float64 values. The list, not limited to, includes:
- Floor(): Calculates the greatest integer less than or equal to the given value.
 
- Ceil(): Calculates the least integer greater than or equal to the given value.
 
- Clamp01(): Clips the given float value against the lower limit 0.0 and the upper limit 1.0. The result will be returned.
 
- StepEx(): Returns 1.0 if x is greater than or equal to a, else 0.0. Only for ::Float64.
 
- Boxstep(): Returns 0.0 if x is less than a and 1.0 if x is greater than b, else returns x mapped on the range [a,b].
 
- Smoothstep(): Returns 0.0 if x is less than a and 1.0 if x is greater than b, else returns x mapped on the range [a,b].
 
    
 
PyObject * value
Definition: abstract.h:715
 
Float32 Floor(Float32 val)
Definition: apibasemath.h:171
 
Float32 Ceil(Float32 val)
Definition: apibasemath.h:174
 
 And for ::Int32 and ::Int64 values:
- LCut(): Limits the given value to the given borders.
 
- VCut(): Limits the given value to the given borders.
 
Miscellaneous
These functions are available for ::Float32 and ::Float64 values:
- Bias(): Returns the bias as the defined in the book "Texturing and Modeling" by Ebert.
 
- Truncate(): Returns the next integer value towards zero.
 
- Abs(): Calculates the absolute value of a floating point number.
 
- Inverse(): Calculates the reciprocal value (multiplicative inverse).
 
- Round(): Rounds a floating point value.
 
- Blend(): Blend between two float values by a certain amount. The new value is returned.
 
Minimum and maximum checks for ::Float32, ::Float64, ::Int32 and ::Int64:
- FMin(): Gets the minimum of two float values.
 
- FMax(): Gets the maximum of two float values.
 
- LMin(): Gets the minimum of two integer values (single precision version).
 
- VMin(): Gets the minimum of two integer values (double precision version).
 
- LMax(): Gets the maximum of two integer values (single precision version).
 
- VMax(): Gets the maximum of two integer values (double precision version).
 
Modulo operations for ::Float32, ::Float64, ::Int32 and ::Int64:
- Modulo(): Returns a modulo b.
 
- FMod(): Calculates floating point modulo.
 
- Modf(): Breaks a value into an integral and a fractional part.
 
- LModulo(): Returns a modulo b (integer modulo).
 
Further Reading