eLynx SDK
v3.3.0 C++ image processing API reference |
00001 //============================================================================ 00002 // SingleColMatrix.h Math.Component package 00003 //============================================================================ 00004 // Usage : linear algebra - matrix-style vector adapter (n x 1 matrix) 00005 //---------------------------------------------------------------------------- 00006 // Copyright (C) 2006 by eLynx project 00007 // 00008 // This library is free software; you can redistribute it and/or 00009 // modify it under the terms of the GNU Library General Public 00010 // License as published by the Free Software Foundation; either 00011 // version 2 of the License, or (at your option) any later version. 00012 // 00013 // This library is distributed in the hope that it will be useful, 00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00016 // See the GNU Library General Public License for more details. 00017 //---------------------------------------------------------------------------- 00018 #ifndef __SingleColMatrix_h__ 00019 #define __SingleColMatrix_h__ 00020 00021 #include "IVector.h" 00022 #include "IMatrix.h" 00023 00024 namespace eLynx { 00025 namespace Math { 00026 00031 class ExportedByMath SingleColMatrix : public IMatrix { 00032 00033 public: 00034 00037 SingleColMatrix(IVector &iVector); 00038 00041 SingleColMatrix(const SingleColMatrix &iC); 00042 00046 SingleColMatrix& operator = (SingleColMatrix &iC); 00047 00050 virtual uint32 GetWidth() const { return 1; } 00051 00054 virtual uint32 GetHeight() const { return _prVector.GetSize(); } 00055 00060 virtual const double& operator () (uint32 iRow, uint32 iCol) const 00061 { return _prVector(iRow); } 00062 00067 virtual double& operator () (uint32 iRow, uint32 iCol) 00068 { return _prVector(iRow); } 00069 00073 virtual void SwapRows(uint32 iRow1, uint32 iRow2) 00074 { _prVector.SwapValues(iRow1, iRow2); } 00075 00078 virtual void SwapCols(uint32 iCol1, uint32 iCol2) {} 00079 00080 private: 00081 00083 void CopyData(const SingleColMatrix &iC); 00084 00086 IVector& _prVector; 00087 }; 00088 00089 } // namespace Math 00090 } // namespace eLynx 00091 00092 00093 #endif // __SingleColMatrix_h__ 00094