#ifndef BOUNDARY_HPP_ #define BOUNDARY_HPP_ /*********************************************** includes ***********************************/ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include #include // STL headers #include #include "LinearAlgebra/defs.hpp" #include "BoundaryMaps.hpp" /****************************************** forward declarations *****************************/ class BoundaryPointSet; class BoundaryLineSet; class BoundaryTriangleSet; class config; class LinkedCell_deprecated; class molecule; class MoleculeListClass; class Tesselation; class TesselPoint; class Vector; /********************************************** definitions *********************************/ enum { DEBUG=1 }; enum { DoSingleStepOutput=0 }; enum { SingleStepWidth=10 }; /********************************************** declarations *******************************/ double ConvexizeNonconvexEnvelope(class Tesselation *&TesselStruct, const molecule * const mol, const char * const filename); void FillBoxWithMolecule(MoleculeListClass *List, molecule *filler, config &configuration, const double MaxDistance, const double distance[NDIM], const double boundary, const double RandomAtomDisplacement, const double RandomMolDisplacement, const bool DoRandomRotation); void FillVoidWithMolecule(molecule *&filler, config &configuration, const double distance[NDIM], const double boundary, const double RandomAtomDisplacement, const double RandomMolDisplacement, const double MinDistance, const bool DoRandomRotation); void FindConvexBorder(const molecule* const mol, Boundaries *BoundaryPts, Tesselation *&TesselStruct, const LinkedCell_deprecated *LCList, const char *filename); Vector* FindEmbeddingHole(MoleculeListClass *mols, molecule *srcmol); bool FindNonConvexBorder(molecule* const mol, Tesselation *&TesselStruct, const LinkedCell_deprecated *&LC, const double RADIUS, const char *tempbasename); Boundaries *GetBoundaryPoints(const molecule *mol, Tesselation *&TesselStruct); double * GetDiametersOfCluster(const Boundaries *BoundaryPtr, const molecule *mol, Tesselation *&TesselStruct, const bool IsAngstroem); void PrepareClustersinWater(config *configuration, molecule *mol, double ClusterVolume, double celldensity); bool RemoveAllBoundaryPoints(class Tesselation *&TesselStruct, const molecule * const mol, const char * const filename); void StoreTrianglesinFile(const molecule * const mol, const Tesselation * const TesselStruct, const char *filename, const char *extraSuffix); double VolumeOfConvexEnvelope(class Tesselation *TesselStruct, class config *configuration); #endif /*BOUNDARY_HPP_*/