BaseLinkArray Class Reference

#include <c4d_baselinkarray.h>

Inheritance diagram for BaseLinkArray:

详细描述

A helper class to handle BaseLink instances.

Constructor/Destructor

  ~BaseLinkArray ()
void  FlushAll ()

Get link/atom/baselist

Int32   Find ( C4DAtomGoal *bl, BaseDocument *doc) const
BaseLink GetIndexLink ( Int32 i) const
C4DAtomGoal GetIndex ( Int32 i, BaseDocument *doc) const
BaseList2D GetIndexBl ( Int32 i, BaseDocument *doc, Int32 instanceof=110050) const

Append/Remove

Bool   Append ( C4DAtomGoal *bl)
Bool   移除 ( Int32 n)

Convert to/from AtomArray

void  GetAtomArray ( BaseDocument *doc, AtomArray &res) const
void  FromAtomArray (const AtomArray &ar)

杂项

Int32   GetRealCount ( BaseDocument *doc) const

Additional Inherited Members

-  Public Types inherited from BaseArray< BaseLink * >
using  AllocatorType = DefaultAllocator
using  Iterator = BaseIterator < BaseArray , false >
using  ConstIterator = BaseIterator < const BaseArray , false >
using  Super = ArrayBase < BaseArray < BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseLink *, BaseArrayData< BaseLink *, DefaultAllocator , STD_IS_REPLACEMENT (empty, DefaultAllocator )>, DefaultCompare >
-  Public Types inherited from Collection< BaseArray< BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseLink *, BaseArrayData< BaseLink *, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
using  Super = BaseCollection < BaseArray < BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseArrayData< BaseLink *, DefaultAllocator , STD_IS_REPLACEMENT (empty, DefaultAllocator )> >
using  ValueType = BaseLink *
-  Public Types inherited from BaseCollection< BaseArray< BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseArrayData< BaseLink *, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
using  IsCollection = std::true_type
-  Public Member Functions inherited from BaseArray< BaseLink * >
MAXON_ATTRIBUTE_FORCE_INLINE   BaseArray ()
MAXON_ATTRIBUTE_FORCE_INLINE   BaseArray (const DefaultAllocator &a)
MAXON_ATTRIBUTE_FORCE_INLINE   BaseArray ( DefaultAllocator &&a)
MAXON_ATTRIBUTE_FORCE_INLINE   BaseArray ( BaseArray &&src)
MAXON_ATTRIBUTE_FORCE_INLINE   ~BaseArray ()
  MAXON_OPERATOR_MOVE_ASSIGNMENT ( BaseArray )
const Block < const BaseLink * > &  ToBlock () const
const Block < BaseLink * > &  ToBlock ()
  operator const Block< const BaseLink * > & () const
  operator const Block< BaseLink * > & ()
  operator StridedBlock< const BaseLink * > () const
  operator StridedBlock< BaseLink * > ()
  operator Block< const Byte > () const
  operator Block< Byte > ()
