The basic particle system provides a simple particle generator and basic effectors. The API is defined in c4d_particleobject.h.
Particle modifiers are based on ObjectData and must implement ObjectData::ModifyParticles(). Within such a modifier changes are done through the BaseParticle structure.
BaseObject*
const emitter = BaseObject::Alloc(
Oparticle);
if (emitter == nullptr)
ParticleObject* const particleEmitter = static_cast<ParticleObject*>(emitter);
doc->InsertObject(particleEmitter,
nullptr,
nullptr);
BaseObject*
const fieldForce = BaseObject::Alloc(
Ofieldforce);
if (fieldForce == nullptr)
doc->InsertObject(fieldForce,
nullptr,
nullptr);
BaseObject*
const linearField = BaseObject::Alloc(
Flinear);
if (linearField == nullptr)
doc->InsertObject(linearField, fieldForce,
nullptr);
{
InExcludeData* const inExData = data.GetCustomDataTypeWritable<InExcludeData>();
if (inExData == nullptr)
inExData->InsertObject(fieldForce, 1);
}
{
GeData effectorData;
FieldList* const fieldList = effectorData.GetCustomDataTypeWritable<FieldList>();
if (fieldList == nullptr)
FieldLayer*
const layer = FieldLayer::Alloc(
FLfield);
if (layer == nullptr)
layer->SetLinkedObject(linearField);
fieldList->InsertLayer(layer,
nullptr,
nullptr)
iferr_return;
}
NONE
Definition: asset_browser.h:1
#define CUSTOMDATATYPE_INEXCLUDE_LIST
InExclude custom data type ID.
Definition: customgui_inexclude.h:24
DIRECTION
Sample the velocity at the current point.
Definition: ge_prepass.h:1
#define MAXON_SCOPE
Definition: apibase.h:2891
static const Int32 FLfield
FieldLayer Field object based layer.
Definition: c4d_fielddata.h:77
static const Int32 Flinear
Linear shaped field.
Definition: c4d_fielddata.h:41
#define Ofieldforce
Particle field force
Definition: ge_prepass.h:1104
#define Oparticle
Particle emitter - ParticleObject.
Definition: ge_prepass.h:1052
#define MAXON_SOURCE_LOCATION
Definition: memoryallocationbase.h:69
#define ConstDescID(...)
Definition: lib_description.h:592
@ DEFAULTVALUE
Dummy value for the default value GeData constructor.
Definition: c4d_gedata.h:64
@ ID_FIELDFORCE_FIELDLIST
Definition: ofieldforce.h:6
@ ID_FIELDFORCE_STRENGTH
Definition: ofieldforce.h:7
@ PARTICLEOBJECT_MODE_INCLUDE
Definition: oparticle.h:35
@ PARTICLEOBJECT_MODE
Definition: oparticle.h:33
@ PARTICLEOBJECT_INCLUDE
Definition: oparticle.h:34
ENABLE
The layer is enabled and being sampled.
Definition: operatingsystem.h:1
const char * doc
Definition: pyerrors.h:226
#define iferr_return
Definition: resultbase.h:1531