BALL  1.4.1
SESVertex.h
Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 
00005 #ifndef BALL_STRUCTURE_SESVERTEX_H
00006 #define BALL_STRUCTURE_SESVERTEX_H
00007 
00008 #ifndef BALL_STRUCTURE_GRAPHVERTEX_H
00009 # include <BALL/STRUCTURE/graphVertex.h>
00010 #endif
00011 
00012 #ifndef BALL_MATHS_VECTOR3_H
00013 # include <BALL/MATHS/vector3.h>
00014 #endif
00015 
00016 namespace BALL
00017 {
00018   class SESEdge;
00019   class SESFace;
00020   class SolventExcludedSurface;
00021   class SESComputer;
00022   class SESSingularityCleaner;
00023   class TriangulatedSES;
00024   class SESTriangulator;
00025 
00029   class BALL_EXPORT SESVertex : public GraphVertex< SESVertex,SESEdge,SESFace >
00030   {
00031     public:
00032 
00044     friend class SESEdge;
00045     friend class SESFace;
00046     friend class SolventExcludedSurface;
00047     friend class SESComputer;
00048     friend class SESSingularityCleaner;
00049     friend class TriangulatedSES;
00050     friend class SESTriangulator;
00051 
00052     BALL_CREATE(SESVertex)
00053 
00054     
00057 
00061     SESVertex()
00062       ;
00063 
00071     SESVertex(const SESVertex& sesvertex, bool deep = false)
00072       ;
00073 
00081     SESVertex
00082         (const TVector3<double>&  point,
00083          const TVector3<double>&  normal,
00084          Index          atom,
00085          Index          index)
00086       ;
00087 
00091     virtual ~SESVertex()
00092       ;
00093 
00095 
00098 
00106     void set(const SESVertex& sesvertex, bool deep = false)
00107       ;
00108 
00114     SESVertex& operator = (const SESVertex& sesvertex)
00115       ;
00116 
00123     void set(const TVector3<double> point,
00124         const TVector3<double>& normal,
00125         Index atom,
00126         Index index)
00127       ;
00128 
00132     void setPoint(const TVector3<double>& point)
00133       ;
00134 
00138     TVector3<double> getPoint() const
00139       ;
00140 
00144     void setNormal(const TVector3<double>& normal)
00145       throw(Exception::DivisionByZero);
00146 
00150     TVector3<double> getNormal() const
00151       ;
00152 
00156     void setAtom(Index atom)
00157       ;
00158 
00162     Index getAtom() const
00163       ;
00164 
00166 
00170 
00174     virtual bool operator == (const SESVertex&) const
00175       ;
00176 
00180     virtual bool operator != (const SESVertex&) const
00181       ;
00182 
00186     virtual bool operator *= (const SESVertex&) const
00187       ;
00188 
00190 
00191     protected:
00192 
00196 
00197     /*_ The coordinates of the vertex.
00198     */
00199     TVector3<double> point_;
00200     /*_ The normal vector of the vertex.
00201     */
00202     TVector3<double> normal_;
00203     /*_ The index of the closest atom.
00204     */
00205     Index atom_;
00206 
00208   };
00209 
00213 
00216   BALL_EXPORT std::ostream& operator << (std::ostream& s, const SESVertex& sesvertex);
00217 
00219 
00220    
00221 } // namespace BALL
00222 
00223 #endif // BALL_SES_SESVERTEX_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines