Open Search
    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)
     
    FIELDLAYER_CHANNELFLAG GetChannelFlags () const
     
    void SetChannelFlags (FIELDLAYER_CHANNELFLAG flags)
     
    Bool GetChannelFlag (FIELDLAYER_CHANNELFLAG flag) const
     
    void SetChannelFlag (FIELDLAYER_CHANNELFLAG flag, Bool state=true)
     
    maxon::Result< maxon::GenericDataInitSampling (const FieldInfo &info) const
     
    maxon::Result< void > Sample (const FieldInput &inputs, FieldOutputBlock &outputs, const FieldInfo &info, const maxon::GenericData &extraData) const
     
    maxon::Result< void > Aggregate (const FieldInput &inputs, const FieldOutputBlock &outputs, const FieldInfo &info, const maxon::GenericData &extraData) const
     
    void FreeSampling (const FieldInfo &info, maxon::GenericData &extraData) const
     
    Bool IsEqual (const FieldLayer *comp) const
     
    void SetLayerFlags (FIELDLAYER_FLAG flags, Bool state=true)
     
    FIELDLAYER_FLAG GetLayerFlags () const
     
    FieldLayerLink GetLinkedObject (const BaseDocument *doc) const
     
    Bool SetLinkedObject (const FieldLayerLink &link)
     
    GeListHeadGetMaskHead () const
     
    maxon::Result< void > AddMask ()
     
    void RemoveMask (Bool deleteLayers=true)
     
    maxon::Result< BoolGetAccessedObjectsForSampling (const BaseList2D *caller, AccessedObjectsCallback &access) const
     
    - 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 ()
     
    const BaseList2DGetNext () const
     
    BaseList2DGetPred ()
     
    const BaseList2DGetPred () const
     
    BaseContainer GetData ()
     
    void SetData (const BaseContainer &bc, Bool add=true)
     
    const BaseContainerGetDataInstanceRef () const
     
    BaseContainerGetDataInstanceRef ()
     
    const BaseContainerGetDataInstance () const
     
    BaseContainerGetDataInstance ()
     
    String GetName () const
     
    void SetName (const maxon::String &name, Bool setDirty=true)
     
    String GetBubbleHelp ()
     
    Bool TransferGoal (BaseList2D *dst, Bool undolink)
     
    Bool TransferMarker (BaseList2D *dst) const
     
    Bool CopyDynamicDescriptionFrom (const BaseList2D *src)
     
    Bool Scale (Float scale)
     
    Bool Edit ()
     
    void GetIcon (IconData *dat)
     
    GeListHeadGetNLARoot (Bool create)
     
    BaseList2DAnimationLayerRemap (BaseObject **layer=nullptr)
     
    String GetTypeName () const
     
    const BaseList2DGetMain () const
     
    BaseList2DGetMain ()
     
    void InsertTrackSorted (CTrack *track)
     
    Bool AddEventNotification (BaseList2D *bl, NOTIFY_EVENT eventid, NOTIFY_EVENT_FLAG flags, const BaseContainer *data)
     
    Bool RemoveEventNotification (const BaseDocument *doc, BaseList2D *bl, NOTIFY_EVENT eventid)
     
    Bool FindEventNotification (const BaseDocument *doc, BaseList2D *bl, NOTIFY_EVENT eventid)
     
    Bool SetDescIDState (const DescID &id, DESCIDSTATE descidstate)
     
    DESCIDSTATE GetDescIDState (const DescID &id, Bool tolerant) const
     
    GeListHeadGetOverrideRoot (Bool create)
     
    BaseOverrideGetFirstOverride ()
     
    GeListHeadGetShaderRepositoryRoot (Bool create)
     
    GeListHeadGetHiddenShaderRoot (Bool create)
     
    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
     
    maxon::Result< BoolGetAccessedObjects (METHOD_ID method, AccessedObjectsCallback &access) const
     
    maxon::Result< BoolGetAccessedObjectsRec (ACCESSED_OBJECTS_MASK read, ACCESSED_OBJECTS_MASK write, METHOD_ID method, Bool withSiblings, Bool withChildren, AccessedObjectsCallback &access) const
     
    maxon::Result< BoolGetAccessedObjectsOfHierarchy (ACCESSED_OBJECTS_MASK read, ACCESSED_OBJECTS_MASK write, METHOD_ID method, AccessedObjectsCallback &access) const
     
    maxon::Result< BoolGetAccessedObjectsOfChildren (ACCESSED_OBJECTS_MASK read, ACCESSED_OBJECTS_MASK write, METHOD_ID method, AccessedObjectsCallback &access) const
     
    maxon::Result< BoolGetAccessedObjectsOfFirstChildHierarchy (ACCESSED_OBJECTS_MASK read, ACCESSED_OBJECTS_MASK write, METHOD_ID method, AccessedObjectsCallback &access) const
     
    maxon::Result< maxon::GenericDataGroupChanges ()
     
    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 (const 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) const
     
    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 (const BaseDocument *doc)
     
    const LayerObjectGetLayerObject (const BaseDocument *doc) const
     
    Bool SetLayerObject (const LayerObject *layer)
     
    const LayerDataGetLayerData (const BaseDocument *doc, Bool rawdata=false) const
     
    Bool SetLayerData (BaseDocument *doc, const LayerData &data)
     
    GeListHeadGetCTrackRoot (Bool create)
     
    const GeListHeadGetCTrackRoot () const
     
    const CTrackGetFirstCTrack () const
     
    CTrackGetFirstCTrack ()
     
    const CTrackFindCTrack (const DescID &id) const
     
    CTrackFindCTrack (const DescID &id)
     
    - Public Member Functions inherited from GeListNode
    GeListNodeGetNext ()
     
    const GeListNodeGetNext () const
     
    GeListNodeGetPred ()
     
    const GeListNodeGetPred () const
     
    GeListNodeGetDown ()
     
    const GeListNodeGetDown () const
     
    GeListNodeGetUp ()
     
    const GeListNodeGetUp () const
     
    GeListNodeGetDownLast ()
     
    const GeListNodeGetDownLast () const
     
    void InsertBefore (GeListNode *bl)
     
    void InsertAfter (GeListNode *bl)
     
    void InsertUnder (GeListNode *bl)
     
    void InsertUnderLast (GeListNode *bl)
     
    void Remove ()
     
    void FlushChilds ()
     
    void MoveChildrenTo (GeListNode *dest)
     
    GeListHeadGetListHead ()
     
    const GeListHeadGetListHead () const
     
    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 ()
     
    const GeListNodeGetCustomData () const
     
    const BaseDocumentGetDocument () const
     
    BaseDocumentGetDocument ()
     
    maxon::Result< BoolGetBranchInfo (const maxon::ValueReceiver< const BranchInfo & > &info, GETBRANCHINFO flags) const
     
    Bool IsDocumentRelated () const
     
    Int32 GetInfo () const
     
    Bool GetNBit (NBIT bit) const
     
    UInt32 GetNBitMask (Int32 index) const
     
    Bool ChangeNBit (NBIT bit, NBITCONTROL bitmode)
     
    - Public Member Functions inherited from C4DAtomGoal
    Bool HasLinks () const
     
    - 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) const
     
    Bool CopyTo (C4DAtom *dst, COPYFLAGS flags, AliasTrans *trn) const
     
    Bool Read (HyperFile *hf, Int32 id, Int32 level)
     
    Bool Write (HyperFile *hf) const
     
    Bool ReadObject (HyperFile *hf, Bool readheader)
     
    Bool WriteObject (HyperFile *hf) const
     
    Bool GetDescription (Description *description, DESCFLAGS_DESC flags) const
     
    Bool GetParameter (const DescID &id, GeData &t_data, DESCFLAGS_GET flags) const
     
    Bool SetParameter (const DescID &id, const GeData &t_data, DESCFLAGS_SET flags)
     
    DynamicDescriptionGetDynamicDescriptionWritable ()
     
    const DynamicDescriptionGetDynamicDescription () const
     
    Bool CopyDynamicDescriptionFrom (const BaseList2D *src)
     
    Bool GetEnabling (const DescID &id, const GeData &t_data, DESCFLAGS_ENABLE flags, const BaseContainer *itemdesc) const
     
    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

     MAXON_DISALLOW_COPY_AND_ASSIGN (FieldLayer)
     
     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 ( )
    private

    ◆ ~FieldLayer()

    ~FieldLayer ( )
    private

    Member Function Documentation

    ◆ MAXON_DISALLOW_COPY_AND_ASSIGN()

    MAXON_DISALLOW_COPY_AND_ASSIGN ( FieldLayer  )
    private

    ◆ GetUp()

    FieldLayer* GetUp ( ) const

    Gets the parent FieldLayer in the FieldList

    Returns
    nullptr if there is no parent, else the parent.

    ◆ GetDown()

    FieldLayer* GetDown ( ) const

    Gets the first child of the FieldLayer in the FieldList

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

    ◆ GetNext()

    FieldLayer* GetNext ( ) const

    Gets the next FieldLayer in the FieldList

    Returns
    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

    Returns
    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

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

    ◆ GetStrength()

    Float GetStrength ( ) const

    Gets the FieldLayer's strength in the FieldList

    Returns
    The strength in percent.

    ◆ SetStrength()

    void SetStrength ( Float  strength)

    Sets a the FieldLayer's blending strength.

    Parameters
    [in]strengthThe strength to set in percent.

    ◆ GetBlendingMode()

    Int32 GetBlendingMode ( ) const

    Gets the FieldLayers blending mode in the FieldList

    Returns
    The blending mode, see Flbase.h/res.

    ◆ SetBlendingMode()

    void SetBlendingMode ( Int32  blendingMode)

    Sets FieldLayer's blending mode

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

    ◆ GetUniqueID()

    Int32 GetUniqueID ( ) const

    @markprivate

    ◆ SetUniqueID()

    void SetUniqueID ( Int32  id)

    @markprivate

    ◆ 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

    Returns
    The channel flags for the layer see FIELDLAYER_CHANNELFLAG.

    ◆ SetChannelFlags()

    void SetChannelFlags ( FIELDLAYER_CHANNELFLAG  flags)

    Sets channel flags to the passed FIELDLAYER_CHANNELFLAG value

    Parameters
    [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

    Parameters
    [in]flagThe flag to retrieve.
    Returns
    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

    Parameters
    [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<maxon::GenericData> InitSampling ( const FieldInfo info) const

    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.

    Parameters
    [in]infoA fully populated FieldInfo structure.
    Returns
    OK on success.

    ◆ Sample()

    maxon::Result<void> Sample ( const FieldInput inputs,
    FieldOutputBlock outputs,
    const FieldInfo info,
    const maxon::GenericData extraData 
    ) 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.

    Parameters
    [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.
    Returns
    OK on success.

    ◆ Aggregate()

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

    @MarkPrivate

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

    ◆ FreeSampling()

    void FreeSampling ( const FieldInfo info,
    maxon::GenericData extraData 
    ) const

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

    Parameters
    [in]infoA fully populated FieldInfo structure.

    ◆ IsEqual()

    Bool IsEqual ( const FieldLayer comp) const

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

    Parameters
    [in]compThe FieldLayer to compare to.
    Returns
    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.

    Parameters
    [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.

    Returns
    The layer flags.

    ◆ GetLinkedObject()

    FieldLayerLink GetLinkedObject ( const 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

    Parameters
    [in]docThe document the FieldLayer belongs to.
    Returns
    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

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

    ◆ Alloc()

    static FieldLayer* Alloc ( Int32  type)
    static

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

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

    ◆ Free()

    static void Free ( FieldLayer *&  layer)
    static

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

    Parameters
    [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.

    Returns
    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.

    Returns
    OK on success.

    ◆ RemoveMask()

    void RemoveMask ( Bool  deleteLayers = true)

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

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

    ◆ GetAccessedObjectsForSampling()

    maxon::Result<Bool> GetAccessedObjectsForSampling ( const BaseList2D caller,
    AccessedObjectsCallback access 
    ) const