Container class for MC_double_vector. More...
#include <MC_double_vector_vector.hpp>

Public Member Functions | |
| MC_double_vector_vector () | |
| standard constructor | |
| MC_double_vector_vector (const MC_double_vector &v0) | |
| direct constructor from some MC_double_vector | |
| MC_double_vector_vector (const MC_double_vector &v0, const MC_double_vector &v1) | |
| direct constructor from some MC_double_vector | |
| MC_double_vector_vector (const MC_double_vector &v0, const MC_double_vector &v1, const MC_double_vector &v2) | |
| direct constructor from some MC_double_vector | |
| MC_double_vector_vector (const MC_double_vector &v0, const MC_double_vector &v1, const MC_double_vector &v2, const MC_double_vector &v3) | |
| direct constructor from some MC_double_vector | |
| MC_double_vector_vector (const std::list< MC_double_vector > &vec) | |
| direct constructor from a std::list <MC_double_vector> | |
| MC_double_vector_vector (const std::vector< MC_double_vector > &vec) | |
| direct constructor from a vector <MC_double_vector> | |
| void | assert_bounds (const int &u) const |
| Assert the value stays within the bounds. | |
| int | size () const |
| get the size of the vector | |
| void | clear () |
| clear the vector to size 0 | |
| MC_double_vector_vector & | resize (const int &new_size) |
| resize the vector in deleting value of adding zeros | |
| MC_double_vector_vector & | add (const MC_double_vector &val) |
| add a value at the end of the vector | |
| MC_double_vector_vector & | add (const MC_double_vector_vector &val) |
| add some values at the end of the vector | |
| MC_double_vector_vector & | set (const int &k_index, const MC_double_vector &new_value) |
| set an indexed value to a certain component. Adjust the size automatically | |
| MC_double_vector_vector & | set (const MC_int_vector &k_index, const MC_double_vector_vector &new_value) |
| set an indexed value to a certain component. Adjust the size automatically | |
| std::pair < MC_double_vector_vector, MC_double_vector > | delete_index (const int &index_to_delete) const |
| delete the k_th value | |
| std::pair < MC_double_vector_vector, MC_double_vector_vector > | delete_index (const MC_int_vector &index_to_delete) const |
| delete the k_th value | |
| const MC_double_vector & | operator() (const int &index) const |
| get operator with bounds checks | |
| MC_double_vector & | operator() (const int &index) |
| get operator with bounds checks | |
| const MC_double_vector & | operator[] (const int &index) const |
| get operator with bounds asserts | |
| MC_double_vector & | operator[] (const int &index) |
| get operator with bounds asserts | |
| MC_double_vector_vector | operator() (const MC_int_vector &index) const |
| get a set of value | |
| MC_double_vector_vector | operator[] (const MC_int_vector &index) const |
| get a set of value | |
| const MC_double_vector & | first () const |
| return the first value | |
| MC_double_vector & | first () |
| return the first value | |
| const MC_double_vector & | last () const |
| return the last value | |
| MC_double_vector & | last () |
| return the last value | |
| const MC_double_vector * | pointer () const |
| get pointer on internal data | |
| MC_double_vector * | pointer_unprotected () |
| get pointer on internal data | |
Static Public Member Functions | |
| static MC_double_vector_vector | empty (const int &N) |
| create an empty vector of size N | |
| static MC_double_vector_vector | repeat (const MC_double_vector &input, const int &N_repeat) |
| repeat a MC_int_vector a certain amount of time | |
Private Attributes | |
| std::vector< MC_double_vector > | double_vec_list |
| internal storage as a std::vector <MC_double_vector> | |
Friends | |
| MC_double_vector_vector | operator<< (const MC_double_vector_vector &vec, const MC_double_vector &value) |
| add a value at the end of the vertex | |
| MC_double_vector_vector | operator<< (const MC_double_vector_vector &vec, const MC_double_vector_vector &to_add) |
| add some values at the end of the vertex | |
| MC_double_vector_vector | operator+ (const MC_double_vector_vector &vec, const double &to_add) |
| add an int to all the entries | |
| MC_double_vector_vector | operator- (const MC_double_vector_vector &vec, const double &to_add) |
| substract an int to all the entries | |
| std::ostream & | operator<< (std::ostream &stream, const MC_double_vector_vector &input) |
Container class for MC_double_vector.
correspond to a std::vector<std::vector> > and is internaly stored as a std::vector<MC_double_vector>
Definition at line 35 of file MC_double_vector_vector.hpp.
| mesh_conv::MC_double_vector_vector::MC_double_vector_vector | ( | ) |
| mesh_conv::MC_double_vector_vector::MC_double_vector_vector | ( | const MC_double_vector & | v0 | ) |
direct constructor from some MC_double_vector
Definition at line 10 of file MC_double_vector_vector.cpp.
References double_vec_list.
00010 {double_vec_list.push_back(v0);}
| mesh_conv::MC_double_vector_vector::MC_double_vector_vector | ( | const MC_double_vector & | v0, | |
| const MC_double_vector & | v1 | |||
| ) |
direct constructor from some MC_double_vector
Definition at line 11 of file MC_double_vector_vector.cpp.
References double_vec_list.
00012 {double_vec_list.push_back(v0);double_vec_list.push_back(v1);}
| mesh_conv::MC_double_vector_vector::MC_double_vector_vector | ( | const MC_double_vector & | v0, | |
| const MC_double_vector & | v1, | |||
| const MC_double_vector & | v2 | |||
| ) |
direct constructor from some MC_double_vector
Definition at line 13 of file MC_double_vector_vector.cpp.
References double_vec_list.
00014 {double_vec_list.push_back(v0);double_vec_list.push_back(v1);double_vec_list.push_back(v2);}
| mesh_conv::MC_double_vector_vector::MC_double_vector_vector | ( | const MC_double_vector & | v0, | |
| const MC_double_vector & | v1, | |||
| const MC_double_vector & | v2, | |||
| const MC_double_vector & | v3 | |||
| ) |
direct constructor from some MC_double_vector
Definition at line 15 of file MC_double_vector_vector.cpp.
References double_vec_list.
00016 {double_vec_list.push_back(v0);double_vec_list.push_back(v1);double_vec_list.push_back(v2);double_vec_list.push_back(v3);}
| mesh_conv::MC_double_vector_vector::MC_double_vector_vector | ( | const std::list< MC_double_vector > & | vec | ) |
direct constructor from a std::list <MC_double_vector>
Definition at line 189 of file MC_double_vector_vector.cpp.
References add().
00190 { 00191 for(std::list <MC_double_vector> :: const_iterator it=vec.begin();it!=vec.end();++it) 00192 add(*it); 00193 }

