40 Torus *doClone()
const override;
48 std::string
className()
const override {
return "Torus"; }
51 std::unique_ptr<Torus> clone()
const;
57 int setSurface(
const std::string &Pstr)
override;
59 bool onSurface(
const Kernel::V3D &R)
const override;
60 double distance(
const Kernel::V3D &Pt)
const override;
74 void setDistanceFromCentreToTube(
double dist);
78 void setTubeRadius(
double dist);
80 void write(std::ostream &OX)
const override;
81 void getBoundingBox(
double &xmax,
double &ymax,
double &zmax,
double &xmin,
double &ymin,
double &zmin)
override;
82#ifdef ENABLE_OPENCASCADE
83 TopoDS_Shape createShape()
override;
virtual void Accept(const Surface &)=0
Accept a surface.
Holds a basic quadratic surface.
Holds a torus in vector form.
Kernel::V3D Normal
Normal.
double Displacement
Displacement.
double Dradius
Inner radius.
void acceptVisitor(BaseVisit &A) const override
Accept visitor for line calculation.
Torus(const Torus &)=default
Kernel::V3D getNormal() const
Central normal.
std::string className() const override
Public identifier.
Torus & operator=(const Torus &)=delete
Kernel::V3D Centre
Geometry::Vec3D for centre.
double Iradius
Inner radius.
Kernel::V3D getCentre() const
Return centre point.
Helper class which provides the Collimation Length for SANS instruments.
constexpr bool operator==(const wide_integer< Bits, Signed > &lhs, const wide_integer< Bits2, Signed2 > &rhs)