tesseract
v5.3.3.20231005
quadratc.h
Go to the documentation of this file.
1
/**********************************************************************
2
* File: quadratc.h (Formerly quadrtic.h)
3
* Description: Code for the QUAD_COEFFS class.
4
* Author: Ray Smith
5
* Created: Tue Oct 08 17:24:40 BST 1991
6
*
7
* (C) Copyright 1991, Hewlett-Packard Ltd.
8
** Licensed under the Apache License, Version 2.0 (the "License");
9
** you may not use this file except in compliance with the License.
10
** You may obtain a copy of the License at
11
** http://www.apache.org/licenses/LICENSE-2.0
12
** Unless required by applicable law or agreed to in writing, software
13
** distributed under the License is distributed on an "AS IS" BASIS,
14
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
** See the License for the specific language governing permissions and
16
** limitations under the License.
17
*
18
**********************************************************************/
19
20
#ifndef QUADRATC_H
21
#define QUADRATC_H
22
23
#include "
points.h
"
24
25
namespace
tesseract
{
26
27
class
QUAD_COEFFS
{
28
public
:
29
QUAD_COEFFS
() =
default
;
30
QUAD_COEFFS
(
// constructor
31
double
xsq,
// coefficients
32
float
x
,
float
constant) {
33
a
= xsq;
34
b
=
x
;
35
c
= constant;
36
}
37
38
float
y
(
// evaluate
39
float
x
)
const
{
// at x
40
return
static_cast<
float
>
((
a
*
x
+
b
) *
x
+
c
);
41
}
42
43
void
move
(
// reposition word
44
ICOORD
vec) {
// by vector
45
/************************************************************
46
y - q = a (x - p)^2 + b (x - p) + c
47
y - q = ax^2 - 2apx + ap^2 + bx - bp + c
48
y = ax^2 + (b - 2ap)x + (c - bp + ap^2 + q)
49
************************************************************/
50
int16_t
p
= vec.
x
();
51
int16_t q = vec.
y
();
52
53
c
=
static_cast<
float
>
(
c
-
b
*
p
+
a
*
p
*
p
+ q);
54
b
=
static_cast<
float
>
(
b
- 2 *
a
*
p
);
55
}
56
57
double
a
;
// x squared
58
float
b
;
// x
59
float
c
;
// constant
60
private
:
61
};
62
63
}
// namespace tesseract
64
65
#endif
points.h
x
int x
Definition:
gmock-matchers_test.cc:4027
p
const char * p
Definition:
gmock-matchers_test.cc:4030
tesseract
Definition:
baseapi.h:39
tesseract::ICOORD
integer coordinate
Definition:
points.h:36
tesseract::ICOORD::y
TDimension y() const
access_function
Definition:
points.h:62
tesseract::ICOORD::x
TDimension x() const
access function
Definition:
points.h:58
tesseract::QUAD_COEFFS
Definition:
quadratc.h:27
tesseract::QUAD_COEFFS::QUAD_COEFFS
QUAD_COEFFS(double xsq, float x, float constant)
Definition:
quadratc.h:30
tesseract::QUAD_COEFFS::QUAD_COEFFS
QUAD_COEFFS()=default
tesseract::QUAD_COEFFS::c
float c
Definition:
quadratc.h:59
tesseract::QUAD_COEFFS::a
double a
Definition:
quadratc.h:57
tesseract::QUAD_COEFFS::b
float b
Definition:
quadratc.h:58
tesseract::QUAD_COEFFS::y
float y(float x) const
Definition:
quadratc.h:38
tesseract::QUAD_COEFFS::move
void move(ICOORD vec)
Definition:
quadratc.h:43
src
ccstruct
quadratc.h
Generated on Thu Oct 5 2023 22:10:25 for tesseract by
1.9.4