| mesh_conv::MC_double_vector_vector::MC_double_vector_vector | ( | const std::vector< MC_double_vector > & | vec | ) |
direct constructor from a vector <MC_double_vector>
Definition at line 18 of file MC_double_vector_vector.cpp.
00019 :double_vec_list(vec) 00020 {}
| MC_double_vector_vector & mesh_conv::MC_double_vector_vector::add | ( | const MC_double_vector_vector & | val | ) |
add some values at the end of the vector
Definition at line 57 of file MC_double_vector_vector.cpp.
References double_vec_list, and size().
00058 { 00059 int N=val.size(); 00060 for(int k=0;k<N;++k) 00061 double_vec_list.push_back(val[k]); 00062 return *this; 00063 }

| MC_double_vector_vector & mesh_conv::MC_double_vector_vector::add | ( | const MC_double_vector & | val | ) |
add a value at the end of the vector
Definition at line 54 of file MC_double_vector_vector.cpp.
References double_vec_list.
Referenced by delete_index(), MC_double_vector_vector(), and repeat().
00054 {double_vec_list.push_back(val);return *this;}

| void mesh_conv::MC_double_vector_vector::assert_bounds | ( | const int & | u | ) | const [inline] |
Assert the value stays within the bounds.
Definition at line 22 of file MC_double_vector_vector.cpp.
References double_vec_list.
Referenced by operator()(), and operator[]().
00023 { 00024 if(u<0 || u>=int(double_vec_list.size())) 00025 {std::cout<<"Assert mesh_conv::MC_double_vector_vector::assert_bounds("<<u<<") failed, because size="<<double_vec_list.size()<<std::endl;} 00026 }

