source: sasview/realSpaceModeling/geoshapespy/libgeoshapespy/ellipsoid.h @ 85e665e

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalccostrafo411magnetic_scattrelease-4.1.1release-4.1.2release-4.2.2release_4.0.1ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since 85e665e was f2d6445, checked in by Mathieu Doucet <doucetm@…>, 17 years ago

moving realSpaceModeling to trunk

  • Property mode set to 100644
File size: 1.5 KB
Line 
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.