Visual Servoing Platform version 3.7.0
Loading...
Searching...
No Matches
vpArray2D< Type > Class Template Reference

#include <vpArray2D.h>

Public Member Functions

 vpArray2D ()
 vpArray2D (const vpArray2D< Type > &A)
 vpArray2D (unsigned int r, unsigned int c)
 vpArray2D (unsigned int r, unsigned int c, Type val)
 vpArray2D (const std::vector< Type > &vec, unsigned int r=0, unsigned int c=0)
 vpArray2D (vpArray2D< Type > &&A) noexcept
VP_EXPLICIT vpArray2D (const std::initializer_list< Type > &list)
VP_EXPLICIT vpArray2D (unsigned int nrows, unsigned int ncols, const std::initializer_list< Type > &list)
VP_EXPLICIT vpArray2D (const std::initializer_list< std::initializer_list< Type > > &lists)
virtual ~vpArray2D ()

Static Public Member Functions

static vpArray2D< Type > view (const vpArray2D< Type > &A)
static vpArray2D< Type > view (Type *data, unsigned int numRows, unsigned int numCols)
static void view (vpArray2D< Type > &v, Type *data, unsigned int numRows, unsigned int numCols)

Public Attributes

Type * data

(Note that these are not member symbols.)

enum  vpGEMMmethod
template<>
bool operator== (const vpArray2D< double > &A) const
template<>
bool operator== (const vpArray2D< float > &A) const
void vpGEMM (const vpArray2D< double > &A, const vpArray2D< double > &B, const double &alpha, const vpArray2D< double > &C, const double &beta, vpArray2D< double > &D, const unsigned int &ops=0)

Inherited functionalities from vpArray2D

std::ostream & operator<< (std::ostream &s, const vpArray2D< Type > &A)
unsigned int getCols () const
Type getMaxValue () const
Type getMinValue () const
unsigned int getRows () const
unsigned int size () const
void resize (unsigned int nrows, unsigned int ncols, bool flagNullify=true, bool recopy_=true)
void reshape (unsigned int nrows, unsigned int ncols)
void insert (const vpArray2D< Type > &A, unsigned int r, unsigned int c)
bool operator== (const vpArray2D< Type > &A) const
bool operator!= (const vpArray2D< Type > &A) const
vpArray2D< Type > & operator= (Type x)
vpArray2D< Type > & operator= (const vpArray2D< Type > &A)
vpArray2D< Type > & operator= (vpArray2D< Type > &&other) noexcept
vpArray2D< Type > & operator= (const std::initializer_list< Type > &list)
vpArray2D< Type > & operator= (const std::initializer_list< std::initializer_list< Type > > &lists)
vpArray2D< Type > & operator= (const nlohmann::json &j)=delete
Type * operator[] (unsigned int i)
Type * operator[] (unsigned int i) const
vpArray2D< Type > hadamard (const vpArray2D< Type > &m) const
vpArray2D< Type > t () const

Inherited I/O from vpArray2D with Static Public Member Functions

static void insert (const vpArray2D< Type > &A, const vpArray2D< Type > &B, vpArray2D< Type > &C, unsigned int r, unsigned int c)
unsigned int rowNum
unsigned int colNum
Type ** rowPtrs
unsigned int dsize
bool isMemoryOwner
bool isRowPtrsOwner
vpArray2D< Type > insert (const vpArray2D< Type > &A, const vpArray2D< Type > &B, unsigned int r, unsigned int c)
static bool load (const std::string &filename, vpArray2D< Type > &A, bool binary=false, char *header=nullptr)
static bool loadYAML (const std::string &filename, vpArray2D< Type > &A, char *header=nullptr)
static bool save (const std::string &filename, const vpArray2D< Type > &A, bool binary=false, const char *header="")
static bool saveYAML (const std::string &filename, const vpArray2D< Type > &A, const char *header="")
static vpArray2D< Type > conv2 (const vpArray2D< Type > &M, const vpArray2D< Type > &kernel, const std::string &mode)
static void conv2 (const vpArray2D< Type > &M, const vpArray2D< Type > &kernel, vpArray2D< Type > &res, const std::string &mode)
static bool isFinite (const vpArray2D< double > &A)
template<class T>
void from_json (const nlohmann::json &j, vpArray2D< T > &array)
template<class T>
void to_json (nlohmann::json &j, const vpArray2D< T > &array)

Detailed Description

template<class Type>
class vpArray2D< Type >

Implementation of a generic 2D array used as base class for matrices and vectors.

This class implements a 2D array as a template class and all the basic functionalities common to matrices and vectors. More precisely:

The code below shows how to create a 2-by-3 array of doubles, set the element values and access them:

#include <visp3/code/vpArray2D.h
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
int main()
{
vpArray2D<float> a(2, 3);
a[0][0] = -1; a[0][1] = -2; a[0][2] = -3;
a[1][0] = 4; a[1][1] = 5.5; a[1][2] = 6;
std::cout << "a:" << std::endl;
for (unsigned int i = 0; i < a.getRows(); ++i) {
for (unsigned int j = 0; j < a.getCols(); ++j) {
std::cout << a[i][j] << " ";
}
std::cout << std::endl;
}
}

Once build, this previous code produces the following output:

a:
-1 -2 -3
4 5.5 6

If ViSP is build with c++11 enabled, you can do the same using:

#include <visp3/code/vpArray2D.h
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
int main()
{
vpArray2D<float> a{ {-1, -2, -3}, {4, 5.5, 6.0f} };
std::cout << "a:\n" << a << std::endl;
}

The array could also be initialized using operator=(const std::initializer_list< std::initializer_list< Type > > &)

#include <visp3/code/vpArray2D.h
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
int main()
{
vpArray2D<float> a;
a = { {-1, -2, -3}, {4, 5.5, 6.0f} };
}

You can also use reshape() function:

#include <visp3/code/vpArray2D.h
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
int main()
{
vpArray2D<float> a{ -1, -2, -3, 4, 5.5, 6.0f };
a.reshape(2, 3);
}
Examples
catchArray2D.cpp, catchJsonArrayConversion.cpp, catchRBT.cpp, catchRotation.cpp, testMatrixInitialization.cpp, testRealSense2_T265_undistort.cpp, testTranslationVector.cpp, testUndistortImage.cpp, tutorial-apriltag-detector-live-T265-realsense.cpp, tutorial-canny-hsv.cpp, and tutorial-hsv-range-tuner.cpp.