| void mesh_conv::MC_double_vector_vector::clear | ( | ) |
clear the vector to size 0
Definition at line 41 of file MC_double_vector_vector.cpp.
References double_vec_list.
00041 {double_vec_list.clear();}
| std::pair< MC_double_vector_vector, MC_double_vector_vector > mesh_conv::MC_double_vector_vector::delete_index | ( | const MC_int_vector & | index_to_delete | ) | const |
delete the k_th value
return <the new vector,the deleted value>
Definition at line 100 of file MC_double_vector_vector.cpp.
References add(), double_vec_list, size(), and mesh_conv::MC_int_vector::to_set().
00101 { 00102 std::set <int> set_index=index_to_delete.to_set(); 00103 MC_double_vector_vector new_vec; 00104 MC_double_vector_vector deleted_vec; 00105 int N=size(); 00106 for(int k=0;k<N;k++) 00107 { 00108 if(set_index.find(k)!=set_index.end()) 00109 new_vec.add(double_vec_list[k]); 00110 else 00111 deleted_vec.add(double_vec_list[k]); 00112 } 00113 return std::pair <MC_double_vector_vector,MC_double_vector_vector> (new_vec,deleted_vec); 00114 }

| std::pair< MC_double_vector_vector, MC_double_vector > mesh_conv::MC_double_vector_vector::delete_index | ( | const int & | index_to_delete | ) | const |
delete the k_th value
return <the new vector, the deleted value>
Definition at line 89 of file MC_double_vector_vector.cpp.
References add(), double_vec_list, and size().
00090 { 00091 if(index_to_delete<0 || index_to_delete>=size()) 00092 {std::cout<<"Error in MC_double_vector_vector::delete("<<index_to_delete<<", when size="<<size()<<std::endl;exit(-1);} 00093 MC_double_vector_vector new_vec; 00094 int N=size(); 00095 for(int k=0;k<N;++k) 00096 if(k!=index_to_delete) 00097 new_vec.add(double_vec_list[k]); 00098 return std::pair <MC_double_vector_vector,MC_double_vector>(new_vec,double_vec_list[index_to_delete]); 00099 }

| MC_double_vector_vector mesh_conv::MC_double_vector_vector::empty | ( | const int & | N | ) | [static] |
create an empty vector of size N
Definition at line 214 of file MC_double_vector_vector.cpp.
References resize().
Referenced by mesh_conv::MC_mesh_index_vector::barycentric_coordinates().
00215 { 00216 MC_double_vector_vector vec;vec.resize(N); 00217 return vec; 00218 }


| MC_double_vector & mesh_conv::MC_double_vector_vector::first | ( | ) |
return the first value
Definition at line 137 of file MC_double_vector_vector.cpp.
References double_vec_list, and size().
00138 { 00139 if(size()>0) 00140 return double_vec_list[0]; 00141 else 00142 { 00143 std::cout<<"Error, call MC_double_vector_vector::first() with size=0"<<std::endl;exit(-1); 00144 exit(-1); 00145 } 00146 }

| const MC_double_vector & mesh_conv::MC_double_vector_vector::first | ( | ) | const |
return the first value
Definition at line 127 of file MC_double_vector_vector.cpp.
References double_vec_list, and size().
Referenced by set().
00128 { 00129 if(size()>0) 00130 return double_vec_list[0]; 00131 else 00132 { 00133 std::cout<<"Error, call MC_double_vector_vector::first() with size=0"<<std::endl;exit(-1); 00134 exit(-1); 00135 } 00136 }


| MC_double_vector & mesh_conv::MC_double_vector_vector::last | ( | ) |
return the last value
Definition at line 154 of file MC_double_vector_vector.cpp.
References double_vec_list, and size().
00155 { 00156 if(size()>0) 00157 return double_vec_list[size()-1]; 00158 else 00159 {std::cout<<"Error, call MC_double_vector::last() with size=0"<<std::endl;exit(-1);} 00160 }

