00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #include "NumVarArray.h"
00033 #include "Model.h"
00034
00035 namespace Modelib {
00036
00037
00038
00045 NumVarArray::NumVarArray( Model & _modele,
00046 unsigned size,
00047 float _lb,
00048 float _ub,
00049 MuteVar::VarType _type,
00050 const std::string & nom,
00051 const std::string & fin )
00052 : modele(&_modele),type(_type)
00053 {
00054 if(nom != "unknow")
00055 for(unsigned i=0;i < size; ++i)
00056 {
00057 char id[16];
00058 sprintf(id,"%d",i);
00059 varArray.push_back(new NumVar(_modele,_lb,_ub,_type,nom+id+fin));
00060 }
00061 else
00062 for(unsigned i=0;i < size; ++i)
00063 varArray.push_back(new NumVar(_modele,_lb,_ub,_type));
00064 }
00065
00069 NumVarArray::NumVarArray( const NumVarArray & nva )
00070 :type(nva.type)
00071 {
00072 for(unsigned i = 0; i < nva.varArray.size(); ++i)
00073 varArray.push_back(new NumVar(*nva.varArray[i]));
00074 }
00075
00080 NumVarArray::NumVarArray( const std::vector<NumVar> & nva )
00081 {
00082 if( nva.size() )
00083 {
00084 type = nva[0].GetType();
00085 for(unsigned i = 0; i < nva.size(); ++i)
00086 varArray.push_back(new NumVar(nva[i]));
00087 }
00088 }
00089
00090
00091
00092
00096 NumVarArray & NumVarArray::operator= ( const NumVarArray & nva )
00097 {
00098 type = nva.type;
00099 for(unsigned i = 0; i < nva.varArray.size(); ++i)
00100 varArray.push_back(new NumVar(*nva.varArray[i]));
00101 return *this;
00102 }
00103
00104
00105
00109 NumVarArray::~NumVarArray()
00110 {
00111 for(unsigned i = 0; i < Size(); ++i)
00112 delete varArray[i];
00113 }
00114
00115
00116 #ifdef COMPILE_FOR_PYTHON
00117 #include "py_NumVarArray.cxx"
00118 #endif
00119
00120
00121 }
00122