Open3D (C++ API)  0.18.0+80ae047
Public Types | Public Member Functions
open3d::core::SizeVector Class Reference

#include <SizeVector.h>

Inheritance diagram for open3d::core::SizeVector:
open3d::core::SmallVector< int64_t, 4 > open3d::core::SmallVectorImpl< T > open3d::core::SmallVectorStorage< T, N > open3d::core::SmallVectorTemplateBase< T, bool > open3d::core::SmallVectorTemplateCommon< T, typename > open3d::core::SmallVectorBase< SmallVectorSizeType< T > >

Public Types

using super_t = SmallVector< int64_t, 4 >
 
- Public Types inherited from open3d::core::SmallVectorImpl< T >
using iterator = typename SuperClass::iterator
 
using const_iterator = typename SuperClass::const_iterator
 
using reference = typename SuperClass::reference
 
using size_type = typename SuperClass::size_type
 
- Public Types inherited from open3d::core::SmallVectorTemplateCommon< T, typename >
using size_type = size_t
 
using difference_type = ptrdiff_t
 
using value_type = T
 
using iterator = T *
 
using const_iterator = const T *
 
using const_reverse_iterator = std::reverse_iterator< const_iterator >
 
using reverse_iterator = std::reverse_iterator< iterator >
 
using reference = T &
 
using const_reference = const T &
 
using pointer = T *
 
using const_pointer = const T *
 

Public Member Functions

 SizeVector ()
 
 SizeVector (const std::initializer_list< int64_t > &dim_sizes)
 
 SizeVector (const std::vector< int64_t > &dim_sizes)
 
 SizeVector (const SizeVector &other)
 
 SizeVector (int64_t n, int64_t initial_value=0)
 
template<class InputIterator >
 SizeVector (InputIterator first, InputIterator last)
 
SizeVectoroperator= (const SizeVector &v)
 
SizeVectoroperator= (SizeVector &&v)
 
int64_t NumElements () const
 
int64_t GetLength () const
 
std::string ToString () const
 
void AssertCompatible (const DynamicSizeVector &dsv, const std::string msg="") const
 
bool IsCompatible (const DynamicSizeVector &dsv) const
 
 operator std::vector< int64_t > () const
 
void shrink_to_fit ()
 
- Public Member Functions inherited from open3d::core::SmallVector< int64_t, 4 >
 SmallVector ()
 
 SmallVector (size_t Size, const int64_t &Value=int64_t())
 
 SmallVector (ItTy S, ItTy E)
 
 SmallVector (const iterator_range< RangeTy > &R)
 
 SmallVector (std::initializer_list< int64_t > IL)
 
 SmallVector (const SmallVector &RHS)
 
 SmallVector (SmallVector &&RHS)
 
 SmallVector (SmallVectorImpl< int64_t > &&RHS)
 
 ~SmallVector ()
 
SmallVectoroperator= (const SmallVector &RHS)
 
SmallVectoroperator= (SmallVector &&RHS)
 
SmallVectoroperator= (SmallVectorImpl< int64_t > &&RHS)
 
SmallVectoroperator= (std::initializer_list< int64_t > IL)
 
- Public Member Functions inherited from open3d::core::SmallVectorImpl< T >
 SmallVectorImpl (const SmallVectorImpl &)=delete
 
 ~SmallVectorImpl ()
 
void clear ()
 
void resize (size_type N)
 
void resize_for_overwrite (size_type N)
 Like resize, but T is POD, the new values won't be initialized. More...
 
void truncate (size_type N)
 Like resize, but requires that N is less than size(). More...
 
void resize (size_type N, ValueParamT NV)
 
void reserve (size_type N)
 
void pop_back_n (size_type NumItems)
 
LLVM_NODISCARDpop_back_val ()
 
void swap (SmallVectorImpl &RHS)
 
template<typename in_iter , typename = std::enable_if_t<std::is_convertible< typename std::iterator_traits<in_iter>::iterator_category, std::input_iterator_tag>::value>>
void append (in_iter in_start, in_iter in_end)
 Add the specified range to the end of the SmallVector. More...
 
void append (size_type NumInputs, ValueParamT Elt)
 Append NumInputs copies of Elt to the end. More...
 
void append (std::initializer_list< T > IL)
 
void append (const SmallVectorImpl &RHS)
 
void assign (size_type NumElts, ValueParamT Elt)
 
template<typename in_iter , typename = std::enable_if_t<std::is_convertible< typename std::iterator_traits<in_iter>::iterator_category, std::input_iterator_tag>::value>>
void assign (in_iter in_start, in_iter in_end)
 
