Changeset e08f45 for molecuilder/src/boundary.hpp
- Timestamp:
- Feb 9, 2009, 5:24:10 PM (17 years ago)
- Children:
- 451d7a
- Parents:
- 4aef8a
- git-author:
- Frederik Heber <heber@…> (02/09/09 15:55:37)
- git-committer:
- Frederik Heber <heber@…> (02/09/09 17:24:10)
- File:
-
- 1 edited
-
molecuilder/src/boundary.hpp (modified) (2 diffs, 1 prop)
Legend:
- Unmodified
- Added
- Removed
-
molecuilder/src/boundary.hpp
-
Property mode
changed from
100644to100755
r4aef8a re08f45 17 17 18 18 #include <gsl/gsl_poly.h> 19 #include <gsl/gsl_matrix.h> 20 #include <gsl/gsl_linalg.h> 21 #include <gsl/gsl_multimin.h> 22 #include <gsl/gsl_permutation.h> 19 23 24 #include "linkedcell.hpp" 20 25 #include "molecules.hpp" 21 26 22 27 template <typename T> void SetEndpointsOrdered(T endpoints[2], T endpoint1, T endpoint2) 23 28 { 24 if (endpoint1->Nr < endpoint2->Nr) {25 endpoints[0] = endpoint1;26 endpoints[1] = endpoint2;27 } else {28 endpoints[0] = endpoint2;29 endpoints[1] = endpoint1;30 }29 if (endpoint1->Nr < endpoint2->Nr) { 30 endpoints[0] = endpoint1; 31 endpoints[1] = endpoint2; 32 } else { 33 endpoints[0] = endpoint2; 34 endpoints[1] = endpoint1; 35 } 31 36 }; 32 37 33 38 class BoundaryPointSet { 34 public:35 BoundaryPointSet();36 BoundaryPointSet(atom *Walker);37 ~BoundaryPointSet();39 public: 40 BoundaryPointSet(); 41 BoundaryPointSet(atom *Walker); 42 ~BoundaryPointSet(); 38 43 39 void AddLine(class BoundaryLineSet *line);44 void AddLine(class BoundaryLineSet *line); 40 45 41 LineMap lines;42 int LinesCount;43 atom *node;44 int Nr;46 LineMap lines; 47 int LinesCount; 48 atom *node; 49 int Nr; 45 50 }; 46 51 47 52 class BoundaryLineSet { 48 public:49 BoundaryLineSet();50 BoundaryLineSet(class BoundaryPointSet *Point[2], int number);51 ~BoundaryLineSet();53 public: 54 BoundaryLineSet(); 55 BoundaryLineSet(class BoundaryPointSet *Point[2], int number); 56 ~BoundaryLineSet(); 52 57 53 void AddTriangle(class BoundaryTriangleSet *triangle);58 void AddTriangle(class BoundaryTriangleSet *triangle); 54 59 55 class BoundaryPointSet *endpoints[2];56 TriangleMap triangles;57 int TrianglesCount;58 int Nr;60 class BoundaryPointSet *endpoints[2]; 61 TriangleMap triangles; 62 int TrianglesCount; 63 int Nr; 59 64 }; 60 65 61 66 class BoundaryTriangleSet { 62 public:63 BoundaryTriangleSet();64 BoundaryTriangleSet(class BoundaryLineSet *line[3], int number);65 ~BoundaryTriangleSet();67 public: 68 BoundaryTriangleSet(); 69 BoundaryTriangleSet(class BoundaryLineSet *line[3], int number); 70 ~BoundaryTriangleSet(); 66 71 67 void GetNormalVector(Vector &NormalVector);72 void GetNormalVector(Vector &NormalVector); 68 73 69 class BoundaryPointSet *endpoints[3];70 class BoundaryLineSet *lines[3];71 Vector NormalVector;72 int Nr;74 class BoundaryPointSet *endpoints[3]; 75 class BoundaryLineSet *lines[3]; 76 Vector NormalVector; 77 int Nr; 73 78 }; 74 79 75 80 class Tesselation { 76 public:81 public: 77 82 78 Tesselation();79 ~Tesselation();83 Tesselation(); 84 ~Tesselation(); 80 85 81 void TesselateOnBoundary(ofstream *out, config *configuration, molecule *mol); 82 void GuessStartingTriangle(ofstream *out); 83 void AddPoint(atom * Walker); 84 void AddTrianglePoint(atom* Candidate, int n); 85 void AddTriangleLine(class BoundaryPointSet *a, class BoundaryPointSet *b, int n); 86 void AddTriangleToLines(); 87 void Find_starting_triangle(molecule* mol, const double RADIUS); 88 void Find_next_suitable_triangle(ofstream *out, molecule* mol, BoundaryLineSet &Line, BoundaryTriangleSet &T, const double& RADIUS, int N, const char *tempbasename); 86 void TesselateOnBoundary(ofstream *out, config *configuration, molecule *mol); 87 void GuessStartingTriangle(ofstream *out); 88 void AddPoint(atom * Walker); 89 void AddTrianglePoint(atom* Candidate, int n); 90 void AddTriangleLine(class BoundaryPointSet *a, class BoundaryPointSet *b, int n); 91 void AddTriangleToLines(); 92 void Find_starting_triangle(ofstream *out, molecule* mol, const double RADIUS, LinkedCell *LC); 93 bool Find_next_suitable_triangle(ofstream *out, molecule* mol, BoundaryLineSet &Line, BoundaryTriangleSet &T, const double& RADIUS, int N, const char *filename, LinkedCell *LC); 94 bool CheckPresenceOfTriangle(ofstream *out, atom *Candidates[3]); 95 void Find_next_suitable_point_via_Angle_of_Sphere(atom* a, atom* b, atom* c, atom* Candidate, atom* Parent, int RecursionLevel, Vector *Chord, Vector *direction1, Vector *OldNormal, Vector ReferencePoint, atom*& Opt_Candidate, double *Storage, const double RADIUS, molecule* mol); 89 96 90 PointMap PointsOnBoundary;91 LineMap LinesOnBoundary;92 TriangleMap TrianglesOnBoundary;93 class BoundaryPointSet *TPS[3]; //this is a Storage for pointers to triangle points, this and BPS[2] needed due to AddLine restrictions94 class BoundaryPointSet *BPS[2];95 class BoundaryLineSet *BLS[3];96 class BoundaryTriangleSet *BTS;97 int PointsOnBoundaryCount;98 int LinesOnBoundaryCount;99 int TrianglesOnBoundaryCount;100 int TriangleFilesWritten;97 PointMap PointsOnBoundary; 98 LineMap LinesOnBoundary; 99 TriangleMap TrianglesOnBoundary; 100 class BoundaryPointSet *TPS[3]; //this is a Storage for pointers to triangle points, this and BPS[2] needed due to AddLine restrictions 101 class BoundaryPointSet *BPS[2]; 102 class BoundaryLineSet *BLS[3]; 103 class BoundaryTriangleSet *BTS; 104 int PointsOnBoundaryCount; 105 int LinesOnBoundaryCount; 106 int TrianglesOnBoundaryCount; 107 int TriangleFilesWritten; 101 108 }; 102 109 … … 107 114 108 115 109 double VolumeOfConvexEnvelope(ofstream *out, ofstream *tecplot, config *configuration, Boundaries *BoundaryPoints, molecule *mol);116 double VolumeOfConvexEnvelope(ofstream *out, const char *filename, config *configuration, Boundaries *BoundaryPoints, molecule *mol); 110 117 double * GetDiametersOfCluster(ofstream *out, Boundaries *BoundaryPtr, molecule *mol, bool IsAngstroem); 111 118 void PrepareClustersinWater(ofstream *out, config *configuration, molecule *mol, double ClusterVolume, double celldensity); 112 void Find_n ext_suitable_point(atom a, atom b, atom Candidate, int n, Vector *d1, Vector *d2, atom*& Opt_Candidate, double *Storage, const double RADIUS, molecule *mol, bool problem);113 void Find_n on_convex_border(ofstream *out, const char *filename, molecule* mol);119 void Find_non_convex_border(ofstream *out, molecule* mol, class Tesselation *T, class LinkedCell *LCList, const char *tempbasename, const double RADIUS); 120 void Find_next_suitable_point(class BoundaryTriangleSet *BaseTriangle, class BoundaryLineSet *BaseLine, atom*& OptCandidate, Vector *OptCandidateCenter, double *ShortestAngle, const double RADIUS, LinkedCell *LC); 114 121 115 122 -
Property mode
changed from
Note:
See TracChangeset
for help on using the changeset viewer.
