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.
if (emitter == nullptr)
ParticleObject*
const particleEmitter = static_cast<ParticleObject*>(emitter);
if (fieldForce == nullptr)
if (linearField == nullptr)
{
InExcludeData*
const inExData = static_cast<InExcludeData*>(customData);
if (inExData == nullptr)
}
{
FieldList*
const fieldList = static_cast<FieldList*>(customData);
if (fieldList == nullptr)
if (layer == nullptr)
}
Definition: ofieldforce.h:7
Definition: c4d_fielddata.h:1125
Bool SetLinkedObject(const FieldLayerLink &link)
Definition: c4d_fielddata.h:1295
void InsertObject(BaseObject *op, BaseObject *parent, BaseObject *pred, Bool checknames=false)
Definition: c4d_baseobject.h:220
Definition: lib_description.h:315
static const Int32 FLfield
FieldLayer Field object based layer.
Definition: c4d_fielddata.h:80
#define CUSTOMDATATYPE_FIELDLIST
Definition: customgui_field.h:22
#define Ofieldforce
Definition: ge_prepass.h:1031
#define iferr_return
Definition: resultbase.h:1419
Definition: ofieldforce.h:6
#define MAXON_SOURCE_LOCATION
Definition: memoryallocationbase.h:66
The layer is enabled and being sampled.
#define CUSTOMDATATYPE_INEXCLUDE_LIST
InExclude custom data type ID.
Definition: customgui_inexclude.h:21
InExclude custom data type (CUSTOMDATATYPE_INEXCLUDE_LIST).
Definition: customgui_inexclude.h:107
#define Oparticle
Particle emitter - ParticleObject.
Definition: ge_prepass.h:976
Bool SetParameter(const DescID &id, const GeData &t_data, DESCFLAGS_SET flags)
Bool InsertObject(BaseList2D *pObject, Int32 lFlags)
Definition: oparticle.h:34
Definition: oparticle.h:35
Direction sampling is enabled for this layer.
Field custom GUI (CUSTOMDATATYPE_FIELDLIST) for the Field list data.
Definition: customgui_field.h:54
Definition: c4d_gedata.h:77
Dummy value for the default value GeData constructor.
Definition: c4d_gedata.h:60
Base class for custom data types.
Definition: c4d_customdatatype.h:46
static BaseObject * Alloc(Int32 type)
Definition: c4d_particleobject.h:66
CustomDataType * GetCustomDataType(Int32 datatype) const
Definition: c4d_gedata.h:485
maxon::Result< void > InsertLayer(FieldLayer *layer, FieldLayer *parent=nullptr, FieldLayer *prev=nullptr)
void SetChannelFlag(FIELDLAYER_CHANNELFLAG flag, Bool state=true)
Definition: c4d_fielddata.h:1223
Bool GetParameter(const DescID &id, GeData &t_data, DESCFLAGS_GET flags)
#define MAXON_SCOPE
Definition: apibase.h:2575
static const Int32 Flinear
Linear shaped field.
Definition: c4d_fielddata.h:42
static FieldLayer * Alloc(Int32 type)
Definition: c4d_fielddata.h:1302
Definition: oparticle.h:33