void  重置 ()
void  Flush ()
MAXON_ATTRIBUTE_FORCE_INLINE Int   GetCount () const
MAXON_ATTRIBUTE_FORCE_INLINE Int   GetCapacityCount () const
const MAXON_ATTRIBUTE_FORCE_INLINE BaseLink * &  operator[] ( Int idx) const
MAXON_ATTRIBUTE_FORCE_INLINE BaseLink * &  operator[] ( Int idx)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < BaseLink * >  Append ()
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < BaseLink * >  Append (const BaseLink * &x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < BaseLink * >  Append ( BaseLink * &&x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr < BaseLink * >  Append (const Block < const BaseLink * > &values)
ResultPtr < BaseLink * >  Append (const MoveBlock < BaseLink * > &values)
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr < BaseLink * >  Append (const std::initializer_list< BaseLink * > &values)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < BaseLink * >  Insert ( Int position)
MAXON_ATTRIBUTE_FORCE_INLINE ResultMemT < Iterator Insert ( Iterator position)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < BaseLink * >  Insert ( Int position, const BaseLink * &x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultMemT < Iterator Insert ( Iterator position, const BaseLink * &x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < BaseLink * >  Insert ( Int position, BaseLink * &&x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultMemT < Iterator Insert ( Iterator position, BaseLink * &&x)
ResultPtr < BaseLink * >  Insert ( Int position, const Block < const BaseLink * > &values)
ResultPtr < BaseLink * >  Insert ( Int position, const std::initializer_list< BaseLink * > &values)
ResultPtr < BaseLink * >  Insert ( Int position, const MoveBlock < BaseLink * > &values)
ResultMemT < Iterator Insert ( Iterator position, const Block < const BaseLink * > &values)
ResultMemT < Iterator Insert ( Iterator position, const std::initializer_list< BaseLink * > &values)
ResultPtr < BaseLink * >  Erase ( Int position, Int eraseCnt=1)
Iterator   Erase ( Iterator position, Int eraseCnt=1)
ResultMem   SwapErase ( Int position, Int eraseCnt=1)
Iterator   SwapErase ( Iterator position, Int eraseCnt=1)
MAXON_ATTRIBUTE_FORCE_INLINE Int   GetBlock ( Int position, Block < const BaseLink *, STRIDED > &block) const
MAXON_ATTRIBUTE_FORCE_INLINE Int   GetBlock ( Int position, Block < BaseLink *, STRIDED > &block)
MAXON_ATTRIBUTE_FORCE_INLINE ConstIterator   GetBlock ( ConstIterator position, Block < const BaseLink *, STRIDED > &block) const
MAXON_ATTRIBUTE_FORCE_INLINE Iterator   GetBlock ( Iterator position, Block < BaseLink *, STRIDED > &block)
const MAXON_ATTRIBUTE_FORCE_INLINE BaseLink * *  GetFirst () const
MAXON_ATTRIBUTE_FORCE_INLINE BaseLink * *  GetFirst ()
const MAXON_ATTRIBUTE_FORCE_INLINE BaseLink * *  GetLast () const
MAXON_ATTRIBUTE_FORCE_INLINE BaseLink * *  GetLast ()
ResultMem   Resize ( Int newCnt, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::DEFAULT)
MAXON_ATTRIBUTE_FORCE_INLINE Bool   Pop ( BaseLink * *dst=nullptr)
MAXON_ATTRIBUTE_FORCE_INLINE Int   GetIndex (const BaseLink * &x) const
ResultMem   EnsureCapacity ( Int requestedCapacity, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
ResultMem   SetCapacityHint ( Int requestedCapacity, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
MAXON_ATTRIBUTE_FORCE_INLINE void  Swap ( Iterator a, Iterator b)
Int   GetMemorySize () const
MAXON_ATTRIBUTE_FORCE_INLINE ConstIterator   Begin () const
MAXON_ATTRIBUTE_FORCE_INLINE Iterator   Begin ()
MAXON_ATTRIBUTE_FORCE_INLINE ConstIterator   End () const
MAXON_ATTRIBUTE_FORCE_INLINE Iterator   End ()
ResultMem   MoveAndShrink ( BaseArray < BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > &dst, Int position, Int moveCnt)
MAXON_ATTRIBUTE_FORCE_INLINE Block < BaseLink * >  Disconnect ()
MAXON_ATTRIBUTE_FORCE_INLINE void  连接 (const Block < BaseLink * > &block, Int capacity=0)
MAXON_ATTRIBUTE_FORCE_INLINE DefaultAllocator GetAllocator ()
const MAXON_ATTRIBUTE_FORCE_INLINE DefaultAllocator GetAllocator () const
-  Public Member Functions inherited from ArrayBase< BaseArray< BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseLink *, BaseArrayData< BaseLink *, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)>, DefaultCompare >
MAXON_ATTRIBUTE_FORCE_INLINE   ArrayBase (ARGS &&... args)
ArrayImpl < BaseArray < BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > & >  ToArray ()
ArrayImpl < const BaseArray < BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > & >  ToArray () const
MAXON_ATTRIBUTE_FORCE_INLINE   operator ArrayImpl< BaseArray< BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > & > ()
MAXON_ATTRIBUTE_FORCE_INLINE   operator ArrayImpl< const BaseArray< BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > & > () const
-  Public Member Functions inherited from ArrayBase0< BaseArray< BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseLink *, BaseArrayData< BaseLink *, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)>, DefaultCompare >
MAXON_ATTRIBUTE_FORCE_INLINE   ArrayBase0 (ARGS &&... args)
Bool   IsValidIndex ( Int index) const
Result < void >  CheckValidIndex ( Int index) const
Int   FindIndex (typename ByValueParam < BaseLink * >:: type v, Int start) const
Int   FindLastIndex (typename ByValueParam < BaseLink * >:: type v) const
Int   FindLastIndex (typename ByValueParam < BaseLink * >:: type v, Int start) const
Bool   EraseFirst (typename ByValueParam < BaseLink * >:: type v)
Int   EraseAll (typename ByValueParam < BaseLink * >:: type v)
Result < void >  AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0 )
Result < void >  InsertAll ( Int index, COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
Result < void >  添加 (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
Result < void >  SubtractImpl (COLLECTION2 &&other, OverloadRank0 )
Bool   IsEqualImpl (const COLLECTION2 &other, COMPARE &&cmp, OverloadRank0 ) const
HashInt   GetHashCode () const
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < BaseArray < BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > >  切片 ( Int start)
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < const BaseArray < BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > >  切片 ( Int start) const
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < BaseArray < BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > >  切片 ( Int start, Int end)
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < const BaseArray < BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > >  切片 ( Int start, Int end) const
BlockIterator < BaseArray < BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseLink *, false, false >  GetBlocks ()
BlockIterator < BaseArray < BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseLink *, true, false >  GetBlocks () const
BlockIterator < BaseArray < BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseLink *, false, true >  GetStridedBlocks ()
BlockIterator < BaseArray < BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseLink *, true, true >  GetStridedBlocks () const
-  Public Member Functions inherited from Collection< BaseArray< BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseLink *, BaseArrayData< BaseLink *, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
MAXON_ATTRIBUTE_FORCE_INLINE   Collection (ARGS &&... args)
ResultOk < void >  VariadicAppend ()
Result < void >  VariadicAppend (V &&value, VALUES &&... rest)
  operator ValueReceiver< const BaseLink * & > ()
  operator ValueReceiver< BaseLink * && > ()
  operator ValueReceiver< typename std::conditional< STD_IS_REPLACEMENT (scalar, BaseLink *)
DummyParamType &  type ()
Result < Bool ForEach (FN &&callback) const
Result < Bool ForEach (FN &&callback)
H::Iterator  Find (typename ByValueParam < BaseLink * >:: type v)
H::ConstIterator  Find (typename ByValueParam < BaseLink * >:: type v) const
Int   FindIndex (typename ByValueParam < BaseLink * >:: type v) const
MAXON_ATTRIBUTE_FORCE_INLINE Bool   Contains (typename ByValueParam < BaseLink * >:: type v) const
-  Public Member Functions inherited from BaseCollection< BaseArray< BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseArrayData< BaseLink *, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
MAXON_ATTRIBUTE_FORCE_INLINE   BaseCollection (ARGS &&... args)
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type  operator== (const COLLECTION2 &other) const
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type  operator!= (const COLLECTION2 &other) const
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value &&! STD_IS_REPLACEMENT (same, typename std::decay< COMPARE >::type, EQUALITY ), Bool >::type  IsEqual (const COLLECTION2 &other, COMPARE &&cmp=COMPARE()) const
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  AppendAll (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  CopyFrom (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE )
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  Subtract (COLLECTION2 &&other)
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  Intersect (const COLLECTION2 &other)
Bool   Intersects (const COLLECTION2 &other) const
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  CopyFromImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, OverloadRank0 )
Result < void >  AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0 )
Result < void >  IntersectImpl (COLLECTION2 &&other, OverloadRank0 )
MAXON_ATTRIBUTE_FORCE_INLINE Bool   IsEmpty () const
MAXON_ATTRIBUTE_FORCE_INLINE Bool   IsPopulated () const
String   ToString (const FormatStatement *formatStatement=nullptr) const
MAXON_ATTRIBUTE_FORCE_INLINE Bool   ContainsAll (COLLECTION2 &&other) const
Bool   ContainsAllImpl (COLLECTION2 &&other, OverloadRank0 ) const
-  Static Public Member Functions inherited from Collection< BaseArray< BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseLink *, BaseArrayData< BaseLink *, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
static const BaseLink * &  GetMapKey (const BaseLink * &key)
-  Public Attributes inherited from Collection< BaseArray< BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseLink *, BaseArrayData< BaseLink *, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
  VALUETYPE
-  Static Public Attributes inherited from ArrayBase0< BaseArray< BaseLink *, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseLink *, BaseArrayData< BaseLink *, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)>, DefaultCompare >
static const COLLECTION_KIND   KIND

构造函数 & 析构函数文档编制

◆  ~BaseLinkArray()

~ BaseLinkArray ( )

Destructor.

成员函数文档编制

◆  FlushAll()

void FlushAll ( )

Frees all the base links in the array.

◆  Find()

Int32 Find ( C4DAtomGoal bl ,
BaseDocument doc  
) const

Searches for a specific bl in the array and returns its index.

参数
[in] bl The atom to find. The caller owns the pointed atom.
[in] doc The document for bl . The caller owns the pointed document.
返回
The BaseLink 's index in the array, or NOTOK if it was not found.

◆  GetIndexLink()

BaseLink * GetIndexLink ( Int32   i ) const

Gets the base link at index i .

参数
[in] i The index of the base link to get. 0 <= i < GetCount()
返回
The base link. The array owns the pointed base link.

◆  GetIndex()

C4DAtomGoal * GetIndex ( Int32   i ,
BaseDocument doc  
) const

Gets the atom at index i .

参数
[in] i The index of the atom to get. 0 <= i < GetCount()
[in] doc The document for the atom. The caller owns the pointed document.
返回
The atom. The array owns the pointed atom.

◆  GetIndexBl()

BaseList2D * GetIndexBl ( Int32   i ,
BaseDocument doc ,
Int32   instanceof = 110050  
) const

Gets the base list at index i .

参数
[in] i The index of the base list to get. 0 <= i < GetCount()
[in] doc The document for the base list. The caller owns the pointed document.
[in] instanceof Checked against C4DAtom::IsInstanceOf() . Pass NOTOK to ignore this test. Default to Tbaselist2d .
返回
The base list. The array owns the pointed base list.

◆  Append()

Bool Append ( C4DAtomGoal bl )

Appends an atom to the array.

参数
[in] bl The atom to append. The caller owns the pointed atom.
返回
true if the base link was successfully added to the array, otherwise false .

◆  Remove()

Bool 移除 ( Int32   n )

Removes and frees the base link at position n .

参数
[in] n The position of the base link to remove. 0 <= n < GetCount()
返回
true if the base link was successfully removed, otherwise false .

◆  GetAtomArray()

void GetAtomArray ( BaseDocument doc ,
AtomArray res  
) const

Gets an atom array with the base links of the array.

参数
[in] doc The document to get the base links. The caller owns the pointed document.
[in] res Is added the base links of the array.

◆  FromAtomArray()

void FromAtomArray ( const AtomArray ar )

Constructs the base link array from an atom array.

参数
[in] ar The source atom array.

◆  GetRealCount()

Int32 GetRealCount ( BaseDocument doc ) const

Gets the number of valid base links in the array.

参数
[in] doc The document to check the base links. The caller owns the pointed document.
返回
The number of valid base links in the array.