FieldData Class Referenceabstract

#include <c4d_fieldplugin.h>

Inheritance diagram for FieldData:

Public Member Functions

 FieldData ()
virtual maxon::Result< void > InitSampling (FieldObject &op, const FieldInfo &info, FieldShared &shared)
virtual void FreeSampling (FieldObject &op, const FieldInfo &info, FieldShared &shared)
virtual maxon::Result< void > Sample (const FieldObject &op, const FieldInput &inputs, FieldOutputBlock &outputs, const FieldInfo &info) const =0
virtual FIELDOBJECT_FLAG GetFieldFlags (const FieldObject &op, BaseDocument *doc) const
- Public Member Functions inherited from ObjectData
virtual void GetDimension (BaseObject *op, Vector *mp, Vector *rad)
virtual DRAWRESULT Draw (BaseObject *op, DRAWPASS drawpass, BaseDraw *bd, BaseDrawHelp *bh)
virtual DRAWRESULT DrawShadow (BaseObject *op, BaseDraw *bd, BaseDrawHelp *bh)
virtual Int32 DetectHandle (BaseObject *op, BaseDraw *bd, Int32 x, Int32 y, QUALIFIER qualifier)
virtual Bool MoveHandle (BaseObject *op, BaseObject *undo, const Vector &mouse_pos, Int32 hit_id, QUALIFIER qualifier, BaseDraw *bd)
virtual Bool AddToExecution (BaseObject *op, PriorityList *list)
virtual EXECUTIONRESULT Execute (BaseObject *op, BaseDocument *doc, BaseThread *bt, Int32 priority, EXECUTIONFLAGS flags)
virtual void GetModelingAxis (BaseObject *op, BaseDocument *doc, Matrix &axis)
virtual BaseObjectGetVirtualObjects (BaseObject *op, HierarchyHelp *hh)
virtual Bool ModifyObject (BaseObject *mod, BaseDocument *doc, BaseObject *op, const Matrix &op_mg, const Matrix &mod_mg, Float lod, Int32 flags, BaseThread *thread)
virtual void CheckDirty (BaseObject *op, BaseDocument *doc)
virtual SplineObjectGetContour (BaseObject *op, BaseDocument *doc, Float lod, BaseThread *bt)
virtual void ModifyParticles (BaseObject *op, Particle *pp, BaseParticle *ss, Int32 pcnt, Float diff)
virtual Int32 GetHandleCount (BaseObject *op)
virtual void GetHandle (BaseObject *op, Int32 i, HandleInfo &info)
virtual void SetHandle (BaseObject *op, Int32 i, Vector p, const HandleInfo &info)
- Public Member Functions inherited from NodeData
 NodeData ()
GeListNodeGet (void) const
virtual Bool Message (GeListNode *node, Int32 type, void *data)
virtual void GetBubbleHelp (GeListNode *node, maxon::String &str)
virtual BaseDocumentGetDocument (GeListNode *node)
virtual Int32 GetBranchInfo (GeListNode *node, BranchInfo *info, Int32 max, GETBRANCHINFO flags)
virtual Bool IsInstanceOf (const GeListNode *node, Int32 type) const
virtual Bool IsDocumentRelated (const GeListNode *node, Bool &docrelated) const
virtual Bool Init (GeListNode *node)
virtual void Free (GeListNode *node)
virtual Bool Read (GeListNode *node, HyperFile *hf, Int32 level)
virtual Bool Write (GeListNode *node, HyperFile *hf)
virtual Bool CopyTo (NodeData *dest, GeListNode *snode, GeListNode *dnode, COPYFLAGS flags, AliasTrans *trn)
virtual Bool GetDDescription (GeListNode *node, Description *description, DESCFLAGS_DESC &flags)
virtual Bool GetDParameter (GeListNode *node, const DescID &id, GeData &t_data, DESCFLAGS_GET &flags)
virtual Bool SetDParameter (GeListNode *node, const DescID &id, const GeData &t_data, DESCFLAGS_SET &flags)
virtual Bool GetDEnabling (GeListNode *node, const DescID &id, const GeData &t_data, DESCFLAGS_ENABLE flags, const BaseContainer *itemdesc)
virtual Bool TranslateDescID (GeListNode *node, const DescID &id, DescID &res_id, C4DAtom *&res_at)
- Public Member Functions inherited from BaseData
 BaseData ()
virtual ~BaseData (void)
void Destructor (void)

Private Member Functions


Additional Inherited Members

- Protected Attributes inherited from NodeData

Constructor & Destructor Documentation

◆ FieldData()

FieldData ( )

Default constructor.


Member Function Documentation



◆ InitSampling()

virtual maxon::Result<void> InitSampling ( FieldObject op,
const FieldInfo info,
FieldShared shared 

- Initialization block, invoked prior to any sampling.

[in]opThe object, convenience function equivalent to Get().
[in]infoThe information detailing thread count, points information etc. Caller is responsible for validity of content.
[in,out]sharedShared data between layers/fields.
OK on success, error will cancel sampling.

◆ FreeSampling()

virtual void FreeSampling ( FieldObject op,
const FieldInfo info,
FieldShared shared 

- Free any temporarily stored data after sampling has finished.

[in]opThe object, convenience function equivalent to Get().
[in]infoThe information.
[in,out]sharedShared data between layers/fields.

◆ Sample()

virtual maxon::Result<void> Sample ( const FieldObject op,
const FieldInput inputs,
FieldOutputBlock outputs,
const FieldInfo info 
) const
pure virtual

- Sampling invocation. The points are no longer just vectors, but also contain other information that may be relevant such as normal direction, the points must be iterated over and the result filled with the output values. The flags determine which values are being requested by the caller. InitializeSampling must be called first and the points data must be valid. NOTE: Sample does not receive the SharedData. If a layer needs access to it, it can keep a reference on it or copy parts of it in InitSampling.

[in]opThe object, convenience function equivalent to Get().
[in]inputsThe points to sample at owned by the caller.
[out]outputsThe result array, owned by the caller.
[in]infoThe information.
OK on success.

◆ GetFieldFlags()

virtual FIELDOBJECT_FLAG GetFieldFlags ( const FieldObject op,
BaseDocument doc 
) const

Gets Field objects flags.

[in]opThe field object, convenience function equivalent to Get().
[in]docThe current document.
The field flags see .