UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
PolyMatrix.hpp
1 /* PolyMatrix.hpp */
2 /* $Id: PolyMatrix.hpp 21638 2012-06-01 12:07:34Z hoot $ */
3 #ifndef __PolyMatrix_hpp
4 #define __PolyMatrix_hpp
5 
6 #include <vector>
7 #include <set>
8 
9 #ifdef GE_BUILD
10 #include <trace.hpp>
11 #else
12 #include <s2proc/trace.hpp>
13 #endif
14 
15 //===================================================================================================
16 //=========================* Abstract interface for SP/RP based matrix construction *================
17 //===================================================================================================
18 
19 
21 {
22 public:
23 
24  PolyMatrix();
25  virtual ~PolyMatrix();
26 
27  virtual bool SetMatrixElement(size_t i, size_t j, double& val) = 0;
28  virtual bool SetVectorElement(size_t i, double& val) = 0;
29  virtual bool IsReady() = 0;
30  virtual size_t GetPointsCount(std::vector<int> &ID_num) = 0;
31 };
32 
33 
34 //===================================================================================================
35 //======================* Class for universal based matrix construction *============================
36 //===================================================================================================
37 
38 class PolyMatrixPSC : public PolyMatrix
39 {
40 public:
41 
42  PolyMatrixPSC(const std::map<int, std::multimap<int, Trace> > &sum_rows, float max_shift);
43  virtual ~PolyMatrixPSC();
44 
45  bool SetMatrixElement(size_t i, size_t j, double& val);
46  bool SetVectorElement(size_t i, double& val);
47 
48  bool IsReady();
49  size_t GetPointsCount(std::vector<int> &ID_num);
50 
51 protected:
52 
53  bool set_ID_Row();
54  std::set<int> m_point_set;
55  std::map<int, std::multimap<int, Trace> > m_sum_rows;
56  float m_max_shift;
57 
58 private:
59  bool m_ready;
60 
61 };
62 
63 #endif /* PolyMatrix.hpp */
Definition: PolyMatrix.hpp:38
Definition: PolyMatrix.hpp:20