00001 00012 #include "DataColumn.h" 00013 00014 using std::vector; 00015 00016 using namespace hippodraw; 00017 00018 DataColumn:: 00019 DataColumn () 00020 { 00021 } 00022 00023 DataColumn:: 00024 ~DataColumn() 00025 { 00026 } 00027 00028 std::vector < double > & 00029 DataColumn:: 00030 getData () 00031 { 00032 return m_double_data; 00033 } 00034 00035 const std::vector < double > & 00036 DataColumn:: 00037 getData () const 00038 { 00039 return m_double_data; 00040 } 00041 00042 unsigned int 00043 DataColumn:: 00044 getRank () const 00045 { 00046 unsigned int size = m_shape.size(); 00047 00048 return size; 00049 } 00050 00051 const std::vector < intptr_t > & 00052 DataColumn:: 00053 getShape () 00054 { 00055 return m_shape; 00056 } 00057 00058 void 00059 DataColumn:: 00060 setShape ( const std::vector < intptr_t > & shape ) 00061 { 00062 m_shape = shape; 00063 } 00064 00065 std::size_t 00066 DataColumn:: 00067 size ( ) const 00068 { 00069 unsigned int rank = m_shape.size (); 00070 std::size_t product = 1; 00071 for ( unsigned int i = 0; i < rank; i++ ) { 00072 product *= m_shape[i]; 00073 } 00074 00075 return product; 00076 } 00077 00078 void 00079 DataColumn:: 00080 clear () 00081 { 00082 m_double_data.clear (); 00083 } 00084 00085 double * 00086 DataColumn:: 00087 doubleArrayAt ( unsigned int row ) 00088 { 00089 unsigned int rank = m_shape.size (); 00090 unsigned int size = 1; 00091 for ( unsigned int i = 1; i < rank; i++ ) { 00092 size *= m_shape [ i ]; 00093 } 00094 unsigned int pos = row * size; 00095 00096 return & m_double_data [ pos ]; 00097 }