void assign (std::initializer_list< T > IL)
 
void assign (const SmallVectorImpl &RHS)
 
iterator erase (const_iterator CI)
 
iterator erase (const_iterator CS, const_iterator CE)
 
iterator insert (iterator I, T &&Elt)
 
iterator insert (iterator I, const T &Elt)
 
iterator insert (iterator I, size_type NumToInsert, ValueParamT Elt)
 
template<typename ItTy , typename = std::enable_if_t<std::is_convertible< typename std::iterator_traits<ItTy>::iterator_category, std::input_iterator_tag>::value>>
iterator insert (iterator I, ItTy From, ItTy To)
 
void insert (iterator I, std::initializer_list< T > IL)
 
template<typename... ArgTypes>
reference emplace_back (ArgTypes &&... Args)
 
SmallVectorImploperator= (const SmallVectorImpl &RHS)
 
SmallVectorImploperator= (SmallVectorImpl &&RHS)
 
bool operator== (const SmallVectorImpl &RHS) const
 
bool operator!= (const SmallVectorImpl &RHS) const
 
bool operator< (const SmallVectorImpl &RHS) const
 
bool operator> (const SmallVectorImpl &RHS) const
 
bool operator<= (const SmallVectorImpl &RHS) const
 
bool operator>= (const SmallVectorImpl &RHS) const
 
- Public Member Functions inherited from open3d::core::SmallVectorTemplateBase< T, bool >
void push_back (const T &Elt)
 
void push_back (T &&Elt)
 
void pop_back ()
 
- Public Member Functions inherited from open3d::core::SmallVectorTemplateCommon< T, typename >
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
size_type size_in_bytes () const
 
size_type max_size () const
 
size_t capacity_in_bytes () const
 
pointer data ()
 Return a pointer to the vector's buffer, even if empty(). More...
 
const_pointer data () const
 Return a pointer to the vector's buffer, even if empty(). More...
 
reference operator[] (size_type idx)
 
const_reference operator[] (size_type idx) const
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
- Public Member Functions inherited from open3d::core::SmallVectorBase< SmallVectorSizeType< T > >
size_t size () const
 
size_t capacity () const
 
LLVM_NODISCARD bool empty () const
 

Additional Inherited Members

- Protected Types inherited from open3d::core::SmallVectorImpl< T >
using ValueParamT = typename SuperClass::ValueParamT
 
- Protected Types inherited from open3d::core::SmallVectorTemplateBase< T, bool >
using ValueParamT = const T &
 
- Protected Member Functions inherited from open3d::core::SmallVectorImpl< T >
 SmallVectorImpl (unsigned N)
 
void assignRemote (SmallVectorImpl &&RHS)
 
- Protected Member Functions inherited from open3d::core::SmallVectorTemplateBase< T, bool >
 SmallVectorTemplateBase (size_t Size)
 
void grow (size_t MinSize=0)
 
T * mallocForGrow (size_t MinSize, size_t &NewCapacity)
 
void moveElementsForGrow (T *NewElts)
 
void takeAllocationForGrow (T *NewElts, size_t NewCapacity)
 Transfer ownership of the allocation, finishing up grow(). More...
 
const T * reserveForParamAndGetAddress (const T &Elt, size_t N=1)
 
T * reserveForParamAndGetAddress (T &Elt, size_t N=1)
 
void growAndAssign (size_t NumElts, const T &Elt)
 
template<typename... ArgTypes>
T & growAndEmplaceBack (ArgTypes &&... Args)
 
- Protected Member Functions inherited from open3d::core::SmallVectorTemplateCommon< T, typename >
 SmallVectorTemplateCommon (size_t Size)
 
void grow_pod (size_t MinSize, size_t TSize)
 
bool isSmall () const
 
void resetToSmall ()
 Put this vector in a state of being small. More...
 
bool isReferenceToRange (const void *V, const void *First, const void *Last) const
 Return true if V is an internal reference to the given range. More...
 
bool isReferenceToStorage (const void *V) const
 Return true if V is an internal reference to this vector. More...
 
bool isRangeInStorage (const void *First, const void *Last) const
 
bool isSafeToReferenceAfterResize (const void *Elt, size_t NewSize)
 
void assertSafeToReferenceAfterResize (const void *Elt, size_t NewSize)
 Check whether Elt will be invalidated by resizing the vector to NewSize. More...
 
void assertSafeToAdd (const void *Elt, size_t N=1)
 
