#ifndef BOUNDARY_HPP_ #define BOUNDARY_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif // STL headers #include #include "config.hpp" #include "linkedcell.hpp" #include "molecules.hpp" #include "tesselation.hpp" #define DEBUG 1 #define DoSingleStepOutput 0 #define SingleStepWidth 1 #define DoTecplotOutput 1 #define DoRaster3DOutput 1 #define DoVRMLOutput 1 #define TecplotSuffix ".dat" #define Raster3DSuffix ".r3d" #define VRMLSUffix ".wrl" #define DistancePair pair < double, atom* > #define DistanceMap multimap < double, atom* > #define DistanceTestPair pair < DistanceMap::iterator, bool> #define Boundaries map #define BoundariesPair pair #define BoundariesTestPair pair< Boundaries::iterator, bool> double VolumeOfConvexEnvelope(ofstream *out, class Tesselation *TesselStruct, class config *configuration); double * GetDiametersOfCluster(ofstream *out, Boundaries *BoundaryPtr, molecule *mol, bool IsAngstroem); void PrepareClustersinWater(ofstream *out, config *configuration, molecule *mol, double ClusterVolume, double celldensity); molecule * FillBoxWithMolecule(ofstream *out, MoleculeListClass *List, molecule *filler, config &configuration, double distance[NDIM], double RandAtomDisplacement, double RandMolDisplacement, bool DoRandomRotation); void Find_convex_border(ofstream *out, molecule* mol, class LinkedCell *LCList, const char *filename); void Find_non_convex_border(ofstream *out, molecule* mol, class LinkedCell *LC, const char *tempbasename, const double RADIUS); double ConvexizeNonconvexEnvelope(ofstream *out, class Tesselation *TesselStruct, molecule *mol, char *filename); void Find_next_suitable_point(class BoundaryTriangleSet *BaseTriangle, class BoundaryLineSet *BaseLine, atom*& OptCandidate, Vector *OptCandidateCenter, double *ShortestAngle, const double RADIUS, LinkedCell *LC); Boundaries *GetBoundaryPoints(ofstream *out, molecule *mol); #endif /*BOUNDARY_HPP_*/