source: molecuilder/src/boundary.hpp@ 2c69a9

Last change on this file since 2c69a9 was ff4611, checked in by Frederik Heber <heber@…>, 16 years ago

Attempt to fix the embedding.

Basically it would be working, but there was some failures with the FindClosestTriangleToPoint() routines.
We get triangles wrong if we start looking for the closest point. Actually, we should really look at each
triangle and check the distance. Now, we look at least at each line, but code is unfinished and crashes at the end
unexplainedly.

  • Property mode set to 100755
File size: 2.8 KB
Line 
1#ifndef BOUNDARY_HPP_
2#define BOUNDARY_HPP_
3
4using namespace std;
5
6/*********************************************** includes ***********************************/
7
8// include config.h
9#ifdef HAVE_CONFIG_H
10#include <config.h>
11#endif
12
13#include <fstream>
14#include <iostream>
15
16// STL headers
17#include <map>
18
19#include "defs.hpp"
20
21/****************************************** forward declarations *****************************/
22
23class atom;
24class BoundaryPointSet;
25class BoundaryLineSet;
26class BoundaryTriangleSet;
27class config;
28class LinkedCell;
29class molecule;
30class MoleculeListClass;
31class Tesselation;
32class Vector;
33
34/********************************************** definitions *********************************/
35
36#define DEBUG 1
37#define DoSingleStepOutput 0
38#define SingleStepWidth 10
39
40#define DistancePair pair < double, atom* >
41#define DistanceMap multimap < double, atom* >
42#define DistanceTestPair pair < DistanceMap::iterator, bool>
43
44#define Boundaries map <double, DistancePair >
45#define BoundariesPair pair<double, DistancePair >
46#define BoundariesTestPair pair< Boundaries::iterator, bool>
47
48/********************************************** declarations *******************************/
49
50double ConvexizeNonconvexEnvelope(class Tesselation *&TesselStruct, const molecule * const mol, const char * const filename);
51molecule * FillBoxWithMolecule(MoleculeListClass *List, molecule *filler, config &configuration, const double distance[NDIM], const double epsilon, const double RandomAtomDisplacement, const double RandomMolDisplacement, const bool DoRandomRotation);
52void FindConvexBorder(const molecule* const mol, Tesselation *&TesselStruct, const LinkedCell *LCList, const char *filename);
53Vector* FindEmbeddingHole(MoleculeListClass *mols, molecule *srcmol);
54void FindNextSuitablePoint(class BoundaryTriangleSet *BaseTriangle, class BoundaryLineSet *BaseLine, atom*& OptCandidate, Vector *OptCandidateCenter, double *ShortestAngle, const double RADIUS, LinkedCell *LC);
55bool FindNonConvexBorder(const molecule* const mol, Tesselation *&TesselStruct, const LinkedCell *&LC, const double RADIUS, const char *tempbasename);
56Boundaries *GetBoundaryPoints(const molecule *mol, Tesselation *&TesselStruct);
57double * GetDiametersOfCluster(const Boundaries *BoundaryPtr, const molecule *mol, Tesselation *&TesselStruct, const bool IsAngstroem);
58void PrepareClustersinWater(config *configuration, molecule *mol, double ClusterVolume, double celldensity);
59bool RemoveAllBoundaryPoints(class Tesselation *&TesselStruct, const molecule * const mol, const char * const filename);
60void StoreTrianglesinFile(const molecule * const mol, const Tesselation * const TesselStruct, const char *filename, const char *extraSuffix);
61double VolumeOfConvexEnvelope(class Tesselation *TesselStruct, class config *configuration);
62
63
64#endif /*BOUNDARY_HPP_*/
Note: See TracBrowser for help on using the repository browser.