OCCT 8.0.1
OCCT documentation

Search guides and API reference

Enter at least two characters.

    Open CASCADE Technology Reference Manual 8.0.1
    NCollection_Array2< TheItemType > Class Template Reference

    #include <NCollection_Array2.hxx>

    Inheritance diagram for NCollection_Array2< TheItemType >:

    Public Types

    typedef NCollection_Allocator< TheItemType > allocator_type
     Memory allocation.
    using value_type = typename NCollection_Array1<TheItemType>::value_type
    using size_type = typename NCollection_Array1<TheItemType>::size_type
    using difference_type = typename NCollection_Array1<TheItemType>::difference_type
    using pointer = typename NCollection_Array1<TheItemType>::pointer
    using const_pointer = typename NCollection_Array1<TheItemType>::const_pointer
    using reference = typename NCollection_Array1<TheItemType>::reference
    using const_reference = typename NCollection_Array1<TheItemType>::const_reference
    using iterator = typename NCollection_Array1<TheItemType>::iterator
    using const_iterator = typename NCollection_Array1<TheItemType>::const_iterator
    Public Types inherited from NCollection_Array1< TheItemType >
    typedef NCollection_Allocator< TheItemType > allocator_type
     Memory allocation.
    using value_type = TheItemType
    using size_type = size_t
    using difference_type = size_t
    using pointer = TheItemType*
    using const_pointer = const TheItemType*
    using reference = TheItemType&
    using const_reference = const TheItemType&
    using iterator
    using const_iterator
    using Iterator = NCollection_Iterator<NCollection_Array1<TheItemType>>

    Public Member Functions

     NCollection_Array2 () noexcept
     Empty constructor; should be used with caution.
     NCollection_Array2 (const int theRowLower, const int theRowUpper, const int theColLower, const int theColUpper)
     Constructor.
     NCollection_Array2 (const NCollection_Array2 &theOther)
     Copy constructor.
     NCollection_Array2 (NCollection_Array2 &&theOther) noexcept
     Move constructor.
     NCollection_Array2 (const TheItemType &theBegin, const int theRowLower, const int theRowUpper, const int theColLower, const int theColUpper)
     C array-based constructor.
     NCollection_Array2 (const size_t theNbRows, const size_t theNbCols)
     Zero-based constructor: allocates theNbRows x theNbCols elements with lower bounds 0. Use At()/ChangeAt() or STL iterators for optimal access (no offset subtraction).
     NCollection_Array2 (pointer theBegin, const size_t theNbRows, const size_t theNbCols)
     Zero-based buffer-reuse constructor: wraps an existing flat row-major C array. The array does NOT own the buffer and will NOT free it on destruction. Use At()/ChangeAt() or STL iterators for optimal access (no offset subtraction).
    size_t Size () const noexcept
     Size (number of items).
    int Length () const noexcept
     Length (legacy int-returning API).
    int NbRows () const noexcept
     Returns number of rows.
    int NbColumns () const noexcept
     Returns number of columns.
    int RowLength () const noexcept
     Returns length of the row, i.e. number of columns.
    int ColLength () const noexcept
     Returns length of the column, i.e. number of rows.
    int LowerRow () const noexcept
     LowerRow.
    int UpperRow () const noexcept
     UpperRow.
    int LowerCol () const noexcept
     LowerCol.
    int UpperCol () const noexcept
     UpperCol.
    void UpdateLowerRow (const int theLowerRow) noexcept
     Updates lower row.
    void UpdateLowerCol (const int theLowerCol) noexcept
     Updates lower column.
    void UpdateUpperRow (const int theUpperRow) noexcept
     Updates upper row.
    void UpdateUpperCol (const int theUpperCol) noexcept
     Updates upper column.
    NCollection_Array2 & Assign (const NCollection_Array2 &theOther)
     Replaces this array by a copy of theOther array. Row and column bounds are copied from theOther.
    NCollection_Array2 & CopyValues (const NCollection_Array2 &theOther)
     Copies values from theOther array without changing this array bounds. This array should be pre-allocated and have the same dimensions as theOther; otherwise exception Standard_DimensionMismatch is thrown.
    NCollection_Array2 & Move (NCollection_Array2 &&theOther) noexcept
     Move assignment. This array will borrow all the data from theOther. The moved object will be left uninitialized and should not be used anymore.
    NCollection_Array2 & Move (NCollection_Array2 &theOther) noexcept
     Move assignment. This array will borrow all the data from theOther. The moved object will be left uninitialized and should not be used anymore.
    NCollection_Array2 & operator= (const NCollection_Array2 &theOther)
     Assignment operator.
    NCollection_Array2 & operator= (NCollection_Array2 &&theOther) noexcept
     Move assignment operator;.
    const_reference Value (const int theRow, const int theCol) const
     Constant value access.
    const_reference operator() (const int theRow, const int theCol) const
     operator() - alias to ChangeValue
    reference ChangeValue (const int theRow, const int theCol)
     Variable value access.
    reference operator() (const int theRow, const int theCol)
     operator() - alias to ChangeValue
    void SetValue (const int theRow, const int theCol, const TheItemType &theItem)
     SetValue.
    void SetValue (const int theRow, const int theCol, TheItemType &&theItem)
     SetValue.
    const_reference At (const size_t theRow, const size_t theCol) const
     0-based checked access independent of LowerRow()/LowerCol().
    reference ChangeAt (const size_t theRow, const size_t theCol)
     0-based checked mutable access independent of LowerRow()/LowerCol().
    template<typename... Args>
    reference EmplaceValue (const int theRow, const int theCol, Args &&... theArgs)
     Emplace value at the specified row and column, constructing it in-place.
    void Resize (int theRowLower, int theRowUpper, int theColLower, int theColUpper, bool theToCopyData)
     Resizes the array to specified bounds. When theToCopyData is false, the array is re-allocated without preserving data. When theToCopyData is true, copies elements in linear (row-major) order. No re-allocation is done if dimensions are unchanged.
    void ResizeWithTrim (int theRowLower, int theRowUpper, int theColLower, int theColUpper, bool theToCopyData)
     Resizes the array preserving 2D element layout. When theToCopyData is false, the array is re-allocated without preserving data. When theToCopyData is true, copies min(oldNbRows,newNbRows) x min(oldNbCols,newNbCols) elements from the top-left corner of the old array to the top-left corner of the new, preserving relative (row, col) offsets from lower bounds. Trimming or growing as needed. No re-allocation is done if dimensions are unchanged.
    void Resize (const size_t theNbRows, const size_t theNbCols, const bool theToCopyData)
     Zero-based Resize: resizes to theNbRows x theNbCols, keeping lower bounds unchanged. No re-allocation is done if dimensions are unchanged.
    void ResizeWithTrim (const size_t theNbRows, const size_t theNbCols, const bool theToCopyData)
     Zero-based ResizeWithTrim: resizes preserving 2D layout, keeping lower bounds unchanged. No re-allocation is done if dimensions are unchanged.
    Public Member Functions inherited from NCollection_Array1< TheItemType >
    const_iterator begin () const noexcept
    iterator begin () noexcept
    const_iterator cbegin () const noexcept
    iterator end () noexcept
    const_iterator end () const noexcept
    const_iterator cend () const noexcept
     NCollection_Array1 () noexcept
     NCollection_Array1 (const int theLower, const int theUpper)
     NCollection_Array1 (const_reference theBegin, const int theLower, const int theUpper, const bool theUseBuffer=true)
     NCollection_Array1 (const_reference theBegin, const size_t theSize, const bool theUseBuffer)
     Zero-based constructor from first element reference. When theUseBuffer is true, wraps contiguous storage starting at theBegin. Otherwise allocates own storage of theSize elements.
     NCollection_Array1 (const size_t theSize)
     Zero-based constructor: allocates theSize elements with lower bound 0. Use At()/ChangeAt() or STL iterators for optimal access (no offset subtraction).
     NCollection_Array1 (pointer theBegin, const size_t theSize)
     Zero-based buffer-reuse constructor: wraps an existing C array of theSize elements. The array does NOT own the buffer and will NOT free it on destruction. Use At()/ChangeAt() or STL iterators for optimal access (no offset subtraction).
     NCollection_Array1 (const NCollection_Array1 &theOther)
     Copy constructor.
     NCollection_Array1 (NCollection_Array1 &&theOther) noexcept
     Move constructor.
    virtual ~NCollection_Array1 ()
    void Init (const_reference theValue)
     Initialise the items with theValue.
    size_t Size () const noexcept
     Size query.
    int Length () const noexcept
     Length query (legacy int-returning API).
    bool IsEmpty () const noexcept
     Return TRUE if array has zero length.
    int Lower () const noexcept
     Lower bound.
    int Upper () const noexcept
     Upper bound.
    NCollection_Array1 & Assign (const NCollection_Array1 &theOther)
     Replaces this array by a copy of theOther array. Bounds and length are copied from theOther. When this array wraps an external (non-owned) buffer:
    NCollection_Array1 & CopyValues (const NCollection_Array1 &theOther)
     Copies values from theOther array without changing this array bounds. This array should be pre-allocated and have the same length as theOther; otherwise exception Standard_DimensionMismatch is thrown.
    NCollection_Array1 & Move (NCollection_Array1 &&theOther) noexcept
     Move assignment. This array will borrow all the data from theOther. The moved object will keep pointer to the memory buffer and range, but it will not free the buffer on destruction.
    NCollection_Array1 & Move (NCollection_Array1 &theOther) noexcept
    NCollection_Array1 & operator= (const NCollection_Array1 &theOther)
     Assignment operator;.
    NCollection_Array1 & operator= (NCollection_Array1 &&theOther) noexcept
     Move assignment operator;.
    const_reference First () const noexcept
    reference ChangeFirst () noexcept
    const_reference Last () const noexcept
    reference ChangeLast () noexcept
    const_reference Value (const int theIndex) const
     Constant value access.
    const_reference operator() (const int theIndex) const
     operator() - alias to Value
    const_reference operator[] (const int theIndex) const
     operator[] - alias to Value
    reference ChangeValue (const int theIndex)
     Variable value access.
    reference operator() (const int theIndex)
     operator() - alias to ChangeValue
    reference operator[] (const int theIndex)
     operator[] - alias to ChangeValue
    const_reference At (const size_t theIndex) const
     0-based checked access independent of Lower()/Upper().
    reference ChangeAt (const size_t theIndex)
     0-based checked mutable access independent of Lower()/Upper().
    void SetValue (const int theIndex, const value_type &theItem)
     Set value.
    void SetValue (const int theIndex, value_type &&theItem)
     Set value.
    template<typename... Args>
    reference EmplaceValue (const int theIndex, Args &&... theArgs)
     Emplace value at the specified index, constructing it in-place.
    void UpdateLowerBound (const int theLower) noexcept
     Changes the lowest bound. Do not move data.
    void UpdateUpperBound (const int theUpper) noexcept
     Changes the upper bound. Do not move data.
    void Resize (const int theLower, const int theUpper, const bool theToCopyData)
     Resizes the array to specified bounds. No re-allocation will be done if length of array does not change, but existing values will not be discarded if theToCopyData set to FALSE.
    void Resize (const size_t theSize, const bool theToCopyData)
     Resizes the array to theSize elements, keeping the lower bound unchanged.
    bool IsDeletable () const noexcept

    Static Public Member Functions

    static int BeginPosition (int theRowLower, int, int theColLower, int theColUpper) noexcept
    static int LastPosition (int theRowLower, int theRowUpper, int theColLower, int theColUpper) noexcept

    Protected Member Functions

    void resizeNoData (int theRowLower, int theRowUpper, int theColLower, int theColUpper)
     Resize without copying data.
    template<bool thePreserve2D>
    void resizeImpl (int theRowLower, int theRowUpper, int theColLower, int theColUpper)
     Internal resize with data copy.
    Protected Member Functions inherited from NCollection_Array1< TheItemType >
    void resizeImpl (const size_t theNewSize, const int theNewLower, const bool theToCopyData)
     Core resize implementation used by all public Resize() overloads.
    const_reference at (const size_t theIndex) const
    reference at (const size_t theIndex)
    template<typename U = TheItemType>
    std::enable_if< std::is_trivially_default_constructible< U >::value, void >::type construct (const size_t, const size_t)
    template<typename U = TheItemType>
    std::enable_if<!std::is_trivially_default_constructible< U >::value, void >::type construct (const size_t theFrom, const size_t theTo)
    template<typename U = TheItemType>
    std::enable_if< std::is_trivially_destructible< U >::value, void >::type destroy (pointer, const size_t, const size_t)
    template<typename U = TheItemType>
    std::enable_if<!std::is_trivially_destructible< U >::value, void >::type destroy (pointer theWhat, const size_t theFrom, const size_t theTo)
    void assign (const const_pointer theFrom, const size_t theSize, const int theLower)
    template<typename U = TheItemType>
    std::enable_if< std::is_trivially_copyable< U >::value, void >::type copyAssign (pointer theTarget, const_pointer theFrom, const size_t theCount)
    template<typename U = TheItemType>
    std::enable_if<!std::is_trivially_copyable< U >::value, void >::type copyAssign (pointer theTarget, const_pointer theFrom, const size_t theCount)
    void copyConstruct (const pointer theFrom, const size_t theCount)
    template<typename U = TheItemType>
    std::enable_if< std::is_trivially_copyable< U >::value, void >::type copyConstruct (pointer theTarget, const_pointer theFrom, const size_t theCount)
    template<typename U = TheItemType>
    std::enable_if<!std::is_trivially_copyable< U >::value, void >::type copyConstruct (pointer theTarget, const_pointer theFrom, const size_t theCount)

    Protected Attributes

    int myLowerRow
    size_t mySizeRow
    int myLowerCol
    size_t mySizeCol
    friend iterator
    friend const_iterator
    Protected Attributes inherited from NCollection_Array1< TheItemType >
    int myLowerBound
    size_t mySize
    pointer myPointer = nullptr
    bool myIsOwner = false
    allocator_type myAllocator

    Additional Inherited Members

    Data Fields inherited from NCollection_Array1< TheItemType >
    friend iterator
    friend const_iterator

    Detailed Description

    template<class TheItemType>
    class NCollection_Array2< TheItemType >

    Purpose: The class Array2 represents bi-dimensional arrays of fixed size known at run time. The ranges of indices are user defined.

    Class allocates one 1D array storing full data (all Rows and Columns) and extra 1D array storing pointers to each Row.

    Warning: Programs clients of such class must be independent of the range of the first element. Then, a C++ for loop must be written like this

    for (i = A.LowerRow(); i <= A.UpperRow(); i++) for (j = A.LowerCol(); j <= A.UpperCol(); j++)

    Zero-based (size_t) construction mode: NCollection_Array2(size_t theNbRows, size_t theNbCols) creates a zero-based array (LowerRow()==0, LowerCol()==0). In this mode At()/ChangeAt() and STL iterators are the preferred access path – they address elements directly without any offset subtraction. Buffer-reuse variant NCollection_Array2(pointer, size_t, size_t) wraps an existing flat row-major buffer and does NOT own the memory.

    Member Typedef Documentation

    ◆ allocator_type

    template<class TheItemType>
    typedef NCollection_Allocator<TheItemType> NCollection_Array2< TheItemType >::allocator_type

    Memory allocation.

    ◆ const_iterator

    template<class TheItemType>
    using NCollection_Array2< TheItemType >::const_iterator = typename NCollection_Array1<TheItemType>::const_iterator

    ◆ const_pointer

    template<class TheItemType>
    using NCollection_Array2< TheItemType >::const_pointer = typename NCollection_Array1<TheItemType>::const_pointer

    ◆ const_reference

    template<class TheItemType>
    using NCollection_Array2< TheItemType >::const_reference = typename NCollection_Array1<TheItemType>::const_reference

    ◆ difference_type

    template<class TheItemType>
    using NCollection_Array2< TheItemType >::difference_type = typename NCollection_Array1<TheItemType>::difference_type

    ◆ iterator

    template<class TheItemType>
    using NCollection_Array2< TheItemType >::iterator = typename NCollection_Array1<TheItemType>::iterator

    ◆ pointer

    template<class TheItemType>
    using NCollection_Array2< TheItemType >::pointer = typename NCollection_Array1<TheItemType>::pointer

    ◆ reference

    template<class TheItemType>
    using NCollection_Array2< TheItemType >::reference = typename NCollection_Array1<TheItemType>::reference

    ◆ size_type

    template<class TheItemType>
    using NCollection_Array2< TheItemType >::size_type = typename NCollection_Array1<TheItemType>::size_type

    ◆ value_type

    template<class TheItemType>
    using NCollection_Array2< TheItemType >::value_type = typename NCollection_Array1<TheItemType>::value_type

    Constructor & Destructor Documentation

    ◆ NCollection_Array2() [1/7]

    template<class TheItemType>
    NCollection_Array2< TheItemType >::NCollection_Array2 ( )
    inlinenoexcept

    Empty constructor; should be used with caution.

    See also
    methods Resize() and Move().

    ◆ NCollection_Array2() [2/7]

    template<class TheItemType>
    NCollection_Array2< TheItemType >::NCollection_Array2 ( const int theRowLower,
    const int theRowUpper,
    const int theColLower,
    const int theColUpper )
    inline

    Constructor.

    ◆ NCollection_Array2() [3/7]

    template<class TheItemType>
    NCollection_Array2< TheItemType >::NCollection_Array2 ( const NCollection_Array2< TheItemType > & theOther)
    inline

    Copy constructor.

    ◆ NCollection_Array2() [4/7]

    template<class TheItemType>
    NCollection_Array2< TheItemType >::NCollection_Array2 ( NCollection_Array2< TheItemType > && theOther)
    inlinenoexcept

    Move constructor.

    ◆ NCollection_Array2() [5/7]

    template<class TheItemType>
    NCollection_Array2< TheItemType >::NCollection_Array2 ( const TheItemType & theBegin,
    const int theRowLower,
    const int theRowUpper,
    const int theColLower,
    const int theColUpper )
    inlineexplicit

    C array-based constructor.

    ◆ NCollection_Array2() [6/7]

    template<class TheItemType>
    NCollection_Array2< TheItemType >::NCollection_Array2 ( const size_t theNbRows,
    const size_t theNbCols )
    inlineexplicit

    Zero-based constructor: allocates theNbRows x theNbCols elements with lower bounds 0. Use At()/ChangeAt() or STL iterators for optimal access (no offset subtraction).

    ◆ NCollection_Array2() [7/7]

    template<class TheItemType>
    NCollection_Array2< TheItemType >::NCollection_Array2 ( pointer theBegin,
    const size_t theNbRows,
    const size_t theNbCols )
    inlineexplicit

    Zero-based buffer-reuse constructor: wraps an existing flat row-major C array. The array does NOT own the buffer and will NOT free it on destruction. Use At()/ChangeAt() or STL iterators for optimal access (no offset subtraction).

    Member Function Documentation

    ◆ Assign()

    template<class TheItemType>
    NCollection_Array2 & NCollection_Array2< TheItemType >::Assign ( const NCollection_Array2< TheItemType > & theOther)
    inline

    Replaces this array by a copy of theOther array. Row and column bounds are copied from theOther.

    ◆ At()

    template<class TheItemType>
    const_reference NCollection_Array2< TheItemType >::At ( const size_t theRow,
    const size_t theCol ) const
    inline

    0-based checked access independent of LowerRow()/LowerCol().

    Parameters
    [in]theRow0-based row index in [0, NbRows()-1]
    [in]theCol0-based column index in [0, NbColumns()-1]

    ◆ BeginPosition()

    template<class TheItemType>
    int NCollection_Array2< TheItemType >::BeginPosition ( int theRowLower,
    int ,
    int theColLower,
    int theColUpper )
    inlinestaticnoexcept

    ◆ ChangeAt()

    template<class TheItemType>
    reference NCollection_Array2< TheItemType >::ChangeAt ( const size_t theRow,
    const size_t theCol )
    inline

    0-based checked mutable access independent of LowerRow()/LowerCol().

    Parameters
    [in]theRow0-based row index in [0, NbRows()-1]
    [in]theCol0-based column index in [0, NbColumns()-1]

    ◆ ChangeValue()

    template<class TheItemType>
    reference NCollection_Array2< TheItemType >::ChangeValue ( const int theRow,
    const int theCol )
    inline

    Variable value access.

    ◆ ColLength()

    template<class TheItemType>
    int NCollection_Array2< TheItemType >::ColLength ( ) const
    inlinenoexcept

    Returns length of the column, i.e. number of rows.

    ◆ CopyValues()

    template<class TheItemType>
    NCollection_Array2 & NCollection_Array2< TheItemType >::CopyValues ( const NCollection_Array2< TheItemType > & theOther)
    inline

    Copies values from theOther array without changing this array bounds. This array should be pre-allocated and have the same dimensions as theOther; otherwise exception Standard_DimensionMismatch is thrown.

    ◆ EmplaceValue()

    template<class TheItemType>
    template<typename... Args>
    reference NCollection_Array2< TheItemType >::EmplaceValue ( const int theRow,
    const int theCol,
    Args &&... theArgs )
    inline

    Emplace value at the specified row and column, constructing it in-place.

    Parameters
    theRowrow index at which to emplace the value
    theColcolumn index at which to emplace the value
    theArgsarguments forwarded to TheItemType constructor
    Returns
    reference to the newly constructed item

    ◆ LastPosition()

    template<class TheItemType>
    int NCollection_Array2< TheItemType >::LastPosition ( int theRowLower,
    int theRowUpper,
    int theColLower,
    int theColUpper )
    inlinestaticnoexcept

    ◆ Length()

    template<class TheItemType>
    int NCollection_Array2< TheItemType >::Length ( ) const
    inlinenoexcept

    Length (legacy int-returning API).

    ◆ LowerCol()

    template<class TheItemType>
    int NCollection_Array2< TheItemType >::LowerCol ( ) const
    inlinenoexcept

    LowerCol.

    ◆ LowerRow()

    template<class TheItemType>
    int NCollection_Array2< TheItemType >::LowerRow ( ) const
    inlinenoexcept

    LowerRow.

    ◆ Move() [1/2]

    template<class TheItemType>
    NCollection_Array2 & NCollection_Array2< TheItemType >::Move ( NCollection_Array2< TheItemType > && theOther)
    inlinenoexcept

    Move assignment. This array will borrow all the data from theOther. The moved object will be left uninitialized and should not be used anymore.

    ◆ Move() [2/2]

    template<class TheItemType>
    NCollection_Array2 & NCollection_Array2< TheItemType >::Move ( NCollection_Array2< TheItemType > & theOther)
    inlinenoexcept

    Move assignment. This array will borrow all the data from theOther. The moved object will be left uninitialized and should not be used anymore.

    ◆ NbColumns()

    template<class TheItemType>
    int NCollection_Array2< TheItemType >::NbColumns ( ) const
    inlinenoexcept

    Returns number of columns.

    ◆ NbRows()

    template<class TheItemType>
    int NCollection_Array2< TheItemType >::NbRows ( ) const
    inlinenoexcept

    Returns number of rows.

    ◆ operator()() [1/2]

    template<class TheItemType>
    reference NCollection_Array2< TheItemType >::operator() ( const int theRow,
    const int theCol )
    inline

    operator() - alias to ChangeValue

    ◆ operator()() [2/2]

    template<class TheItemType>
    const_reference NCollection_Array2< TheItemType >::operator() ( const int theRow,
    const int theCol ) const
    inline

    operator() - alias to ChangeValue

    ◆ operator=() [1/2]

    template<class TheItemType>
    NCollection_Array2 & NCollection_Array2< TheItemType >::operator= ( const NCollection_Array2< TheItemType > & theOther)
    inline

    Assignment operator.

    ◆ operator=() [2/2]

    template<class TheItemType>
    NCollection_Array2 & NCollection_Array2< TheItemType >::operator= ( NCollection_Array2< TheItemType > && theOther)
    inlinenoexcept

    Move assignment operator;.

    See also
    Move()

    ◆ Resize() [1/2]

    template<class TheItemType>
    void NCollection_Array2< TheItemType >::Resize ( const size_t theNbRows,
    const size_t theNbCols,
    const bool theToCopyData )
    inline

    Zero-based Resize: resizes to theNbRows x theNbCols, keeping lower bounds unchanged. No re-allocation is done if dimensions are unchanged.

    Parameters
    theNbRowsnew number of rows
    theNbColsnew number of columns
    theToCopyDataflag to copy existing data into new array

    ◆ Resize() [2/2]

    template<class TheItemType>
    void NCollection_Array2< TheItemType >::Resize ( int theRowLower,
    int theRowUpper,
    int theColLower,
    int theColUpper,
    bool theToCopyData )
    inline

    Resizes the array to specified bounds. When theToCopyData is false, the array is re-allocated without preserving data. When theToCopyData is true, copies elements in linear (row-major) order. No re-allocation is done if dimensions are unchanged.

    Parameters
    theRowLowernew lower Row of array
    theRowUppernew upper Row of array
    theColLowernew lower Column of array
    theColUppernew upper Column of array
    theToCopyDataflag to copy existing data into new array

    ◆ resizeImpl()

    template<class TheItemType>
    template<bool thePreserve2D>
    void NCollection_Array2< TheItemType >::resizeImpl ( int theRowLower,
    int theRowUpper,
    int theColLower,
    int theColUpper )
    inlineprotected

    Internal resize with data copy.

    Template Parameters
    thePreserve2Dif true, copies the common sub-matrix preserving 2D element positions (row, col); if false, copies elements in linear order.

    ◆ resizeNoData()

    template<class TheItemType>
    void NCollection_Array2< TheItemType >::resizeNoData ( int theRowLower,
    int theRowUpper,
    int theColLower,
    int theColUpper )
    inlineprotected

    Resize without copying data.

    ◆ ResizeWithTrim() [1/2]

    template<class TheItemType>
    void NCollection_Array2< TheItemType >::ResizeWithTrim ( const size_t theNbRows,
    const size_t theNbCols,
    const bool theToCopyData )
    inline

    Zero-based ResizeWithTrim: resizes preserving 2D layout, keeping lower bounds unchanged. No re-allocation is done if dimensions are unchanged.

    Parameters
    theNbRowsnew number of rows
    theNbColsnew number of columns
    theToCopyDataflag to copy existing data into new array

    ◆ ResizeWithTrim() [2/2]

    template<class TheItemType>
    void NCollection_Array2< TheItemType >::ResizeWithTrim ( int theRowLower,
    int theRowUpper,
    int theColLower,
    int theColUpper,
    bool theToCopyData )
    inline

    Resizes the array preserving 2D element layout. When theToCopyData is false, the array is re-allocated without preserving data. When theToCopyData is true, copies min(oldNbRows,newNbRows) x min(oldNbCols,newNbCols) elements from the top-left corner of the old array to the top-left corner of the new, preserving relative (row, col) offsets from lower bounds. Trimming or growing as needed. No re-allocation is done if dimensions are unchanged.

    Parameters
    theRowLowernew lower Row of array
    theRowUppernew upper Row of array
    theColLowernew lower Column of array
    theColUppernew upper Column of array
    theToCopyDataflag to copy existing data into new array

    ◆ RowLength()

    template<class TheItemType>
    int NCollection_Array2< TheItemType >::RowLength ( ) const
    inlinenoexcept

    Returns length of the row, i.e. number of columns.

    ◆ SetValue() [1/2]

    template<class TheItemType>
    void NCollection_Array2< TheItemType >::SetValue ( const int theRow,
    const int theCol,
    const TheItemType & theItem )
    inline

    SetValue.

    ◆ SetValue() [2/2]

    template<class TheItemType>
    void NCollection_Array2< TheItemType >::SetValue ( const int theRow,
    const int theCol,
    TheItemType && theItem )
    inline

    SetValue.

    ◆ Size()

    template<class TheItemType>
    size_t NCollection_Array2< TheItemType >::Size ( ) const
    inlinenoexcept

    Size (number of items).

    ◆ UpdateLowerCol()

    template<class TheItemType>
    void NCollection_Array2< TheItemType >::UpdateLowerCol ( const int theLowerCol)
    inlinenoexcept

    Updates lower column.

    ◆ UpdateLowerRow()

    template<class TheItemType>
    void NCollection_Array2< TheItemType >::UpdateLowerRow ( const int theLowerRow)
    inlinenoexcept

    Updates lower row.

    ◆ UpdateUpperCol()

    template<class TheItemType>
    void NCollection_Array2< TheItemType >::UpdateUpperCol ( const int theUpperCol)
    inlinenoexcept

    Updates upper column.

    ◆ UpdateUpperRow()

    template<class TheItemType>
    void NCollection_Array2< TheItemType >::UpdateUpperRow ( const int theUpperRow)
    inlinenoexcept

    Updates upper row.

    ◆ UpperCol()

    template<class TheItemType>
    int NCollection_Array2< TheItemType >::UpperCol ( ) const
    inlinenoexcept

    UpperCol.

    ◆ UpperRow()

    template<class TheItemType>
    int NCollection_Array2< TheItemType >::UpperRow ( ) const
    inlinenoexcept

    UpperRow.

    ◆ Value()

    template<class TheItemType>
    const_reference NCollection_Array2< TheItemType >::Value ( const int theRow,
    const int theCol ) const
    inline

    Constant value access.

    Field Documentation

    ◆ const_iterator

    template<class TheItemType>
    friend NCollection_Array2< TheItemType >::const_iterator
    protected

    ◆ iterator

    template<class TheItemType>
    friend NCollection_Array2< TheItemType >::iterator
    protected

    ◆ myLowerCol

    template<class TheItemType>
    int NCollection_Array2< TheItemType >::myLowerCol
    protected

    ◆ myLowerRow

    template<class TheItemType>
    int NCollection_Array2< TheItemType >::myLowerRow
    protected

    ◆ mySizeCol

    template<class TheItemType>
    size_t NCollection_Array2< TheItemType >::mySizeCol
    protected

    ◆ mySizeRow

    template<class TheItemType>
    size_t NCollection_Array2< TheItemType >::mySizeRow
    protected

    The documentation for this class was generated from the following file: