Add_FitFragmentPartialChargesAction
Fix_ChargeSampling_PBC
Fix_FitPartialCharges
Fix_FitPotential_needs_atomicnumbers
Fix_ParseParticles_split_forward_backward_Actions
| Line | |
|---|
| 1 | /*
|
|---|
| 2 | * Shape.hpp
|
|---|
| 3 | *
|
|---|
| 4 | * Created on: Jun 18, 2010
|
|---|
| 5 | * Author: crueger
|
|---|
| 6 | */
|
|---|
| 7 |
|
|---|
| 8 | #ifndef SHAPE_HPP_
|
|---|
| 9 | #define SHAPE_HPP_
|
|---|
| 10 |
|
|---|
| 11 | // include config.h
|
|---|
| 12 | #ifdef HAVE_CONFIG_H
|
|---|
| 13 | #include <config.h>
|
|---|
| 14 | #endif
|
|---|
| 15 |
|
|---|
| 16 |
|
|---|
| 17 | #include <boost/shared_ptr.hpp>
|
|---|
| 18 | #include <iosfwd>
|
|---|
| 19 |
|
|---|
| 20 | #include "Shapes/ShapeExceptions.hpp"
|
|---|
| 21 | #include "Shapes/ShapeType.hpp"
|
|---|
| 22 |
|
|---|
| 23 | #include <vector>
|
|---|
| 24 |
|
|---|
| 25 | class Vector;
|
|---|
| 26 | class Shape_impl;
|
|---|
| 27 | class LineSegmentSet;
|
|---|
| 28 | class Line;
|
|---|
| 29 |
|
|---|
| 30 | class Shape
|
|---|
| 31 | {
|
|---|
| 32 | public:
|
|---|
| 33 | typedef boost::shared_ptr<Shape_impl> impl_ptr;
|
|---|
| 34 | friend impl_ptr getShapeImpl(const Shape&);
|
|---|
| 35 |
|
|---|
| 36 | Shape(impl_ptr);
|
|---|
| 37 | Shape(const Shape&);
|
|---|
| 38 | virtual ~Shape();
|
|---|
| 39 |
|
|---|
| 40 | bool isInside(const Vector &point) const;
|
|---|
| 41 | bool isOnSurface(const Vector &point) const;
|
|---|
| 42 | Vector getNormal(const Vector &point) const throw(NotOnSurfaceException);
|
|---|
| 43 |
|
|---|
| 44 | Vector getCenter() const;
|
|---|
| 45 | double getRadius() const;
|
|---|
| 46 | double getVolume() const;
|
|---|
| 47 | double getSurfaceArea() const;
|
|---|
| 48 |
|
|---|
| 49 | LineSegmentSet getLineIntersections(const Line&) const;
|
|---|
| 50 | std::vector<Vector> getHomogeneousPointsOnSurface(const size_t N) const;
|
|---|
| 51 | std::vector<Vector> getHomogeneousPointsInVolume(const size_t N) const;
|
|---|
| 52 |
|
|---|
| 53 | Shape &operator=(const Shape& rhs);
|
|---|
| 54 |
|
|---|
| 55 | bool operator==(const Shape &rhs) const;
|
|---|
| 56 |
|
|---|
| 57 | std::string toString() const;
|
|---|
| 58 | enum ShapeType getType() const;
|
|---|
| 59 |
|
|---|
| 60 | void setName(const std::string &_name);
|
|---|
| 61 | std::string getName() const;
|
|---|
| 62 |
|
|---|
| 63 | protected:
|
|---|
| 64 | impl_ptr getImpl() const;
|
|---|
| 65 |
|
|---|
| 66 | private:
|
|---|
| 67 | impl_ptr impl;
|
|---|
| 68 | std::string name;
|
|---|
| 69 | };
|
|---|
| 70 |
|
|---|
| 71 | Shape Everywhere();
|
|---|
| 72 | Shape Nowhere();
|
|---|
| 73 |
|
|---|
| 74 | Shape operator&&(const Shape&,const Shape&);
|
|---|
| 75 | Shape operator||(const Shape&,const Shape&);
|
|---|
| 76 | Shape operator!(const Shape&);
|
|---|
| 77 |
|
|---|
| 78 | std::ostream &operator<<(std::ostream&,const Shape&);
|
|---|
| 79 |
|
|---|
| 80 | #endif /* SHAPE_HPP_ */
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.