Changes in Cineware SDK 18.0

New Features Support

  • Vertex Color.
  • Quaternion Rotation.
  • Variation Shader and its Texture Shaders/Layers.

API Changes

  • Complete refactoring of SDK headers for better overview and usage:
    • Separate header for each class
    • Main include is c4d.h
    • Custom data classes moved to c4d_customdatatype folder
    • Utilities classes (BaseArray, BaseSort etc.) headers moved to c4d_misc folder

c4d_basefile.h

using namespace cineware;
class BaseFile
{
static BaseFile* Alloc(void);
static void Free(BaseFile*& fl);
};

c4d_baselist2d.h

using namespace cineware;
{
void SetMarker(const GeMarker& m);
void InsertTrackSorted(CTrack* track);
};

c4d_baseobject.h

using namespace cineware;
{
void KillTag(Int32 type, Int32 nr = 0);
BaseTag* MakeTag(Int32 type, BaseTag* pred = nullptr);
// New parameter 'pred'
Bool SynchronizeVectorTrackKeys(Int32 vectorTrackID, BaseTime startRange = BaseTime(-108000, 1), BaseTime endRange = BaseTime(108000, 1));
Bool FindBestEulerAngle(Int32 rotationTrackID, Bool bAdjustTangent, BaseTime startRange = BaseTime(-108000, 1), BaseTime endRange = BaseTime(108000, 1));
};

c4d_baseshader.h

using namespace cineware;
class BaseShader : public BaseList4D
{
virtual Int32 GetType() const;
virtual Int32 GetDiskType() const;
};

c4d_ccurve.h

using namespace cineware;
class CCurve
{
CKey* AddKey(const BaseTime& time, Int32* nidx = nullptr, Bool synchronizeKeys = false);
CKey* AddKeyAdaptTangent(const BaseTime& time, Int32* nidx = nullptr, Bool synchronizeKeys = false);
Bool InsertKey(const CKey* ckey, Bool synchronizeKeys = false);
Bool DelKey(Int32 index, Bool synchronizeKeys = false);
Int32 MoveKey(const BaseTime& time, Int32 idx, CCurve* dseq = nullptr, Bool synchronizeKeys = false);
void FlushKeys(Bool synchronizeKeys = false);
// New parameter 'synchronizeKeys'
};

c4d_ckey.h

using namespace cineware;
class CKey
{
};

c4d_cpolygon.h

using namespace cineware;
class CPolygon
{
Int32& operator[](Int32 index) const;
};

c4d_ctrack.h

using namespace cineware;
class CTrack
{
};

c4d_parameter_ids.h

using namespace cineware;
Oconplane
// Renamed to
VPcelrender
// Renamed to

c4d_quaternion.h

using namespace cineware;
Quaternion QSmoothCubic(const Quaternion& qn_m1, const Quaternion& qn, const Quaternion& qn_p1, Float64 t);
Float64 QDot(const Quaternion& q1, const Quaternion& q2);

c4d_variationshaderdata.h

using namespace cineware;
struct TextureLayer;

c4d_vertexcolorstruct.h

using namespace cineware;

c4d_vertexcolortag.h

using namespace cineware;

vector4.h

