Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __FREECHEMICALFEATURE_H_13012005_1023__
00011 #define __FREECHEMICALFEATURE_H_13012005_1023__
00012
00013 #include <Geometry/point.h>
00014 #include <ChemicalFeatures/ChemicalFeature.h>
00015
00016 namespace ChemicalFeatures {
00017
00018
00019
00020
00021 class FreeChemicalFeature : public ChemicalFeature {
00022 public:
00023
00024 FreeChemicalFeature(std::string family, std::string type,
00025 const RDGeom::Point3D &loc) :
00026 d_family(family), d_type(type), d_position(loc) {
00027 }
00028
00029
00030 FreeChemicalFeature(std::string family, const RDGeom::Point3D &loc) :
00031 d_family(family), d_type(""), d_position(loc) {
00032 }
00033
00034
00035 FreeChemicalFeature() :
00036 d_family(""), d_type(""), d_position(RDGeom::Point3D(0.0, 0.0, 0.0)) {
00037 }
00038
00039 explicit FreeChemicalFeature(const std::string &pickle) {
00040 this->initFromString(pickle);
00041 }
00042
00043 FreeChemicalFeature(const FreeChemicalFeature &other) :
00044 d_family(other.getFamily()), d_type(other.getType()), d_position(other.getPos()) {
00045 }
00046
00047 ~FreeChemicalFeature() {}
00048
00049
00050 const std::string& getFamily() const {
00051 return d_family;
00052 }
00053
00054
00055 const std::string& getType() const {
00056 return d_type;
00057 }
00058
00059
00060 RDGeom::Point3D getPos() const {
00061 return d_position;
00062 }
00063
00064
00065 void setFamily(const std::string &family) {
00066 d_family = family;
00067 }
00068
00069
00070 void setType(const std::string &type) {
00071 d_type = type;
00072 }
00073
00074
00075 void setPos(const RDGeom::Point3D &loc) {
00076
00077 d_position = loc;
00078
00079 }
00080
00081
00082 std::string toString() const;
00083
00084 void initFromString(const std::string &pickle);
00085
00086 private:
00087 std::string d_family;
00088 std::string d_type;
00089 RDGeom::Point3D d_position;
00090 };
00091 }
00092
00093
00094 #endif
00095