FieldLayer Class Reference

#include <c4d_fielddata.h>

Inheritance diagram for FieldLayer:

Public Member Functions

FieldLayerGetUp () const
FieldLayerGetDown () const
FieldLayerGetNext () const
FieldLayerGetPred () const
FieldLayerGetDownLast () const
Float GetStrength () const
void SetStrength (Float strength)
Int32 GetBlendingMode () const
void SetBlendingMode (Int32 blendingMode)
Int32 GetUniqueID () const
void SetUniqueID (Int32 id)
void SetChannelFlags (FIELDLAYER_CHANNELFLAG flags)
Bool GetChannelFlag (FIELDLAYER_CHANNELFLAG flag) const
void SetChannelFlag (FIELDLAYER_CHANNELFLAG flag, Bool state=true)
maxon::Result< void > InitSampling (const FieldInfo &info, FieldShared &shared)
maxon::Result< void > Sample (const FieldInput &inputs, FieldOutputBlock &outputs, const FieldInfo &info) const
maxon::Result< void > Aggregate (const FieldInput &inputs, const FieldOutputBlock &outputs, const FieldInfo &info)
void FreeSampling (const FieldInfo &info, FieldShared &shared)
Bool IsEqual (FieldLayer *comp) const
void SetLayerFlags (FIELDLAYER_FLAG flags, Bool state=true)
FIELDLAYER_FLAG GetLayerFlags () const
FieldLayerLink GetLinkedObject (BaseDocument *doc) const
Bool SetLinkedObject (const FieldLayerLink &link)
GeListHeadGetMaskHead () const
maxon::Result< void > AddMask ()
void RemoveMask (Bool deleteLayers=true)
- Public Member Functions inherited from BaseList2D
void SetBit (Int32 mask)
Bool GetBit (Int32 mask) const
void DelBit (Int32 mask)
void ToggleBit (Int32 mask)
Int32 GetAllBits () const
void SetAllBits (Int32 bits)
void SetBitEx (Int32 mask, Int32 flags)
const CharGetViewportRenderId (VIEWPORT_RENDER_ID typeId) const
BaseList2DGetNext ()
BaseList2DGetPred ()
BaseContainer GetData ()
void SetData (const BaseContainer &bc, Bool add=true)
const BaseContainerGetDataInstance () const
BaseContainerGetDataInstance ()
const BaseContainerGetDataInstanceRef () const
BaseContainerGetDataInstanceRef ()
String GetName () const
void SetName (const maxon::String &name)
String GetBubbleHelp ()
Bool TransferGoal (BaseList2D *dst, Bool undolink)
Bool TransferMarker (BaseList2D *dst) const
Bool Scale (Float scale)
Bool Edit ()
void GetIcon (IconData *dat)
GeListHeadGetNLARoot ()
BaseList2DAnimationLayerRemap (BaseObject **layer=nullptr)
String GetTypeName ()
BaseList2DGetMain () const
void InsertTrackSorted (CTrack *track)
Bool AddEventNotification (BaseList2D *bl, NOTIFY_EVENT eventid, NOTIFY_EVENT_FLAG flags, const BaseContainer *data)
Bool RemoveEventNotification (BaseDocument *doc, BaseList2D *bl, NOTIFY_EVENT eventid)
Bool FindEventNotification (BaseDocument *doc, BaseList2D *bl, NOTIFY_EVENT eventid)
Bool SetDescIDState (const DescID &id, DESCIDSTATE descidstate)
DESCIDSTATE GetDescIDState (const DescID &id, Bool tolerant) const
GeListHeadGetOverrideRoot ()
BaseOverrideGetFirstOverride ()
GeListHeadGetShaderRepositoryRoot ()
GeListHeadGetHiddenShaderRoot ()
maxon::NimbusForwardRef GetNimbusRef (const maxon::Id &spaceId) const
maxon::Result< maxon::NimbusForwardRefPrivateGetOrCreateNimbusRef (const maxon::Id &spaceId)
void RemoveNimbusRef (const maxon::Id &spaceId)
maxon::Result< maxon::HashMap< maxon::Id, maxon::NimbusForwardRef > > GetAllNimbusRefs () const
Bool IsNodeBased () const
void GetMarkerStampEx (UInt32 *l1, UInt32 *l2)
const GeMarkerGetMarker () const
void SetMarker (const GeMarker &m)
Bool AddUniqueID (Int32 appid, const Char *const mem, Int bytes)
Bool FindUniqueID (Int32 appid, const Char *&mem, Int &bytes) const
Int32 GetUniqueIDCount () const
Bool GetUniqueIDIndex (Int32 idx, Int32 &id, const Char *&mem, Int &bytes) const
Bool SetAnimatedParameter (CTrack *track, const DescID &id, const GeData &t_data1, const GeData &t_data2, Float mix, DESCFLAGS_SET flags)
Bool GetAnimatedParameter (const DescID &id, GeData &t_data1, GeData &t_data2, Float &mix, DESCFLAGS_GET flags)
BaseShaderGetFirstShader () const
void InsertShader (BaseShader *shader, BaseShader *pred=nullptr)
void ClearKeyframeSelection ()
Bool FindKeyframeSelection (const DescID &id)
Bool SetKeyframeSelection (const DescID &id, Bool selection)
Bool KeyframeSelectionContent ()
LayerObjectGetLayerObject (BaseDocument *doc)
Bool SetLayerObject (LayerObject *layer)
const LayerDataGetLayerData (BaseDocument *doc, Bool rawdata=false)
Bool SetLayerData (BaseDocument *doc, const LayerData &data)
GeListHeadGetCTrackRoot ()
CTrackGetFirstCTrack ()
CTrackFindCTrack (const DescID &id)
- Public Member Functions inherited from GeListNode
GeListNodeGetNext ()
GeListNodeGetPred ()
GeListNodeGetDown ()
GeListNodeGetUp ()
GeListNodeGetDownLast ()
void InsertBefore (GeListNode *bl)
void InsertAfter (GeListNode *bl)
void InsertUnder (GeListNode *bl)
void InsertUnderLast (GeListNode *bl)
void Remove ()
GeListHeadGetListHead ()
Int32 GetNodeID (Int32 index=0) const
template<typename CAST >
const CAST * GetNodeData (Int32 index=0) const
template<typename CAST >
CAST * GetNodeData (Int32 index=0)
void SetCustomData (GeListNode *node)
GeListNodeGetCustomData ()
BaseDocumentGetDocument ()
Int32 GetBranchInfo (BranchInfo *info, Int32 max, GETBRANCHINFO flags)
Bool IsDocumentRelated ()
Int32 GetInfo () const
Bool GetNBit (NBIT bit) const
UInt32 GetNBitMask (Int32 index) const
Bool ChangeNBit (NBIT bit, NBITCONTROL bitmode)
- Public Member Functions inherited from C4DAtom
Int32 GetType () const
Int32 GetRealType () const
Int32 GetDiskType () const
Bool IsInstanceOf (Int32 id) const
Int32 GetClassification () const
Bool Message (Int32 type, void *data=nullptr)
Bool MultiMessage (MULTIMSG_ROUTE flags, Int32 type, void *data)
C4DAtomGetClone (COPYFLAGS flags, AliasTrans *trn)
Bool CopyTo (C4DAtom *dst, COPYFLAGS flags, AliasTrans *trn)
Bool Read (HyperFile *hf, Int32 id, Int32 level)
Bool Write (HyperFile *hf)
Bool ReadObject (HyperFile *hf, Bool readheader)
Bool WriteObject (HyperFile *hf)
Bool GetDescription (Description *description, DESCFLAGS_DESC flags)
Bool GetParameter (const DescID &id, GeData &t_data, DESCFLAGS_GET flags)
Bool SetParameter (const DescID &id, const GeData &t_data, DESCFLAGS_SET flags)
DynamicDescriptionGetDynamicDescription ()
Bool GetEnabling (const DescID &id, const GeData &t_data, DESCFLAGS_ENABLE flags, const BaseContainer *itemdesc)
Bool TranslateDescID (const DescID &id, DescID &res_id, C4DAtom *&res_at)
UInt32 GetDirty (DIRTYFLAGS flags) const
void SetDirty (DIRTYFLAGS flags)
UInt32 GetHDirty (HDIRTYFLAGS mask) const
void SetHDirty (HDIRTYFLAGS mask)