void assertSafeToReferenceAfterClear (const T *From, const T *To)
 Check whether any part of the range will be invalidated by clearing. More...
 
template<class ItTy , std::enable_if_t< !std::is_same< std::remove_const_t< ItTy >, T * >::value, bool > = false>
void assertSafeToReferenceAfterClear (ItTy, ItTy)
 
void assertSafeToAddRange (const T *From, const T *To)
 Check whether any part of the range will be invalidated by growing. More...
 
template<class ItTy , std::enable_if_t< !std::is_same< std::remove_const_t< ItTy >, T * >::value, bool > = false>
void assertSafeToAddRange (ItTy, ItTy)
 
- Protected Member Functions inherited from open3d::core::SmallVectorBase< SmallVectorSizeType< T > >
 SmallVectorBase ()=delete
 
 SmallVectorBase (void *FirstEl, size_t TotalCapacity)
 
void * mallocForGrow (size_t MinSize, size_t TSize, size_t &NewCapacity)
 
void grow_pod (void *FirstEl, size_t MinSize, size_t TSize)
 
void set_size (size_t N)
 
- Static Protected Member Functions inherited from open3d::core::SmallVectorTemplateBase< T, bool >
static void destroy_range (T *S, T *E)
 
template<typename It1 , typename It2 >
static void uninitialized_move (It1 I, It1 E, It2 Dest)
 
template<typename It1 , typename It2 >
static void uninitialized_copy (It1 I, It1 E, It2 Dest)
 
static T && forward_value_param (T &&V)
 
static const T & forward_value_param (const T &V)
 
- Static Protected Member Functions inherited from open3d::core::SmallVectorTemplateCommon< T, typename >
template<class U >
static const T * reserveForParamAndGetAddressImpl (U *This, const T &Elt, size_t N)
 
- Static Protected Member Functions inherited from open3d::core::SmallVectorBase< SmallVectorSizeType< T > >
static constexpr size_t SizeTypeMax ()
 The maximum value of the Size_T used. More...
 
- Protected Attributes inherited from open3d::core::SmallVectorBase< SmallVectorSizeType< T > >
void * BeginX
 
SmallVectorSizeType< T > Size
 
SmallVectorSizeType< T > Capacity
 
- Static Protected Attributes inherited from open3d::core::SmallVectorTemplateBase< T, bool >
static constexpr bool TakesParamByValue = false
 

Detailed Description

SizeVector is a SmallVector of int64_t, typically used in Tensor shape and strides. Dimensions up to size 4 are stored on the stack, and larger vectors are stored on the heap automatically. A signed int64_t type is chosen to allow negative strides.

Member Typedef Documentation

◆ super_t

Constructor & Destructor Documentation

◆ SizeVector() [1/6]

open3d::core::SizeVector::SizeVector ( )
inline

◆ SizeVector() [2/6]

open3d::core::SizeVector::SizeVector ( const std::initializer_list< int64_t > &  dim_sizes)

◆ SizeVector() [3/6]

open3d::core::SizeVector::SizeVector ( const std::vector< int64_t > &  dim_sizes)

◆ SizeVector() [4/6]

open3d::core::SizeVector::SizeVector ( const SizeVector other)

◆ SizeVector() [5/6]

open3d::core::SizeVector::SizeVector ( int64_t  n,
int64_t  initial_value = 0 
)
explicit

◆ SizeVector() [6/6]

template<class InputIterator >
open3d::core::SizeVector::SizeVector ( InputIterator  first,
InputIterator  last 
)
inline

Member Function Documentation

◆ AssertCompatible()

void open3d::core::SizeVector::AssertCompatible ( const DynamicSizeVector dsv,
const std::string  msg = "" 
) const

◆ GetLength()

int64_t open3d::core::SizeVector::GetLength ( ) const

◆ IsCompatible()

bool open3d::core::SizeVector::IsCompatible ( const DynamicSizeVector dsv) const

◆ NumElements()

int64_t open3d::core::SizeVector::NumElements ( ) const

◆ operator std::vector< int64_t >()

open3d::core::SizeVector::operator std::vector< int64_t > ( ) const
inline

◆ operator=() [1/2]

SizeVector & open3d::core::SizeVector::operator= ( const SizeVector v)

◆ operator=() [2/2]

SizeVector & open3d::core::SizeVector::operator= ( SizeVector &&  v)

◆ shrink_to_fit()

void open3d::core::SizeVector::shrink_to_fit ( )
inline

◆ ToString()

std::string open3d::core::SizeVector::ToString ( ) const

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