Open Babel  3.0
Public Member Functions | Static Public Member Functions | Protected Attributes | Friends | List of all members
OBFloatGrid Class Reference

#include <openbabel/grid.h>

Inheritance diagram for OBFloatGrid:
OBGrid OBBase

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 OBBaseDoTransformations (const std::map< std::string, std::string > *, OBConversion *)
 
template<class T >
T * CastAndClear (bool clear=true)
 
virtual const char * GetTitle (bool replaceNewlines=true) const
 
virtual void SetTitle (const char *)
 
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)
 
size_t DataSize () const
 
OBGenericDataGetData (const unsigned int type)
 
OBGenericDataGetData (const std::string &)
 
OBGenericDataGetData (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 &)
 

Detailed Description

Handle double precision floating point 3D grids (e.g., charge density around an OBMol)

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.

See also
OBGridData

Constructor & Destructor Documentation

◆ OBFloatGrid()

OBFloatGrid ( )
inline

◆ ~OBFloatGrid()

~OBFloatGrid ( )
inline

Member Function Documentation

◆ Init() [1/2]

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().

◆ GetMin() [1/2]

vector3 GetMin ( )
inline
Returns
the minimum point in the grid.

Referenced by OBForceField::GetGrid().

◆ GetMin() [2/2]

void GetMin ( double *  a)
inline

Get the minimum point in the grid.

Deprecated:
Will be removed. Use
See also
GetMin()

◆ GetMax() [1/2]

vector3 GetMax ( )
inline
Returns
the minimum point in the grid.

◆ GetMax() [2/2]

void GetMax ( double *  a)
inline

Get the maximum point in the grid.

Deprecated:
Will be removed.
See also
GetMax()

◆ GetSpacing() [1/2]

double GetSpacing ( ) const
inline
Returns
The grid spacing.

◆ GetSpacing() [2/2]

void GetSpacing ( double &  s)
inline

Get the grid spacing.

Deprecated:
Will be removed.
See also
GetSpacing()

◆ GetScale()

double GetScale ( ) const
inline
Returns
Inverse of the grid spacing.

◆ GetHalfSpace()

double GetHalfSpace ( ) const
inline
Returns
Half of the spacing between grid points.

◆ GetXdim()

int GetXdim ( ) const
inline
Returns
Size of the grid in the x dimension.

Referenced by OBForceField::GetGrid().

◆ GetYdim()

int GetYdim ( ) const
inline
Returns
Size of the grid in the y dimension.

Referenced by OBForceField::GetGrid().

◆ GetZdim()

int GetZdim ( ) const
inline
Returns
Size of the grid in the z dimension.

Referenced by OBForceField::GetGrid().

◆ GetDim()

void GetDim ( int *  a)
inline

Get the x, y and z dimensions (must pass an double[3] at least).

Deprecated:
May be removed in future.
See also
GetXdim()
GetYdim()
GetZdim()

◆ GetMidpointVector()

vector3 GetMidpointVector ( )
inline
Returns
Position of the center of the grid.

◆ GetXAxis()

vector3 GetXAxis ( ) const
inline
Returns
X axis direction.

◆ GetYAxis()

vector3 GetYAxis ( ) const
inline
Returns
Y axis direction.

◆ GetZAxis()

vector3 GetZAxis ( ) const
inline
Returns
Z axis direction.

◆ SetNumberOfPoints()

void SetNumberOfPoints ( int  nx,
int  ny,
int  nz 
)

Sets the number of points in the x, y and z directions.

◆ SetXAxis()

void SetXAxis ( vector3  v)

Set the direction of the x axis.

◆ SetYAxis()

void SetYAxis ( vector3  v)

Set the direction of the y axis.

◆ SetZAxis()

void SetZAxis ( vector3  v)

Set the direction of the z axis.

◆ SetLimits() [1/2]

void SetLimits ( const vector3 origin,
const vector3 x,
const vector3 y,
const vector3 z 
)

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

◆ SetLimits() [2/2]

void SetLimits ( const double  origin[3],
const double  x[3],
const double  y[3],
const double  z[3] 
)

◆ GetDataVector()

std::vector< double > GetDataVector ( )

Get a copy of the vector that stores the points in the grid.

◆ SetVals() [1/2]

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).

◆ GetVals()

double* GetVals ( )
inline
Returns
Pointer to the first element of the grid point data stored as a one dimensional array.
Deprecated:
Will be removed.
See also
GetDataVector()