Static Public Member Functions

static FieldLayerAlloc (Int32 type)
static void Free (FieldLayer *&layer)
- Static Public Member Functions inherited from BaseList2D
static BaseList2DAlloc (Int32 type)
static void Free (BaseList2D *&bl)

Private Member Functions

 FieldLayer ()
 ~FieldLayer ()

Additional Inherited Members

- Static Public Attributes inherited from BaseList2D
static const Int32 SETBIT_FLAG_NODIRTY
static const Int32 SETBIT_FLAG_REMOVE

Constructor & Destructor Documentation

◆ FieldLayer()

FieldLayer ( )

◆ ~FieldLayer()

~FieldLayer ( )

Member Function Documentation



◆ GetUp()

FieldLayer* GetUp ( ) const

Gets the parent FieldLayer in the FieldList

nullptr if there is no parent, else the parent.

◆ GetDown()

FieldLayer* GetDown ( ) const

Gets the first child of the FieldLayer in the FieldList

nullptr if there are no children, else the first child.

◆ GetNext()

FieldLayer* GetNext ( ) const

Gets the next FieldLayer in the FieldList

nullptr if this is the final FieldLayer at the current level, otherwise the next sibling.

◆ GetPred()

FieldLayer* GetPred ( ) const

Gets the previous FieldLayer in the FieldList

