source: sasview/src/sas/sascalc/simulation/geoshapespy/libgeoshapespy/single_helix.h @ a9f579c

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.2ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since a9f579c was d85c194, checked in by Piotr Rozyczko <piotr.rozyczko@…>, 8 years ago

Remaining modules refactored

  • Property mode set to 100644
File size: 1.6 KB
Line 
1/** \file cylinder.h class Cylinder:GeoShape */
2
3#ifndef SingleHelix_H
4#define SingleHelix_H
5
6#include "geo_shape.h"
7
8/** class SingleHelix, subclass of GeoShape */
9class SingleHelix : public GeoShape {
10 public:
11
12  /** initialize */
13  SingleHelix();
14
15  /** constructor with radius initialization */
16  SingleHelix(double helix_radius,double tube_radius,double pitch,double turns);
17
18  ~SingleHelix();
19
20  /** set parameter helix_radius */
21  void SetHelixRadius(double hr);
22
23  /** set parameter tube_radius */
24  void SetTubeRadius(double tr);
25
26  /** set parameter pitch */
27  void SetPitch(double pitch);
28
29  /** set parameter number of turns */
30  void SetTurns(double turns);
31
32  /** get the helix_radius */
33  double GetHelixRadius();
34
35  /** get the tube_radius */
36  double GetTubeRadius();
37 
38  /** get the pitch */
39  double GetPitch();
40
41  /** get the number of turns */
42  double GetTurns();
43
44  /** get the radius of the sphere to cover this shape */
45  double GetMaxRadius();
46
47  /** get the volume */
48  double GetVolume();
49
50  /** calculate the single helix form factor, no scale, no background*/
51  void GetFormFactor(IQ * iq);
52
53  /** using a equation to check whether a point with XYZ lies
54      within the cylinder with center (0,0,0)
55  */
56  Point3D GetAPoint(double sld);
57
58  /** check whether a point is inside the cylinder at any position
59      in the 3D space
60  */
61  bool IsInside(const Point3D& point) const;
62
63  ShapeType GetShapeType() const;
64
65 protected:
66  //Point3D GetTopCenter() const;
67  //Point3D GetBotCenter() const;
68
69 private:
70  double hr_,tr_, pitch_, turns_,zr_;
71  Point3D topcenter_,botcenter_;
72
73};
74
75#endif
Note: See TracBrowser for help on using the repository browser.