]> Creatis software - bbtk.git/blob - packages/std/src/bbstdGetIntervalNumberFromIntervalList.h
Feature #1648 Add a box finding a value in a list of intervals.
[bbtk.git] / packages / std / src / bbstdGetIntervalNumberFromIntervalList.h
1 #ifndef __bbstdGetIntervalNumberFromIntervalList_h_INCLUDED__
2 #define __bbstdGetIntervalNumberFromIntervalList_h_INCLUDED__
3 #include "bbstd_EXPORT.h"
4 #include "bbtkAtomicBlackBox.h"
5
6 namespace bbstd
7 {
8
9 class bbstd_EXPORT GetIntervalNumberFromIntervalList
10  : 
11    public bbtk::AtomicBlackBox
12 {
13   BBTK_BLACK_BOX_INTERFACE(GetIntervalNumberFromIntervalList,bbtk::AtomicBlackBox);
14
15   BBTK_DECLARE_INPUT(Value, double);
16   BBTK_DECLARE_INPUT(IntervalList, std::vector<double>);
17   BBTK_DECLARE_INPUT(ErrorValue, double);
18
19   BBTK_DECLARE_OUTPUT(IntervalNumber, int);
20
21   BBTK_PROCESS(Process);
22   void Process();
23 };
24
25    BBTK_BEGIN_DESCRIBE_BLACK_BOX(GetIntervalNumberFromIntervalList,bbtk::AtomicBlackBox);
26    BBTK_NAME("GetIntervalNumberFromIntervalList");
27    BBTK_AUTHOR("Claire Mouton");
28    BBTK_DESCRIPTION("Providing a value and a list of intervals, the box returns the first interval number containing the input value. Interval numbers start at 0.");
29    BBTK_CATEGORY("");
30    BBTK_INPUT(GetIntervalNumberFromIntervalList,Value,"The value to be looked for in the interval list.",double,"");
31    BBTK_INPUT(GetIntervalNumberFromIntervalList,IntervalList,"Interval List provided as a list of double values corresponding to intervals. For example, '0 10 20 50' corresponds to the three following intervals 0/[0; 10[  1/[10; 20[  2/[20; 50[.",std::vector<double>,"");
32    BBTK_INPUT(GetIntervalNumberFromIntervalList,ErrorValue,"The output value returned if the value is not in any interval (default is -1).",double,"");
33    BBTK_OUTPUT(GetIntervalNumberFromIntervalList,IntervalNumber,"The (first) interval number containing the input value. If the value is not in any interval, the output is set to the ErrorValue (default is -1).",int,"");
34
35 BBTK_END_DESCRIBE_BLACK_BOX(GetIntervalNumberFromIntervalList);
36 }
37 // EO namespace bbstd
38
39 #endif // __bbstdGetIntervalNumberFromIntervalList_h_INCLUDED__
40