DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
CircleFrom3Points.h
1
16
17
#pragma once
18
31
32
#if defined(CircleFrom3Points_RECURSES)
33
#error Recursive header files inclusion detected in CircleFrom3Points.h
34
#else
// defined(CircleFrom3Points_RECURSES)
36
#define CircleFrom3Points_RECURSES
37
38
#if !defined CircleFrom3Points_h
40
#define CircleFrom3Points_h
41
43
// Inclusions
44
#include <iostream>
45
46
#include "DGtal/base/Common.h"
47
#include "DGtal/kernel/PointVector.h"
48
#include "DGtal/kernel/NumberTraits.h"
49
#include "DGtal/io/Color.h"
51
52
namespace
DGtal
53
{
54
55
57
// template class CircleFrom3Points
65
template
<
typename
TPo
int
>
66
class
CircleFrom3Points
67
{
68
69
BOOST_STATIC_ASSERT
(( TPoint::dimension == 2 ));
70
71
// ----------------------- associated types ------------------------------
72
public
:
73
74
typedef
typename
TPoint::Coordinate
Coordinate
;
75
typedef
Coordinate
Distance
;
//to promote
76
typedef
TPoint
Point
;
77
typedef
TPoint
Vector
;
78
79
// ----------------------- Standard services ------------------------------
80
public
:
81
85
CircleFrom3Points
();
86
87
94
CircleFrom3Points
(
const
Point
& aFirstPoint,
const
Point
& aSecondPoint,
const
Point
& aThirdPoint);
95
102
void
init
(
const
Point
& aFirstPoint,
const
Point
& aSecondPoint,
const
Point
& aThirdPoint);
103
108
CircleFrom3Points
(
const
CircleFrom3Points
& other );
109
115
CircleFrom3Points
&
operator=
(
const
CircleFrom3Points
& other );
116
117
121
~CircleFrom3Points
();
122
123
// ----------------------- Interface --------------------------------------
124
public
:
125
131
Distance
signedDistance
(
const
Point
& aP)
const
;
132
133
//------------------ accessors -------------------------------
138
bool
isValid
()
const
;
139
146
147
void
getParameters
(
double
& cx,
double
& cy,
double
& rr)
const
;
148
152
double
getCurvature
()
const
;
153
157
const
Point
&
p
()
const
158
{
159
return
myP
;
160
};
161
165
const
Point
&
q
()
const
166
{
167
return
myQ
;
168
};
169
173
const
Point
&
r
()
const
174
{
175
return
myR
;
176
};
177
178
179
//------------------ display -------------------------------
180
185
void
selfDisplay
( std::ostream & out )
const
;
186
190
std::string
className
()
const
;
191
192
193
// ------------------------- Protected Data ------------------------------
194
private
:
195
// ------------------------- Private Data --------------------------------
196
private
:
197
//the three points that uniquely define the circle
201
Point
myP
;
205
Point
myQ
;
209
Point
myR
;
210
// ------------------------- Hidden services ------------------------------
211
protected
:
212
213
214
private
:
215
216
217
218
// ------------------------- Internals ------------------------------------
219
private
:
220
221
222
223
224
};
// end of class CircleFrom3Points
225
226
233
template
<
typename
TPo
int
>
234
inline
235
std::ostream&
236
operator<<
( std::ostream & out,
237
const
CircleFrom3Points<TPoint>
&
object
)
238
{
239
object
.selfDisplay( out );
240
return
out;
241
}
242
243
244
}
// namespace DGtal
245
246
248
// Includes inline functions.
249
#include "DGtal/shapes/fromPoints/CircleFrom3Points.ih"
250
251
// //
253
254
#endif
// !defined CircleFrom3Points_h
255
256
#undef CircleFrom3Points_RECURSES
257
#endif
// else defined(CircleFrom3Points_RECURSES)
DGtal::CircleFrom3Points
Aim: Represents a circle uniquely defined by three 2D points and that is able to return for any given...
Definition
CircleFrom3Points.h:67
DGtal::CircleFrom3Points::CircleFrom3Points
CircleFrom3Points(const CircleFrom3Points &other)
DGtal::CircleFrom3Points< Point >::Point
Point Point
Definition
CircleFrom3Points.h:76
DGtal::CircleFrom3Points::CircleFrom3Points
CircleFrom3Points()
DGtal::CircleFrom3Points::p
const Point & p() const
Definition
CircleFrom3Points.h:157
DGtal::CircleFrom3Points::getParameters
void getParameters(double &cx, double &cy, double &rr) const
DGtal::CircleFrom3Points< Point >::Coordinate
Point::Coordinate Coordinate
Definition
CircleFrom3Points.h:74
DGtal::CircleFrom3Points::signedDistance
Distance signedDistance(const Point &aP) const
DGtal::CircleFrom3Points::selfDisplay
void selfDisplay(std::ostream &out) const
DGtal::CircleFrom3Points< Point >::myR
Point myR
Definition
CircleFrom3Points.h:209
DGtal::CircleFrom3Points::CircleFrom3Points
CircleFrom3Points(const Point &aFirstPoint, const Point &aSecondPoint, const Point &aThirdPoint)
DGtal::CircleFrom3Points< Point >::myP
Point myP
Definition
CircleFrom3Points.h:201
DGtal::CircleFrom3Points::q
const Point & q() const
Definition
CircleFrom3Points.h:165
DGtal::CircleFrom3Points::~CircleFrom3Points
~CircleFrom3Points()
DGtal::CircleFrom3Points< Point >::myQ
Point myQ
Definition
CircleFrom3Points.h:205
DGtal::CircleFrom3Points::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((TPoint::dimension==2))
DGtal::CircleFrom3Points< Point >::Vector
Point Vector
Definition
CircleFrom3Points.h:77
DGtal::CircleFrom3Points::operator=
CircleFrom3Points & operator=(const CircleFrom3Points &other)
DGtal::CircleFrom3Points::isValid
bool isValid() const
DGtal::CircleFrom3Points::r
const Point & r() const
Definition
CircleFrom3Points.h:173
DGtal::CircleFrom3Points< Point >::Distance
Coordinate Distance
Definition
CircleFrom3Points.h:75
DGtal::CircleFrom3Points::getCurvature
double getCurvature() const
DGtal::CircleFrom3Points::className
std::string className() const
DGtal::CircleFrom3Points::init
void init(const Point &aFirstPoint, const Point &aSecondPoint, const Point &aThirdPoint)
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
DGtal::operator<<
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
src
DGtal
shapes
fromPoints
CircleFrom3Points.h
Generated on
for DGtal by
1.18.0