KiCad PCB EDA Suite
Loading...
Searching...
No Matches
minoptmax.h
Go to the documentation of this file.
1
/*
2
* This program source code file is part of KiCad, a free EDA CAD application.
3
*
4
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <https://www.gnu.org/licenses/>.
18
*/
19
20
#ifndef MINOPTMAX_PROTO_H
21
#define MINOPTMAX_PROTO_H
22
23
#include <limits>
24
25
template
<
class
T=
int
>
26
class
MINOPTMAX
27
{
28
public
:
29
T
Min
()
const
{
return
m_hasMin
?
m_min
: 0; };
30
T
Max
()
const
{
return
m_hasMax
?
m_max
: std::numeric_limits<T>::max(); };
31
T
Opt
()
const
{
return
m_hasOpt
?
m_opt
:
Min
(); };
32
33
bool
HasMin
()
const
{
return
m_hasMin
; }
34
bool
HasMax
()
const
{
return
m_hasMax
; }
35
bool
HasOpt
()
const
{
return
m_hasOpt
; }
36
37
void
SetMin
(
T
v ) {
m_isNull
=
false
;
m_min
= v;
m_hasMin
=
true
; }
38
void
SetMax
(
T
v ) {
m_isNull
=
false
;
m_max
= v;
m_hasMax
=
true
; }
39
void
SetOpt
(
T
v ) {
m_isNull
=
false
;
m_opt
= v;
m_hasOpt
=
true
; }
40
41
bool
IsNull
()
const
{
return
m_isNull
; }
42
43
private
:
44
bool
m_isNull
=
true
;
45
T
m_min
{};
46
T
m_opt
{};
47
T
m_max
{};
48
bool
m_hasMin
=
false
;
49
bool
m_hasOpt
=
false
;
50
bool
m_hasMax
=
false
;
51
};
52
53
#endif
MINOPTMAX
Definition
minoptmax.h:27
MINOPTMAX::Min
T Min() const
Definition
minoptmax.h:29
MINOPTMAX::m_isNull
bool m_isNull
Definition
minoptmax.h:44
MINOPTMAX::m_hasMin
bool m_hasMin
Definition
minoptmax.h:48
MINOPTMAX::SetMin
void SetMin(T v)
Definition
minoptmax.h:37
MINOPTMAX::HasMax
bool HasMax() const
Definition
minoptmax.h:34
MINOPTMAX::m_max
T m_max
Definition
minoptmax.h:47
MINOPTMAX::SetOpt
void SetOpt(T v)
Definition
minoptmax.h:39
MINOPTMAX::HasMin
bool HasMin() const
Definition
minoptmax.h:33
MINOPTMAX::SetMax
void SetMax(T v)
Definition
minoptmax.h:38
MINOPTMAX::Max
T Max() const
Definition
minoptmax.h:30
MINOPTMAX::m_hasMax
bool m_hasMax
Definition
minoptmax.h:50
MINOPTMAX::IsNull
bool IsNull() const
Definition
minoptmax.h:41
MINOPTMAX::m_opt
T m_opt
Definition
minoptmax.h:46
MINOPTMAX::m_hasOpt
bool m_hasOpt
Definition
minoptmax.h:49
MINOPTMAX::Opt
T Opt() const
Definition
minoptmax.h:31
MINOPTMAX::m_min
T m_min
Definition
minoptmax.h:45
MINOPTMAX::HasOpt
bool HasOpt() const
Definition
minoptmax.h:35
TRANSLINE_PARAMETERS::T
@ T
Definition
transline_calculation_base.h:39
src
libs
core
include
core
minoptmax.h
Generated on Fri Jun 26 2026 00:05:37 for KiCad PCB EDA Suite by
1.13.2