10 #ifndef _RD_CONFORMER_H 11 #define _RD_CONFORMER_H 15 #include <boost/smart_ptr.hpp> 28 const char *
message()
const {
return _msg.c_str(); };
46 Conformer() : df_is3D(true), d_id(0), dp_mol(NULL) { d_positions.clear(); };
49 Conformer(
unsigned int numAtoms) : df_is3D(true), d_id(0), dp_mol(NULL) {
53 d_positions.resize(0);
66 void resize(
unsigned int size) { d_positions.resize(size); }
69 void reserve(
unsigned int size) { d_positions.reserve(size); }
85 return getAtomPos(rdcast<unsigned int>(atomId));
93 return getAtomPos(rdcast<unsigned int>(atomId));
99 if (atomId >= d_positions.size()) {
102 d_positions[atomId] = position;
107 return setAtomPos(rdcast<unsigned int>(atomId), position);
110 inline unsigned int getId()
const {
return d_id; }
113 inline void setId(
unsigned int id) { d_id = id; }
116 inline unsigned int getNumAtoms()
const {
return rdcast<unsigned int>(d_positions.size()); }
118 inline bool is3D()
const {
return df_is3D; }
119 inline void set3D(
bool v) { df_is3D = v; }
123 void setOwningMol(
ROMol *mol);
126 void setOwningMol(
ROMol &mol);
std::vector< Point3D > POINT3D_VECT
ROMol is a molecule class that is intended to have a fixed topology.
Includes a bunch of functionality for handling Atom and Bond queries.
boost::shared_ptr< Conformer > CONFORMER_SPTR