40 |
|
* |
41 |
|
* NanoVolume.cpp |
42 |
|
* |
43 |
– |
* Purpose: To calculate convexhull, hull volume and radius |
44 |
– |
* using the CGAL library. |
45 |
– |
* |
43 |
|
* Created by Charles F. Vardeman II on 14 Dec 2006. |
44 |
|
* @author Charles F. Vardeman II |
45 |
< |
* @version $Id: NanoVolume.cpp,v 1.7 2008-09-14 01:32:23 chuckv Exp $ |
45 |
> |
* @version $Id: NanoVolume.cpp,v 1.9 2009-10-22 14:19:26 gezelter Exp $ |
46 |
|
* |
47 |
|
*/ |
48 |
|
|
49 |
|
#include "applications/staticProps/NanoVolume.hpp" |
50 |
|
#include "math/ConvexHull.hpp" |
54 |
– |
//#include "math/AlphaShape.hpp" |
51 |
|
#include "utils/simError.h" |
52 |
|
#include "io/DumpReader.hpp" |
53 |
|
#include "primitives/Molecule.hpp" |
70 |
|
} |
71 |
|
|
72 |
|
void NanoVolume::process() { |
73 |
< |
#if defined(HAVE_CGAL) || defined(HAVE_QHULL) |
73 |
> |
#if defined(HAVE_QHULL) |
74 |
|
Molecule* mol; |
75 |
|
Atom* atom; |
76 |
|
RigidBody* rb; |
85 |
|
#ifdef HAVE_QHULL |
86 |
|
ConvexHull* thishull = new ConvexHull(); |
87 |
|
#endif |
92 |
– |
#ifdef HAVE_CGAL |
93 |
– |
// AlphaShape* hull = new AlphaShape(); |
94 |
– |
ConvexHull* thishull = new ConvexHull(); |
95 |
– |
#endif |
88 |
|
|
89 |
|
DumpReader reader(info_, dumpFilename_); |
90 |
|
int nFrames = reader.getNFrames(); |
115 |
|
} |
116 |
|
|
117 |
|
// outer loop is over the selected StuntDoubles: |
118 |
< |
/* |
118 |
> |
|
119 |
|
for (sd = seleMan_.beginSelected(i); sd != NULL; |
120 |
|
sd = seleMan_.nextSelected(i)) { |
121 |
|
|
122 |
< |
pos_.push_back(sd->getPos()); |
122 |
> |
theAtoms_.push_back(sd); |
123 |
|
myIndex = sd->getGlobalIndex(); |
124 |
|
|
125 |
|
} |
126 |
< |
*/ |
126 |
> |
|
127 |
> |
/* |
128 |
|
for (mol = info_->beginMolecule(mi); mol != NULL; |
129 |
|
mol = info_->nextMolecule(mi)) { |
130 |
|
for (atom = mol->beginAtom(ai); atom != NULL; |
132 |
|
theAtoms_.push_back(atom); |
133 |
|
} |
134 |
|
} |
135 |
< |
|
135 |
> |
*/ |
136 |
|
// Generate convex hull for this frame. |
137 |
|
thishull->computeHull(theAtoms_); |
138 |
|
// totalVolume_ += hull->getVolume(); |
150 |
|
osq.close(); |
151 |
|
*/ |
152 |
|
#else |
153 |
< |
sprintf(painCave.errMsg, "NanoVolume: Neither CGAL nor qhull support was compiled in!\n"); |
153 |
> |
sprintf(painCave.errMsg, "NanoVolume: qhull support was not compiled in!\n"); |
154 |
|
painCave.isFatal = 1; |
155 |
|
simError(); |
156 |
|
|