Open Search
    AtomArray Class Reference

    #include <c4d_baselist.h>

    Detailed Description

    An array of C4DAtom objects.

    Note
    Has to be created with Alloc() and destroyed with Free(). Use AutoAlloc to automate the allocation and destruction based on scope.

    Private Member Functions

     AtomArray ()
     
     ~AtomArray ()
     

    Alloc/Free

    static AtomArrayAlloc ()
     
    static void Free (AtomArray *&obj)
     

    Miscellaneous

    Int32 GetCount () const
     
    Int32 GetCount (Int32 type, Int32 instance) const
     
    C4DAtomGetIndex (Int32 idx) const
     
    Bool Append (C4DAtom *obj)
     
    void Flush ()
     
    Bool Remove (C4DAtom *obj)
     
    C4DAtomGetPreferred () const
     
    void SetPreferred (C4DAtom *t_preferred)
     
    void FilterObject (Int32 type, Int32 instance, Bool generators=false)
     
    void FilterObjectChildren ()
     
    Bool Append (const AtomArray *src)
     
    Int32 Find (C4DAtom *obj)
     
    Bool Compare (const AtomArray *cmp) const
     

    Copy

    Bool CopyTo (AtomArray *dest) const
     
    Bool CopyToFilter (AtomArray *dest, Int32 type, Int32 instance, Int32 generators=1) const
     

    User ID and Data

    Int32 GetUserID () const
     
    void SetUserID (Int32 t_userid)
     
    void * GetUserData () const
     
    void SetUserData (void *t_userdata)
     

    Constructor & Destructor Documentation

    ◆ AtomArray()

    AtomArray ( )
    private

    ◆ ~AtomArray()

    ~AtomArray ( )
    private

    Member Function Documentation

    ◆ Alloc()

    static AtomArray* Alloc ( void  )
    static

    Allocates an atom array. Destroy the allocated atom array with Free(). Use AutoAlloc to automate the allocation and destruction based on scope.

    Returns
    The allocated atom array, or nullptr if the allocation failed.

    ◆ Free()

    static void Free ( AtomArray *&  obj)
    static

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

    Parameters
    [in,out]objThe atom array to destruct. If the pointer is nullptr nothing happens. The pointer is assigned nullptr afterwards.

    ◆ GetCount() [1/2]

    Int32 GetCount ( void  ) const

    Gets the number of atoms in the array.

    Returns
    The atom count.

    ◆ GetCount() [2/2]

    Int32 GetCount ( Int32  type,
    Int32  instance 
    ) const

    Checks how many elements in the array match type and/or instance.

    Parameters
    [in]typeChecked against C4DAtom::GetType(). Pass NOTOK to ignore this test.
    [in]instanceChecked against C4DAtom::IsInstanceOf(). Pass NOTOK to ignore this test.
    Returns
    The number of matches.

    ◆ GetIndex()

    C4DAtom* GetIndex ( Int32  idx) const

    Gets the atom at the position idx in the array.

    Parameters
    [in]idxThe index. Must be between 0 and GetCount().
    Returns
    The idx-th atom in the array. The atom array owns the pointed object.

    ◆ Append() [1/2]

    Bool Append ( C4DAtom obj)

    Appends obj to the array.

    Parameters
    [in]objThe atom to append to the array. Only the pointer is stored; the actual ownership remains with the caller.
    Returns
    true if the atom was appended, otherwise false.

    ◆ Flush()

    void Flush ( void  )

    Clears the atom array.

    ◆ Remove()

    Bool Remove ( C4DAtom obj)

    Removes obj from the array.

    Parameters
    [in]objThe atom to remove from the array. Only the pointer is removed; the object is not freed.
    Returns
    true if successful, otherwise false.

    ◆ CopyTo()

    Bool CopyTo ( AtomArray dest) const

    Copies all atoms in *this to *dest.

    Parameters
    [out]destThe destination array. The caller owns the pointed object.
    Returns
    true if the atom array was copied, otherwise false.

    ◆ CopyToFilter()

    Bool CopyToFilter ( AtomArray dest,
    Int32  type,
    Int32  instance,
    Int32  generators = 1 
    ) const

    Copies all atoms in *this to *dest filtered by type and/or instance.

    Parameters
    [out]destThe destination array. The caller owns the pointed object.
    [in]typeChecked against C4DAtom::GetType(). Pass NOTOK to ignore this test.
    [in]instanceChecked against C4DAtom::IsInstanceOf(). Pass NOTOK to ignore this test.
    [in]generatorsUsed to filter generators.
    Returns
    true if the atom array was copied, otherwise false.

    ◆ GetUserID()

    Int32 GetUserID ( void  ) const

    Gets the user ID of the array.

    Returns
    This array's user ID.

    ◆ SetUserID()

    void SetUserID ( Int32  t_userid)

    Sets the user ID of the array to t_userid.

    Parameters
    [in]t_useridThe new user ID.

    ◆ GetUserData()

    void* GetUserData ( ) const

    Gets the user data pointer stored with the array.

    Returns
    The user data pointer. Not managed by the atom array.

    ◆ SetUserData()

    void SetUserData ( void *  t_userdata)

    Store a user data pointer with the array.

    Parameters
    [in]t_userdataThe new user data pointer. Not manager by the atom array.

    ◆ GetPreferred()

    C4DAtom* GetPreferred ( ) const

    The preferred object is the one to use for operations that require a single object.
    For example, if the user drags many objects to a link field this is used.

    Note
    This is not always set. In that case for example use the first object.
    Returns
    The preferred object to use for single object actions. The array owns the pointed object..

    ◆ SetPreferred()

    void SetPreferred ( C4DAtom t_preferred)

    Sets the preferred object.

    See also
    GetPreferred()
    Parameters
    [in]t_preferredThe new preferred object. Must already be in the array.

    ◆ FilterObject()

    void FilterObject ( Int32  type,
    Int32  instance,
    Bool  generators = false 
    )

    Removes objects that do not match the filter given by type and instance.

    Parameters
    [in]typeChecked against C4DAtom::GetType(). Pass NOTOK to ignore this test.
    [in]instanceChecked against C4DAtom::IsInstanceOf(). Pass NOTOK to ignore this test.
    [in]generatorsUsed to filter generators.

    ◆ FilterObjectChildren()

    void FilterObjectChildren ( )

    Removes all objects that has a parent (or ancestor) in the array.

    ◆ Append() [2/2]

    Bool Append ( const AtomArray src)

    Appends all objects in src to the array.

    Parameters
    [in]srcThe source array to append. The caller owns the pointed object.
    Returns
    true if successful, otherwise false.

    ◆ Find()

    Int32 Find ( C4DAtom obj)

    Finds the index of obj in the array.

    Parameters
    [in]objThe atom to search for.
    Returns
    The index, or NOTOK if not found.

    ◆ Compare()

    Bool Compare ( const AtomArray cmp) const

    Compares the array with cmp.

    Parameters
    [in]cmpThe atom array to compare with. The caller owns the pointed object.
    Returns
    true if both arrays are identical, otherwise false.