Definition at line 145 of file vpArray2D.h.

Constructor & Destructor Documentation

◆ vpArray2D() [1/9]

template<class Type>
vpArray2D< Type >::vpArray2D ( )
inline

◆ vpArray2D() [2/9]

template<class Type>
vpArray2D< Type >::vpArray2D ( const vpArray2D< Type > & A)
inline

Copy constructor of a 2D array.

Definition at line 160 of file vpArray2D.h.

References colNum, data, dsize, isMemoryOwner, isRowPtrsOwner, resize(), rowNum, rowPtrs, and vpArray2D().

◆ vpArray2D() [3/9]

template<class Type>
vpArray2D< Type >::vpArray2D ( unsigned int r,
unsigned int c )
inline

Constructor that initializes a 2D array with 0.

Parameters
r: Array number of rows.
c: Array number of columns.

Definition at line 178 of file vpArray2D.h.

References colNum, data, dsize, isMemoryOwner, isRowPtrsOwner, resize(), rowNum, rowPtrs, and vpArray2D().

◆ vpArray2D() [4/9]

template<class Type>
vpArray2D< Type >::vpArray2D ( unsigned int r,
unsigned int c,
Type val )
inline

Constructor that initialize a 2D array with val.

Parameters
r: Array number of rows.
c: Array number of columns.
val: Each element of the array is set to val.

Definition at line 196 of file vpArray2D.h.

References colNum, data, dsize, isMemoryOwner, isRowPtrsOwner, resize(), rowNum, rowPtrs, and vpArray2D().

◆ vpArray2D() [5/9]

template<class Type>
vpArray2D< Type >::vpArray2D ( const std::vector< Type > & vec,
unsigned int r = 0,
unsigned int c = 0 )
inline

Constructor that initialize a 2D array from a std::vector.

  • When c = 0, create a colum vector with dimension (data.size, 1)
  • When r = 0, create a row vector with dimension (1, data.size)
  • Otherwise create an array with dimension (r, c)
Parameters
r: Array number of rows.
c: Array number of columns.
vec: Data used to initialize the 2D array.

Definition at line 219 of file vpArray2D.h.

References colNum, data, vpException::dimensionError, dsize, isMemoryOwner, isRowPtrsOwner, resize(), rowNum, rowPtrs, and vpArray2D().

◆ vpArray2D() [6/9]

template<class Type>
vpArray2D< Type >::vpArray2D ( vpArray2D< Type > && A)
inlinenoexcept

Definition at line 261 of file vpArray2D.h.

References colNum, data, dsize, isMemoryOwner, isRowPtrsOwner, rowNum, rowPtrs, and vpArray2D().

◆ vpArray2D() [7/9]

template<class Type>
VP_EXPLICIT vpArray2D< Type >::vpArray2D ( const std::initializer_list< Type > & list)
inline

Definition at line 278 of file vpArray2D.h.

References data, resize(), and vpArray2D().

◆ vpArray2D() [8/9]

template<class Type>
VP_EXPLICIT vpArray2D< Type >::vpArray2D ( unsigned int nrows,
unsigned int ncols,
const std::initializer_list< Type > & list )
inline

Definition at line 284 of file vpArray2D.h.

References colNum, data, dsize, isMemoryOwner, isRowPtrsOwner, resize(), rowNum, and rowPtrs.

◆ vpArray2D() [9/9]

template<class Type>
VP_EXPLICIT vpArray2D< Type >::vpArray2D ( const std::initializer_list< std::initializer_list< Type > > & lists)
inline

Definition at line 297 of file vpArray2D.h.

References resize(), rowNum, rowPtrs, and vpArray2D().

◆ ~vpArray2D()

template<class Type>
virtual vpArray2D< Type >::~vpArray2D ( )
inlinevirtual

Destructor that deallocate memory.

Definition at line 396 of file vpArray2D.h.

References colNum, data, dsize, isMemoryOwner, isRowPtrsOwner, rowNum, and rowPtrs.

Member Function Documentation

◆ conv2() [1/2]

template<class Type>
vpArray2D< Type > vpArray2D< Type >::conv2 ( const vpArray2D< Type > & M,
const vpArray2D< Type > & kernel,
const std::string & mode )
static

Perform a 2D convolution similar to Matlab conv2 function: $ M \star kernel $.

Parameters
M: First matrix.
kernel: Second matrix.
mode: Convolution mode: "full" (default), "same", "valid".
Convolution mode: full, same, valid (image credit: Theano doc).
Note
This is a very basic implementation that does not use FFT.

Definition at line 1284 of file vpArray2D.h.

References conv2(), and vpArray2D().

Referenced by conv2(), and vpImageFilter::getSobelKernelY().

◆ conv2() [2/2]

template<class Type>
void vpArray2D< Type >::conv2 ( const vpArray2D< Type > & M,
const vpArray2D< Type > & kernel,
vpArray2D< Type > & res,
const std::string & mode )
static

Perform a 2D convolution similar to Matlab conv2 function: $ M \star kernel $.

Parameters
M: First array.
kernel: Second array.
res: Result.
mode: Convolution mode: "full" (default), "same", "valid".
Convolution mode: full, same, valid (image credit: Theano doc).
Note
This is a very basic implementation that does not use FFT.

Definition at line 1291 of file vpArray2D.h.

References data, getCols(), getRows(), insert(), resize(), and vpArray2D().

◆ getCols()

template<class Type>
unsigned int vpArray2D< Type >::getCols ( ) const
inline

Return the number of columns of the 2D array.

See also
getRows(), size()
Examples
catchArray2D.cpp, catchJsonArrayConversion.cpp, testMatrixInitialization.cpp, testTranslationVector.cpp, and tutorial-canny-hsv.cpp.

Definition at line 423 of file vpArray2D.h.

References colNum.

