--- branches/new_design/OOPSE-4/src/io/BendTypesSectionParser.cpp 2004/11/30 04:14:43 1800 +++ branches/new_design/OOPSE-4/src/io/BendTypesSectionParser.cpp 2004/11/30 04:43:29 1801 @@ -45,11 +45,6 @@ void BendTypesSectionParser::parseLine(ForceField& ff, void BendTypesSectionParser::parseLine(ForceField& ff,const std::string& line, int lineNo){ StringTokenizer tokenizer(line); - std::string at1; - std::string at2; - std::string at3; - std::string bt; - double theta0; BendType* bendType = NULL; int nTokens = tokenizer.countTokens(); @@ -59,11 +54,11 @@ void BendTypesSectionParser::parseLine(ForceField& ff, return; } - at1 = tokenizer.nextToken(); - at2 = tokenizer.nextToken(); - at3 = tokenizer.nextToken(); - bt = tokenizer.nextToken(); - theta0 = tokenizer.nextTokenAsDouble(); + std::string at1 = tokenizer.nextToken(); + std::string at2 = tokenizer.nextToken(); + std::string at3 = tokenizer.nextToken(); + BendTypeEnum bt = getBendTypeEnum(tokenizer.nextToken()); + double theta0 = tokenizer.nextTokenAsDouble(); nTokens -= 5; //switch is a maintain nightmare @@ -136,7 +131,7 @@ void BendTypesSectionParser::parseLine(ForceField& ff, int nPairs = nTokens / 2; int power; double coefficient; - PolynomialBendType* pbt = new PolynomialBendType(); + PolynomialBendType* pbt = new PolynomialBendType(theta0); for (int i = 0; i < nPairs; ++i) { power = tokenizer.nextTokenAsInt(); @@ -147,7 +142,9 @@ void BendTypesSectionParser::parseLine(ForceField& ff, break; + case btUnknown : default: + break; } @@ -156,11 +153,11 @@ BendTypeEnum BendTypesSectionParser::getTorsionTypeEnu } } -BendTypeEnum BendTypesSectionParser::getTorsionTypeEnum(const std::string& str) { - std::map::iterator i; +BendTypesSectionParser::BendTypeEnum BendTypesSectionParser::getBendTypeEnum(const std::string& str) { + std::map::iterator i; i = stringToEnumMap_.find(str); - return i == stringToEnumMap_.end() ? TorsionTypesSectionParser::ttUnknown : i->second; + return i == stringToEnumMap_.end() ? btUnknown : i->second; } } //end namespace oopse