| const MC_double_vector & mesh_conv::MC_double_vector_vector::last | ( | ) | const |
return the last value
Definition at line 147 of file MC_double_vector_vector.cpp.
References double_vec_list, and size().
00148 { 00149 if(size()>0) 00150 return double_vec_list[size()-1]; 00151 else 00152 {std::cout<<"Error, call MC_double_vector::last() with size=0"<<std::endl;exit(-1);} 00153 }

| MC_double_vector_vector mesh_conv::MC_double_vector_vector::operator() | ( | const MC_int_vector & | index | ) | const |
get a set of value
Definition at line 198 of file MC_double_vector_vector.cpp.
References double_vec_list, resize(), mesh_conv::MC_int_vector::size(), and size().
00199 { 00200 int N=size(); 00201 int N2=index.size(); 00202 MC_double_vector_vector new_vec;new_vec.resize(N2); 00203 for(int k=0;k<N2;++k) 00204 { 00205 if(index[k]<0 || index[k]>N) 00206 {std::cout<<"Error in MC_double_vector_vector::operator()(MC_double_vector), value index["<<k<<"]="<<index[k]<<" not correct for size="<<N<<std::endl;exit(-1);} 00207 new_vec[k]=double_vec_list[index[k]]; 00208 } 00209 return new_vec; 00210 }

| MC_double_vector & mesh_conv::MC_double_vector_vector::operator() | ( | const int & | index | ) |
get operator with bounds checks
Definition at line 30 of file MC_double_vector_vector.cpp.
References assert_bounds(), and double_vec_list.
00031 {assert_bounds(index);return double_vec_list[index];}

| const MC_double_vector & mesh_conv::MC_double_vector_vector::operator() | ( | const int & | index | ) | const |
get operator with bounds checks
Definition at line 28 of file MC_double_vector_vector.cpp.
References assert_bounds(), and double_vec_list.
00029 {assert_bounds(index);return double_vec_list[index];}

| MC_double_vector_vector mesh_conv::MC_double_vector_vector::operator[] | ( | const MC_int_vector & | index | ) | const |
get a set of value
Definition at line 211 of file MC_double_vector_vector.cpp.
| MC_double_vector & mesh_conv::MC_double_vector_vector::operator[] | ( | const int & | index | ) |
get operator with bounds asserts
Definition at line 34 of file MC_double_vector_vector.cpp.
References assert_bounds(), and double_vec_list.
00035 {assert_bounds(index);return double_vec_list[index];}

| const MC_double_vector & mesh_conv::MC_double_vector_vector::operator[] | ( | const int & | index | ) | const |
get operator with bounds asserts
Definition at line 32 of file MC_double_vector_vector.cpp.
References assert_bounds(), and double_vec_list.
00033 {assert_bounds(index);return double_vec_list[index];}

| const MC_double_vector * mesh_conv::MC_double_vector_vector::pointer | ( | ) | const |
get pointer on internal data
Definition at line 195 of file MC_double_vector_vector.cpp.
References double_vec_list.
00195 {return &double_vec_list[0];}
| MC_double_vector * mesh_conv::MC_double_vector_vector::pointer_unprotected | ( | ) |
get pointer on internal data
Definition at line 196 of file MC_double_vector_vector.cpp.
References double_vec_list.
00196 {return &double_vec_list[0];}
| MC_double_vector_vector mesh_conv::MC_double_vector_vector::repeat | ( | const MC_double_vector & | input, | |
| const int & | N_repeat | |||
| ) | [static] |
repeat a MC_int_vector a certain amount of time
ex. MC_int_vector_vector d=MC_int_vector_vectorrepeat(MC_int_vector(4,5,6),3) = [[4,5,6];[4,5,6];[4,5,6]];
Definition at line 116 of file MC_double_vector_vector.cpp.
References add().
Referenced by set().
00117 { 00118 if(N_repeat<0) 00119 {std::cout<<"Error in MC_double_vector_vector::repeat(MC_double_vector,"<<N_repeat<<"), repeat number must be >0"<<std::endl;exit(-1);} 00120 00121 MC_double_vector_vector vec(input); 00122 for(int k=1;k<N_repeat;++k) 00123 vec.add(input); 00124 return vec; 00125 }


