/*! Stack row vectors. \param A : Initial vector. \param B : Vector to stack at the end of A. \param C : Resulting stacked vector \f$C = [A B]\f$. \code vpRowVector r1(3, 1); // r1 is equal to [1 1 1] vpRowVector r2(2, 3); // r2 is equal to [3 3] vpRowVector v; vpRowVector::stack(r1, r2, v); // v is equal to [1 1 1 3 3] \endcode \sa stack(const vpRowVector &) \sa stack(const vpRowVector &, const vpRowVector &) */ void vpRowVector::stack(const vpRowVector &A, const vpRowVector &B, vpRowVector &C) { unsigned int nrA = A.getCols(); unsigned int nrB = B.getCols(); if (nrA == 0 && nrB == 0) { C.resize(0); return; } if (nrB == 0) { C = A; return; } if (nrA == 0) { C = B; return; } // General case C.resize(nrA + nrB); for (unsigned int i=0; i<nrA; i++) C[i] = A[i]; for (unsigned int i=0; i<nrB; i++) C[nrA+i] = B[i]; }