ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/math/ConvexHull.hpp
Revision: 1390
Committed: Wed Nov 25 20:02:06 2009 UTC (15 years, 5 months ago) by gezelter
File size: 3274 byte(s)
Log Message:
Almost all of the changes necessary to create OpenMD out of our old
project (OOPSE-4)

File Contents

# User Rev Content
1 chuckv 1374 /* Copyright (c) 2008, 2009 The University of Notre Dame. All Rights Reserved.
2 chuckv 1097 *
3     * The University of Notre Dame grants you ("Licensee") a
4     * non-exclusive, royalty free, license to use, modify and
5     * redistribute this software in source and binary code form, provided
6     * that the following conditions are met:
7     *
8 gezelter 1390 * 1. Redistributions of source code must retain the above copyright
9 chuckv 1097 * notice, this list of conditions and the following disclaimer.
10     *
11 gezelter 1390 * 2. Redistributions in binary form must reproduce the above copyright
12 chuckv 1097 * notice, this list of conditions and the following disclaimer in the
13     * documentation and/or other materials provided with the
14     * distribution.
15     *
16     * This software is provided "AS IS," without a warranty of any
17     * kind. All express or implied conditions, representations and
18     * warranties, including any implied warranty of merchantability,
19     * fitness for a particular purpose or non-infringement, are hereby
20     * excluded. The University of Notre Dame and its licensors shall not
21     * be liable for any damages suffered by licensee as a result of
22     * using, modifying or distributing the software or its
23     * derivatives. In no event will the University of Notre Dame or its
24     * licensors be liable for any lost revenue, profit or data, or for
25     * direct, indirect, special, consequential, incidental or punitive
26     * damages, however caused and regardless of the theory of liability,
27     * arising out of the use of or inability to use software, even if the
28     * University of Notre Dame has been advised of the possibility of
29     * such damages.
30     *
31 gezelter 1390 * SUPPORT OPEN SCIENCE! If you use OpenMD or its source code in your
32     * research, please cite the appropriate papers when you publish your
33     * work. Good starting points are:
34     *
35     * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).
36     * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).
37     * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).
38     * [4] Vardeman & Gezelter, in progress (2009).
39 chuckv 1097 *
40 gezelter 1390 *
41 chuckv 1097 * ConvexHull.hpp
42     *
43 chuckv 1188 * Purpose: To calculate convexhull, hull volume using the QuickHull algorithm provided by QHull.
44 chuckv 1097 *
45     * Created by Charles F. Vardeman II on 11 Dec 2006.
46     * @author Charles F. Vardeman II
47 gezelter 1390 * @version $Id: ConvexHull.hpp,v 1.19 2009-11-25 20:02:01 gezelter Exp $
48 chuckv 1097 *
49     */
50    
51     #ifndef MATH_CONVEXHULL_HPP_
52     #define MATH_CONVEXHULL_HPP_
53    
54     #include "math/Vector3.hpp"
55 chuckv 1188 #include "config.h"
56 chuckv 1295 #include "math/Hull.hpp"
57 chuckv 1293 #include "math/Triangle.hpp"
58 chuckv 1097
59     #include <cassert>
60     #include <vector>
61 chuckv 1137 #include <string>
62 chuckv 1097
63    
64 gezelter 1390 namespace OpenMD {
65 chuckv 1293 class ConvexHull : public Hull {
66 chuckv 1141 public:
67 chuckv 1293
68 chuckv 1374 ConvexHull();
69 chuckv 1293 virtual ~ConvexHull(){};
70 chuckv 1374
71     void computeHull( std::vector<StuntDouble*> bodydoubles );
72    
73     /* Total area of Hull*/
74     RealType getArea(){return area_;}
75    
76     /* Total Volume enclosed by Hull */
77     RealType getVolume(){ return volume_; }
78    
79 chuckv 1308 std::vector<Triangle> getMesh(){return Triangles_;}
80 chuckv 1293 void printHull(const std::string& geomFileName);
81 chuckv 1374
82 chuckv 1141 protected:
83 chuckv 1374 RealType volume_;
84     RealType area_;
85 chuckv 1141 int dim_;
86     const std::string options_;
87 chuckv 1374
88     private:
89 chuckv 1308 std::vector<Triangle> Triangles_;
90 chuckv 1141 };
91 chuckv 1097 }
92     #endif /*MATH_CONVEXHULL_HPP_*/