Changes in R15

Naming Changes

Cinema 4D R15 API brings important naming changes. See Transition to Cinema 4D R15 API guide.

API Changes

Additionally to the naming modifications R15 brings important API changes. See API Change List in R15.

New libraries:

  • Library to deal with big integer numbers : lib_big_integer.h
  • Intersection library : lib_intersect.h
  • Team Render / NET library : lib_net.h
  • Library to develop custom sculpting brushes : lib_sculptbrush.h
  • Secure random number generation library : lib_secure_random.h

Important new symbols:

New files:

Deprecated symbols:

  • bNew -> bNewDeprecatedUseArraysInstead()
  • MemoryPool -> DeprecatedMemoryPool
  • Step -> StepEx()

Important Notes

Do no longer use printf(), scanf(), sscanf() etc. unless you are working on system specific code.
The new routines to call instead are maxon::DiagnosticOutput(), maxon::WarningOutput(), maxon::CriticalOutput(), maxon::OutputWithFlags(), maxon::FormatString and maxon::ScanString.
These new functions are safe and more powerful; they work with Cinema 4D API String, Vector, Matrix etc. classes.

There is a new convenience function called maxon::Inverse(). Use this conveniently wherever a division by 0.0 could happen. Example:

Float ratio = width / height;

Unless you are absolutely certain due to other checks this could lead to a division by 0.0 as e.g. the image could have been uninitialized. To be on the safe side write:

Float ratio = width * maxon::Inverse(height);

Development Environments

Environments for R15 development are:

  • Visual Studio 2012 (or newer) required on Windows.
  • XCode 4.6.2 (or newer) required under Mac OS X.
Warning
32-bit and Windows XP are no longer supported in R15.

SDK Examples

The new SDK Examples page lists the plugins examples in the cinema4dsdk project located in the plugins directory of the Cinema 4D install folder.

A Command Line Rendering example has been added to the cinema4dsdk examples: source/other/commandlinerender.cpp. It shows how to filter C4DPL_CommandLineArgs, parse the passed Command Line arguments, load a document, render it etc.
See Command Line Render example description.

Sculpt brushes examples have been added in source/sculpting:

  • cubesbrush.cpp
  • drawpoly.cpp
  • drawpolybrush.cpp
  • grabbrush.cpp
  • loadsave.cpp
  • pullbrush.cpp
  • selectionbrush.cpp

See Sculpt Brushes example description.

Another new example in source/pgp/pgp.cpp demonstrates the use of the newly added library lib_secure_random.h and its SecureRandom class to develop PGP data encryption and decryption. See PGP example description.

Changes in R15.057

R15.057 brings some minor changes. See API Changes in R15.057.

maxon::Inverse
MAXON_ATTRIBUTE_FORCE_INLINE Float32 Inverse(Float32 f)
Calculates the reciprocal value (multiplicative inverse). If the input value is zero,...
Definition: apibasemath.h:326
Float
maxon::Float Float
Definition: ge_sys_math.h:64