20 #ifndef OST_MM_INTERACTION_HH
21 #define OST_MM_INTERACTION_HH
26 #include <boost/shared_ptr.hpp>
27 #include <boost/filesystem.hpp>
37 namespace ost {
namespace mol{
namespace mm{
67 void SetNames(std::vector<String> names);
69 void SetParam(std::vector<Real>& parameters);
71 std::vector<String>
GetTypes()
const {
return atom_types_; }
73 std::vector<String>
GetNames()
const {
return atom_names_; }
75 std::vector<Real>
GetParam()
const {
return parameters_; }
83 bool MatchTypes(
const std::vector<String>& atom_types)
const;
85 bool MatchNames(
const std::vector<String>& atom_names)
const;
97 template <
typename DS>
100 ds & has_type_wildcard_;
101 ds & has_name_wildcard_;
110 for(
int i = 0; i < num_types; ++i){
113 atom_types_.push_back(type);
115 for(
int i = 0; i < num_names; ++i){
118 atom_names_.push_back(name);
120 for(
int i = 0; i < num_param; ++i){
123 parameters_.push_back(param);
127 int atom_types_size = atom_types_.size();
128 int atom_names_size = atom_names_.size();
129 int parameters_size = parameters_.size();
130 ds & atom_types_size;
131 ds & atom_names_size;
132 ds & parameters_size;
134 for(std::vector<String>::iterator i = atom_types_.begin();
135 i != atom_types_.end(); ++i){
138 for(std::vector<String>::iterator i = atom_names_.begin();
139 i != atom_names_.end(); ++i){
142 for(std::vector<Real>::iterator i = parameters_.begin();
143 i != parameters_.end(); ++i){
151 bool CheckSetNamesTypes(std::vector<String>& types);
152 bool CheckSetParam(std::vector<Real>& param);
155 bool set_parameters_;
156 bool has_type_wildcard_;
157 bool has_name_wildcard_;
158 std::vector<Real> parameters_;
159 std::vector<String> atom_types_;
160 std::vector<String> atom_names_;
std::vector< String > GetNames() const
void SetNames(std::vector< String > names)
boost::shared_ptr< Interaction > InteractionPtr
bool MatchNames(const std::vector< String > &atom_names) const
bool MatchTypes(const std::vector< String > &atom_types) const
std::vector< Real > GetParam() const
bool IsParametrized() const
void SetParam(std::vector< Real > ¶meters)
ost::mol::AtomHandleList GetAtoms(const ost::mol::ResidueHandle &res) const
std::vector< String > GetTypes() const
Interaction(FuncType func_type)
FuncType GetFuncType() const
bool HasName(const String &name) const
bool ReplaceAtom(const String &name, const String &new_name, const String &new_type)
std::vector< AtomHandle > AtomHandleList
bool HasType(const String &type) const
void SetTypes(std::vector< String > types)
bool HasNameWildcard() const
bool HasTypeWildcard() const