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 (C) 2020 KiCad Developers, see change_log.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, you may find one here:
18
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19
* or you may search the http://www.gnu.org website for the version 2 license,
20
* or you may write to the Free Software Foundation, Inc.,
21
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22
*/
23
24
#ifndef MINOPTMAX_PROTO_H
25
#define MINOPTMAX_PROTO_H
26
27
#include <limits>
28
29
template
<
class
T=
int
>
30
class
MINOPTMAX
31
{
32
public
:
33
T
Min
()
const
{
return
m_hasMin
?
m_min
: 0; };
34
T
Max
()
const
{
return
m_hasMax
?
m_max
: std::numeric_limits<T>::max(); };
35
T
Opt
()
const
{
return
m_hasOpt
?
m_opt
:
Min
(); };
36
37
bool
HasMin
()
const
{
return
m_hasMin
; }
38
bool
HasMax
()
const
{
return
m_hasMax
; }
39
bool
HasOpt
()
const
{
return
m_hasOpt
; }
40
41
void
SetMin
( T v ) {
m_isNull
=
false
;
m_min
= v;
m_hasMin
=
true
; }
42
void
SetMax
( T v ) {
m_isNull
=
false
;
m_max
= v;
m_hasMax
=
true
; }
43
void
SetOpt
( T v ) {
m_isNull
=
false
;
m_opt
= v;
m_hasOpt
=
true
; }
44
45
bool
IsNull
()
const
{
return
m_isNull
; }
46
47
private
:
48
bool
m_isNull
=
true
;
49
T
m_min
{};
50
T
m_opt
{};
51
T
m_max
{};
52
bool
m_hasMin
=
false
;
53
bool
m_hasOpt
=
false
;
54
bool
m_hasMax
=
false
;
55
};
56
57
#endif
MINOPTMAX
Definition:
minoptmax.h:31
MINOPTMAX::Min
T Min() const
Definition:
minoptmax.h:33
MINOPTMAX::m_isNull
bool m_isNull
Definition:
minoptmax.h:48
MINOPTMAX::m_hasMin
bool m_hasMin
Definition:
minoptmax.h:52
MINOPTMAX::SetMin
void SetMin(T v)
Definition:
minoptmax.h:41
MINOPTMAX::HasMax
bool HasMax() const
Definition:
minoptmax.h:38
MINOPTMAX::m_max
T m_max
Definition:
minoptmax.h:51
MINOPTMAX::SetOpt
void SetOpt(T v)
Definition:
minoptmax.h:43
MINOPTMAX::HasMin
bool HasMin() const
Definition:
minoptmax.h:37
MINOPTMAX::SetMax
void SetMax(T v)
Definition:
minoptmax.h:42
MINOPTMAX::Max
T Max() const
Definition:
minoptmax.h:34
MINOPTMAX::m_hasMax
bool m_hasMax
Definition:
minoptmax.h:54
MINOPTMAX::IsNull
bool IsNull() const
Definition:
minoptmax.h:45
MINOPTMAX::m_opt
T m_opt
Definition:
minoptmax.h:50
MINOPTMAX::m_hasOpt
bool m_hasOpt
Definition:
minoptmax.h:53
MINOPTMAX::Opt
T Opt() const
Definition:
minoptmax.h:35
MINOPTMAX::m_min
T m_min
Definition:
minoptmax.h:49
MINOPTMAX::HasOpt
bool HasOpt() const
Definition:
minoptmax.h:39
src
libs
core
include
core
minoptmax.h
Generated on Thu Nov 21 2024 00:06:44 for KiCad PCB EDA Suite by
1.9.6