Summarizes the API and API documentation changes made between Cinema 4D versions 2023.0.0 and 2023.1.0.
Overview
For an an overview of the required development environment for this release on Windows, MacOS, or Linux, see Development Environments.
Major Changes
Updated | The OpenColorIO (OCIO) API exposure has been finalized. Not yet included is the ability to access the raw OCIO profiles associated with a BaseDocument instance. This feature will be added with 2023.2.0 . |
Added | Added Color Management Manual : Convert color data between color spaces and color formats provided by the maxon API or loaded from disk. |
Added | Added OpenColorIO Manual : Convert colors with the color profiles provided by the OpenColorIO (OCIO) configuration of a scene. |
Added | Added the examples.image example to the Extended SDK on GitHub. |
Minor Changes
API Changes
Summarizes the technical changes made to the public APIs of Cinema 4D within the scope of these change notes.
asset.framework
Added:
New
file for CommandAssetInterface and its metadata attributes.
const char const char const char * file
Definition: object.h:439
Added:
static MAXON_METHOD Result<LiteralId> HasKeyword(
const AssetDescription& target,
const Id& keywordId);
#define MAXON_METHOD
Definition: interfacebase.h:1001
cinema.framework
Added:
#define FILENAME_HELPSTRING 10006
#define TREEVIEW_NO_ENTER_FORWARD 'noef'
Added:
Definition: c4d_basedocument.h:498
PyObject * src
Definition: abstract.h:305
Added:
Message struct for some message types.
Definition: lib_description.h:844
Definition: lib_description.h:993
Added:
CONVERSION_FLAGS
Definition: datatypebase.h:62
Added:
Definition: lib_description.h:330
Definition: c4d_gedata.h:83
Definition: resultbase.h:766
Added:
New
file for symmetry generator
object.
Added:
@ ID_VOLUMESEQUENCE_FIXEDCACHE
Definition: ovolumesequence.h:19
Added:
@ HAIR_SDYNAMICS_PBD_FORCES_INEX_PYRO
Definition: thairsplinedynamics.h:100
Added:
@ PBD_CONSTRAINT_TAG_TEAR_MODE_ABSOLUTE
Definition: tpbdconstraint.h:27
@ PBD_CONSTRAINT_TAG_TEAR_MODE
Definition: tpbdconstraint.h:25
@ PBD_CONSTRAINT_TAG_TEAR_ABSOLUTE_DISTANCE
Definition: tpbdconstraint.h:28
@ PBD_CONSTRAINT_TAG_TEAR_MODE_RELATIVE
Definition: tpbdconstraint.h:26
Added:
@ PYRO_TAG_FUEL_INITIAL_CONTINGENT
Definition: tpyro.h:44
@ PYRO_TAG_SUBSTEP_MODE
Definition: tpyro.h:33
@ PYRO_TAG_FUEL_TYPE
Definition: tpyro.h:38
@ PYRO_TAG_DENSITY_ENABLED
Definition: tpyro.h:53
@ PYRO_TAG_FUEL_TARGET_FRAME
Definition: tpyro.h:43
@ PYRO_TAG_SURFACE_WEIGHTS_TEMPERATURE
Definition: tpyro.h:46
@ PYRO_TAG_FUEL_MATCH_BURNING_RATE
Definition: tpyro.h:52
@ PYRO_TAG_FUEL_GROUP
Definition: tpyro.h:47
@ PYRO_TAG_SUBSTEP_MODE_DISCRETE
Definition: tpyro.h:34
@ PYRO_TAG_VELOCITY_GROUP
Definition: tpyro.h:50
@ PYRO_TAG_FUEL_CONSTANT_PRESSURE
Definition: tpyro.h:55
@ PYRO_TAG_FUEL_TYPE_ONESHOT
Definition: tpyro.h:39
@ PYRO_TAG_FUEL_BURNING_RATE
Definition: tpyro.h:42
@ PYRO_TAG_FUEL_TYPE_CONTINUOUS
Definition: tpyro.h:41
@ PYRO_TAG_EMITTER_ENABLED
Definition: tpyro.h:36
@ PYRO_TAG_TEMPERATURE_GROUP
Definition: tpyro.h:48
@ PYRO_TAG_DENSITY_MIN
Definition: tpyro.h:51
@ PYRO_TAG_SUBSTEP_MODE_CONTINUOUS
Definition: tpyro.h:35
@ PYRO_TAG_SURFACE_WEIGHTS_FUEL
Definition: tpyro.h:45
@ PYRO_TAG_FUEL_TARGET_FRAME_END
Definition: tpyro.h:54
@ PYRO_TAG_DENSITY_GROUP
Definition: tpyro.h:49
@ PYRO_TAG_SURFACE_WEIGHTS_DENSITY
Definition: tpyro.h:37
@ PYRO_TAG_FUEL_TYPE_CONTINGENT
Definition: tpyro.h:40
@ PYRO_TAG_SUBSTEPS
Definition: tpyro.h:32
Added:
@ SLA_DIRTY_VMAP_TAG_NAME
Definition: xslavertexmap.h:9
Added:
void UpdateOcioColorSpaces();
Definition: basearray.h:412
Added:
#define MSG_DESCRIPTION_IMPEXPORT_VERIFY_FILENAME
Added:
Definition: apibaseid.h:253
Added:
#define PLUGINFLAG_INTERNAL (1 << 20)
Added:
Definition: c4d_baseselect.h:32
PyObject * other
Definition: dictobject.h:70
maxon::Bool Bool
Definition: ge_sys_math.h:55
MAXON_ATTRIBUTE_FORCE_INLINE Bool IsEqual(PREDICATE &&predicate, const T1 &a, const T2 &b)
Definition: collection.h:102
Added:
#define TAG_VARIABLEFIELD (1 << 9)
Added:
TAG_ADDEDTOCACHE
Tag was added to cache objects.
Definition: ge_prepass.h:118
FORBID_COLOR_CONVERSION
Don't do OCIO color conversion.
Definition: ge_prepass.h:117
Added:
#define Osymmetrygenerator 1060011
#define Opyro 1059580
#define Tgeneric 431000047
#define Tpyro 1059387
#define WPREF_MATMANAGER_DEFAULT_MATERIAL_AUTO 1059942
Added:
New enumeration that describes vector volume types.
Old:
Definition: string.h:1490
const char * doc
Definition: pyerrors.h:226
New:
PyCompilerFlags * flags
Definition: ast.h:14
ADD_UNDO
Definition: lib_scene_color_converter.h:1
Old:
MAX
Maximum NBIT.
Definition: ge_prepass.h:119
Old:
#define API_VERSION 2023000
New:
#define API_VERSION 2023100
cinema_hybrid.framework
Added:
Definition: c4d_basematerial.h:28
Delegate<::BaseMaterial *(::BaseDocument *, const Data &textureUrlOrColor)> CreateMaterialWithDataDelegate
Definition: createdefaultmaterialdelegate.h:102
Added:
class RendererDefaultMaterialInterface
core.framework
Added:
maxon::Char Char
Definition: ge_sys_math.h:56
#define MAXON_ATTRIBUTE_FORCE_INLINE
Definition: apibase.h:111
Bool LessThan(UInt a1, UInt a2, UInt b1, UInt b2)
Definition: integer.h:151
Added:
#define MAXON_OFFSETOF_NON_STANDARD_LAYOUT(T, M)
Added:
static const DataType& GetType()
Added:
template <typename T, Bool HAS_ERROR> struct AddResultHelper
template <typename T> struct AddResultHelper<T, true>
template <typename T> struct AddResultHelper<ResultOk<T>, true>
template <typename T> struct AddResultHelper<Result<T>, true>
template <> struct AddResultHelper<ResultMemT<
Bool>, true>
template <typename T> struct AddResultHelper<ResultMemT<T*>, true>
template <typename T> struct AddResultHelper<ResultRef<T>, true>
typename maxon::details::AddResultHelper< T, HAS_ERROR >::type AddResult
Definition: interfacebase.h:1984
T type
Definition: interfacebase.h:1949
Added:
Bool ReserveInitialChunk(
const Int chunkSize, INDEXTYPE&
i, INDEXTYPE& toChunk)
Py_ssize_t i
Definition: abstract.h:645
maxon::Int Int
Definition: ge_sys_math.h:64
Old:
#define MAXON_CORE_FRAMEWORK_VERSION 2022901
New:
#define MAXON_CORE_FRAMEWORK_VERSION 2023100
New:
arrayallocator.h (The
names of entities inside the
file remained the same).
PyObject PyObject * names
Definition: code.h:159
Old:
template <
typename LOOP>
UInt LocalLoop(DynamicContext<USERCONTEXT, INDEXTYPE>& localContext,
const Int chunkSize,
const LOOP&
obj)
PyObject * obj
Definition: complexobject.h:60
LOOP
Loop.
Definition: ge_prepass.h:6
maxon::UInt UInt
Definition: ge_sys_math.h:65
New:
template <
typename LOOP>
UInt LocalLoop(DynamicContext<USERCONTEXT, INDEXTYPE>& localContext,
Int chunkSize, INDEXTYPE
i, INDEXTYPE toChunk,
const LOOP&
obj)
New:
template <typename P> class ThreadLocalPointer
Old:
class ThreadLocalDestructiblePointer
New:
template <typename P> class ThreadLocalDestructiblePointer
Old:
class ThreadLocalDestructiblePointer
New:
template <typename P> class ThreadLocalDestructiblePointer
Removed:
#define MAXON_REFERENCE_UNIQUE(FREEIMPL)
#define PRIVATE_MAXON_REFERENCE_UNIQUE_FLAGS
#define PRIVATE_MAXON_REFERENCE_UNIQUE_COPY(Name)
Removed:
T NullValue()
Definition: nullvalue.h:210
Removed:
template <typename T> struct IsZeroInitialized<SqrMat3<T>> : public IsZeroInitialized<T> { };
template <typename T> struct IsZeroInitialized<Mat3<T>> : public IsZeroInitialized<T> { };
Removed:
template <typename T> struct IsZeroInitialized<SqrMat2<T>> : public IsZeroInitialized<T> { };
template <typename T> struct IsZeroInitialized<Mat2<T>> : public IsZeroInitialized<T> { };
Removed:
template <typename T> struct IsZeroInitialized<SqrMat4<T>> : public IsZeroInitialized<T> { };
corenodes.framework
Added:
class CoreNodeErrorHelper
Added:
#define MAXON_OPERATOR_EQUALITY(T,...)
Definition: classhelpers.h:502
exchange.framework
Added:
This is the subsurface color.
This scales the overall subsurface effect (0.0 - 1.0).
This can be used to control the average distance that light can travel below the surface before it is reduced by scattering such that it can no longer have a visible effect.
This
value is multiplied by the
RGB components of the radius to determine the distance the light can travel below the surface before it is fully scattered.
This
value can be used to influence the
direction in which the light is scattered below the surface.
PyObject * value
Definition: abstract.h:715
#define MAXON_ATTRIBUTE(TYPE, NAME, RID,...)
Definition: fid.h:156
RGB
8-bit RGB channels.
Definition: ge_prepass.h:7
maxon::Float Float
Definition: ge_sys_math.h:66
Col3< Float, 1 > Color
Definition: vector.h:84
void Group
special datatype for groups.
Definition: fid.h:112
PyObject Py_ssize_t Py_ssize_t int direction
Definition: unicodeobject.h:916
image.framework
Added:
MAXON_METHOD Result<Opt<ImageBaseRef>> GetImage(UpdateCacheDelegate&& updateDelegate,
Bool async)
const;
misc.framework
Added:
MAXON_METHOD Result<void> CalculateFloat(
const FormulaParserCacheRef& cache,
const VariableDictionary& varOverrides,
Float32&
result);
MAXON_METHOD Result<void> CalculateFloat(
const FormulaParserCacheRef& cache,
const VariableDictionary& varOverrides,
Float64&
result);
MAXON_METHOD Result<void> CalculateInt(
const FormulaParserCacheRef& cache,
const VariableDictionary& varOverrides,
Int64&
result);
const char const char * name
Definition: abstract.h:195
Definition: c4d_string.h:39
PyObject PyObject * result
Definition: abstract.h:43
maxon::Int64 Int64
Definition: ge_sys_math.h:62
maxon::Float32 Float32
Definition: ge_sys_math.h:68
maxon::Float64 Float64
Definition: ge_sys_math.h:67
Added:
MAXON_METHOD Result<void> Add2(
const GmlNode&
node,
const Delegate<Tuple<Int32, String>(
const GmlNode&)>& idDelegate);
Added:
Result< Url > GetUrlFromIconProviders(const CString &iconId)
Definition: iconprovider.h:24
Added:
#define CheckUnitTestState(condition, ...)
neutron.framework
Added:
namespace NEARESTNEIGHBOR
{
}
#define MAXON_RESOURCE_DATABASE_SCOPE(id)
Definition: fid.h:107
@ SELECTION
Selected edges.
StrongCOWRef< IndexSelectionType > IndexSelection
Definition: nodes_modeling.h:17
Old:
static constexpr
Int32 MSG_GET_INSTRUMENTATION_MANAGER = 180420113;
maxon::Int32 Int32
Definition: ge_sys_math.h:60
New:
static constexpr Int32 MSG_GET_INSTRUMENTATION_HANDLER
Definition: neutron_ids.h:45
Old:
static constexpr
Int32 MSG_REGISTER_INSPECTOR = 180420205;
New:
static constexpr Int32 MSG_REGISTER_PORT_VALUE_LISTENER
Definition: neutron_ids.h:73
nodes.framework
Added:
RESULT
The data type is a Result.
Definition: apibase.h:37
COLOR
Vector.
Definition: c4d_basebitmap.h:5
Col4< Float, 1 > ColorA
Definition: vector4d.h:60
Added:
const char * message
Definition: pyerrors.h:189
Added:
New
file containing the attributes
for the formula
node.
Added:
COUNT
Length of the arrays changed.
Definition: c4d_baseeffectordata.h:3
Added:
PORT_DIR
Definition: graph_basics.h:34
Added:
template <
typename T> Result<void> SetNoKindArgument(
const InternedId&
id, T&&
value)
python.framework
Added:
ISOLATED
Definition: cpython_raw.h:17
LEGACYWINDOWSSTDIO
Definition: cpython_raw.h:21
OPTIMIZE_LEVEL1
Definition: cpython_raw.h:7
LEGACYWINDOWSFSENCODING
Definition: cpython_raw.h:20
UNBUFFEREDSTDIO
Definition: cpython_raw.h:15
OPTIMIZE_LEVEL2
Definition: cpython_raw.h:8
HASHRANDOMSEED
Definition: cpython_raw.h:16
UTF8MODE
Definition: cpython_raw.h:1
QUIET
Just return allocation numbers.
Definition: system.h:1
volume.framework
Added:
VECTORGRIDTYPE
Vector Volume Types.
Definition: ge_prepass.h:1900
Added:
static MAXON_METHOD Result<Array<Vector>> ScatterPointsInFog(
const Volume& volume,
UInt64 pointCount,
Float spread);
maxon::UInt64 UInt64
Definition: ge_sys_math.h:63