◆ GetValue()

double GetValue ( int  i,
int  j,
int  k 
)
inline
Returns
Value at the point in the grid specified by i, j and k.

◆ SetVals() [2/2]

void SetVals ( double *  ptr)
inline

◆ SetValue()

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.

◆ Center()

vector3 Center ( )
inline
Returns
Position of the center of the grid.

◆ Inject()

double Inject ( double  x,
double  y,
double  z 
)
Returns
the value at the given point (rounding as needed)

◆ IndexToCoords()

void IndexToCoords ( int  idx,
double &  x,
double &  y,
double &  z 
)

◆ CoordsToIndex() [1/2]

void CoordsToIndex ( int *  idx,
double *  c 
)

◆ CoordsToIndex() [2/2]

int CoordsToIndex ( double  x,
double  y,
double  z 
)

◆ Interpolate()

double Interpolate ( double  x,
double  y,
double  z 
)
Returns
the interpolated value for the given point

◆ InterpolateDerivatives()

double InterpolateDerivatives ( double  x,
double  y,
double  z,
double *  derivatives 
)
Returns
the interpolated value for the given point and set the dx, dy, dz derivatives

◆ Init() [2/2]

void Init ( OBMol box)
virtualinherited

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.

◆ GetXmin()

double GetXmin ( ) const
inlineinherited
Returns
the minimum x point of the grid

◆ GetYmin()

double GetYmin ( ) const
inlineinherited
Returns
the minimum y point of the grid

◆ GetZmin()

double GetZmin ( ) const
inlineinherited
Returns
the minimum z point of the grid

◆ GetXmax()

double GetXmax ( ) const
inlineinherited
Returns
the maximum x point of the grid

◆ GetYmax()

double GetYmax ( ) const
inlineinherited
Returns
the maximum y point of the grid

◆ GetZmax()

double GetZmax ( ) const
inlineinherited
Returns
the maximum z point of the grid

◆ PointIsInBox() [1/3]

bool PointIsInBox ( double  x,
double  y,
double  z 
)
inlineinherited
Returns
whether the supplied XYZ coordinates fall within the box

◆ PointIsInBox() [2/3]

bool PointIsInBox ( double *  c)
inlineinherited
Returns
true if the point falls within the box

◆ PointIsInBox() [3/3]

bool PointIsInBox ( vector3  v)
inlineinherited
Returns
true if the point falls within the box

◆ Clear()

bool Clear ( void  )
virtualinherited

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.

Returns
Whether the call was successful.
Since
version 2.1.

Reimplemented in OBMol, OBAtom, OBReaction, and OBResidue.

Referenced by OBResidue::Clear().

◆ DoTransformations()

virtual OBBase* DoTransformations ( const std::map< std::string, std::string > *  ,
OBConversion  
)
inlinevirtualinherited

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() Base type does nothing

Reimplemented in OBMol.

◆ ClassDescription()

static const char* ClassDescription ( )
inlinestaticinherited
Returns
A list of descriptions of command-line options for DoTransformations()

◆ CastAndClear()

T* CastAndClear ( bool  clear = true)
inlineinherited

By default clears the object. Called from ReadMolecule of most format classes.

◆ GetTitle()

virtual const char* GetTitle ( bool  replaceNewlines = true) const
inlinevirtualinherited

Base type does nothing Made virtual around r3535 to simplify code which passes around OBBase*.

Reimplemented in OBMol.

Referenced by OBMoleculeFormat::DoOutputOptions().

◆ SetTitle()

virtual void SetTitle ( const char *  )
inlinevirtualinherited

Reimplemented in OBMol.

Referenced by OBMoleculeFormat::DoOutputOptions().

◆ HasData() [1/3]

bool HasData ( const std::string &  s)
inherited

◆ HasData() [2/3]

bool HasData ( const char *  s)
inherited
Returns
whether the generic attribute/value pair exists

◆ HasData() [3/3]

bool HasData ( const unsigned int  type)
inherited
Returns
whether the generic attribute/value pair exists, for a given OBGenericDataType

◆ DeleteData() [1/4]

void DeleteData ( unsigned int  type)
inherited

◆ DeleteData() [2/4]

void DeleteData ( OBGenericData gd)
inherited

Delete the given generic data from this object.

◆ DeleteData() [3/4]

void DeleteData ( std::vector< OBGenericData *> &  vg)
inherited

Delete all of the given generic data from this object.

◆ DeleteData() [4/4]

