1 #ifndef OPENPOSE_CORE_ARRAY_HPP
2 #define OPENPOSE_CORE_ARRAY_HPP
6 #include <opencv2/core/core.hpp>
30 explicit Array(
const int size);
38 explicit Array(
const std::vector<int>& sizes = {});
47 Array(
const int size,
const T value);
56 Array(
const std::vector<int>& sizes,
const T value);
65 Array(
const int size, T*
const dataPtr);
74 Array(
const std::vector<int>& sizes, T*
const dataPtr);
138 void reset(
const int size);
147 void reset(
const std::vector<int>& sizes = {});
156 void reset(
const int size,
const T value);
166 void reset(
const std::vector<int>& sizes,
const T value);
173 void setFrom(
const cv::Mat& cvMat);
180 void setTo(
const T value);
191 return (mVolume == 0);
210 int getSize(
const int index)
const;
247 size_t getVolume(
const int indexA,
const int indexB = -1)
const;
371 inline const T&
operator[](
const std::vector<int>& indexes)
const
383 inline T&
at(
const int index)
385 return commonAt(index);
395 inline const T&
at(
const int index)
const
397 return commonAt(index);
407 inline T&
at(
const std::vector<int>& indexes)
409 return at(getIndexAndCheck(indexes));
419 inline const T&
at(
const std::vector<int>& indexes)
const
421 return at(getIndexAndCheck(indexes));
439 std::vector<int> mSize;
441 std::shared_ptr<T> spData;
443 std::pair<bool, cv::Mat> mCvMatData;
452 int getIndex(
const std::vector<int>& indexes)
const;
461 int getIndexAndCheck(
const std::vector<int>& indexes)
const;
468 T& commonAt(
const int index)
const;
470 void resetAuxiliary(
const std::vector<int>& sizes, T*
const dataPtr =
nullptr);
477 #endif // OPENPOSE_CORE_ARRAY_HPP
const cv::Mat & getConstCvMat() const
std::array< T, N > array
Definition: cl2.hpp:594
T & operator[](const std::vector< int > &indexes)
Definition: array.hpp:359
T & at(const int index)
Definition: array.hpp:383
void setFrom(const cv::Mat &cvMat)
std::vector< int > getStride() const
Array< T > & operator=(const Array< T > &array)
size_t getNumberDimensions() const
Definition: array.hpp:223
const T & at(const std::vector< int > &indexes) const
Definition: array.hpp:419
void setTo(const T value)
const T & at(const int index) const
Definition: array.hpp:395
#define OVERLOAD_C_OUT(className)
Definition: macros.hpp:61
T * getPtr()
Definition: array.hpp:271
bool empty() const
Definition: array.hpp:189
size_t getVolume() const
Definition: array.hpp:233
T & operator[](const int index)
Definition: array.hpp:326
void reset(const int size)
const T & operator[](const std::vector< int > &indexes) const
Definition: array.hpp:371
const T * getConstPtr() const
Definition: array.hpp:280
const std::string toString() const
std::string printSize() const
const T & operator[](const int index) const
Definition: array.hpp:342
T & at(const std::vector< int > &indexes)
Definition: array.hpp:407
std::vector< int > getSize() const
Definition: array.hpp:199
T * getPseudoConstPtr() const
Definition: array.hpp:290
std::string string
Definition: cl2.hpp:574