13 #include "../BasicDatatypes.hpp" 155 void setPolar (
double dist,
double hAngle,
double vAngle);
161 void addPolarOffset (
double distOffset,
double hAngleOffset,
double vAngleOffset);
271 #endif // SCANPOINT_HPP
void setSourceId(UINT8 id)
void setDirt(bool isDirt=true)
Labels the scan point as invalid because its an echo from dirt.
This class defines a point in the three-dimensional plane.
friend bool operator==(const ScanPoint &, const ScanPoint &)
Equality predicate.
void setRightCovered(bool isRightCovered=true)
Labels the scan point: Right neighbour point may be covered.
bool isBackground() const
Checks if the scan point is labeled as background.
bool isDirt() const
Checks if the scan point is labeled as dirt.
void setNotCovered()
Remove cover status.
double getEchoWidth() const
EPW of scan point is high enough to be a reflector.
void setEchoNum(UINT8 sub)
void setGround(bool isGround=true)
Labels the scan point as invalid because it is an echo from the ground.
bool isLeftCovered() const
Checks if the "left covered" flag is set.
std::string toString() const
bool isThresholdSwitching() const
Checks if the threshold switching flag is set.
void setRain(bool isRain=true)
Labels the scan point as invalid because its an echo from rain.
bool isTransparent() const
Checks if there is at least one more echo behind this scan point (B or C echo)
void setPolar(double dist, double hAngle, double vAngle)
Invalid scan point, echo from ground.
Left neighbour point may be covered.
void setEchoWidth(double echoWidth)
Set the echo pulse width, typically in [m].
void addPolarOffset(double distOffset, double hAngleOffset, double vAngleOffset)
void setFlags(UINT16 flags)
Sets the scan point flags directly.
void setMarker(bool isMarked=true)
Set or clear the "Marker" flag.
static double getDistanceBetweenScanpoints(const ScanPoint &pt1, const ScanPoint &pt2)
void setPoint3D(const Point3D &pt)
All flags of invalid scan points.
void setValid()
Removes all scan status information.
void setCartesian(double x, double y, double z)
void setLeftCovered(bool isLeftCovered=true)
Labels the scan point: Left neighbour point may be covered.
Point is "marked" (see above)
Point2D toPoint2D() const
Returns the x and y coordinates as a Point2D structure.
Old: Scan point was measured in a shot with threshold switching (earlier FPGA versions) ...
void addCartesianOffset(double xOffset, double yOffset, double zOffset)
There is at least one more echo behind this scan point (B or C echo)
Invalid scan point, echo from dirt.
Right neighbour point may be covered.
void setBackground(bool isBackground=true)
Labels the scan point as invalid because it is in the background area.
Point3D toPoint3D() const
Returns the x,y,z coordinates as a Point3D structure.
Point has been recognized as background and should not be used in the tracking anymore.
bool isRightCovered() const
Checks if the "right covered" flag is set.
UINT8 getSourceId() const
Invalid scan point, echo from rain drop.
void setReflector(bool isReflector=true)
Labels the scan point: EPW is high enough to be a reflector.
bool isMarked() const
Checks if the marker is set.
void updateCartesian()
Compute Cartesian coordinates from the current polar coordinates.
void updatePolar()
Compute polar coordinates from the current Cartesian coordinates.
bool isReflector() const
Checks if the reflector flag is set.
double getDist2D(const ScanPoint &other) const
Returns the two-dimensional distance between this and the given other scanpoint, in [m]...
bool operator!=(const Box2D &b1, const Box2D &b2)
bool isGround() const
Checks if the scan point is labeled as ground.
std::ostream & operator<<(std::ostream &os, const EvalCaseResult &result)
bool isRain() const
Checks if the scan point is labeled as rain.
bool isValid() const
Checks if the scan point is valid (no ground, dirt, or rain)