Changes in Melange 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 melange;
class BaseFile
{
static BaseFile* Alloc(void);
static void Free(BaseFile*& fl);
};

c4d_baselist2d.h

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

c4d_baseobject.h

using namespace melange;
{
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 melange;
class BaseShader : public BaseList4D
{
virtual Int32 GetType() const;
virtual Int32 GetDiskType() const;
};

c4d_ccurve.h

using namespace melange;
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

c4d_cpolygon.h

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

c4d_ctrack.h

using namespace melange;
class CTrack
{
};

c4d_parameter_ids.h

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

c4d_quaternion.h

using namespace melange;
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 melange;
struct TextureLayer;

c4d_vertexcolorstruct.h

using namespace melange;

c4d_vertexcolortag.h

using namespace melange;

vector4.h