Loading...
Searching...
No Matches
Parameter.h
1/*********************************************************************
2 * Software License Agreement (BSD License)
3 *
4 * Copyright (c) 2021,
5 * Max Planck Institute for Intelligent Systems (MPI-IS).
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * * Redistributions in binary form must reproduce the above
15 * copyright notice, this list of conditions and the following
16 * disclaimer in the documentation and/or other materials provided
17 * with the distribution.
18 * * Neither the name of the MPI-IS nor the names
19 * of its contributors may be used to endorse or promote products
20 * derived from this software without specific prior written
21 * permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 * POSSIBILITY OF SUCH DAMAGE.
35 *********************************************************************/
36
37/* Author: Andreas Orthey */
38
39#ifndef OMPL_MULTILEVEL_PLANNERS_BUNDLESPACE_DATASTRUCTURES_PARAMETER_
40#define OMPL_MULTILEVEL_PLANNERS_BUNDLESPACE_DATASTRUCTURES_PARAMETER_
41
42#include <ompl/util/Exception.h>
43
44namespace ompl
45{
52 {
53 public:
54 Parameter() = default;
55
56 Parameter(double valueInit) : valueInit_(valueInit){};
57
58 Parameter(double valueInit, double valueTarget) : valueInit_(valueInit), valueTarget_(valueTarget){};
59
61 void setValueInit(double valueInit)
62 {
63 valueInit_ = valueInit;
64 }
66 void setValueTarget(double valueTarget)
67 {
68 valueTarget_ = valueTarget;
69 }
71 void setCounterInit(unsigned long long counterInit)
72 {
73 counterInit_ = counterInit;
74 }
76 void setCounterTarget(unsigned long long counterTarget)
77 {
78 counterTarget_ = counterTarget;
79 }
80
82 double getValueInit()
83 {
84 return valueInit_;
85 }
88 {
89 return valueTarget_;
90 }
92 unsigned long long getCounterInit()
93 {
94 return counterInit_;
95 }
97 unsigned long long getCounterTarget()
98 {
99 return counterTarget_;
100 }
101
103 double operator()(void)
104 {
105 if (counter_ > counterTarget_)
106 return valueTarget_;
107
108 // map to [0,1]
109 double t = (counter_ - counterInit_) / (double)(counterTarget_ - counterInit_);
110
111 double d = valueInit_ + t * (valueTarget_ - valueInit_);
112 counter_++;
113 return d;
114 }
115
117 void reset()
118 {
119 counter_ = counterInit_;
120 }
121
123 unsigned long long getCounter()
124 {
125 return counter_;
126 }
129 {
130 counter_++;
131 }
132
133 private:
135 double valueInit_{0.0};
137 double valueTarget_{1.0};
138
139 unsigned long long counter_{0};
140 unsigned long long counterInit_{0};
141 unsigned long long counterTarget_{100};
142 };
143}
144#endif
Parameter represents a smooth interpolation between two parameter values, namely valueInit and valueT...
Definition Parameter.h:52
void reset()
Reset counter to init counter.
Definition Parameter.h:117
double operator()(void)
Call parameter and increase counter.
Definition Parameter.h:103
void incrementCounter()
Increment counter.
Definition Parameter.h:128
double getValueInit()
Get init value.
Definition Parameter.h:82
void setCounterInit(unsigned long long counterInit)
Set counter init value (default: 0)
Definition Parameter.h:71
void setValueTarget(double valueTarget)
Set target value (default: 1.0)
Definition Parameter.h:66
unsigned long long getCounterTarget()
Get counter target value.
Definition Parameter.h:97
void setValueInit(double valueInit)
Set initial value (default: 0.0)
Definition Parameter.h:61
void setCounterTarget(unsigned long long counterTarget)
Set counter target value (default: 100)
Definition Parameter.h:76
unsigned long long getCounterInit()
Get counter init value.
Definition Parameter.h:92
double getValueTarget()
Get target value.
Definition Parameter.h:87
unsigned long long getCounter()
Get current counter.
Definition Parameter.h:123
Main namespace. Contains everything in this library.