Referenced by vpMatrix::add2Matrices(), vpMatrix::add2Matrices(), vpMatrix::add2WeightedMatrices(), vpQuadProg::checkDimensions(), vpLinProg::colReduction(), vpMatrix::computeCovarianceMatrix(), vpMatrix::computeCovarianceMatrix(), vpMatrix::computeHLM(), vpMbTracker::computeJTR(), vpRBFeatureTracker::computeJTR(), vpServo::computeProjectionOperators(), vpMbTracker::computeVVSPoseEstimation(), conv2(), vpMatrix::conv2(), vpImageFilter::filter(), vpImageFilter::filter(), vpQuadProg::fromCanonicalCost(), vpRBTracker::getCovariance(), vpImageSimulator::getImage(), vpImageSimulator::getImage(), vpImageFilter::getScharrKernelX(), vpImageFilter::getSobelKernelX(), vpImageFilter::getSobelKernelY(), vpLuminanceDCT::vpMatrixZigZagIndex::getValues(), hadamard(), vpMatrix::hadamard(), vpMatrix::init(), vpSubMatrix::init(), vpCircleHoughTransform::initGradientFilters(), insert(), insert(), vpMatrix::insert(), vpHomography::inverse(), vpLuminanceDCT::inverse(), vpMatrix::inverseByCholeskyLapack(), vpMatrix::juxtaposeMatrices(), vpMatrix::kron(), vpMatrix::kron(), vpLuminancePCA::learn(), vpLuminancePCA::learn(), vpLuminancePCA::learn(), vpMeLine::leastSquare(), vpMeEllipse::leastSquareRobustCircle(), vpMeEllipse::leastSquareRobustEllipse(), vpRBVisualOdometryUtils::levenbergMarquardtKeypoints2D(), vpRBVisualOdometryUtils::levenbergMarquardtKeypoints3D(), vpLuminancePCA::load(), vpMatrix::mult2Matrices(), vpMatrix::mult2Matrices(), vpMatrix::mult2Matrices(), vpMatrix::mult2Matrices(), vpMatrix::mult2Matrices(), vpMatrix::multMatrixVector(), vpColVector::operator*(), vpForceTwistMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpRotationMatrix::operator*(), vpRowVector::operator*(), vpVelocityTwistMatrix::operator*(), vpMatrix::operator+=(), vpRowVector::operator-(), vpMatrix::operator-=(), operator<<, vpColVector::operator=(), vpHomography::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpRotationMatrix::operator=(), vpRowVector::operator=(), vpSubColVector::operator=(), vpSubMatrix::operator=(), vpSubMatrix::operator=(), vpSubRowVector::operator=(), vpSubRowVector::operator=(), vpSubRowVector::operator=(), vpMatrix::printSize(), vpPointMap::project(), vpIoTools::readConfigVar(), vpColVector::reshape(), vpRowVector::reshape(), vpLinProg::rowReduction(), save(), saveYAML(), vpLuminanceDCT::vpMatrixZigZagIndex::setValues(), vpQuadProg::solveByProjection(), vpLinProg::solveLP(), vpQuadProg::solveQP(), vpQuadProg::solveSVDorQR(), vpMatrix::stack(), vpMatrix::stack(), vpRowVector::stack(), vpMatrix::stackRows(), vpMatrix::sub2Matrices(), vpMatrix::sub2Matrices(), vpMatrix::svdEigen3(), VISP_NAMESPACE_NAME::visp2eigen(), VISP_NAMESPACE_NAME::visp2eigen(), vpColVector::vpColVector(), vpColVector::vpColVector(), vpRowVector::vpRowVector(), vpRowVector::vpRowVector(), and vpImageTools::warpImage().

◆ getMaxValue()

template<class Type>
Type vpArray2D< Type >::getMaxValue ( ) const

Return the array max value.

Definition at line 1237 of file vpArray2D.h.

References data, and dsize.

Referenced by vpRBSilhouetteCCDTracker::display().

◆ getMinValue()

template<class Type>
Type vpArray2D< Type >::getMinValue ( ) const

Return the array min value.

Definition at line 1220 of file vpArray2D.h.

References data, and dsize.

◆ getRows()

template<class Type>
unsigned int vpArray2D< Type >::getRows ( ) const
inline

Return the number of rows of the 2D array.

See also
getCols(), size()
Examples
catchArray2D.cpp, catchJsonArrayConversion.cpp, testMatrixInitialization.cpp, testTranslationVector.cpp, and tutorial-canny-hsv.cpp.

Definition at line 433 of file vpArray2D.h.

References rowNum.

