Changes in R21

Changes in R21.022

Development Environment

Cinema 4D R21 is supported on Windows 10 and macOS 10.14, 10.13 and 10.12. Building C++ plugins requires Visual Studio 2017 or Xcode 10.

Existing C++ plugins (build for Cinema 4D R20) have to be re-compiled for Cinema 4D R21.

Extensions Menu

C++ and Python plugins and tools are now located in the "Extensions" menu.

Licensing

The licensing system of Cinema 4D has been changed. With these changes, the plugin hook SNHookClass and the function GeGetSerialInfo() have been removed.

New functions to handle licensing information are:

See Plugin Licensing Manual.

GeGetSystemInfo()

The function GeGetSystemInfo() has been removed. Information on the current system can still be obtained with GeGetVersionType() and GeGetCinemaInfo().

The new function HasFullFeatureSet() uses GeGetVersionType() internally to check if all features are supported.

CommandData

The CommandData class was changed. Its member functions include a new argument. Existing code has to be adapted.

AutoWeightInterface

The new maxon::AutoWeightInterface is the base for weighting algorithms. The algorithms are registered at maxon::AutoWeightAlgos and are used with the Weight Manager.

See AutoWeightInterface Implementation and CAWeightMgr Manual.

Core Nodes

The new corenodes.framework allows to create custom core nodes that extend the functionality of the standard node system. See Core Nodes Implementation.

FilterInterface

The new maxon::FilterInterface is the base for image filters like the denoiser. See Render Filter and Render Filter Implementation.

VolumeInterface

The maxon::VolumeInterface was changed. It is now a copy-on-write type. The reference class is called maxon::Volume instead of maxon::VoumeRef.

The new static function maxon::VolumeInterface::CreateFromFile() allows to load volume data from a VDB file.

See VolumeInterface Manual.

Volume Data

New volume tools were added:

See Volume Tools Manual.

The new VolumeSet class allows to store multiple volumes in a single BaseObject. See VolumeSet Manual.

The maxon::GridAccessorInterface::Init() now only initialized the object for read access. To write into the volume one has to use the new function maxon::GridAccessorInterface::InitWithWriteAccess(). See VolumeInterface Manual.

Extended Icon Settings

In Cinema 4D R21, it is possible to change the icon of any object or tag. The new settings are stored in the ID_BASELIST_ICON_FILE parameter included with the ID_BASELIST_ICON_SETTINGS_GROUP parameter group.

When reacting to MSG_GETCUSTOMICON, one can also handle the settings defined in ID_BASELIST_ICON_FILE using FillCustomIconSettingsFromBaseList2D() and GetCustomIcon().

See Icon.

Material Preferences

New preference settings allow to define the type of material that is created by default in the Material Manager. Materials that should qualify for such a default material must be registered using PLUGINFLAG_MATERIAL_SHOW_IN_DEFAULT_MENU.

The default material ID is stored in WPREF_MATMANAGER_DEFAULT_MATERIAL.

User Data Tag

The User Data Tag is a dummy tag used to host user data parameters. The tag ID is Tuserdata; the parameter IDs are defined in tuserdata.h. This tag can be created like any other tag. See BaseTag and VariableTag Manual.

Field Force Object

The new Field Force object has the ID Ofieldforce; the parameter IDs are defined in ofieldforce.h. This object can be created like any other BaseObject. See BaseObject Manual.

Recent Documents

The new function GetRecentDocumentsList() returns the list of the recently opened scene files. See BaseDocument Disc I/O.

GeUserArea

New drawing functions were added to the GeUserArea class and existing functions were extended:

See Drawing Operations.

String Class

Some member functions of the maxon::String class has been changed.

Asset Handling

It is possible to define in the application settings how asset are referenced. The settings are stored under WPREF_FILE_ASSETS_LINK.

TreeViewFunctions Class

The TreeViewFunctions class was extended.

InstanceObject Class

The InstanceObject class was extended.

See InstanceObject Manual.

Geometry Functions

Geometry utility functions were moved to the geometryutils.h header file and are now part of the maxon::GeometryUtilsInterface. New functions are:

See Geometry Utility Manual.

Scene Filters

New scene filters for use with LoadDocument() were added:

See Disc I/O.

Color Functions

These color related functions were added:

See Utility.

SplineData

The SplineData class contains now values for tension.

Various Changes

API Changes in R21.022

See API Changes in R21.022 for the detailed list.

Changes in R21.026

See API Changes in R21.026 for the detailed list.