#include <openbabel/grid.h>
Public Member Functions | |
OBFloatGrid () | |
~OBFloatGrid () | |
void | Init (OBMol &box, double spacing, double pad=0.0) |
vector3 | GetMin () |
void | GetMin (double *a) |
vector3 | GetMax () |
void | GetMax (double *a) |
double | GetSpacing () const |
void | GetSpacing (double &s) |
double | GetScale () const |
double | GetHalfSpace () const |
int | GetXdim () const |
int | GetYdim () const |
int | GetZdim () const |
void | GetDim (int *a) |
vector3 | GetMidpointVector () |
vector3 | GetXAxis () const |
vector3 | GetYAxis () const |
vector3 | GetZAxis () const |
void | SetNumberOfPoints (int nx, int ny, int nz) |
void | SetXAxis (vector3) |
void | SetYAxis (vector3) |
void | SetZAxis (vector3) |
void | SetLimits (const vector3 &origin, const vector3 &x, const vector3 &y, const vector3 &z) |
void | SetLimits (const double origin[3], const double x[3], const double y[3], const double z[3]) |
std::vector< double > | GetDataVector () |
void | SetVals (const std::vector< double > &vals) |
double * | GetVals () |
double | GetValue (int i, int j, int k) |
void | SetVals (double *ptr) |
bool | SetValue (int i, int j, int k, double val) |
vector3 | Center () |
double | Inject (double x, double y, double z) |
void | IndexToCoords (int idx, double &x, double &y, double &z) |
void | CoordsToIndex (int *, double *) |
int | CoordsToIndex (double x, double y, double z) |
double | Interpolate (double, double, double) |
double | InterpolateDerivatives (double, double, double, double *derivatives) |
virtual void | Init (OBMol &box) |
double | GetXmin () const |
double | GetYmin () const |
double | GetZmin () const |
double | GetXmax () const |
double | GetYmax () const |
double | GetZmax () const |
bool | PointIsInBox (double x, double y, double z) |
bool | PointIsInBox (double *c) |
bool | PointIsInBox (vector3 v) |
virtual bool | Clear () |
virtual OBBase * | DoTransformations (const std::map< std::string, std::string > *) |
template<class T> | |
T * | CastAndClear (bool clear=true) |
Generic data handling methods (via OBGenericData) | |
bool | HasData (const std::string &) |
bool | HasData (const char *) |
bool | HasData (const unsigned int type) |
void | DeleteData (unsigned int type) |
void | DeleteData (OBGenericData *) |
void | DeleteData (std::vector< OBGenericData * > &) |
bool | DeleteData (const std::string &s) |
void | SetData (OBGenericData *d) |
void | CloneData (OBGenericData *d) |
unsigned int | DataSize () const |
OBGenericData * | GetData (const unsigned int type) |
OBGenericData * | GetData (const std::string &) |
OBGenericData * | GetData (const char *) |
std::vector< OBGenericData * > & | GetData () |
std::vector< OBGenericData * > | GetData (DataOrigin source) |
std::vector< OBGenericData * > | GetAllData (const unsigned int type) |
OBDataIterator | BeginData () |
OBDataIterator | EndData () |
Static Public Member Functions | |
static const char * | ClassDescription () |
Protected Attributes | |
std::vector< double > | _values |
int * | _ival |
double | _midz |
double | _midx |
double | _midy |
int | _ydim |
int | _xdim |
int | _zdim |
double | _spacing |
double | _inv_spa |
double | _halfSpace |
vector3 | _xAxis |
vector3 | _yAxis |
vector3 | _zAxis |
double | _xmin |
double | _xmax |
double | _ymin |
double | _ymax |
double | _zmin |
double | _zmax |
std::vector< OBGenericData * > | _vdata |
Friends | |
std::ostream & | operator<< (std::ostream &, const OBFloatGrid &) |
std::istream & | operator>> (std::istream &, OBFloatGrid &) |
Supports input/output and base functionality for simple 3D discrete grids of some function -- typically around a molecule. Typically you will want to use OBGridData which uses OBFloatGrid to store its data.
OBFloatGrid | ( | ) | [inline] |
~OBFloatGrid | ( | ) | [inline] |
void Init | ( | OBMol & | box, | |
double | spacing, | |||
double | pad = 0.0 | |||
) |
Initialize the grid using this molecule as a box (plus a padding) with the supplied spacing between points.
Referenced by OBForceField::GetGrid().
vector3 GetMin | ( | ) | [inline] |
void GetMin | ( | double * | a | ) | [inline] |
vector3 GetMax | ( | ) | [inline] |
void GetMax | ( | double * | a | ) | [inline] |
double GetSpacing | ( | ) | const [inline] |
void GetSpacing | ( | double & | s | ) | [inline] |
double GetScale | ( | ) | const [inline] |
double GetHalfSpace | ( | ) | const [inline] |
int GetXdim | ( | ) | const [inline] |
int GetYdim | ( | ) | const [inline] |
int GetZdim | ( | ) | const [inline] |
void GetDim | ( | int * | a | ) | [inline] |
Get the x, y and z dimensions (must pass an double[3] at least).
vector3 GetMidpointVector | ( | ) | [inline] |
vector3 GetXAxis | ( | ) | const [inline] |
vector3 GetYAxis | ( | ) | const [inline] |
vector3 GetZAxis | ( | ) | const [inline] |
void SetNumberOfPoints | ( | int | nx, | |
int | ny, | |||
int | nz | |||
) |
Sets the number of points in the x, y and z directions.
void SetXAxis | ( | vector3 | v | ) |
void SetYAxis | ( | vector3 | v | ) |
void SetZAxis | ( | vector3 | v | ) |
Set the limits (i.e., the origin point and the axes) NOTE: You must set the number of points first, with SetNumberOfPoints so the grid spacing can be calculated
Referenced by OBFloatGrid::SetLimits().
void SetLimits | ( | const double | origin[3], | |
const double | x[3], | |||
const double | y[3], | |||
const double | z[3] | |||
) |
std::vector< double > GetDataVector | ( | ) |
Get a copy of the vector that stores the points in the grid.
void SetVals | ( | const std::vector< double > & | vals | ) |
Set the values in the grid to those in the vector passed. Note that the vector must be of the same dimensions as the grid based on the values given in SetNumberOfPoints(int nx, int ny, int nz).
double* GetVals | ( | ) | [inline] |
double GetValue | ( | int | i, | |
int | j, | |||
int | k | |||
) | [inline] |
void SetVals | ( | double * | ptr | ) | [inline] |
bool SetValue | ( | int | i, | |
int | j, | |||
int | k, | |||
double | val | |||
) | [inline] |
Set the value at the grid point specified by i, j and k to val.
vector3 Center | ( | ) | [inline] |
double Inject | ( | double | x, | |
double | y, | |||
double | z | |||
) |
void IndexToCoords | ( | int | idx, | |
double & | x, | |||
double & | y, | |||
double & | z | |||
) |
void CoordsToIndex | ( | int * | idx, | |
double * | c | |||
) |
Referenced by OBFloatGrid::Inject().
int CoordsToIndex | ( | double | x, | |
double | y, | |||
double | z | |||
) |
double Interpolate | ( | double | x, | |
double | y, | |||
double | z | |||
) |
double InterpolateDerivatives | ( | double | x, | |
double | y, | |||
double | z, | |||
double * | derivatives | |||
) |
void Init | ( | OBMol & | box | ) | [virtual, inherited] |
Initialize the grid based on a box around the molecule box
Subclasses should overload this method -- this only tracks the dimension of the box itself.
Referenced by OBFloatGrid::Init(), and OBProxGrid::Setup().
double GetXmin | ( | ) | const [inline, inherited] |
double GetYmin | ( | ) | const [inline, inherited] |
double GetZmin | ( | ) | const [inline, inherited] |
double GetXmax | ( | ) | const [inline, inherited] |
double GetYmax | ( | ) | const [inline, inherited] |
double GetZmax | ( | ) | const [inline, inherited] |
bool PointIsInBox | ( | double | x, | |
double | y, | |||
double | z | |||
) | [inline, inherited] |
bool PointIsInBox | ( | double * | c | ) | [inline, inherited] |
bool PointIsInBox | ( | vector3 | v | ) | [inline, inherited] |
bool Clear | ( | void | ) | [virtual, inherited] |
Clear any and all data associated with this object.
This method can be called by OBConversion::Read() before reading data. Derived classes should be sure to call OBBase::Clear() to remove inherited generic data.
Reimplemented in OBAtom, OBMol, and OBResidue.
Referenced by OBResidue::Clear(), OBMol::Clear(), and OBAtom::Clear().
virtual OBBase* DoTransformations | ( | const std::map< std::string, std::string > * | ) | [inline, virtual, inherited] |
Perform a set of transformations specified by the user
Typically these are program options to filter or modify an object For example, see OBMol::DoTransformations() and OBMol::ClassDescription()
Reimplemented in OBMol.
static const char* ClassDescription | ( | ) | [inline, static, inherited] |
Reimplemented in OBMol, and OBReaction.
T* CastAndClear | ( | bool | clear = true |
) | [inline, inherited] |
By default clears the object. Called from ReadMolecule of most format classes.
bool HasData | ( | const std::string & | s | ) | [inherited] |
Referenced by OBMol::AddAtom(), OBMol::FindAngles(), OBMol::FindSSSR(), OBMol::FindTorsions(), OBForceField::GetConformers(), OBForceField::GetCoordinates(), OBMol::GetEnergies(), OBMol::GetEnergy(), OBMol::GetSSSR(), OBBase::HasData(), OBDescriptor::MatchPairData(), OBMol::NewAtom(), OBMol::operator=(), and OBMol::SetEnergies().
bool HasData | ( | const char * | s | ) | [inherited] |
bool HasData | ( | const unsigned int | type | ) | [inherited] |
void DeleteData | ( | unsigned int | type | ) | [inherited] |
Delete any data matching the given OBGenericDataType.
Referenced by OBMol::AddAtom(), OBMol::BeginModify(), OBBuilder::CorrectStereoBonds(), OBDescriptor::DeleteProperties(), OBMol::FindSSSR(), OBMol::NewAtom(), and OBForceField::Setup().
void DeleteData | ( | OBGenericData * | gd | ) | [inherited] |
Delete the given generic data from this object.
void DeleteData | ( | std::vector< OBGenericData * > & | vg | ) | [inherited] |
Delete all of the given generic data from this object.
bool DeleteData | ( | const std::string & | s | ) | [inherited] |
Deletes the generic data with the specified attribute, returning false if not found.
void SetData | ( | OBGenericData * | d | ) | [inline, inherited] |
Adds a data object; does nothing if d==NULL.
Referenced by OBMol::AddBond(), OBGastChrg::AssignPartialCharges(), OpenBabel::CalcSignedVolume(), OBMol::DoTransformations(), OBAtom::Duplicate(), OBMol::FindAngles(), OBMol::FindSSSR(), OBMol::FindTorsions(), OBForceField::GetConformers(), OBForceField::GetCoordinates(), OBMol::GetEnergies(), OBMol::GetEnergy(), OBMol::GetFormula(), OBMol::GetNextFragment(), OBMol::GetSSSR(), OBMoleculeFormat::MakeCombinedMolecule(), OBMol::operator=(), OBDescriptor::PredictAndSave(), OBMol::SetEnergies(), and OBMol::SetFormula().
void CloneData | ( | OBGenericData * | d | ) | [inherited] |
Adds a copy of a data object; does nothing if d == NULL
unsigned int DataSize | ( | ) | const [inline, inherited] |
OBGenericData * GetData | ( | const unsigned int | type | ) | [inherited] |
Referenced by OpenBabel::CalcSignedVolume(), OpenBabel::CorrectChirality(), OBDescriptor::FilterCompare(), OBForceField::GetConformers(), OBForceField::GetCoordinates(), OBMol::GetNextFragment(), OBDescriptor::GetValues(), OBMoleculeFormat::MakeCombinedMolecule(), OBMolAngleIter::OBMolAngleIter(), OBMolRingIter::OBMolRingIter(), OBMolTorsionIter::OBMolTorsionIter(), OBMol::operator=(), and OBDescriptor::PredictAndSave().
OBGenericData * GetData | ( | const std::string & | s | ) | [inherited] |
the value given an attribute name
OBGenericData * GetData | ( | const char * | s | ) | [inherited] |
the value given an attribute name
std::vector<OBGenericData*>& GetData | ( | ) | [inline, inherited] |
Referenced by OBMol::BeginModify(), OBMol::DoTransformations(), OBMol::FindSSSR(), OBBase::GetData(), OBMol::GetEnergies(), OBMol::GetEnergy(), OBMol::GetFormula(), OBMol::GetSSSR(), OBMol::SetEnergies(), and OBMol::SetFormula().
std::vector< OBGenericData * > GetData | ( | DataOrigin | source | ) | [inherited] |
std::vector< OBGenericData * > GetAllData | ( | const unsigned int | type | ) | [inherited] |
OBDataIterator BeginData | ( | ) | [inline, inherited] |
Referenced by OBMol::AddAtom(), OBAtom::Duplicate(), OBMoleculeFormat::MakeCombinedMolecule(), OBMol::NewAtom(), and OBMol::operator=().
OBDataIterator EndData | ( | ) | [inline, inherited] |
Referenced by OBMol::AddAtom(), OBAtom::Duplicate(), OBMoleculeFormat::MakeCombinedMolecule(), OBMol::NewAtom(), and OBMol::operator=().
std::ostream& operator<< | ( | std::ostream & | os, | |
const OBFloatGrid & | fg | |||
) | [friend] |
std::istream& operator>> | ( | std::istream & | is, | |
OBFloatGrid & | fg | |||
) | [friend] |
std::vector<double> _values [protected] |
int* _ival [protected] |
double _midz [protected] |
Referenced by OBFloatGrid::Init(), OpenBabel::operator<<(), and OpenBabel::operator>>().
double _midx [protected] |
Referenced by OBFloatGrid::Init(), OpenBabel::operator<<(), and OpenBabel::operator>>().
double _midy [protected] |
center of grid in world coordinates
Referenced by OBFloatGrid::Init(), OpenBabel::operator<<(), and OpenBabel::operator>>().
int _ydim [protected] |
int _xdim [protected] |
int _zdim [protected] |
grid dimensions
Referenced by OBFloatGrid::CoordsToIndex(), OBFloatGrid::IndexToCoords(), OBFloatGrid::Init(), OBFloatGrid::Interpolate(), OBFloatGrid::InterpolateDerivatives(), OpenBabel::operator<<(), OpenBabel::operator>>(), OBFloatGrid::SetLimits(), OBFloatGrid::SetNumberOfPoints(), and OBFloatGrid::SetVals().
double _spacing [protected] |
double _inv_spa [protected] |
spacing between grid points and its inverse
Referenced by OBFloatGrid::CoordsToIndex(), OBFloatGrid::Init(), OBFloatGrid::Interpolate(), OBFloatGrid::InterpolateDerivatives(), OpenBabel::operator<<(), OpenBabel::operator>>(), and OBFloatGrid::SetLimits().
double _halfSpace [protected] |
half of the grid spacing
Referenced by OBFloatGrid::IndexToCoords(), OBFloatGrid::Init(), OBFloatGrid::Interpolate(), OBFloatGrid::InterpolateDerivatives(), OpenBabel::operator>>(), and OBFloatGrid::SetLimits().
Referenced by OBFloatGrid::SetYAxis().
Referenced by OBFloatGrid::SetZAxis().
double _xmin [protected, inherited] |
Referenced by OBFloatGrid::CoordsToIndex(), OBProxGrid::GetProxVector(), OBFloatGrid::IndexToCoords(), OBFloatGrid::Init(), OBGrid::Init(), OBFloatGrid::Interpolate(), OBFloatGrid::InterpolateDerivatives(), OpenBabel::operator<<(), OpenBabel::operator>>(), OBFloatGrid::SetLimits(), and OBProxGrid::Setup().
double _xmax [protected, inherited] |
double _ymin [protected, inherited] |
Referenced by OBFloatGrid::CoordsToIndex(), OBProxGrid::GetProxVector(), OBFloatGrid::IndexToCoords(), OBFloatGrid::Init(), OBGrid::Init(), OBFloatGrid::Interpolate(), OBFloatGrid::InterpolateDerivatives(), OpenBabel::operator<<(), OpenBabel::operator>>(), OBFloatGrid::SetLimits(), and OBProxGrid::Setup().
double _ymax [protected, inherited] |
double _zmin [protected, inherited] |
Referenced by OBFloatGrid::CoordsToIndex(), OBProxGrid::GetProxVector(), OBFloatGrid::IndexToCoords(), OBFloatGrid::Init(), OBGrid::Init(), OBFloatGrid::Interpolate(), OBFloatGrid::InterpolateDerivatives(), OpenBabel::operator<<(), OpenBabel::operator>>(), OBFloatGrid::SetLimits(), and OBProxGrid::Setup().
double _zmax [protected, inherited] |
the min/max axes in XYZ axes (i.e., the box)
Referenced by OBProxGrid::GetProxVector(), OBFloatGrid::Init(), OBGrid::Init(), OBFloatGrid::Inject(), OBFloatGrid::Interpolate(), OBFloatGrid::InterpolateDerivatives(), OpenBabel::operator<<(), OpenBabel::operator>>(), OBFloatGrid::SetLimits(), and OBProxGrid::Setup().
std::vector<OBGenericData*> _vdata [protected, inherited] |
Custom data.
Referenced by OBBase::Clear(), OBBase::CloneData(), OBBase::DeleteData(), OBAtom::Duplicate(), OBBase::GetAllData(), OBBase::GetData(), OBBase::HasData(), OBBond::OBBond(), OBMol::OBMol(), and OBResidue::OBResidue().