BALL  1.4.1
SASFace.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_SASFACE_H
00006 #define BALL_STRUCTURE_SASFACE_H
00007 
00008 #ifndef BALL_STRUCTURE_GRAPHFACE_H
00009 # include <BALL/STRUCTURE/graphFace.h>
00010 #endif
00011 
00012 #ifndef BALL_STRUCTURE_SPHERE3_H
00013 # include <BALL/MATHS/sphere3.h>
00014 #endif
00015 
00016 #include <list>
00017 
00018 namespace BALL
00019 {
00020 
00021   class SolventAccessibleSurface;
00022   class SASEdge;
00023   class SASVertex;
00024   class TriangulatedSAS;
00025   class SASTriangulator;
00026 
00030   class BALL_EXPORT SASFace : public GraphFace< SASVertex,SASEdge,SASFace >
00031   {
00032     public:
00033 
00043     friend class SASEdge;
00044     friend class SASVertex;
00045     friend class SolventAccessibleSurface;
00046     friend class TriangulatedSAS;
00047     friend class SASTriangulator;
00048 
00049     BALL_CREATE(SASFace)
00050 
00051     
00054 
00055     typedef std::list<bool>::iterator OrientationIterator;
00056     typedef std::list<bool>::const_iterator ConstOrientationIterator;
00057 
00059 
00062 
00066     SASFace()
00067       ;
00068 
00076     SASFace(const SASFace& sasface, bool deep = false)
00077       ;
00078 
00082     virtual ~SASFace()
00083       ;
00084 
00086 
00089 
00096     void set(const SASFace& sasface, bool deep = false)
00097       ;
00098 
00104     SASFace& operator = (const SASFace& sasface)
00105       ;
00106 
00108 
00111 
00115     void setSphere(const TSphere3<double>& sphere)
00116       ;
00117 
00121     TSphere3<double> getSphere() const
00122       ;
00123 
00125 
00128 
00132     virtual bool operator == (const SASFace&) const
00133       ;
00134 
00138     virtual bool operator != (const SASFace&) const
00139       ;
00140 
00144     virtual bool operator *= (const SASFace&) const
00145       ;
00146 
00148 
00151 
00152     OrientationIterator beginOrientation()
00153       ;
00154     ConstOrientationIterator beginOrientation() const
00155       ;
00156     OrientationIterator endOrientation()
00157       ;
00158     ConstOrientationIterator endOrientation() const
00159       ;
00160 
00162 
00163     protected:
00164 
00168 
00169     /*_ A list of booleans to indicate the orientation of each sasedge.
00170     */
00171     std::list<bool> orientation_;
00172     /*_ The sphere on which the face lies.
00173     */
00174     TSphere3<double> sphere_;
00175 
00177   };
00178 
00182 
00185   BALL_EXPORT std::ostream& operator << (std::ostream& s, const SASFace& sasface);
00186 
00188 
00189 } // namespace BALL
00190 
00191 #endif // BALL_STRUCTURE_SASFACE_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines