vrcore  0.45
visuReal Messkern
 All Classes Files Functions Variables
ContourData.h
1 #pragma once
2 
4 {
5 private:
6  bool bDisabled;
7  const DoubleContourSPtr cont;
12  cv::Mat cart_c, rad_c, angle_c;
14  std::vector<cv::Mat> cartD_c;
16  cv::Mat angleD_c, radD_c;
17  double maxRadD, minRadD;
18  bool bPassZero;
20  double mostClockwisePt[2], leastClockwisePt[2];
21  double arcLen;
22  double radMin, radMax, radAverage;
23 
24  void radMinMaxAverage ();
25  void angleMinMaxLength ();
26  void calcDerivedData ();
27 public:
28  ContourData (const DoubleContourSPtr cont_, const cv::Mat &cart_c_);
29  ~ContourData(void);
30  const DoubleContourSPtr getContour() const { return cont; }
31  void setEnabled () { bDisabled = false; }
32  void setDisabled () { bDisabled = true; }
33  bool isDisabled () const { return bDisabled == true; }
34  bool isEnabled () const { return bDisabled == false; }
35  bool isPassZero () const { return bPassZero; }
36  double getMostClockwiseAng () const { return mostClockwisePt[0]; }
37  double getLeastClockwiseAng () const { return leastClockwisePt[0]; }
38  double getMostClockwiseRad () const { return mostClockwisePt[1]; }
39  double getLeastClockwiseRad () const { return leastClockwisePt[1]; }
40  double getArcLen () const { return arcLen; }
41  double getRadAverage () const { return radAverage; }
42  void getCartC (cv::Mat &mat) const { mat = cart_c; }
43  void getCartD (std::vector<cv::Mat>& derivatives) const { derivatives = cartD_c; }
44  void getRadC (cv::Mat &mat) const { mat = rad_c; }
45  void getRadD (cv::Mat &mat) const { mat = radD_c; }
46  void getAngleC (cv::Mat &mat) const { mat = angle_c; }
47  void getAngleD (cv::Mat &mat) const { mat = angleD_c; }
50  bool moreCWThan (ContourData &other) const { return mostClockwisePt[0] < other.mostClockwisePt[0]; }
51  bool lessCWThan (ContourData &other) const { return leastClockwisePt[0] > other.leastClockwisePt[0]; }
52  bool inArcRange (double arcVal) const;
53  bool overlaps (const ContourData &other) { return inArcRange (other.leastClockwisePt[0]) || inArcRange (other.mostClockwisePt[0]) || other.inArcRange (leastClockwisePt[0]) || other.inArcRange (mostClockwisePt[0]); }
54 // bool findNearestPoint (cv::Point &pt, double arcVal);
55 };
56 
64 void numDerivative ( std::vector<cv::Mat>& derivative, const cv::Mat X,const cv::Mat Y, const bool polarFlag/*false*/);
65 
66 
67 bool compareMostClockwise (ContourDataSPtr contSysA, ContourDataSPtr contSysB);
68 bool compareLeastClockwise (ContourDataSPtr contSysA, ContourDataSPtr contSysB);
69 bool compareMinArcLength (ContourDataSPtr contSysA, ContourDataSPtr contSysB) ;
70 bool compareMaxArcLength (ContourDataSPtr contSysA, ContourDataSPtr contSysB) ;
71 bool compareMinRadAverage (ContourDataSPtr contSysA, ContourDataSPtr contSysB) ;
72 bool compareMaxRadAverage (ContourDataSPtr contSysA, ContourDataSPtr contSysB);
bool moreCWThan(ContourData &other) const
Definition: ContourData.h:50
Definition: ContourData.h:3