MIRA
VisualizationTextJSON.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012 by
3  * MetraLabs GmbH (MLAB), GERMANY
4  * and
5  * Neuroinformatics and Cognitive Robotics Labs (NICR) at TU Ilmenau, GERMANY
6  * All rights reserved.
7  *
8  * Contact: info@mira-project.org
9  *
10  * Commercial Usage:
11  * Licensees holding valid commercial licenses may use this file in
12  * accordance with the commercial license agreement provided with the
13  * software or, alternatively, in accordance with the terms contained in
14  * a written agreement between you and MLAB or NICR.
15  *
16  * GNU General Public License Usage:
17  * Alternatively, this file may be used under the terms of the GNU
18  * General Public License version 3.0 as published by the Free Software
19  * Foundation and appearing in the file LICENSE.GPL3 included in the
20  * packaging of this file. Please review the following information to
21  * ensure the GNU General Public License version 3.0 requirements will be
22  * met: http://www.gnu.org/copyleft/gpl.html.
23  * Alternatively you may (at your option) use any later version of the GNU
24  * General Public License if such license has been publicly approved by
25  * MLAB and NICR (or its successors, if any).
26  *
27  * IN NO EVENT SHALL "MLAB" OR "NICR" BE LIABLE TO ANY PARTY FOR DIRECT,
28  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF
29  * THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF "MLAB" OR
30  * "NICR" HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  *
32  * "MLAB" AND "NICR" SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING,
33  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
34  * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
35  * ON AN "AS IS" BASIS, AND "MLAB" AND "NICR" HAVE NO OBLIGATION TO
36  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS OR MODIFICATIONS.
37  */
38 
47 #ifndef _MIRA_VISUALIZATIONTEXTJSON_H_
48 #define _MIRA_VISUALIZATIONTEXTJSON_H_
49 
50 #include <utils/ToString.h>
52 
53 #include <fw/Framework.h>
54 
55 namespace mira {
56 
58 
59 template<typename T>
61 {
62 public:
64 
65  VisualizationTextBase(const std::string& channelName) :
66  Base(channelName)
67  {}
68 
69  virtual void dataChanged(ChannelRead<T> data)
70  {
71  this->mItem->setText(toString(data->value(), this->mPrecision /*, true - to be implemented*/));
72  this->mItem->template setStamped<T>(*data);
73  }
74 
75  virtual std::string defaultText()
76  {
77  return toString(T(), this->mPrecision/*, true*/);
78  }
79 };
80 
92 #define MIRA_TEXT_VISUALIZATION(className, type, channel, name, description, category) \
93 class className : public VisualizationTextBase<type> \
94 { \
95  MIRA_META_OBJECT(className, \
96  ("Name", name) \
97  ("Description", description) \
98  ("Category", category)) \
99 public: \
100  className() : \
101  VisualizationTextBase<type>(channel) \
102  {} \
103 };
104 
106 
107 template<typename T>
109 {
110 public:
112 
113  VisualizationTextJSONBase(const std::string& channelName)
114  : Base(channelName)
115  {}
116 };
117 
128 #define MIRA_JSON_VISUALIZATION(className, type, channel, name, description, category) \
129 class className : public VisualizationTextJSONBase<type> \
130 { \
131  MIRA_META_OBJECT(className, \
132  ("Name", name) \
133  ("Description", description) \
134  ("Category", category)) \
135 public: \
136  className() : \
137  VisualizationTextJSONBase<type>(channel) \
138  {} \
139 };
140 
142 
143 }
144 
145 #endif
virtual void dataChanged(ChannelRead< T > data)
Definition: VisualizationTextJSON.h:69
Definition: VisualizationTextJSON.h:108
Definition: VisualizationTextBasic.h:60
specialize cv::DataType for our ImgPixel and inherit from cv::DataType<Vec>
Definition: IOService.h:67
Contains toString and fromString functions for converting data types to strings and the other way rou...
An object that allows read access to data of a channel.
Definition: ChannelReadWrite.h:435
IVisualizationTextItem * mItem
Definition: VisualizationTextBasic.h:188
std::string toString(const T &value, int precision=-1)
Converts any data type to string (the data type must support the stream << operator).
Definition: ToString.h:256
virtual std::string defaultText()
Definition: VisualizationTextJSON.h:75
Definition: VisualizationTextView.h:192
virtual void setText(const std::string &text)=0
TypedDefaultTextVisualizationBase< T > Base
Definition: VisualizationTextJSON.h:111
VisualizationTextJSONBase(const std::string &channelName)
Definition: VisualizationTextJSON.h:113
uint mPrecision
Definition: VisualizationText.h:168
View for text visualizations.
VisualizationTextBase(const std::string &channelName)
Definition: VisualizationTextJSON.h:65
Definition: VisualizationTextJSON.h:60
VisualizationTextBasic< T > Base
Definition: VisualizationTextJSON.h:63
The framework that holds all manager classes and provides startup and shutdown of all framework relat...