![]() |
Belle II Software development
|
A line with a support point and tangential vector. More...
#include <ParameterLine2D.h>
Public Member Functions | |
| ParameterLine2D () | |
| Default constructor for ROOT compatibility. | |
| ParameterLine2D (const ROOT::Math::XYVector &support, const ROOT::Math::XYVector &tangential) | |
| Standard constructor taking the support point and the tangential vector. | |
| ParameterLine2D (const Line2D &line) | |
| Upcast the normal representation to a parameter line. | |
| operator Line2D () | |
| Downcast the line to the normal representation. | |
| const ROOT::Math::XYVector & | tangential () const |
| Gives the tangential vector of the line. | |
| ROOT::Math::XYVector | normal () const |
| Gives the normal vector of the line. | |
| const ROOT::Math::XYVector & | support () const |
| Gives the support vector of the line. | |
| ROOT::Math::XYVector | at (const double parameter) const |
| Evaluates the line formula at the parameter given. | |
| EForwardBackward | alignedWithFirst () const |
| Indicates if the tangential vector point in a common direction with the first coordinate axes. | |
| EForwardBackward | alignedWithSecond () const |
| Indicates if the tangential vector point in a common direction with the second coordinate axes. | |
| void | normalize () |
| Normalizes the tangential vector inplace. | |
| void | invalidate () |
| Clear all information from the line. | |
| bool | isInvalid () const |
| Check it the line is in an invalid state. | |
| void | reverse () |
| Reverses the tangential vector inplace. | |
| ParameterLine2D | reversed () const |
| Makes a copy line which has the opposite tangential vector but same support point. | |
| double | distance (const ROOT::Math::XYVector &point) const |
| Gives the signed distance of a point to the line. | |
| double | distance (const double first, const double second) const |
| Calculates the signed distance of the point given by its to coordinates to the line. | |
| double | distanceToOrigin () const |
| Gives the signed distance of the origin. | |
| double | absoluteDistance (const ROOT::Math::XYVector &point) const |
| Gives the unsigned distance of a point to the line. | |
| ERightLeft | isRightOrLeft (const ROOT::Math::XYVector &point) const |
| Return if the point given is right or left of the line. | |
| bool | isLeft (const ROOT::Math::XYVector &rhs) const |
| Return if the point given is left of the line. | |
| bool | isRight (const ROOT::Math::XYVector &rhs) const |
| Return if the point given is right of the line. | |
| ROOT::Math::XYVector | closest (const ROOT::Math::XYVector &point) const |
| Gives the position at the closest approach on the line to point. | |
| double | closestAt (const ROOT::Math::XYVector &point) const |
| Gives the line parameter at the closest approach to point. | |
| ROOT::Math::XYVector | closestToOrigin () const |
| Gives the position of closest approach to the origin. | |
| double | closestToOriginAt () const |
| Gives the line parameter at the closest approach to the origin. | |
| double | lengthOnCurve (const ROOT::Math::XYVector &from, const ROOT::Math::XYVector &to) const |
| Denotes the length on the line between the two points. | |
| double | intersectionAt (const Line2D &line) const |
| Gives the line parameter where the two lines meet. Infinity for parallels. | |
| double | intersectionAt (const ParameterLine2D &line) const |
| Gives the line parameter of this line where the two lines meet. Infinity for parallels. | |
| std::pair< double, double > | intersectionsAt (const GeneralizedCircle &genCircle) const |
| Gives the line parameters of this line, where it intersects with the generalized circle. | |
| ROOT::Math::XYVector | intersection (const Line2D &line) const |
| Gives the point where the two lines meet. Infinities for parallels. | |
| ROOT::Math::XYVector | intersection (const ParameterLine2D &line) const |
| Gives the point where the two lines meet. Infinities for parallels. | |
Transformations of the line | |
| void | passiveMoveAtBy (const double delta) |
| Moves the support point by the given amount of the parameter in the forward direction. | |
| void | moveBy (const ROOT::Math::XYVector &by) |
| Moves the line in the given direction in place. Corresponds to an active transformation. | |
| void | moveAlongFirst (const double first) |
| Moves the line along the first coordinate axes in place. | |
| void | moveAlongSecond (const double second) |
| Moves the line along the second coordinate axes in place. | |
| void | passiveMoveBy (const ROOT::Math::XYVector &by) |
| Moves the coordinate system in the given direction in place. | |
| void | passiveMoveAlongFirst (const double first) |
| Moves the coordinate system along the first coordinate axes in place. | |
| void | passiveMoveAlongSecond (const double second) |
| Moves the coordinate system along the second coordinate axes in place. | |
Line as a function of the first coordinate | |
The next couple of methods are to interpret the line as a function mapping from first to second coordinate | |
| double | slope () const |
| The line slope. | |
| double | inverseSlope () const |
| The inverse line slope. | |
| double | intercept () const |
| Second coordinate for first being zero. | |
| double | zero () const |
| First coordinate for second being zero. | |
| double | map (const double first) const |
| Method mapping the first coordinate to the second according to the line. | |
| double | operator() (const double first) const |
| Operator mapping the first coordinate to the second according to the line. | |
| double | inverseMap (const double second) const |
| Method for the inverse mapping the second coordinate to the first according to the line. | |
| void | invert () |
| Turns the line into its inverse function in place. Orientation will be flipped as well. | |
| ParameterLine2D | inverted () const |
| Gives the line associated with the inverse function as a copy. | |
Static Public Member Functions | |
| static ParameterLine2D | fromSlopeIntercept (const double slope, const double intercept) |
| Constructs a line with slope and intercept. | |
| static ParameterLine2D | fromSlopeIntercept (const double slope, const double intercept, const EForwardBackward orientation) |
| Constructs a line with slope and intercept. | |
| static ParameterLine2D | throughPoints (const ROOT::Math::XYVector &start, const ROOT::Math::XYVector &end) |
| Static constructor for a line between to points. | |
| static ParameterLine2D | touchingCircles (const ROOT::Math::XYVector &fromCenter, double fromSignedRadius, const ROOT::Math::XYVector &toCenter, double toSignedRadius) |
| Constructs a line touching two circles in one point each. | |
Private Attributes | |
| ROOT::Math::XYVector | m_support |
| Support vector of the line. | |
| ROOT::Math::XYVector | m_tangential |
| Tangential vector of the line. | |
A line with a support point and tangential vector.
Implements the representation 