nullptr if this is the first FieldLayer at the current level, otherwise the previous sibling.

◆ GetDownLast()

FieldLayer* GetDownLast ( ) const

Gets the last child of the FieldLayer in the FieldList

nullptr if there are no children, else the last child.

◆ GetStrength()

Float GetStrength ( ) const

Gets the FieldLayer's strength in the FieldList

The strength in percent.

◆ SetStrength()

void SetStrength ( Float  strength)

Sets a the FieldLayer's blending strength.

[in]strengthThe strength to set in percent.

◆ GetBlendingMode()

Int32 GetBlendingMode ( ) const

Gets the FieldLayers blending mode in the FieldList

The blending mode, see Flbase.h/res.

◆ SetBlendingMode()

void SetBlendingMode ( Int32  blendingMode)

Sets FieldLayer's blending mode

[in]blendingModeThe blending mode, see FLbase.h/res.

◆ GetUniqueID()

Int32 GetUniqueID ( ) const


◆ SetUniqueID()

void SetUniqueID ( Int32  id)


◆ GetChannelFlags()

FIELDLAYER_CHANNELFLAG GetChannelFlags ( ) const

Gets the enable state flags for the layers channel, e.g. the overall on/off (enable) or value, color and slope states

The channel flags for the layer see FIELDLAYER_CHANNELFLAG.

◆ SetChannelFlags()

void SetChannelFlags ( FIELDLAYER_CHANNELFLAG  flags)

Sets channel flags to the passed FIELDLAYER_CHANNELFLAG value

[in]flagsThe flags state to be set for this layer.

◆ GetChannelFlag()

Bool GetChannelFlag ( FIELDLAYER_CHANNELFLAG  flag) const

Gets a specific channel enabling state flag for the layer. e.g. the enable, value, color or slope states

[in]flagThe flag to retrieve.
True if the flag is set, False if it is clear.

◆ SetChannelFlag()