bool DeleteData ( const std::string &  s)
inherited

Deletes the generic data with the specified attribute, returning false if not found.

◆ SetData()

void SetData ( OBGenericData d)
inlineinherited

◆ CloneData()

void CloneData ( OBGenericData d)
inherited

Adds a copy of a data object; does nothing if d == NULL

Since
version 2.2

Referenced by AliasData::Expand().

◆ DataSize()

size_t DataSize ( ) const
inlineinherited
Returns
the number of OBGenericData items attached to this molecule.

◆ GetData() [1/5]

OBGenericData * GetData ( const unsigned int  type)
inherited

◆ GetData() [2/5]

OBGenericData * GetData ( const std::string &  s)
inherited
Returns
any data matching the given attribute name or NULL if nothing matches
the value given an attribute name

◆ GetData() [3/5]

OBGenericData * GetData ( const char *  s)
inherited
Returns
any data matching the given attribute name or NULL if nothing matches
the value given an attribute name

◆ GetData() [4/5]

std::vector<OBGenericData*>& GetData ( )
inlineinherited
Returns
all data, suitable for iterating

Referenced by OBMol::GetEnergies(), OBMol::GetEnergy(), and OBMol::SetEnergies().

◆ GetData() [5/5]

std::vector< OBGenericData * > GetData ( DataOrigin  source)
inherited
Returns
all data with a specific origin, suitable for iterating

◆ GetAllData()

std::vector< OBGenericData * > GetAllData ( const unsigned int  type)
inherited
Returns
the all matching data for a given type from OBGenericDataType or an empty vector if nothing matches
Since
version 2.2

Referenced by OpenBabel::CanonicalLabels(), OBMol::CopySubstructure(), OBBuilder::CorrectStereoAtoms(), OBBuilder::CorrectStereoBonds(), OpenBabel::DeleteStereoOnAtom(), and OBMol::operator+=().

◆ BeginData()

OBDataIterator BeginData ( )
inlineinherited
Returns
An iterator pointing to the beginning of the data

Referenced by OBMol::AddBond(), OBAtom::Duplicate(), OBMoleculeFormat::MakeCombinedMolecule(), and OBMol::operator=().

◆ EndData()

OBDataIterator EndData ( )
inlineinherited
Returns
An iterator pointing to the end of the data

Referenced by OBMol::AddBond(), OBAtom::Duplicate(), OBMoleculeFormat::MakeCombinedMolecule(), and OBMol::operator=().

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const OBFloatGrid fg 
)
friend

◆ operator>>

std::istream& operator>> ( std::istream &  is,
OBFloatGrid fg 
)
friend

Member Data Documentation

◆ _values

std::vector<double> _values
protected

floating point values

Referenced by OpenBabel::operator<<(), and OpenBabel::operator>>().

◆ _ival

int* _ival
protected

for integer values (deprecated)

◆ _midz

double _midz
protected

◆ _midx

double _midx
protected

◆ _midy

double _midy
protected

center of grid in world coordinates

Referenced by OpenBabel::operator<<(), and OpenBabel::operator>>().

◆ _ydim

int _ydim
protected

◆ _xdim

int _xdim
protected

◆ _zdim

int _zdim
protected

grid dimensions

Referenced by OpenBabel::operator<<(), and OpenBabel::operator>>().

◆ _spacing

double _spacing
protected

◆ _inv_spa

double _inv_spa
protected

spacing between grid points and its inverse

Referenced by OpenBabel::operator<<(), and OpenBabel::operator>>().

◆ _halfSpace

double _halfSpace
protected

half of the grid spacing

Referenced by OpenBabel::operator>>().

◆ _xAxis

vector3 _xAxis
protected

Three axes (i.e., translation vectors like a unit cell)

◆ _yAxis

vector3 _yAxis
protected

◆ _zAxis

vector3 _zAxis
protected

◆ _xmin

double _xmin
protectedinherited

◆ _xmax

double _xmax
protectedinherited

◆ _ymin

double _ymin
protectedinherited

◆ _ymax

double _ymax
protectedinherited

◆ _zmin

double _zmin
protectedinherited

◆ _zmax

double _zmax
protectedinherited

the min/max axes in XYZ axes (i.e., the box)

Referenced by OpenBabel::operator<<(), and OpenBabel::operator>>().

◆ _vdata

std::vector<OBGenericData*> _vdata
protectedinherited

Custom data.

Referenced by OBMol::OBMol().


The documentation for this class was generated from the following files: