Visual Servoing Platform version 3.6.0
Loading...
Searching...
No Matches
vpTriangle.h
1/*
2 * ViSP, open source Visual Servoing Platform software.
3 * Copyright (C) 2005 - 2023 by Inria. All rights reserved.
4 *
5 * This software is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 * See the file LICENSE.txt at the root directory of this source
10 * distribution for additional information about the GNU GPL.
11 *
12 * For using ViSP with software that can not be combined with the GNU
13 * GPL, please contact Inria about acquiring a ViSP Professional
14 * Edition License.
15 *
16 * See https://visp.inria.fr for more information.
17 *
18 * This software was developed at:
19 * Inria Rennes - Bretagne Atlantique
20 * Campus Universitaire de Beaulieu
21 * 35042 Rennes Cedex
22 * France
23 *
24 * If you have questions regarding the use of this file, please contact
25 * Inria at visp@inria.fr
26 *
27 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29 *
30 * Description:
31 * Defines a 2D triangle.
32 */
33
34#ifndef vpTriangle_h
35#define vpTriangle_h
36
49#include <visp3/core/vpImagePoint.h>
50#include <visp3/core/vpMatrix.h>
51
52class VISP_EXPORT vpTriangle
53{
54private:
55 bool goodTriange;
56 vpImagePoint S1;
57 double uvinv00;
58 double uvinv01;
59 double uvinv10;
60 double uvinv11;
61 double ptempo0;
62 double ptempo1;
63 double area;
64 vpImagePoint apex1;
65 vpImagePoint apex2;
66 vpImagePoint apex3;
67
68public:
69 vpTriangle();
70 vpTriangle(const vpTriangle &tri);
71 virtual ~vpTriangle();
72
73 vpTriangle &operator=(const vpTriangle &tri);
74
75 vpTriangle(const vpImagePoint &iP1, const vpImagePoint &iP2, const vpImagePoint &iP3);
76
77 void buildFrom(const vpImagePoint &iP1, const vpImagePoint &iP2, const vpImagePoint &iP3);
78
79 bool inTriangle(const vpImagePoint &iP, double threshold = 0.00001);
80
89 {
90 iP1 = apex1;
91 iP2 = apex2;
92 iP3 = apex3;
93 }
94
101 inline double getArea() const { return this->area; }
102
103private:
104 void init(const vpImagePoint &iP1, const vpImagePoint &iP2, const vpImagePoint &iP3);
105};
106
107#endif
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
Defines a 2D triangle.
Definition vpTriangle.h:53
void getTriangleApexes(vpImagePoint &iP1, vpImagePoint &iP2, vpImagePoint &iP3) const
Definition vpTriangle.h:88
double getArea() const
Definition vpTriangle.h:101