SurfacePoint

A descendant of the Vector3 class. Serves as a base class for surface points. Besides their positions holds geometrical information such as nornal to the surface and type of surface point (caps, pits and belts).

[ GAMB | Source | Keywords | Summary | Ancestors | All Members | Descendants ]

Quick Index

AUTHOR
CHANGES LOG
GOALS
USAGE

Class Summary

class SurfacePoint : public Vector3

{
public:
SurfacePoint();
SurfacePoint(const SurfacePoint& t);
explicit SurfacePoint(const Vector3& newPos, const Vector3& norm, const float surface , const short atomIndex1 , const short atomIndex2 , const short atomIndex3 );
explicit SurfacePoint(const char* const shouRec);
Vector3 normal() const;
float surfaceArea() const;
void setAtomIndices(const short atomIndex1 , const short atomIndex2 , const short atomIndex3 );
short atomIndex(const unsigned short indx) const;
bool atomIndicesGTE(const unsigned short atomIndex) const;
bool atomIndicesLT(const unsigned short atomIndex) const;
SurfaceType surfaceType() const;
void orient(const Vector3& v);
bool adjacentTo(const SurfacePoint& sp) const;
SurfacePoint& operator*=(const Matrix3 &);
SurfacePoint& operator*=(const RigidTrans3 &);
SurfacePoint& operator-=(const Vector3 &);
protected:
}; // SurfacePoint

Back to the top of SurfacePoint


AUTHOR

Zipi Fligelman (zipo@math.tau.ac.il)

Copyright: SAMBA group, Tel-Aviv Univ. Israel, 1997.

Back to the top of SurfacePoint


CHANGES LOG

Back to the top of SurfacePoint


GOALS

Defines a class to hold information about surface points. Besides the position inherited from the Vector3 class this class holds the normal to surface at the given point and the type of surface point (caps, pits or belts). More surface properties may be added including chemical ones.

The class also holds a parameter which designates which fragment or part of the molecule the surface point belongs to. This is useful for hinge- flexible molecules.

Back to the top of SurfacePoint


USAGE

Back to the top of SurfacePoint


SurfacePoint();

Creates a Surface Point with 0-position and a general empty normal

  SurfacePoint();

Back to the top of SurfacePoint


SurfacePoint(const SurfacePoint& t);

copy constructor

  SurfacePoint(const SurfacePoint& t);

Back to the top of SurfacePoint


explicit SurfacePoint(const Vector3& newPos, const Vector3& norm, const float surface , const short atomIndex1 , const short atomIndex2 , const short atomIndex3 );

Creates a point with a given position newPos and a given normal and a given type

  explicit SurfacePoint(const Vector3& newPos, const Vector3& norm, 
			const float surface=0,
                        const short atomIndex1 = -1, 
                        const short atomIndex2 = -1, 
                        const short atomIndex3 = -1); 

Back to the top of SurfacePoint


explicit SurfacePoint(const char* const shouRec);

Construcs a surface point using a Shou surface format record.

  explicit SurfacePoint(const char* const shouRec);

Back to the top of SurfacePoint


Vector3 normal() const;

Returns normal of surface point.

  Vector3 normal() const;

Back to the top of SurfacePoint


float surfaceArea() const;

Returns area of surface represented by surface point and normal

  float surfaceArea() const;

Back to the top of SurfacePoint


void setAtomIndices(const short atomIndex1 , const short atomIndex2 , const short atomIndex3 );

Set the atom indices of the surface point. This method allows the class user to set the indices of the atoms from which the surface point was calculated. These indices are read in through the shou file but user may update them at will.

  void setAtomIndices(const short atomIndex1 = -1, 
                      const short atomIndex2 = -1, 
                      const short atomIndex3 = -1);

Back to the top of SurfacePoint


short atomIndex(const unsigned short indx) const;

Returns atom's indices that participated in the creation of the Shou surface critical points. Up to 3 atoms may define a surface point depeneding on the surface point type (Caps = 1, Belts = 2, Pits = 3) indx may take value of 0..2. If less then 3 atoms defined the surface point then atomIndex will return a -1.

  short atomIndex(const unsigned short indx) const;

Back to the top of SurfacePoint


bool atomIndicesGTE(const unsigned short atomIndex) const;

Returns true if all atom indices are greater than or equal to the given atom index. Disregards undefined atom indices (i.e. for caps and belts).

  bool atomIndicesGTE(const unsigned short atomIndex) const;

Back to the top of SurfacePoint


