#include <openbabel/griddata.h>

Public Types | |
| enum | Unit { BOHR, ANGSTROM, OTHER } |
Public Member Functions | |
| OBGridData () | |
| ~OBGridData () | |
| virtual OBGenericData * | Clone (OBBase *) const |
| void | SetAttribute (const std::string &v) |
| void | SetOrigin (const DataOrigin s) |
| virtual const std::string & | GetAttribute () const |
| unsigned int | GetDataType () const |
| virtual const std::string & | GetValue () const |
| virtual DataOrigin | GetOrigin () const |
Property Methods | |
| void | GetAxes (double x[3], double y[3], double z[3]) const |
| vector3 | GetXAxis () const |
| vector3 | GetYAxis () const |
| vector3 | GetZAxis () const |
| void | GetAxes (vector3 &v1, vector3 &v2, vector3 &v3) const |
| void | GetNumberOfPoints (int &nx, int &ny, int &nz) const |
| int | GetNumberOfPoints () const |
| void | GetNumberOfSteps (int steps[3]) const |
| std::vector< double > | GetValues () const |
| double | GetValue (int i, int j, int k) const |
| double | GetValue (vector3 pos) const |
| Unit | GetUnit () const |
| double | GetMinValue () const |
| double | GetMaxValue () const |
| vector3 | GetOriginVector () const |
| void | GetOriginVector (double o[3]) const |
| vector3 | GetMaxVector () const |
| bool | GetUnrestricted () const |
| int | GetNumSymmetries () const |
Modification Methods | |
| void | SetNumberOfPoints (int nx, int ny, int nz) |
| 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]) |
| bool | SetValue (int i, int j, int k, double val) |
| void | SetValues (const std::vector< double > &v) |
| void | SetUnit (Unit u) |
| void | SetUnrestricted (bool u) |
| void | SetNumSymmetries (int s) |
Protected Attributes | |
| std::string | _attr |
| unsigned int | _type |
| DataOrigin | _source |
Store values for numeric grids such as orbitals or electrostatic potential.
OBGridData facilitates attaching grids and cubes to molecular data. A "grid" is data representing some function f(x,y,z), such as a molecule's electrostatic potential or molecular orbitals. This need not be a "cube" even though this file format from Gaussian is frequently used. Axes need not be identical, and indeed do not need to be orthogonal.
Open Babel supports reading several types of grid file formats, including Gaussian cube, and OpenDX. The latter is notably used by the APBS program for numeric evaluation of molecular and protein electrostatic potential.
OBGridData *gd = new OBGridData; gd->SetAttribute("Example Grid"); // the title of the grid -- e.g., for user display vector<int> voxels(3); // the number of voxels in each direction vector3 origin; // the beginning x, y, z coordinate of the grid vector<vector3> axes; // the xyz displacements for each of the grid axes ... gd->SetNumberOfPoints(voxels[0], voxels[1], voxels[2]); gd->SetLimits(origin, axes[0], axes[1], axes[2]); gd->SetUnit(OBGridData::ANGSTROM); gd->SetOrigin(fileformatInput); // i.e., is this data from a file or determined by Open Babel for (int k = 0; k < voxels[2]; ++k) for (int j = 0; j < voxels[1]; ++j) for (int i = 0; i < voxels[0]; ++i) { gd->SetValue(i, j, k, grid[k*voxels[0]*voxels[1] + j*voxels[0] + i]); } mol->SetData(gd);
if (mol->HasData(OBGenericDataType::GridData)) { vector<OBGenericData*> grids = mol->GetAllData(OBGenericDataType::GridData) // Output the name of the grid if (grids[0] != NULL) cout << grids[0]->GetAttribute(); }
| enum Unit |
| OBGridData | ( | ) |
Constructor.
| ~OBGridData | ( | ) |
Destructor.
| void GetAxes | ( | double | x[3], |
| double | y[3], | ||
| double | z[3] | ||
| ) | const |
| vector3 GetXAxis | ( | ) | const |
| vector3 GetYAxis | ( | ) | const |
| vector3 GetZAxis | ( | ) | const |
| void GetNumberOfPoints | ( | int & | nx, |
| int & | ny, | ||
| int & | nz | ||
| ) | const |
| int GetNumberOfPoints | ( | ) | const |
| void GetNumberOfSteps | ( | int | steps[3] | ) | const |
| std::vector< double > GetValues | ( | ) | const |
| double GetValue | ( | int | i, |
| int | j, | ||
| int | k | ||
| ) | const |
Referenced by OBForceField::GetGrid().
| double GetValue | ( | vector3 | pos | ) | const |
| OBGridData::Unit GetUnit | ( | ) | const |
| double GetMinValue | ( | ) | const |
| double GetMaxValue | ( | ) | const |
| vector3 GetOriginVector | ( | ) | const |
| void GetOriginVector | ( | double | o[3] | ) | const |
| o | set to the origin (i.e., the minimum x, y, and z coords of the grid). |
| vector3 GetMaxVector | ( | ) | const |
| bool GetUnrestricted | ( | ) | const |
| int GetNumSymmetries | ( | ) | const |
| void SetNumberOfPoints | ( | int | nx, |
| int | ny, | ||
| int | nz | ||
| ) |
Set number of points along the three axes.
Referenced by OBForceField::GetGrid().
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 OBForceField::GetGrid().
| void SetLimits | ( | const double | origin[3], |
| const double | x[3], | ||
| const double | y[3], | ||
| const double | z[3] | ||
| ) |
| bool SetValue | ( | int | i, |
| int | j, | ||
| int | k, | ||
| double | val | ||
| ) |
Set an individual value, grid must have been initialised.
Referenced by OBForceField::GetGrid().
| void SetValues | ( | const std::vector< double > & | v | ) |
Set the values, this vector must match the dimensions of the grid.
| void SetUnit | ( | OBGridData::Unit | u | ) |
Set the unit of measure.
| void SetUnrestricted | ( | bool | u | ) |
Set the unrestricted flag.
| void SetNumSymmetries | ( | int | s | ) |
Set the number of symmetries.
| virtual OBGenericData* Clone | ( | OBBase * | ) | const [inline, virtual, inherited] |
Reimplemented in OBMatrixData, OBVectorData, OBRotationData, OBElectronicTransitionData, OBOrbitalData, OBDOSData, OBVibrationData, OBSerialNums, OBChiralData, OBAngleData, OBTorsionData, OBSymmetryData, OBConformerData, OBUnitCell, OBCisTransStereo, OBRingData, OBTetrahedralStereo, OBVirtualBond, OBSquarePlanarStereo, OBSetData, OBNasaThermoData, OBPairData, OBExternalBondData, OBRotamerList, AliasData, OBCommentData, OBAtomClassData, and OBRateData.
Referenced by OBBase::CloneData(), OBAtom::Duplicate(), OBMoleculeFormat::MakeCombinedMolecule(), and OBMol::operator=().
| void SetAttribute | ( | const std::string & | v | ) | [inline, inherited] |
Set the attribute (key), which can be used to retrieve this data.
Referenced by OBGastChrg::AssignPartialCharges(), OBMol::DoTransformations(), OBMol::FindLSSR(), OBMol::FindSSSR(), OBForceField::GetAtomTypes(), OBMol::GetFormula(), OBMol::GetLSSR(), OBForceField::GetPartialCharges(), OBMol::GetSSSR(), OBDescriptor::PredictAndSave(), and OBMol::SetFormula().
| void SetOrigin | ( | const DataOrigin | s | ) | [inline, inherited] |
Set the origin of this data, which can be used to filter the data.
Referenced by OBGastChrg::AssignPartialCharges(), OpenBabel::CalcSignedVolume(), OBMol::DoTransformations(), OBMol::FindAngles(), OBMol::FindLSSR(), OBMol::FindSSSR(), OBMol::FindTorsions(), OBMol::GetFormula(), OBMol::GetLSSR(), OBMol::GetSSSR(), OBDescriptor::PredictAndSave(), and OBMol::SetFormula().
| virtual const std::string& GetAttribute | ( | ) | const [inline, virtual, inherited] |
Referenced by OBMoleculeFormat::MakeCombinedMolecule().
| unsigned int GetDataType | ( | ) | const [inline, inherited] |
| virtual const std::string& GetValue | ( | ) | const [inline, virtual, inherited] |
Base class returns a default value (the attribute type) but should never be called.
Reimplemented in OBPairData, and OBCommentData.
Referenced by OBDepict::DrawMolecule(), OBDescriptor::FilterCompare(), and OBDescriptor::GetValues().
| virtual DataOrigin GetOrigin | ( | ) | const [inline, virtual, inherited] |
std::string _attr [protected, inherited] |
attribute tag (e.g., "UnitCell", "Comment" or "Author")
Referenced by OBRotamerList::Clone(), and OBNasaThermoData::OBNasaThermoData().
unsigned int _type [protected, inherited] |
attribute type -- declared for each subclass
Referenced by OBRotamerList::Clone(), and OBNasaThermoData::OBNasaThermoData().
DataOrigin _source [protected, inherited] |
source of data for accounting
Referenced by OBConformerData::operator=(), OBSymmetryData::operator=(), OBTorsionData::operator=(), OBAngleData::operator=(), and OBChiralData::operator=().