this line defines a direction of positive advance ( the tangential vector ) as well as
a right and a left half plane.
Definition at line 40 of file ParameterLine2D.h.
|
inline |
Default constructor for ROOT compatibility.
Definition at line 44 of file ParameterLine2D.h.
|
inline |
Standard constructor taking the support point and the tangential vector.
Definition at line 51 of file ParameterLine2D.h.
|
inlineexplicit |
Upcast the normal representation to a parameter line.
Upcasting requires some additional information to be set namely the support point and the scale of the tangential. The support is set the point closest to the origin. The tangential is of unit length. Note the orientation of the line remains the same.
Definition at line 95 of file ParameterLine2D.h.
|
inline |
Gives the unsigned distance of a point to the line.
Definition at line 225 of file ParameterLine2D.h.
|
inline |
Indicates if the tangential vector point in a common direction with the first coordinate axes.
Definition at line 151 of file ParameterLine2D.h.
|
inline |
Indicates if the tangential vector point in a common direction with the second coordinate axes.
Definition at line 158 of file ParameterLine2D.h.
|
inline |
Evaluates the line formula at the parameter given.
Definition at line 144 of file ParameterLine2D.h.
|
inline |
Gives the position at the closest approach on the line to point.
Definition at line 249 of file ParameterLine2D.h.
|
inline |
Gives the line parameter at the closest approach to point.
Definition at line 258 of file ParameterLine2D.h.
|
inline |
Gives the position of closest approach to the origin.
Definition at line 264 of file ParameterLine2D.h.
|
inline |
Gives the line parameter at the closest approach to the origin.
Definition at line 271 of file ParameterLine2D.h.
|
inline |
Calculates the signed distance of the point given by its to coordinates to the line.
Returns the signed distance of the point to the line. The sign is positive
for the right side of the line and negative for the left side.
Definition at line 213 of file ParameterLine2D.h.
|
inline |
Gives the signed distance of a point to the line.
Returns the signed distance of the point to the line. The sign is positive
for the right side of the line and negative for the left side.
Definition at line 205 of file ParameterLine2D.h.
|
inline |
Gives the signed distance of the origin.
Definition at line 219 of file ParameterLine2D.h.
|
inlinestatic |
Constructs a line with slope and intercept.
Orientation will be coaligned with the first axes. Tangential vector is normalized to have a unit in the first coordinate.
Definition at line 61 of file ParameterLine2D.h.
|
inlinestatic |
Constructs a line with slope and intercept.
Orientation means the alignment with the first axes. Orientation will be coaligned or antialigned as given. Tangential vector is normalized to have a unit in the first coordinate.
Definition at line 71 of file ParameterLine2D.h.
|
inline |
Second coordinate for first being zero.
Definition at line 392 of file ParameterLine2D.h.
|
inline |
Gives the point where the two lines meet. Infinities for parallels.
Definition at line 310 of file ParameterLine2D.h.
|
inline |
Gives the point where the two lines meet. Infinities for parallels.
Definition at line 316 of file ParameterLine2D.h.
|
inline |
Gives the line parameter where the two lines meet. Infinity for parallels.
Definition at line 283 of file ParameterLine2D.h.
|
inline |
Gives the line parameter of this line where the two lines meet. Infinity for parallels.
Definition at line 289 of file ParameterLine2D.h.
|
inline |
Gives the line parameters of this line, where it intersects with the generalized circle.
Calculates the two line parameters of the intersections with the circle as a pair. The second of the pair is always the small of the two solutions, which is closer to the support point.
Definition at line 300 of file ParameterLine2D.h.
|
inline |
Clear all information from the line.
Definition at line 177 of file ParameterLine2D.h.
|
inline |
Method for the inverse mapping the second coordinate to the first according to the line.
Definition at line 416 of file ParameterLine2D.h.
|
inline |
The inverse line slope.
Definition at line 386 of file ParameterLine2D.h.
|
inline |
Turns the line into its inverse function in place. Orientation will be flipped as well.
Definition at line 422 of file ParameterLine2D.h.
|
inline |
Gives the line associated with the inverse function as a copy.
Definition at line 429 of file ParameterLine2D.h.
|
inline |
Check it the line is in an invalid state.
Definition at line 184 of file ParameterLine2D.h.
|
inline |
Return if the point given is left of the line.
Definition at line 237 of file ParameterLine2D.h.
|
inline |
Return if the point given is right of the line.
Definition at line 243 of file ParameterLine2D.h.
|
inline |
Return if the point given is right or left of the line.
Definition at line 231 of file ParameterLine2D.h.
|
inline |
Denotes the length on the line between the two points.
Definition at line 277 of file ParameterLine2D.h.
|
inline |
Method mapping the first coordinate to the second according to the line.
Definition at line 404 of file ParameterLine2D.h.
|
inline |
Moves the line along the first coordinate axes in place.
Corresponds to an active transformation.
Definition at line 340 of file ParameterLine2D.h.
|
inline |
Moves the line along the second coordinate axes in place.
Corresponds to an active transformation.
Definition at line 347 of file ParameterLine2D.h.
|
inline |
Moves the line in the given direction in place. Corresponds to an active transformation.
Definition at line 333 of file ParameterLine2D.h.
|
inline |
Gives the normal vector of the line.
Definition at line 132 of file ParameterLine2D.h.
|
inline |
Normalizes the tangential vector inplace.
Normalizes the line representation such that the parameter is identical with the distance from the support point of a point on the line. This can be useful if you want to give the parameter a certain meaning where you have to get rid of the proportional factor associated with the length of the tangential.
Definition at line 169 of file ParameterLine2D.h.
|
inline |
Downcast the line to the normal representation.
Downcasting the parameter line to the line representation using the normal vector. You loose the information where the support point is and the scale of the parameter. However the same points lie on the line and distance to is remain the same
Definition at line 120 of file ParameterLine2D.h.
|
inline |
Operator mapping the first coordinate to the second according to the line.
Definition at line 410 of file ParameterLine2D.h.
|
inline |
Moves the coordinate system along the first coordinate axes in place.
Corresponds to a passive transformation.
Definition at line 361 of file ParameterLine2D.h.
|
inline |
Moves the coordinate system along the second coordinate axes in place.
Corresponds to a passive transformation.
Definition at line 368 of file ParameterLine2D.h.
|
inline |
Moves the support point by the given amount of the parameter in the forward direction.
This moves the parameter by -delta and the following relation hold
old at(p) = new at(p - delta) hence the coordinate at is diminished
This corresponds to a passive movement of the coordinate system on the line
Definition at line 327 of file ParameterLine2D.h.
|
inline |
Moves the coordinate system in the given direction in place.
Corresponds to a passive transformation.
Definition at line 354 of file ParameterLine2D.h.
|
inline |
Reverses the tangential vector inplace.
Definition at line 190 of file ParameterLine2D.h.
|
inline |
Makes a copy line which has the opposite tangential vector but same support point.
Definition at line 196 of file ParameterLine2D.h.
|
inline |
The line slope.
Definition at line 380 of file ParameterLine2D.h.
|
inline |
Gives the support vector of the line.
Definition at line 138 of file ParameterLine2D.h.
|
inline |
Gives the tangential vector of the line.
Definition at line 127 of file ParameterLine2D.h.
|
inlinestatic |
Static constructor for a line between to points.
The resulting line will have start as support. Tangential vector is the difference between end and start. Hence at(0) == start and at(1) == end for the constructed line.
Definition at line 84 of file ParameterLine2D.h.
|
static |
Constructs a line touching two circles in one point each.
| [in] | fromCenter | first circle center |
| [in] | fromSignedRadius | radius of the first circle multiplied with the right left passage information |
| [in] | toCenter | second circle center |
| [in] | toSignedRadius | radius of the first circle multiplied with the right left passage information. |
Definition at line 17 of file ParameterLine2D.cc.
|
inline |
First coordinate for second being zero.
Definition at line 398 of file ParameterLine2D.h.
|
private |
Support vector of the line.
Definition at line 438 of file ParameterLine2D.h.
|
private |
Tangential vector of the line.
Definition at line 441 of file ParameterLine2D.h.