1#ifndef G_VIEW_ISOCHRONS
2#define G_VIEW_ISOCHRONS
26 void SetArea(
const double xmin,
const double ymin,
const double xmax,
35 void SetPlane(
const double fx,
const double fy,
const double fz,
36 const double x0,
const double y0,
const double z0);
40 void Rotate(
const double angle);
52 const std::vector<std::array<double, 3> >& points,
53 const bool rev =
false,
54 const bool colour =
false,
const bool markers =
false,
55 const bool plotDriftLines =
true);
60 m_particle = Particle::Electron;
61 m_positive = positive;
65 m_particle = Particle::Ion;
66 m_positive = !negative;
84 Sensor* m_sensor =
nullptr;
90 char m_xLabel[50], m_yLabel[50], m_description[50];
93 bool m_hasUserArea =
false;
94 double m_xmin = -1., m_ymin = -1.;
95 double m_xmax = 1., m_ymax = 1.;
97 enum class Particle { Electron = 0, Ion };
99 Particle m_particle = Particle::Electron;
100 bool m_positive =
false;
102 short m_markerStyle = 5;
103 short m_lineStyle = 2;
105 bool m_sortContours =
true;
106 double m_aspectRatio = 3.;
107 double m_loopThreshold = 0.2;
108 double m_connectionThreshold = 0.2;
109 bool m_checkCrossings =
true;
115 void ComputeDriftLines(
const double tstep,
116 const std::vector<std::array<double, 3> >& points,
117 std::vector<std::vector<std::array<double, 3> > >& driftLines,
118 std::vector<std::array<double, 3> >& startPoints,
119 std::vector<std::array<double, 3> >& endPoints,
120 std::vector<int>& statusCodes,
const bool rev =
false);
122 std::vector<std::pair<std::array<double, 4>,
unsigned int> >& contour,
Abstract base class for components.
Base class for visualization classes.
Draw equal time contour lines.
void CheckCrossings(const bool on=true)
void SetArea()
Set the viewing area based on the bounding box of the sensor/component.
void DriftIons(const bool negative=false)
Request ion drift lines with positive (default) or negative charge.
void PlotIsochrons(const double tstep, const std::vector< std::array< double, 3 > > &points, const bool rev=false, const bool colour=false, const bool markers=false, const bool plotDriftLines=true)
void SetConnectionThreshold(const double thr)
~ViewIsochrons()=default
Destructor.
void SetPlane(const double fx, const double fy, const double fz, const double x0, const double y0, const double z0)
void DriftElectrons(const bool positive=false)
void SetAspectRatioSwitch(const double ar)
void EnableSorting(const bool on=true)
Sort (or not) the points on a contour line (default: sorting is done).
ViewIsochrons()
Constructor.
void SetDefaultProjection()
Set the default viewing plane ( - at ).
void SetLoopThreshold(const double thr)
void SetSensor(Sensor *s)
Set the sensor.
void SetComponent(ComponentBase *c)
Set the component.
void Rotate(const double angle)
Rotate the viewing plane (angle in radian).