bool atomIndicesLT(const unsigned short atomIndex) const;

Returns true if all atom indices are less than the given atom index. Disregards undefined atom indices (i.e. for caps and belts).

  bool atomIndicesLT(const unsigned short atomIndex) const;

Back to the top of SurfacePoint


SurfaceType surfaceType() const;

Returns surface type (caps, pits or belts)

  SurfaceType surfaceType() const;

Back to the top of SurfacePoint


void orient(const Vector3& v);

Changing a point orientation with a new normal

  void orient(const Vector3& v);

Back to the top of SurfacePoint


bool adjacentTo(const SurfacePoint& sp) const;

Defines symmetric adjacency relation. This relation stems from a natural triangulation of the protein surface resulting directly from the defintion of the Shou surface. The triangulation is such that every cap point is adjacent to all belts and pits surrounding it, every belt is adjacent to its two pits and two caps neighbors and hence every pit is adjacent to its three caps and three belts in its immediate neighborhood.

  bool adjacentTo(const SurfacePoint& sp) const;

Back to the top of SurfacePoint


SurfacePoint& operator*=(const Matrix3 &);

Shift SurfacePoint position and normal using a linear tranfromation

  SurfacePoint& operator*=(const Matrix3 &);

Back to the top of SurfacePoint


SurfacePoint& operator*=(const RigidTrans3 &);

shift SurfacePoint position and normal using a rigid transformation

  SurfacePoint& operator*=(const RigidTrans3 &);

Back to the top of SurfacePoint


SurfacePoint& operator-=(const Vector3 &);

Shift surface point's position using vector subtraction. normal doesn't chnage

  SurfacePoint& operator-=(const Vector3 &);

Back to the top of SurfacePoint


All Members

public:
// define real type.
typedef float real;
// Inspection.
Vector3 position() const ;
real x() const ;
real x(const unsigned short coord) const ;
bool isZero() const ;
real norm() const ;
real norm2() const ;
real dist(const Vector3& p) const ;
real dist2(const Vector3& p) const ;
const real& operator[](const unsigned short coord) const ;
Vector3 getPerpendicularVector() const ;
Vector3 getUnitVector() const ;
// Operators.
bool operator==(const Vector3& v) const ;
friend Vector3 operator+(const Vector3& p1, const Vector3& p2) ;
friend Vector3 operator-(const Vector3& p1, const Vector3& p2) ;
friend Vector3 operator-(const Vector3& p) ;
friend real operator*(const Vector3& p1, const Vector3& p2) ;
friend Vector3 operator*(const Vector3& p, const real& m) ;
friend Vector3 operator*(const real& m, const Vector3& p) ;
friend Vector3 operator/(const Vector3& p, const real& m) ;
friend Vector3 operator&(const Vector3& p1, const Vector3& p2) ;
friend real operator|(const Vector3& p1, const Vector3& p2) ;
friend real operator^(const Vector3& p1, const Vector3& p2) ;
Vector3& operator+=(const Vector3& p) ;
Vector3& operator-=(const Vector3& p) ;
Vector3& operator*=(const real& m) ;
Vector3& operator/=(const real& m) ;
friend ostream& operator<<(ostream& s, const Vector3& v) ;
friend istream& operator>>(istream& s, Vector3& v) ;
void output(FILE* outputFile) const ;
explicit SurfacePoint(const Vector3& newPos, const Vector3& norm, const float surface , const short atomIndex1 , const short atomIndex2 , const short atomIndex3 );
explicit SurfacePoint(const char* const shouRec);
Vector3 normal() const;
float surfaceArea() const;
void setAtomIndices(const short atomIndex1 , const short atomIndex2 , const short atomIndex3 );
short atomIndex(const unsigned short indx) const;
bool atomIndicesGTE(const unsigned short atomIndex) const;
bool atomIndicesLT(const unsigned short atomIndex) const;
SurfaceType surfaceType() const;
void orient(const Vector3& v);
bool adjacentTo(const SurfacePoint& sp) const;
SurfacePoint& operator*=(const Matrix3 &);
SurfacePoint& operator*=(const RigidTrans3 &);
SurfacePoint& operator-=(const Vector3 &);
protected:

Back to the top of SurfacePoint


Ancestors

Inheritance chain for SurfacePoint:

Back to the top of SurfacePoint


Descendants

Class is not inherited by any others.

Back to the top of SurfacePoint


Generated from source by the Cocoon utilities on Sun Nov 15 13:35:26 2009 .

Report problems to jkotula@unimax.com