Mantid
|
Interset of Line with a surface. More...
#include <LineIntersectVisit.h>
Public Types | |
using | DistancesType = boost::container::small_vector< double, 5 > |
Public Member Functions | |
void | Accept (const Cone &) override |
Process an intersect track. More... | |
void | Accept (const Cylinder &) override |
Process an intersect track. More... | |
void | Accept (const General &) override |
Process an intersect track. More... | |
void | Accept (const Plane &) override |
Process an intersect track. More... | |
void | Accept (const Quadratic &) |
Process an intersect track. More... | |
void | Accept (const Sphere &) override |
Process an intersect track. More... | |
void | Accept (const Surface &) override |
Process an intersect track. More... | |
const DistancesType & | getDistance () const |
Get the distance. More... | |
unsigned long | getNPoints () const |
Get the number of intersection points. More... | |
const Line::PType & | getPoints () const |
Get the intersection points. More... | |
LineIntersectVisit (const Kernel::V3D &, const Kernel::V3D &) | |
Constructor. More... | |
void | setLine (const Kernel::V3D &, const Kernel::V3D &) |
Re-set the line. More... | |
void | sortAndRemoveDuplicates () |
Prune out duplicated points and sort by distance to starting point. More... | |
Public Member Functions inherited from Mantid::Geometry::BaseVisit | |
virtual void | Accept (const Cone &)=0 |
Accept a cone. More... | |
virtual void | Accept (const Cylinder &)=0 |
Accept a cylinder. More... | |
virtual void | Accept (const General &)=0 |
Accept a general surface. More... | |
virtual void | Accept (const Plane &)=0 |
Accept a plane. More... | |
virtual void | Accept (const Sphere &)=0 |
Accept a sphere. More... | |
virtual void | Accept (const Surface &)=0 |
Accept a surface. More... | |
virtual | ~BaseVisit ()=default |
Destructor. More... | |
Private Attributes | |
DistancesType | m_distancesOut |
The distance. More... | |
Line::PType | m_intersectionPointsOut |
The intersection point. More... | |
Line | m_line |
The line. More... | |
Interset of Line with a surface.
Creates interaction with a line
Definition at line 39 of file LineIntersectVisit.h.
using Mantid::Geometry::LineIntersectVisit::DistancesType = boost::container::small_vector<double, 5> |
Definition at line 41 of file LineIntersectVisit.h.
Mantid::Geometry::LineIntersectVisit::LineIntersectVisit | ( | const Kernel::V3D & | point, |
const Kernel::V3D & | unitVector | ||
) |
Constructor.
Definition at line 21 of file LineIntersectVisit.cpp.
References m_distancesOut, and m_intersectionPointsOut.
|
overridevirtual |
Process an intersect track.
Surf | :: Surface to use int line Interesect |
Implements Mantid::Geometry::BaseVisit.
Definition at line 59 of file LineIntersectVisit.cpp.
References Mantid::Geometry::Line::intersect(), m_intersectionPointsOut, and m_line.
|
overridevirtual |
Process an intersect track.
Surf | :: Surface to use int line Interesect |
Implements Mantid::Geometry::BaseVisit.
Definition at line 68 of file LineIntersectVisit.cpp.
References Mantid::Geometry::Line::intersect(), m_intersectionPointsOut, and m_line.
|
overridevirtual |
Process an intersect track.
Surf | :: Surface to use int line Interesect |
Implements Mantid::Geometry::BaseVisit.
Definition at line 86 of file LineIntersectVisit.cpp.
References Mantid::Geometry::Line::intersect(), m_intersectionPointsOut, and m_line.
|
overridevirtual |
Process an intersect track.
Surf | :: Surface to use int line Interesect |
Implements Mantid::Geometry::BaseVisit.
Definition at line 50 of file LineIntersectVisit.cpp.
References Mantid::Geometry::Line::intersect(), m_intersectionPointsOut, and m_line.
void Mantid::Geometry::LineIntersectVisit::Accept | ( | const Quadratic & | Surf | ) |
Process an intersect track.
Surf | :: Surface to use int line Interesect |
Definition at line 41 of file LineIntersectVisit.cpp.
References Mantid::Geometry::Line::intersect(), m_intersectionPointsOut, and m_line.
|
overridevirtual |
Process an intersect track.
Surf | :: Surface to use int line Interesect |
Implements Mantid::Geometry::BaseVisit.
Definition at line 77 of file LineIntersectVisit.cpp.
References Mantid::Geometry::Line::intersect(), m_intersectionPointsOut, and m_line.
|
overridevirtual |
Process an intersect track.
Surf | :: Surface to use int line Interesect |
Implements Mantid::Geometry::BaseVisit.
Definition at line 31 of file LineIntersectVisit.cpp.
|
inline |
Get the distance.
Definition at line 60 of file LineIntersectVisit.h.
Referenced by Mantid::Geometry::CSGObject::distance(), and Mantid::Geometry::CSGObject::interceptSurface().
|
inline |
Get the number of intersection points.
Definition at line 64 of file LineIntersectVisit.h.
|
inline |
Get the intersection points.
Definition at line 62 of file LineIntersectVisit.h.
Referenced by Mantid::Geometry::CSGObject::interceptSurface().
void Mantid::Geometry::LineIntersectVisit::setLine | ( | const Kernel::V3D & | , |
const Kernel::V3D & | |||
) |
Re-set the line.
void Mantid::Geometry::LineIntersectVisit::sortAndRemoveDuplicates | ( | ) |
Prune out duplicated points and sort by distance to starting point.
Prune duplicated interception points in the point list.
Definition at line 99 of file LineIntersectVisit.cpp.
References Mantid::Geometry::Line::getDirect(), Mantid::Geometry::Line::getOrigin(), m_distancesOut, m_intersectionPointsOut, and m_line.
Referenced by Mantid::Geometry::CSGObject::distance(), and Mantid::Geometry::CSGObject::interceptSurface().
|
private |
The distance.
Definition at line 46 of file LineIntersectVisit.h.
Referenced by LineIntersectVisit(), and sortAndRemoveDuplicates().
|
private |
The intersection point.
Definition at line 45 of file LineIntersectVisit.h.
Referenced by Accept(), LineIntersectVisit(), and sortAndRemoveDuplicates().
|
private |
The line.
Definition at line 44 of file LineIntersectVisit.h.
Referenced by Accept(), and sortAndRemoveDuplicates().