527 ofstream fout( fname.c_str(), ios::out );
528 vector< ObjId > chemCompt;
529 vector< string > msgs;
535 writeHeader( fout, simDt, plotDt, runTime, defaultVol );
541 map < double, pair<Id, int> > compt_vol;
543 unsigned int num =
wildcardFind( model.
path() +
"/##[ISA=ChemCompt]", chemCompt );
546 cout <<
"Warning: writeKkit:: No model found on " << model <<
550 for ( vector< ObjId >::iterator itr = chemCompt.begin(); itr != chemCompt.end(); itr++)
552 vector < unsigned int>dims;
553 unsigned int dims_size;
558 if (comptname !=
"kinetics")
560 fout <<
"simundump group /kinetics/" << comptname <<
" 0 " <<
561 "blue" <<
" " <<
"green" <<
" x 0 0 \"\" defaultfile \\\n";
562 fout <<
" defaultfile.g 0 0 0 " << rand() % 10 + 1 <<
" " << rand() % 10 + 1 <<
" 0\n";
566 ostringstream geometry;
567 int vecIndex = itr-chemCompt.begin();
569 geometry <<
"simundump geometry /kinetics" <<
"/geometry[" << vecIndex <<
"] 0 " << size <<
" " << ndim <<
" sphere " <<
" \"\" white black 0 0 0\n";
571 geometry <<
"simundump geometry /kinetics" <<
"/geometry 0 " << size <<
" " << ndim <<
" sphere " <<
" \"\" white black 0 0 0\n";
572 fout << geometry.str();
573 compt_vol.insert(make_pair(size,make_pair(*itr,vecIndex)));
576 map<double, pair<Id, int> >::iterator compt;
577 for (compt = compt_vol.begin(); compt != compt_vol.end(); compt++)
581 vector< ObjId > Compt_spe;
583 int species_size = 1;
585 for (vector <ObjId> :: iterator itrp = Compt_spe.begin(); itrp != Compt_spe.end(); itrp++)
589 string enzpoolClass =
Field <string> :: get(enzPoolparent,
"className");
590 if (enzpoolClass !=
"ZombieEnz" or enzpoolClass !=
"Enz")
592 Id annotaId( path+
"/info");
593 if ( annotaId !=
Id() )
599 writePool(fout, *itrp,bg,fg,x,y,compt->second.first,compt->second.second);
603 vector< ObjId > Compt_Func;
605 for (vector <ObjId> :: iterator itrF= Compt_Func.begin(); itrF != Compt_Func.end(); itrF++)
610 vector< ObjId > Compt_Reac;
612 for (vector <ObjId> :: iterator itrR= Compt_Reac.begin(); itrR != Compt_Reac.end(); itrR++)
615 Id annotaId( path+
"/info");
622 writeReac( fout, *itrR, bg, fg, x, y, compt->second.first);
625 vector< ObjId > Compt_Enz;
627 for (vector <ObjId> :: iterator itrE= Compt_Enz.begin(); itrE != Compt_Enz.end(); itrE++)
630 Id annotaId( path+
"/info");
637 writeEnz( fout, *itrE, bg, fg, x, y, compt->second.first);
646 vector< ObjId > table;
648 for (vector <ObjId> :: iterator itrT= table.begin(); itrT != table.end(); itrT++)
652 for (vector <Id> :: iterator tabItem= tabSrc.begin(); tabItem != tabSrc.end(); tabItem++)
660 Id parentId = compt_vol[vol].first;
662 Id annotaId(path+
"/info");
int wildcardFind(const string &path, vector< ObjId > &ret)
void writeMsgs(ofstream &fout, const vector< string > &msgs)
double estimateSimTimes(double &simDt, double &plotDt)
double estimateDefaultVol(Id model)
Returns an estimate of the default volume used in the model.
void writeReac(ofstream &fout, Id id, string colour, string textcolour, double x, double y, Id comptid)
std::string path(const std::string &separator="/") const
void writeGroup(ofstream &fout, Id model)
void writeFooter(ofstream &fout)
void storeEnzMsgs(Id enz, vector< string > &msgs, Id comptid)
void storeReacMsgs(Id reac, vector< string > &msgs, Id comptid)
void writePool(ofstream &fout, Id id, string colour, string textcolour, double x, double y, Id comptid, int comptIndex)
void storePlotMsgs(Id tab, vector< string > &msgs, Id pool, string bg, Id comptid)
void writePlot(ofstream &fout, Id id, string colour, string textcolour, double x, double y)
void writeEnz(ofstream &fout, Id id, string colour, string textcolour, double x, double y, Id comptid)
void storeFunctionMsgs(Id func, vector< string > &msgs, map< double, pair< Id, int > > &compt_vol)
static A get(const ObjId &dest, const string &field)
void writeGui(ofstream &fout)
void writeHeader(ofstream &fout, double simdt, double plotdt, double maxtime, double defaultVol)