[Bio] / MExplorer / xduGen.cc Repository:
ViewVC logotype

Annotation of /MExplorer/xduGen.cc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (view) (download) (as text)

1 : efrank 1.1 //************************************************************************
2 :     // Play with exploring the e. coli reco in biosimscratch.
3 :     //
4 :     //************************************************************************
5 :    
6 : efrank 1.2 #include <stdio.h>
7 : efrank 1.1 #include <string>
8 :     #include <vector>
9 :     #include <iterator>
10 :    
11 :     #include "RecoReadout/RecoElem.hh"
12 :     #include "RecoReadout/Reaction.hh"
13 :    
14 :     int xduGen( RecoElem& r, std::string path );
15 :     void editName( std::string& s );
16 :    
17 : efrank 1.2
18 : efrank 1.1 int
19 :     xduGen( RecoElem& r, std::string path ) {
20 :     //************************************************************************
21 :     int result = 0;
22 :     std::string s;
23 : efrank 1.2 enum {MaxDigits = 32};
24 :     char idAsStr[32];
25 : efrank 1.1
26 :     vector<RecoElem>& kids = r.getSubElements( );
27 :     int nKid = kids.size();
28 :    
29 :     s=r.getName(); // copy so we don't mod the orig
30 :     editName( s ); // xdu has bugs. must mod the name a little
31 :     if ( 0 == nKid ) {
32 : efrank 1.2 cout << "1 " << path << "/" <<s << "[" << r.getId() << "]" << endl;
33 : efrank 1.1 return 1;
34 :     } else {
35 :     for (int i=0; i<nKid; i++ ) {
36 : efrank 1.2 snprintf(idAsStr, MaxDigits, "%d", r.getId() );
37 :     result += xduGen( kids[i], path + "/" + s + "[" + idAsStr + "]" );
38 : efrank 1.1 }
39 : efrank 1.2 cout << result << " " << path << "/" << s << "[" << r.getId() << "]"
40 :     << endl;
41 : efrank 1.1 return result;
42 :     }
43 :     }
44 :    
45 :     //************************************************************************
46 :     void
47 :     editName( std::string& s ) {
48 :     //************************************************************************
49 :     // xdu chokes on name with spaces in them. Replace them with
50 :     // underscores. hack hack hack
51 :    
52 :     int l=s.size();
53 :     for( int i=0; i<l; i++) {
54 :     if ( s[i] == ' ' ) s[i] = '_';
55 :     }
56 :    
57 :     return;
58 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3