Changes in src/molecule.cpp [ead4e6:24a5e0]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/molecule.cpp
read4e6 r24a5e0 31 31 * Initialises molecule list with correctly referenced start and end, and sets molecule::last_atom to zero. 32 32 */ 33 molecule::molecule(const periodentafel * const teil) : elemente(teil), start(World::get Instance().createAtom()), end(World::getInstance().createAtom()),33 molecule::molecule(const periodentafel * const teil) : elemente(teil), start(World::get()->createAtom()), end(World::get()->createAtom()), 34 34 first(new bond(start, end, 1, -1)), last(new bond(start, end, 1, -1)), MDSteps(0), AtomCount(0), 35 35 BondCount(0), ElementCount(0), NoNonHydrogen(0), NoNonBonds(0), NoCyclicBonds(0), BondDistance(0.), … … 56 56 57 57 molecule *NewMolecule(){ 58 return new molecule(World::get Instance().getPeriode());58 return new molecule(World::get()->getPeriode()); 59 59 } 60 60 … … 99 99 100 100 std::string molecule::calcFormula(){ 101 std::map<atomicNumber_t,unsigned int> counts;101 int Counts[MAX_ELEMENTS]; 102 102 stringstream sstr; 103 periodentafel *periode = World::getInstance().getPeriode(); 103 for (int j = 0; j<MAX_ELEMENTS;j++) 104 Counts[j] = 0; 104 105 for(atom *Walker = start; Walker != end; Walker = Walker->next) { 105 counts[Walker->type->getNumber()]++; 106 } 107 std::map<atomicNumber_t,unsigned int>::reverse_iterator iter; 108 for(iter = counts.rbegin(); iter != counts.rend(); ++iter) { 109 atomicNumber_t Z = (*iter).first; 110 sstr << periode->FindElement(Z)->symbol << (*iter).second; 106 Counts[Walker->type->Z]++; 107 } 108 for(element* Elemental = elemente->end; Elemental != elemente->start; Elemental = Elemental->previous) { 109 if (Counts[Elemental->Z] != 0) 110 sstr << Elemental->symbol << Counts[Elemental->Z]; 111 111 } 112 112 return sstr.str(); … … 261 261 switch(TopBond->BondDegree) { 262 262 case 1: 263 FirstOtherAtom = World::get Instance().createAtom(); // new atom263 FirstOtherAtom = World::get()->createAtom(); // new atom 264 264 FirstOtherAtom->type = elemente->FindElement(1); // element is Hydrogen 265 265 FirstOtherAtom->v.CopyVector(&TopReplacement->v); // copy velocity … … 318 318 319 319 // create the two Hydrogens ... 320 FirstOtherAtom = World::get Instance().createAtom();321 SecondOtherAtom = World::get Instance().createAtom();320 FirstOtherAtom = World::get()->createAtom(); 321 SecondOtherAtom = World::get()->createAtom(); 322 322 FirstOtherAtom->type = elemente->FindElement(1); 323 323 SecondOtherAtom->type = elemente->FindElement(1); … … 373 373 case 3: 374 374 // take the "usual" tetraoidal angle and add the three Hydrogen in direction of the bond (height of the tetraoid) 375 FirstOtherAtom = World::get Instance().createAtom();376 SecondOtherAtom = World::get Instance().createAtom();377 ThirdOtherAtom = World::get Instance().createAtom();375 FirstOtherAtom = World::get()->createAtom(); 376 SecondOtherAtom = World::get()->createAtom(); 377 ThirdOtherAtom = World::get()->createAtom(); 378 378 FirstOtherAtom->type = elemente->FindElement(1); 379 379 SecondOtherAtom->type = elemente->FindElement(1); … … 494 494 MDSteps++; 495 495 for(i=0;i<NumberOfAtoms;i++){ 496 Walker = World::get Instance().createAtom();496 Walker = World::get()->createAtom(); 497 497 getline(xyzfile,line,'\n'); 498 498 istringstream *item = new istringstream(line);
Note:
See TracChangeset
for help on using the changeset viewer.