| MC_double_vector_vector & mesh_conv::MC_double_vector_vector::resize | ( | const int & | new_size | ) |
resize the vector in deleting value of adding zeros
Definition at line 42 of file MC_double_vector_vector.cpp.
References double_vec_list.
Referenced by empty(), operator()(), mesh_conv::operator+(), mesh_conv::operator-(), and mesh_conv::MC_curve::skinning().
00043 { 00044 int N=double_vec_list.size(); 00045 if(N==new_size) //same size 00046 return *this; 00047 00048 if(new_size<0) 00049 {std::cout<<"Error in MC_double_vector_vector::resize("<<new_size<<") new size must be >0"<<std::endl;exit(-1);} 00050 00051 double_vec_list.resize(new_size); 00052 return *this; 00053 }

| MC_double_vector_vector & mesh_conv::MC_double_vector_vector::set | ( | const MC_int_vector & | k_index, | |
| const MC_double_vector_vector & | new_value | |||
| ) |
set an indexed value to a certain component. Adjust the size automatically
Definition at line 75 of file MC_double_vector_vector.cpp.
References first(), repeat(), mesh_conv::MC_int_vector::size(), and size().
00076 { 00077 MC_double_vector_vector v_new_value=new_value; 00078 if(new_value.size()!=1 && new_value.size()!=k_index.size()) 00079 {std::cout<<"Error in MC_double_vector_vector::set(MC_int_vector,MC_double_vector_vector), size are not correct: "<<k_index.size()<<","<<new_value.size()<<std::endl;exit(-1);} 00080 if(new_value.size()==1) 00081 v_new_value=MC_double_vector_vector::repeat(new_value.first(),k_index.size()); 00082 00083 00084 int N=v_new_value.size(); 00085 for(int k=0;k<N;k++) 00086 set(k_index[k],v_new_value[k]); 00087 return *this; 00088 }

| MC_double_vector_vector & mesh_conv::MC_double_vector_vector::set | ( | const int & | k_index, | |
| const MC_double_vector & | new_value | |||
| ) |
set an indexed value to a certain component. Adjust the size automatically
Definition at line 66 of file MC_double_vector_vector.cpp.
References double_vec_list, and size().
00067 { 00068 if(k_index<0) 00069 {std::cout<<"Error in MC_double_vector_vector::set("<<k_index<<","<<new_value<<"), index must be >0"<<std::endl;exit(-1);} 00070 if(k_index>=size()) 00071 double_vec_list.resize(k_index+1); 00072 double_vec_list[k_index]=new_value; 00073 return *this; 00074 }

| int mesh_conv::MC_double_vector_vector::size | ( | ) | const |
get the size of the vector
Definition at line 37 of file MC_double_vector_vector.cpp.
References double_vec_list.
Referenced by add(), delete_index(), first(), last(), operator()(), mesh_conv::operator+(), mesh_conv::operator-(), mesh_conv::operator<<(), and set().
00038 {return double_vec_list.size();}

| MC_double_vector_vector operator+ | ( | const MC_double_vector_vector & | vec, | |
| const double & | to_add | |||
| ) | [friend] |
add an int to all the entries
| MC_double_vector_vector operator- | ( | const MC_double_vector_vector & | vec, | |
| const double & | to_add | |||
| ) | [friend] |
substract an int to all the entries
| std::ostream& operator<< | ( | std::ostream & | stream, | |
| const MC_double_vector_vector & | input | |||
| ) | [friend] |
| MC_double_vector_vector operator<< | ( | const MC_double_vector_vector & | vec, | |
| const MC_double_vector_vector & | to_add | |||
| ) | [friend] |
add some values at the end of the vertex
| MC_double_vector_vector operator<< | ( | const MC_double_vector_vector & | vec, | |
| const MC_double_vector & | value | |||
| ) | [friend] |
add a value at the end of the vertex
std::vector<MC_double_vector> mesh_conv::MC_double_vector_vector::double_vec_list [private] |
internal storage as a std::vector <MC_double_vector>
Definition at line 223 of file MC_double_vector_vector.hpp.
Referenced by add(), assert_bounds(), clear(), delete_index(), first(), last(), MC_double_vector_vector(), operator()(), operator[](), pointer(), pointer_unprotected(), resize(), set(), and size().
1.6.1