Float.cpp
Go to the documentation of this file.
1/*
2 * This file is part of ArmarX.
3 *
4 * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T),
5 * Karlsruhe Institute of Technology (KIT), all rights reserved.
6 *
7 * ArmarX is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 *
11 * ArmarX is distributed in the hope that it will be useful, but
12 * 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, see <http://www.gnu.org/licenses/>.
18 *
19 * @author Fabian Peller-Konrad (fabian dot peller-konrad at kit dot edu)
20 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
21 * GNU General Public License
22 */
23
24#include "Float.h"
25
27
28namespace armarx::aron::data
29{
30 /* constructors */
31 Float::Float(const data::dto::AronFloatPtr& o, const Path& path) :
33 o,
35 path)
36 {
37 }
38
45
46 Float::Float(const float d, const Path& path) :
48 d,
50 path)
51 {
52 }
53
54 /* operators */
55 bool
56 Float::operator==(const Float& other) const
57 {
58 const auto& otherAron = other.toAronFloatDTO();
59 if (this->aron->value != otherAron->value)
60 {
61 return false;
62 }
63 return true;
64 }
65
66 bool
67 Float::operator==(const FloatPtr& other) const
68 {
69 if (!other)
70 {
71 return false;
72 }
73 return *this == *other;
74 }
75
76 /* static methods */
78 Float::FromAronFloatDTO(const data::dto::AronFloatPtr& aron)
79 {
80 if (!aron)
81 {
82 return nullptr;
83 }
84 return std::make_shared<Float>(aron);
85 }
86
87 data::dto::AronFloatPtr
89 {
90 return navigator ? navigator->toAronFloatDTO() : nullptr;
91 }
92
93 /* public member functions */
94 data::dto::AronFloatPtr
96 {
97 return aron;
98 }
99
100 /* virtual implementations */
101 void
102 Float::fromString(const std::string& setter)
103 {
104 setValue(std::stof(setter));
105 }
106
107 std::string
109 {
110 return "Float";
111 }
112
113 std::string
115 {
116 return "armarx::aron::data::Float";
117 }
118
119 bool
121 {
122 if (!type)
123 return true;
124 return type->getDescriptor() == type::Descriptor::FLOAT;
125 }
126
129 {
131 throw error::NotImplementedYetException(__PRETTY_FUNCTION__);
132 //return std::make_shared<type::Float>(getPath());
133 }
134} // namespace armarx::aron::data
#define float
Definition 16_Level.h:22
The Path class.
Definition Path.h:36
std::string getShortName() const override
get a short str representation of this variant
Definition Float.cpp:108
data::dto::AronFloatPtr toAronFloatDTO() const
Definition Float.cpp:95
type::VariantPtr recalculateType() const override
recalculate the type of a data variant. Please not tha the mapping ist NOT bijective,...
Definition Float.cpp:128
std::string getFullName() const override
get the full str representation of this variant
Definition Float.cpp:114
void fromString(const std::string &setter) override
set a primitive from a std string
Definition Float.cpp:102
Float(const Path &=Path())
Definition Float.cpp:39
bool operator==(const Float &) const override
Definition Float.cpp:56
bool fullfillsType(const type::VariantPtr &) const override
checks, if the current data variant fullfills the given type
Definition Float.cpp:120
static FloatPtr FromAronFloatDTO(const data::dto::AronFloatPtr &aron)
Definition Float.cpp:78
static data::dto::AronFloatPtr ToAronFloatDTO(const FloatPtr &navigator)
Definition Float.cpp:88
PrimitiveVariant(const float &v, const data::Descriptor descriptor, const Path &path=Path())
The NotImplementedYetException class.
Definition Exception.h:61
A convenience header to include all aron files (full include, not forward declared)
std::shared_ptr< Float > FloatPtr
A convenience header to include all aron files (full include, not forward declared)
std::shared_ptr< Variant > VariantPtr
#define ARMARX_TRACE
Definition trace.h:77