typedef Vector4d32;
typedef Vector4d64;
cineware::BaseObject::SetQuaternionRotationMode
void SetQuaternionRotationMode(Bool active)
cineware::Vector4d64
_Vector4< Float64 > Vector4d64
Double-precision Vector4.
Definition: vector4.h:277
cineware::BaseObject::IsQuaternionRotationMode
Bool IsQuaternionRotationMode()
cineware::BaseObject::SynchronizeVectorTrackKeys
Bool SynchronizeVectorTrackKeys(Int32 vectorTrackID, BaseTime startRange=BaseTime(-108000, 1), BaseTime endRange=BaseTime(108000, 1))
cineware::VertexColorStruct
Definition: c4d_vertexcolorstruct.h:20
cineware::BaseTag
Definition: c4d_basetag.h:32
cineware::BaseTime
Definition: c4d_basetime.h:27
cineware::CKey::SetQuatInterpolation
void SetQuatInterpolation(CCurve *seq, ROTATIONINTERPOLATION inter)
cineware::CCurve
Definition: c4d_ccurve.h:38
cineware::CPolygon::operator[]
Int32 & operator[](Int32 index) const
Definition: c4d_cpolygon.h:50
cineware::BaseShader::GetType
virtual Int32 GetType() const
Mshadowcatcher
#define Mshadowcatcher
Shadow Catcher.
Definition: c4d_parameter_ids.h:908
cineware::Quaternion
Definition: c4d_quaternion.h:21
cineware::CCurve::DelKey
Bool DelKey(Int32 index, Bool synchronizeKeys=false)
cineware::CCurve::InsertKey
Bool InsertKey(const CKey *ckey, Bool synchronizeKeys=false)
cineware::Bool
bool Bool
Boolean type, possible values are only false/true, 8 bit.
Definition: c4d_system.h:192
cineware::BaseObject
Definition: c4d_baseobject.h:62
Oworkplane
#define Oworkplane
Workplane.
Definition: c4d_parameter_ids.h:671
cineware::BaseList2D::InsertTrackSorted
void InsertTrackSorted(CTrack *track)
cineware::GeMarker
A unique marker that identifies an object derived from one of the base lists.
Definition: c4d_gemarker.h:21
cineware
Definition: b3d_file.h:22
cineware::CKey
Definition: c4d_ckey.h:28
cineware::CCurve::MoveKey
Int32 MoveKey(const BaseTime &time, Int32 idx, CCurve *dseq=nullptr, Bool synchronizeKeys=false)
Mskysurface
#define Mskysurface
Definition: customdatatype_skyobjects.h:35
cineware::VariationShaderData
Node data class for Cinema&#160;4D's Variation shader.
Definition: c4d_variationshaderdata.h:65
cineware::BaseList4D
Definition: c4d_baselist4d.h:20
VPcomic
#define VPcomic
Comic.
Definition: c4d_parameter_ids.h:1030
cineware::BaseList2D
Represents a node in a 2D list.
Definition: c4d_baselist2d.h:38
cineware::BaseFile
File operations class. Represents a disk file for reading and writing.
Definition: c4d_basefile.h:97
cineware::CTrack
Definition: c4d_ctrack.h:103
cineware::BaseList2D::SetMarker
void SetMarker(const GeMarker &m)
cineware::DISTRIBUTION
DISTRIBUTION
Definition: c4d_variationshaderdata.h:22
cineware::CPolygon
Represents a polygon that can be either a triangle or quadrangle.
Definition: c4d_cpolygon.h:19
cineware::BaseObject::MakeTag
BaseTag * MakeTag(Int32 type, BaseTag *pred=nullptr)
cineware::CKey::GetQuatInterpolation
ROTATIONINTERPOLATION GetQuatInterpolation() const
Vector4d
#define Vector4d
Vector4 for double-precision Cinema&#160;4D versions.
Definition: vector4.h:283
cineware::BaseFile::Alloc
static BaseFile * Alloc()
cineware::CCurve::AddKeyAdaptTangent
CKey * AddKeyAdaptTangent(const BaseTime &time, Int32 *nidx=nullptr, Bool synchronizeKeys=false)
cineware::TextureLayer
Data structure for texture layers of variation shader.
Definition: c4d_variationshaderdata.h:32
cineware::ROTATIONINTERPOLATION
ROTATIONINTERPOLATION
Definition: c4d_parameter_ids.h:786
cineware::BaseObject::KillTag
void KillTag(Int32 type, Int32 nr=0)
cineware::VertexColorTag
Definition: c4d_vertexcolortag.h:32
cineware::BaseShader
Definition: c4d_baseshader.h:20
cineware::Vector4d32
_Vector4< Float32 > Vector4d32
Single-precision Vector4.
Definition: vector4.h:276
cineware::BaseObject::FindBestEulerAngle
Bool FindBestEulerAngle(Int32 rotationTrackID, Bool bAdjustTangent, BaseTime startRange=BaseTime(-108000, 1), BaseTime endRange=BaseTime(108000, 1))
cineware::QSmoothCubic
Quaternion QSmoothCubic(const Quaternion &qn_m1, const Quaternion &qn, const Quaternion &qn_p1, Float64 t)
cineware::BaseFile::Free
static void Free(BaseFile *&fl)
cineware::CCurve::FlushKeys
void FlushKeys(Bool synchronizeKeys=false)
cineware::Int32
int32_t Int32
32 bit signed integer datatype.
Definition: c4d_system.h:186
cineware::CCurve::AddKey
CKey * AddKey(const BaseTime &time, Int32 *nidx=nullptr, Bool synchronizeKeys=false)
cineware::ANIMATEFLAGS
ANIMATEFLAGS
Definition: c4d_baseobject.h:26
cineware::QDot
Float64 QDot(const Quaternion &q1, const Quaternion &q2)
cineware::Float64
double Float64
64 bit floating point value (double).
Definition: c4d_system.h:194
cineware::CTrack::GetObject
BaseList2D * GetObject() const
Tvertexcolor
#define Tvertexcolor
Vertex color.
Definition: c4d_parameter_ids.h:871
cineware::BaseShader::GetDiskType
virtual Int32 GetDiskType() const