42#ifndef vpMbtDistanceLine_HH
43#define vpMbtDistanceLine_HH
45#include <visp3/core/vpConfig.h>
46#include <visp3/core/vpHomogeneousMatrix.h>
47#include <visp3/core/vpLine.h>
48#include <visp3/core/vpPoint.h>
49#include <visp3/core/vpUniRand.h>
50#include <visp3/mbt/vpMbHiddenFaces.h>
51#include <visp3/mbt/vpMbtMeLine.h>
52#include <visp3/visual_features/vpFeatureLine.h>
84 bool isTrackedLineWithVisibility;
142#if (VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11)
159 const vpColor &col,
unsigned int thickness = 1,
bool displayFullModel =
false);
161 const vpColor &col,
unsigned int thickness = 1,
bool displayFullModel =
false);
177 inline unsigned int getIndex()
const {
return index; }
188 std::vector<std::vector<double> > getFeaturesForDisplay();
190 std::vector<std::vector<double> > getModelForDisplay(
unsigned int width,
unsigned int height,
192 bool displayFullModel =
false);
199 inline std::string
getName()
const {
return name; }
208 void initInteractionMatrixError();
211 const vpImage<bool> *mask =
nullptr,
const int &initRange = 0);
218 inline bool isTracked()
const {
return isTrackedLineWithVisibility; }
241 inline void setIndex(
unsigned int i) { index = i; }
250 void setMovingEdge(
vpMe *Me);
257 inline void setName(
const std::string &line_name) { this->name = line_name; }
264 inline void setName(
const char *line_name) { this->name = std::string(line_name); }
266 void setTracked(
const std::string &name,
const bool &track);
280 void updateTracked();
Generic class defining intrinsic camera parameters.
Implementation of column vector and the associated operations.
Class to define RGB colors available for display functionalities.
Class that defines a 2D line visual feature which is composed by two parameters that are and ,...
Implementation of an homogeneous matrix and operations on such kind of matrices.
Definition of the vpImage class member functions.
Class that defines a 3D line in the object frame and allows forward projection of the line in the cam...
Implementation of a matrix and operations on matrices.
Implementation of the polygons management for the model-based trackers.
std::vector< unsigned int > nbFeature
The number of moving edges.
void displayMovingEdges(const vpImage< unsigned char > &I)
std::vector< bool > Lindex_polygon_tracked
bool isvisible
Indicates if the line is visible or not.
void setIndex(unsigned int i)
void computeInteractionMatrixError(const vpHomogeneousMatrix &cMo)
vpPoint * p2
The second extremity.
double getMeanWeight() const
vpLine * line
The 3D line.
void display(const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &col, unsigned int thickness=1, bool displayFullModel=false)
void getCameraParameters(vpCameraParameters &camera) const
std::list< int > Lindex_polygon
Index of the faces which contain the line.
void buildFrom(vpPoint &_p1, vpPoint &_p2, vpUniRand &rand_gen)
unsigned int nbFeatureTotal
The number of moving edges.
vpMbtDistanceLine(const vpMbtDistanceLine &)=delete
bool Reinit
Indicates if the line has to be reinitialized.
std::string getName() const
vpColVector error
The error vector.
vpMbHiddenFaces< vpMbtPolygon > * hiddenface
Pointer to the list of faces.
bool closeToImageBorder(const vpImage< unsigned char > &I, const unsigned int threshold)
vpMbtPolygon & getPolygon()
bool useScanLine
Use scanline rendering.
vpPoint * p1
The first extremity.
unsigned int getIndex() const
void setName(const char *line_name)
std::vector< vpMbtMeLine * > meline
The moving edge container.
vpMatrix L
The interaction matrix.
void setCameraParameters(const vpCameraParameters &camera)
void setName(const std::string &line_name)
void setMeanWeight(double w_mean)
void setVisible(bool _isvisible)
void addPolygon(const int &index)
vpMbtDistanceLine & operator=(const vpMbtDistanceLine &)=delete
Implementation of a polygon of the model used by the model-based tracker.
Class that defines a 3D point in the object frame and allows forward projection of a 3D point in the ...
Class for generating random numbers with uniform probability density.