1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
//
// Copyright (C) 2004-2006 Rational Discovery LLC
//
// @@ All Rights Reserved @@
// This file is part of the RDKit.
// The contents are covered by the terms of the BSD license
// which is included in the file license.txt, found at the root
// of the RDKit source tree.
//
#include <RDGeneral/export.h>
#ifndef __CHEMICALFEATUREFACTORY_H_02122004_1545__
#define __CHEMICALFEATUREFACTORY_H_02122004_1545__
#include "MolChemicalFeatureDef.h"
#include <iostream>
#include <boost/shared_ptr.hpp>
namespace RDKit {
class MolChemicalFeature;
typedef boost::shared_ptr<MolChemicalFeature> FeatSPtr;
typedef std::list<FeatSPtr> FeatSPtrList;
typedef FeatSPtrList::iterator FeatSPtrList_I;
//! The class for finding chemical features in molecules
class RDKIT_MOLCHEMICALFEATURES_EXPORT MolChemicalFeatureFactory {
public:
//! returns the number of feature definitions
int getNumFeatureDefs() const { return d_featDefs.size(); };
//! returns an iterator referring to the first feature definition
MolChemicalFeatureDef::CollectionType::iterator beginFeatureDefs() {
return d_featDefs.begin();
};
//! returns an iterator referring to the end of the feature definitions
MolChemicalFeatureDef::CollectionType::iterator endFeatureDefs() {
return d_featDefs.end();
};
//! returns a const_iterator referring to the first feature definition
MolChemicalFeatureDef::CollectionType::const_iterator beginFeatureDefs()
const {
return d_featDefs.begin();
};
//! returns a const_iterator referring to the end of the feature definitions
MolChemicalFeatureDef::CollectionType::const_iterator endFeatureDefs() const {
return d_featDefs.end();
};
//! appends a feature definition to the collection of features defs.
void addFeatureDef(
MolChemicalFeatureDef::CollectionType::value_type featDef) {
d_featDefs.push_back(featDef);
}
//! returns a list of features on the molecule
/*!
\param mol The molecule of interest
\param includeOnly (optional) if this is non-null, only features in this
family will be returned
\param confId (optional) the conformer id to use
*/
FeatSPtrList getFeaturesForMol(const ROMol &mol, const char *includeOnly = "",
int confId = -1) const;
private:
MolChemicalFeatureDef::CollectionType d_featDefs;
};
//! constructs a MolChemicalFeatureFactory from the data in a stream
RDKIT_MOLCHEMICALFEATURES_EXPORT MolChemicalFeatureFactory *buildFeatureFactory(
std::istream &inStream);
//! constructs a MolChemicalFeatureFactory from the data in a string
RDKIT_MOLCHEMICALFEATURES_EXPORT MolChemicalFeatureFactory *buildFeatureFactory(
const std::string &featureData);
} // end of namespace RDKit
#endif
|