void SetChannelFlag ( FIELDLAYER_CHANNELFLAG  flag,
Bool  state = true 

Sets a specific channel flag state for the layer, e.g. the overall enabling, value, color or slope states

[in]flagThe flag to set or clear.
[in]state(Optional) True to set the state to on, False to disable (clear) the flag for the layer.

◆ InitSampling()

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

Initializes the Field Sampling, Must be called prior to invoking the Sample function. FreeSampling must be called to free any memory allocated during InitSampling after this.

[in]infoA fully populated FieldInfo structure.
[in,out]sharedData shared between fields/layers.
OK on success.

◆ Sample()

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

Samples the FieldLayer. InitSampling must be called prior to use, and FreeSampling must be called after use. 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]inputsThe points to sample in global space.
[in,out]outputsThe output arrays, must be allocated prior to use.
[in]infoA fully populated FieldInfo structure.
OK on success.

◆ Aggregate()

maxon::Result<void> Aggregate ( const FieldInput inputs,
const FieldOutputBlock outputs,
const FieldInfo info 


[in]inputsThe inputs.
[in]outputsThe outputs.
[in]infoThe information.
OK on success.

◆ FreeSampling()

void FreeSampling ( const FieldInfo info,
FieldShared shared 

Free's the Field Sampling. Releases any memory allocated during InitSampling.

[in]infoA fully populated FieldInfo structure.
[in,out]sharedData shared between fields/layers.

◆ IsEqual()

Bool IsEqual ( FieldLayer comp) const

Query if this layer is equal to another. Used by the undo system and to update dirtiness as required.

[in]compThe FieldLayer to compare to.
True if equal, false if not.

◆ SetLayerFlags()

void SetLayerFlags ( FIELDLAYER_FLAG  flags,
Bool  state = true 

Sets the layer display and execution flags, see FIELDLAYER_FLAG.

[in]flagsThe flags to set, see FIELDLAYER_FLAG.
[in]state(Optional) true to set, false to clear.

◆ GetLayerFlags()

FIELDLAYER_FLAG GetLayerFlags ( ) const

Gets the layer execution and display flags, see FIELDLAYER_FLAG.

The layer flags.

◆ GetLinkedObject()

FieldLayerLink GetLinkedObject ( BaseDocument doc) const

If the FieldLayer links to another object in scene this function should return that object. This is used for it's GUI and to check dirtiness within the FieldList

[in]docThe document the FieldLayer belongs to.
The linked object and potentially secondary data in a FieldLayerLink structure.

◆ SetLinkedObject()

Bool SetLinkedObject ( const FieldLayerLink link)

If the FieldLayer accepts a linked object then this function sets that object. This is used for it's GUI and to check the dirtiness within the FieldList

[in]linkA populated FieldLayerLink.
True if it succeeds, false if it fails.

◆ Alloc()

static FieldLayer* Alloc ( Int32  type)

Allocates a Field layer. Destroy the allocated Field layer with Free(). Use AutoAlloc to automate the allocation and destruction based on scope.

[in]typeThe layer type.
The allocated Field layer, or nullptr if the allocation failed.

◆ Free()

static void Free ( FieldLayer *&  layer)

Destructs Field layer allocated with Alloc(). Use AutoAlloc to automate the allocation and destruction based on scope.

[in,out]layerThe Field layer to destruct. If the pointer is nullptr nothing happens. The pointer is assigned nullptr afterwards.

◆ GetMaskHead()

GeListHead* GetMaskHead ( ) const

If the FieldLayer has a mask then this retrieve the listhead containing the mask layers.

The GeListHead containing the mask layers, nullptr if masks aren't active on this layer.

◆ AddMask()

maxon::Result<void> AddMask ( )

Adds a mask to the FieldLayer, if a mask already exists then this will do nothing.

OK on success.

◆ RemoveMask()

void RemoveMask ( Bool  deleteLayers = true)

Removes the mask on the FieldLayer, if no mask exists then this will do nothing.

[in]deleteLayerstrue to delete the layers in the mask, false to retain them so that when enabled again via AddMask the layers will reappear.