Referenced by vpMatrix::add2Matrices(), vpMatrix::add2Matrices(), vpMatrix::add2WeightedMatrices(), vpLinProg::allClose(), vpQuadProg::checkDimensions(), vpLinProg::colReduction(), vpPointMap::compute3DErrorAndJacobian(), vpMatrix::computeCovarianceMatrix(), vpServo::computeError(), vpRBSilhouetteCCDTracker::computeErrorAndInteractionMatrix(), vpMatrix::computeHLM(), vpRBVisualOdometryUtils::computeIndicesObjectAndEnvironment(), vpMbTracker::computeJTR(), vpRBFeatureTracker::computeJTR(), vpPtu46::computeMGD(), vpPointMap::computeReprojectionErrorAndJacobian(), vpMbEdgeKltTracker::computeVVS(), vpMbTracker::computeVVSCheckLevenbergMarquardt(), vpMbEdgeTracker::computeVVSFirstPhasePoseEstimation(), vpMbTracker::computeVVSPoseEstimation(), conv2(), vpMatrix::conv2(), vpMatrix::createDiagonalMatrix(), vpColVector::crossProd(), vpDot2::defineDots(), vpMatrix::diag(), vpColVector::dotProd(), vpGenericFeature::error(), vpImageFilter::filter(), vpImageFilter::filter(), vpImageFilter::filter(), vpQuadProg::fromCanonicalCost(), vpBiclops::get_eJe(), vpPtu46::get_eJe(), vpBiclops::get_fJe(), vpPtu46::get_fJe(), vpBiclops::get_fMe(), vpGenericFeature::get_s(), vpRBTracker::getCovariance(), vpImageSimulator::getImage(), vpImageSimulator::getImage(), vpAfma6::getInverseKinematics(), vpViper::getInverseKinematicsWrist(), vpPointMap::getOutliers(), vpPointMap::getPoints(), vpImageFilter::getScharrKernelX(), vpImageFilter::getSobelKernelX(), vpImageFilter::getSobelKernelY(), vpLuminanceDCT::vpMatrixZigZagIndex::getValues(), vpPointMap::getVisiblePoints(), hadamard(), vpMatrix::hadamard(), vpLuminancePCA::init(), vpMatrix::init(), vpSubMatrix::init(), vpUnscentedKalman::init(), vpCircleHoughTransform::initGradientFilters(), vpImageTools::inRange(), vpImageTools::inRange(), insert(), insert(), vpMatrix::insert(), vpHomography::inverse(), vpLuminanceDCT::inverse(), vpMatrix::inverseByCholeskyLapack(), vpMatrix::inverseByQRLapack(), vpMatrix::juxtaposeMatrices(), vpMatrix::kernel(), vpMatrix::kron(), vpMatrix::kron(), vpLuminancePCA::learn(), vpRBVisualOdometryUtils::levenbergMarquardtKeypoints2D(), vpRBVisualOdometryUtils::levenbergMarquardtKeypoints3D(), vpRobust::MEstimator(), vpRobust::MEstimator(), vpMatrix::mult2Matrices(), vpMatrix::mult2Matrices(), vpMatrix::mult2Matrices(), vpMatrix::mult2Matrices(), vpMatrix::mult2Matrices(), FastMat33< T >::multiply(), vpMatrix::multMatrixVector(), vpRBConvergenceADDMetric::operator()(), vpRBConvergenceReprojectionMetric::operator()(), vpColVector::operator*(), vpForceTwistMatrix::operator*(), vpForceTwistMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpRotationMatrix::operator*(), vpRowVector::operator*(), vpVelocityTwistMatrix::operator*(), vpMatrix::operator+=(), vpColVector::operator-(), vpMatrix::operator-=(), operator<<, vpColVector::operator=(), vpColVector::operator=(), vpColVector::operator=(), vpHomography::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpRotationMatrix::operator=(), vpRowVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubMatrix::operator=(), vpSubMatrix::operator=(), vpSubRowVector::operator=(), vpPlot::plot(), vpPlot::plot(), vpPlot::plot(), vpPlot::plot(), vpPlot::plot(), vpMatrix::printSize(), vpPointMap::project(), vpPointMap::project(), vpPointMap::project(), vpIoTools::readConfigVar(), vpColVector::reshape(), vpRowVector::reshape(), vpLinProg::rowReduction(), vpRBConvergenceMetric::sampleObject(), save(), saveYAML(), vpPointMap::selectValidNewCandidates(), vpGenericFeature::set_s(), vpQuadProg::setEqualityConstraint(), vpGenericFeature::setError(), vpGenericFeature::setInteractionMatrix(), vpSimulatorAfma6::setJointLimit(), vpSimulatorViper850::setJointLimit(), vpLuminanceDCT::vpMatrixZigZagIndex::setValues(), vpRobotBiclops::setVelocity(), vpRobotPololuPtu::setVelocity(), vpSimulatorAfma6::setVelocity(), vpSimulatorViper850::setVelocity(), vpLine::setWorldCoordinates(), vpLine::setWorldCoordinates(), vpLinProg::simplex(), vpRobust::simultMEstimator(), vpQuadProg::solveByProjection(), vpLinProg::solveLP(), vpQuadProg::solveQP(), vpQuadProg::solveQPi(), vpQuadProg::solveSVDorQR(), vpColVector::stack(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stackRows(), vpMatrix::sub2Matrices(), vpMatrix::sub2Matrices(), vpMatrix::svdEigen3(), vpRBTracker::track(), vpPointMap::updatePoints(), VISP_NAMESPACE_NAME::visp2eigen(), VISP_NAMESPACE_NAME::visp2eigen(), vpColVector::vpColVector(), vpRowVector::vpRowVector(), and vpImageTools::warpImage().

◆ hadamard()

template<class Type>
vpArray2D< Type > vpArray2D< Type >::hadamard ( const vpArray2D< Type > & m) const

Compute the Hadamard product (element wise matrix multiplication).

Parameters
m: Second matrix;
Returns
m1.hadamard(m2) The Hadamard product : $ m1 \circ m2 = (m1 \circ
m2)_{i,j} = (m1)_{i,j} (m2)_{i,j} $
Examples
catchArray2D.cpp.

Definition at line 1257 of file vpArray2D.h.

References colNum, data, vpException::dimensionError, dsize, getCols(), getRows(), resize(), rowNum, and vpArray2D().

◆ insert() [1/2]

template<class Type>
vpArray2D< Type > vpArray2D< Type >::insert ( const vpArray2D< Type > & A,
const vpArray2D< Type > & B,
unsigned int r,
unsigned int c )

Insert array B in array A at the given position.

Parameters
A: Main array.
B: Array to insert.
r: Index of the row where to add the array.
c: Index of the column where to add the array.
Returns
Array with B insert in A.
Warning
Throw exception if the sizes of the arrays do not allow the insertion.

Definition at line 1368 of file vpArray2D.h.

References insert(), and vpArray2D().

◆ insert() [2/2]

template<class Type>
void vpArray2D< Type >::insert ( const vpArray2D< Type > & A,
unsigned int r,
unsigned int c )
inline

Insert array A at the given position in the current array.

Warning
Throw vpException::dimensionError if the dimensions of the matrices do not allow the operation.
Parameters
A: The array to insert.
r: The index of the row to begin to insert data.
c: The index of the column to begin to insert data.

Definition at line 586 of file vpArray2D.h.

References colNum, data, vpException::dimensionError, getCols(), getRows(), rowNum, size(), and vpArray2D().

Referenced by conv2(), insert(), vpMatrix::insert(), and vpMatrix::insert().

◆ isFinite()

template<class Type>
bool vpArray2D< Type >::isFinite ( const vpArray2D< double > & A)
inlinestatic

Definition at line 1188 of file vpArray2D.h.

References data, vpMath::isFinite(), size(), and vpArray2D().

Referenced by vpRBTracker::track().

◆ load()

template<class Type>
bool vpArray2D< Type >::load ( const std::string & filename,
vpArray2D< Type > & A,
bool binary = false,
char * header = nullptr )
inlinestatic

Load a matrix from a file.

Parameters
filename: Absolute file name.
A: Array to be loaded
binary: If true the matrix is loaded from a binary file, else from a text file.
header: Header of the file is loaded in this parameter.
Returns
Returns true if success.
See also
save()

Definition at line 760 of file vpArray2D.h.

References vpException::badValue, resize(), and vpArray2D().

Referenced by vpMatrix::loadMatrix().

◆ loadYAML()

template<class Type>
bool vpArray2D< Type >::loadYAML ( const std::string & filename,
vpArray2D< Type > & A,
char * header = nullptr )
inlinestatic

Load an array from a YAML-formatted file.

Parameters
filename: absolute file name.
A: array to be loaded from the file.
header: header of the file is loaded in this parameter.
Returns
Returns true on success.
See also
saveYAML()
Examples
tutorial-hsv-range-tuner.cpp.

Definition at line 874 of file vpArray2D.h.

References resize(), and vpArray2D().

Referenced by vpMatrix::loadMatrixYAML().

◆ operator!=()

template<class Type>
bool operator!= ( const vpArray2D< Type > & A) const

Not equal to comparison operator of a 2D array.

Definition at line 1458 of file vpArray2D.h.

References vpArray2D().

◆ operator=() [1/6]

template<class Type>
vpArray2D< Type > & vpArray2D< Type >::operator= ( const nlohmann::json & j)
delete

References vpArray2D().

◆ operator=() [2/6]

template<class Type>
vpArray2D< Type > & vpArray2D< Type >::operator= ( const std::initializer_list< std::initializer_list< Type > > & lists)
inline

Definition at line 672 of file vpArray2D.h.

References resize(), rowNum, rowPtrs, and vpArray2D().

◆ operator=() [3/6]

template<class Type>
vpArray2D< Type > & vpArray2D< Type >::operator= ( const std::initializer_list< Type > & list)
inline

Definition at line 662 of file vpArray2D.h.

References data, dsize, resize(), and vpArray2D().

◆ operator=() [4/6]

template<class Type>
vpArray2D< Type > & vpArray2D< Type >::operator= ( const vpArray2D< Type > & A)
inline

Copy operator of a 2D array.

Definition at line 624 of file vpArray2D.h.

References colNum, data, resize(), rowNum, and vpArray2D().

◆ operator=() [5/6]

template<class Type>
vpArray2D< Type > & vpArray2D< Type >::operator= ( Type x)
inline

Set all the elements of the array to x.

Definition at line 615 of file vpArray2D.h.

References data, dsize, and vpArray2D().

Referenced by vpColVector::operator=(), vpMatrix::operator=(), and vpRowVector::operator=().

◆ operator=() [6/6]

template<class Type>
vpArray2D< Type > & vpArray2D< Type >::operator= ( vpArray2D< Type > && other)
inlinenoexcept

Definition at line 634 of file vpArray2D.h.

References colNum, data, dsize, isMemoryOwner, isRowPtrsOwner, rowNum, rowPtrs, and vpArray2D().

◆ operator==()

template<class Type>
bool vpArray2D< Type >::operator== ( const vpArray2D< Type > & A) const

Equal to comparison operator of a 2D array.

Definition at line 1401 of file vpArray2D.h.

References colNum, data, rowNum, size(), and vpArray2D().

◆ operator[]() [1/2]

template<class Type>
Type * vpArray2D< Type >::operator[] ( unsigned int i)
inline

Set element $A_{ij} = x$ using A[i][j] = x.

Definition at line 696 of file vpArray2D.h.

References rowPtrs.

◆ operator[]() [2/2]

template<class Type>
Type * vpArray2D< Type >::operator[] ( unsigned int i) const
inline

Get element $x = A_{ij}$ using x = A[i][j].

Definition at line 698 of file vpArray2D.h.

References rowPtrs.

◆ reshape()

template<class Type>
void vpArray2D< Type >::reshape ( unsigned int nrows,
unsigned int ncols )
inline
Examples
testMatrixInitialization.cpp.

Definition at line 545 of file vpArray2D.h.

References colNum, data, vpException::dimensionError, dsize, resize(), rowNum, and rowPtrs.

◆ resize()

template<class Type>
void vpArray2D< Type >::resize ( unsigned int nrows,
unsigned int ncols,
bool flagNullify = true,
bool recopy_ = true )
inline

Set the size of the array and initialize all the values to zero.

Parameters
nrows: number of rows.
ncols: number of column.
flagNullify: if true, then the array is re-initialized to 0 after resize. If false, the initial values from the common part of the array (common part between old and new version of the array) are kept. Default value is true.
recopy_: if true, will perform an explicit recopy of the old data.
Examples
catchArray2D.cpp, catchJsonArrayConversion.cpp, and testMatrixInitialization.cpp.

Definition at line 448 of file vpArray2D.h.

References vpException::badValue, colNum, dsize, isMemoryOwner, vpException::memoryAllocationError, rowNum, and rowPtrs.

Referenced by vpMatrix::AAt(), vpMatrix::add2Matrices(), vpMatrix::add2WeightedMatrices(), vpMatrix::AtA(), vpLinProg::colReduction(), vpPointMap::compute3DErrorAndJacobian(), vpServo::computeProjectionOperators(), vpPointMap::computeReprojectionErrorAndJacobian(), vpMbEdgeKltTracker::computeVVS(), vpMatrix::cond(), conv2(), vpMatrix::conv2(), vpMatrix::createDiagonalMatrix(), vpHomography::DLT(), VISP_NAMESPACE_NAME::eigen2visp(), vpMatrix::eigenValues(), vpMatrix::expm(), vpMatrix::extract(), vpAfma6::get_eJe(), vpBiclops::get_eJe(), vpPtu46::get_eJe(), vpRobotFranka::get_eJe(), vpRobotFranka::get_eJe(), vpAfma6::get_fJe(), vpBiclops::get_fJe(), vpPtu46::get_fJe(), vpRobotFranka::get_fJe(), vpRobotFranka::get_fJe(), vpViper::get_fJw(), vpRobotFranka::getMass(), vpPointMap::getPoints(), hadamard(), vpMatrix::hadamard(), vpLuminanceMapping::imageAsMatrix(), vpImageTools::initUndistortMap(), insert(), vpFeatureDepth::interaction(), vpFeatureEllipse::interaction(), vpFeatureLuminance::interaction(), vpFeatureLuminanceMapping::interaction(), vpFeaturePoint3D::interaction(), vpFeaturePoint::interaction(), vpFeaturePointPolar::interaction(), vpFeatureSegment::interaction(), vpFeatureThetaU::interaction(), vpFeatureTranslation::interaction(), vpFeatureVanishingPoint::interaction(), vpGenericFeature::interaction(), vpLuminanceDCT::interaction(), vpMatrix::inverseByLU(), vpMatrix::inverseByQRLapack(), vpMatrix::inverseTriangular(), vpMatrix::juxtaposeMatrices(), vpMatrix::kernel(), vpMatrix::kron(), vpMatrix::kron(), vpLuminancePCA::learn(), vpLuminancePCA::learn(), load(), loadYAML(), vpMatrix::mult2Matrices(), vpMatrix::mult2Matrices(), vpMatrix::mult2Matrices(), FastMat33< T >::multiply(), vpMatrix::negateMatrix(), vpMatrix::nullSpace(), vpMatrix::nullSpace(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator/(), operator=(), operator=(), operator=(), vpRotationVector::operator=(), vpPose::poseVirtualVSrobust(), vpPointMap::project(), vpPointMap::project(), vpPointMap::project(), vpPointMap::project(), vpIoTools::readConfigVar(), reshape(), vpColVector::reshape(), vpRowVector::reshape(), vpColVector::resize(), vpColVector::resize(), vpRowVector::resize(), vpRowVector::resize(), vpLinProg::rowReduction(), vpPointMap::selectValidNewCandidates(), vpColVector::skew(), vpTranslationVector::skew(), vpLinProg::solveLP(), vpQuadProg::solveQPi(), vpMatrix::stack(), vpMatrix::sub2Matrices(), vpMatrix::svdEigen3(), vpMatrix::svdLapack(), vpMatrix::svdOpenCV(), vpMatrix::transpose(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), and vpArray2D().

◆ save()

template<class Type>
bool vpArray2D< Type >::save ( const std::string & filename,
const vpArray2D< Type > & A,
bool binary = false,
const char * header = "" )
inlinestatic

Save a matrix to a file.

Parameters
filename: Absolute file name.
A: Array to be saved.
binary: If true the matrix is saved in a binary file, else a text file.
header: Optional line that will be saved at the beginning of the file.
Returns
Returns true if success.

Warning : If you save the matrix as in a text file the precision is less than if you save it in a binary file.

See also
load()

Definition at line 965 of file vpArray2D.h.

References getCols(), getRows(), and vpArray2D().

Referenced by gen_java.JavaWrapperGenerator::finalize(), gen_java.JavaWrapperGenerator::gen(), and vpMatrix::saveMatrix().

◆ saveYAML()

template<class Type>
bool vpArray2D< Type >::saveYAML ( const std::string & filename,
const vpArray2D< Type > & A,
const char * header = "" )
inlinestatic

Save an array in a YAML-formatted file.

Parameters
filename: absolute file name.
A: array to be saved in the file.
header: optional lines that will be saved at the beginning of the file. Should be YAML-formatted and will adapt to the indentation if any.
Returns
Returns true if success.

Here is an example of outputs.

vpArray2D::saveYAML("matrix.yml", M, "example: a YAML-formatted header");
vpArray2D::saveYAML("matrixIndent.yml", M, "example:\n - a YAML-formatted \
header\n - with inner indentation");
static bool saveYAML(const std::string &filename, const vpArray2D< Type > &A, const char *header="")
Definition vpArray2D.h:1061

Content of matrix.yml:

example: a YAML-formatted header
rows: 3
cols: 4
- [0, 0, 0, 0]
- [0, 0, 0, 0]
- [0, 0, 0, 0]
Type * data
Address of the first element of the data array.
Definition vpArray2D.h:149

Content of matrixIndent.yml:

example:
- a YAML-formatted header
- with inner indentation
rows: 3
cols: 4
- [0, 0, 0, 0]
- [0, 0, 0, 0]
- [0, 0, 0, 0]
See also
loadYAML()
Examples
tutorial-hsv-range-tuner.cpp.

Definition at line 1061 of file vpArray2D.h.

References getCols(), getRows(), and vpArray2D().

Referenced by vpMatrix::saveMatrixYAML().

◆ size()

template<class Type>
unsigned int vpArray2D< Type >::size ( ) const
inline

Return the number of elements of the 2D array.

Examples
catchArray2D.cpp, catchJsonArrayConversion.cpp, testMatrixInitialization.cpp, and testTranslationVector.cpp.

Definition at line 435 of file vpArray2D.h.

References colNum, and rowNum.

Referenced by vpVirtuose::addForce(), vpQuaternionVector::buildFrom(), vpRxyzVector::buildFrom(), vpRzyxVector::buildFrom(), vpRzyzVector::buildFrom(), vpColVector::dotProd(), vpMbtFaceDepthNormal::estimatePlaneEquationSVD(), vpRobotPololuPtu::get_eJe(), vpRobotFranka::get_fJe(), vpRobotPololuPtu::get_fJe(), vpRobotFranka::get_fMe(), vpRobotUniversalRobots::get_fMe(), vpForceTorqueAtiSensor::getForceTorque(), vpParticleFilter< MeasurementsType >::init(), vpParticleFilter< MeasurementsType >::init(), vpImageTools::inRange(), insert(), vpMatrix::insert(), isFinite(), vpMath::lookAt(), vpMarkersMeasurements::measureWithNoise(), vpHomography::operator*(), operator<<, vpQuaternionVector::operator=(), vpRxyzVector::operator=(), vpRzyxVector::operator=(), vpRzyzVector::operator=(), vpTranslationVector::operator=(), operator==(), vpArray2D< double >::operator==(), vpArray2D< double >::operator==(), vpPlot::plot(), vpCameraParameters::printParameters(), vpRobot::saturateVelocities(), vpServo::secondaryTaskJointLimitAvoidance(), vpImageFilter::sepFilter(), vpVirtuose::setArticularForce(), vpVirtuose::setArticularPosition(), vpVirtuose::setArticularVelocity(), vpServo::setCameraDoF(), vpVirtuose::setForce(), vpRobotFranka::setForceTorque(), vpRobotKinova::setJointVelocity(), vpRobotFlirPtu::setPanPosLimits(), vpQbSoftHand::setPosition(), vpReflexTakktile2::setPosition(), vpRobotFlirPtu::setPosition(), vpRobotKinova::setPosition(), vpRobotPololuPtu::setPosition(), vpRobotUniversalRobots::setPosition(), vpReflexTakktile2::setPositioningVelocity(), vpRobotFlirPtu::setTiltPosLimits(), vpLuminanceDCT::vpMatrixZigZagIndex::setValues(), vpRobotBebop2::setVelocity(), vpRobotFlirPtu::setVelocity(), vpRobotFranka::setVelocity(), vpRobotKinova::setVelocity(), vpRobotPioneer::setVelocity(), vpRobotPololuPtu::setVelocity(), vpRobotTemplate::setVelocity(), vpVirtuose::setVelocity(), vpReflexTakktile2::setVelocityUntilAnyContact(), vpReflexTakktile2::setVelocityUntilEachContact(), vpPoint::setWorldCoordinates(), vpUnscentedKalman::simpleMean(), vpMatrix::stack(), vpMatrix::stack(), vpUnscentedKalman::update(), VISP_NAMESPACE_NAME::visp2eigen(), VISP_NAMESPACE_NAME::visp2eigen(), vpPanda3DPointLight::vpPanda3DPointLight(), and vpParticleFilter< MeasurementsType >::weightedMean().

◆ t()

template<class Type>
vpArray2D< Type > vpArray2D< Type >::t ( ) const

Compute the transpose of the array.

Returns
vpArray2D<Type> C = A^T

Definition at line 1273 of file vpArray2D.h.

References colNum, rowNum, and vpArray2D().

Referenced by vpImageFilter::getScharrKernelX(), and vpImageFilter::getSobelKernelX().

◆ view() [1/3]

template<class Type>
vpArray2D< Type > vpArray2D< Type >::view ( const vpArray2D< Type > & A)
inlinestatic

Creates a view of the Matrix A. A view shares the same underlying memory as the original array. It can be written into, modifying the original data. However, the array cannot be resized.

When you use this method, it is your responsibility to ensure that the lifespan of the view does not exceed the lifespan of the original array.

Parameters
Athe array to view
Returns
vpArray2D<T>
Examples
catchArray2D.cpp.

Definition at line 324 of file vpArray2D.h.

References colNum, data, dsize, rowNum, rowPtrs, and vpArray2D().

Referenced by view(), vpColVector::view(), vpColVector::view(), vpMatrix::view(), vpMatrix::view(), and vpRowVector::view().

◆ view() [2/3]

template<class Type>
vpArray2D< Type > vpArray2D< Type >::view ( Type * data,
unsigned int numRows,
unsigned int numCols )
inlinestatic

Create an array view of a raw data pointer. This data is not owned by the resulting array and should be freed after the array is destroyed (not before).

Parameters
dataPointer to the raw data
numRowsNumber of rows
numColsNumber of columns
Returns
vpArray2D<Type>

Definition at line 346 of file vpArray2D.h.

References data, view(), and vpArray2D().

◆ view() [3/3]

template<class Type>
void vpArray2D< Type >::view ( vpArray2D< Type > & v,
Type * data,
unsigned int numRows,
unsigned int numCols )
inlinestatic

Create an array view of a raw data pointer. After this function has been called, the array data can be modified through the view v. This data is not owned by the resulting array and should be freed after the array is destroyed (not before).

Parameters
vThe resulting view array
dataPointer to the raw data
numRowsNumber of rows
numColsNumber of columns

Definition at line 363 of file vpArray2D.h.

References data, and vpArray2D().

◆ from_json

template<class Type>
template<class T>
void from_json ( const nlohmann::json & j,
vpArray2D< T > & array )
friend

References vpArray2D().

◆ insert()

template<class Type>
void vpArray2D< Type >::insert ( const vpArray2D< Type > & A,
const vpArray2D< Type > & B,
vpArray2D< Type > & C,
unsigned int r,
unsigned int c )
related

Insert array B in array A at the given position.

Parameters
A: Main array.
B: Array to insert.
C: Result array.
r: Index of the row where to insert array B.
c: Index of the column where to insert array B.
Warning
Throw exception if the sizes of the arrays do not allow the insertion.

Definition at line 1377 of file vpArray2D.h.

References vpException::dimensionError, getCols(), getRows(), resize(), and vpArray2D().

◆ operator<<

template<class Type>
std::ostream & operator<< ( std::ostream & s,
const vpArray2D< Type > & A )
friend

Writes the given array to the output stream and returns a reference to the output stream.

Definition at line 705 of file vpArray2D.h.

References data, getCols(), getRows(), size(), and vpArray2D().

◆ operator==() [1/2]

bool operator== ( const vpArray2D< double > & A) const
related

Definition at line 1420 of file vpArray2D.h.

◆ operator==() [2/2]

bool operator== ( const vpArray2D< float > & A) const
related

Definition at line 1439 of file vpArray2D.h.

◆ to_json

template<class Type>
template<class T>
void to_json ( nlohmann::json & j,
const vpArray2D< T > & array )
friend

References vpArray2D().

◆ vpGEMM()

template<class Type>
void vpGEMM ( const vpArray2D< double > & A,
const vpArray2D< double > & B,
const double & alpha,
const vpArray2D< double > & C,
const double & beta,
vpArray2D< double > & D,
const unsigned int & ops = 0 )
related

This function performs generalized matrix multiplication: D = alpha*op(A)*op(B) + beta*op(C), where op(X) is X or X^T. Operation on A, B and C matrices is described by enumeration vpGEMMmethod().

For example, to compute D = alpha*A^T*B^T+beta*C we need to call :

vpGEMM(A, B, alpha, C, beta, D, VP_GEMM_A_T + VP_GEMM_B_T);
void vpGEMM(const vpArray2D< double > &A, const vpArray2D< double > &B, const double &alpha, const vpArray2D< double > &C, const double &beta, vpArray2D< double > &D, const unsigned int &ops=0)
Definition vpGEMM.h:414

If C is not used, vpGEMM must be called using an empty array null. Thus to compute D = alpha*A^T*B, we have to call:

vpGEMM(A, B, alpha, null, 0, D, VP_GEMM_B_T);
Exceptions
vpException::incorrectMatrixSizeErrorif the sizes of the matrices do not allow the operations.
Parameters
A: An array that could be a vpMatrix.
B: An array that could be a vpMatrix.
alpha: A scalar.
C: An array that could be a vpMatrix.
beta: A scalar.
D: The resulting array that could be a vpMatrix.
ops: A scalar describing operation applied on the matrices. Possible values are the one defined in vpGEMMmethod(): VP_GEMM_A_T, VP_GEMM_B_T, VP_GEMM_C_T.

Definition at line 414 of file vpGEMM.h.

◆ vpGEMMmethod

template<class Type>
enum vpGEMMmethod
related

Enumeration of the operations applied on matrices in vpGEMM() function.

Operations are :

  • VP_GEMM_A_T to use the transpose matrix of A instead of the matrix A
  • VP_GEMM_B_T to use the transpose matrix of B instead of the matrix B
  • VP_GEMM_C_T to use the transpose matrix of C instead of the matrix C

Definition at line 53 of file vpGEMM.h.

Member Data Documentation

◆ colNum

◆ data

template<class Type>
Type* vpArray2D< Type >::data

Address of the first element of the data array.

Examples
catchArray2D.cpp, and testTranslationVector.cpp.

Definition at line 149 of file vpArray2D.h.

Referenced by vpMatrix::AAt(), vpMatrix::AtA(), vpMbTracker::computeJTR(), vpRBFeatureTracker::computeJTR(), conv2(), vpMatrix::conv2(), vpMatrix::detByLULapack(), vpColVector::dotProd(), VISP_NAMESPACE_NAME::eigen2visp(), VISP_NAMESPACE_NAME::eigen2visp(), vpMatrix::eigenValues(), vpMatrix::eigenValues(), vpMatrix::expm(), vpRBProbabilistic3DDriftDetector::vpStored3DSurfaceColorPoint::fastProjection(), visp.apps.visp_python_apriltag_detection.DetectionsLogger::finalize_logging(), vpRobotViper650::getForceTorque(), vpRobotViper650::getForceTorque(), vpRobotViper850::getForceTorque(), vpRobotViper850::getForceTorque(), getMaxValue(), getMinValue(), vpRobotViper650::getPosition(), vpRobotViper850::getPosition(), vpImageFilter::getScharrKernelX(), vpImageFilter::getSobelKernelX(), vpImageFilter::getSobelKernelY(), vpRobotViper650::getVelocity(), vpRobotViper850::getVelocity(), hadamard(), vpColVector::hadamard(), vpMatrix::hadamard(), vpRowVector::hadamard(), vpSubMatrix::init(), vpTemplateTrackerMIESM::initHessienDesired(), insert(), vpMatrix::insert(), vpMatrix::inverseByCholeskyLapack(), vpMatrix::inverseByCholeskyOpenCV(), vpMatrix::inverseByLUEigen3(), vpMatrix::inverseByLULapack(), vpMatrix::inverseByLUOpenCV(), vpMatrix::inverseByQRLapack(), vpMatrix::inverseTriangular(), isFinite(), visp.apps.visp_python_apriltag_detection.DetectionsLogger::log_frame(), vpMatrix::mult2Matrices(), vpMatrix::mult2Matrices(), vpMatrix::mult2Matrices(), vpMatrix::mult2Matrices(), vpMatrix::multMatrixVector(), vpHomography::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpTranslationVector::operator*(), vpColVector::operator-(), vpRowVector::operator-(), vpTranslationVector::operator-(), vpHomography::operator/(), vpTranslationVector::operator/(), operator<<, operator=(), operator=(), operator=(), operator=(), vpColVector::operator=(), vpColVector::operator=(), vpColVector::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpRowVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpTranslationVector::operator=(), vpTranslationVector::operator=(), operator==(), vpArray2D< double >::operator==(), vpArray2D< double >::operator==(), vpImageTools::remap(), reshape(), vpHomography::robust(), vpRobotViper650::setPosition(), vpRobotViper850::setPosition(), vpRobotAfma6::setVelocity(), vpRobotViper650::setVelocity(), vpRobotViper850::setVelocity(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stackColumns(), vpMatrix::stackRows(), vpMatrix::svdEigen3(), vpMatrix::svdLapack(), vpMatrix::svdOpenCV(), vpTemplateTrackerMIESM::trackNoPyr(), vpMatrix::transpose(), view(), view(), view(), VISP_NAMESPACE_NAME::visp2eigen(), VISP_NAMESPACE_NAME::visp2eigen(), VISP_NAMESPACE_NAME::visp2eigen(), VISP_NAMESPACE_NAME::visp2eigen(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), and ~vpArray2D().

◆ dsize

template<class Type>
unsigned int vpArray2D< Type >::dsize
protected

◆ isMemoryOwner

template<class Type>
bool vpArray2D< Type >::isMemoryOwner
protected

Whether this array owns the memory it points to.

Definition at line 1209 of file vpArray2D.h.

Referenced by operator=(), resize(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), and ~vpArray2D().

◆ isRowPtrsOwner

template<class Type>
bool vpArray2D< Type >::isRowPtrsOwner
protected

Whether this array owns the row pointers.

Definition at line 1211 of file vpArray2D.h.

Referenced by operator=(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), vpArray2D(), and ~vpArray2D().

◆ rowNum

◆ rowPtrs