source: sasview/src/sas/sascalc/simulation/geoshapespy/libgeoshapespy/ellipsoid.h @ 1b9a367

Last change on this file since 1b9a367 was d85c194, checked in by Piotr Rozyczko <piotr.rozyczko@…>, 9 years ago

Remaining modules refactored

  • Property mode set to 100644
File size: 1.5 KB
RevLine 
[aa639ea]1/** \file cylinder.h class Cylinder:GeoShape */
2
3#ifndef Ellipsoid_H
4#define Ellipsoid_H
5
6#include "geo_shape.h"
7
8/** class Ellipsoid, subclass of GeoShape */
9class Ellipsoid : public GeoShape {
10 public:
11
12  /** initialize */
13  Ellipsoid();
14
15  /** constructor with radii initialization */
16  Ellipsoid(double rx,double ry, double rz);
17
18  ~Ellipsoid();
19
20  /** set parameter radii */
21  void SetRadii(double rx, double ry, double rz);
22
23  /** get the radii */
24  double GetRadiusX();
25  double GetRadiusY();
26  double GetRadiusZ();
27 
28  /** get the radius of the sphere to cover this shape */
29  double GetMaxRadius();
30
31  /** get the volume */
32  double GetVolume();
33
34  /** calculate the cylinder form factor, no scale, no background*/
35  void GetFormFactor(IQ * iq);
36
37  /** using a equation to check whether a point with XYZ lies
38      within the cylinder with center (0,0,0)
39  */
40  Point3D GetAPoint(double sld);
41
42  /** check whether a point is inside the cylinder at any position
43      in the 3D space
44  */
45  bool IsInside(const Point3D& point) const;
46
47  ShapeType GetShapeType() const;
48
49 protected:
50  //get a point on three axis for function IsInside,using the edge point
51  Point3D GetXaxisPlusEdge() const;
52  Point3D GetXaxisMinusEdge() const;
53  Point3D GetYaxisPlusEdge() const;
54  Point3D GetYaxisMinusEdge() const;
55  Point3D GetZaxisPlusEdge() const;
56  Point3D GetZaxisMinusEdge() const;
57
58 private:
59  double rx_,ry_,rz_;
60  Point3D xedge_plus_,xedge_minus_;
61  Point3D yedge_plus_,yedge_minus_;
62  Point3D zedge_plus_,zedge_minus_;
63};
64
65#endif
Note: See TracBrowser for help on using the repository browser.