OTB  9.0.0
Orfeo Toolbox
otbAlgoClamp.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2022 Centre National d'Etudes Spatiales (CNES)
3  *
4  * This file is part of Orfeo Toolbox
5  *
6  * https://www.orfeo-toolbox.org/
7  *
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  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20 
21 #ifndef otbAlgoClamp_h
22 #define otbAlgoClamp_h
23 
24 namespace otb
25 {
31 template <typename T>
32 constexpr
33 T const& clamp(T const& v, T const& lo, T const& hi) noexcept
34 {
35  assert( lo <= hi );
36  return (v < lo) ? lo
37  : (hi < v) ? hi
38  : v;
39 }
40 } // otb namespace
42 
43 #endif // otbAlgoClamp_h
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition: otbJoinContainer.h:32
otb::clamp
constexpr T const & clamp(T const &v, T const &lo, T const &hi) noexcept
Definition: otbAlgoClamp.h:33