cisst-saw
Loading...
Searching...
No Matches
prmBaseFrame.h
Go to the documentation of this file.
1// file automatically generated, do not modify
2// cisst version: 1.5.0
3// source file: /Users/anton/devel/cisst-saw-doxygen/tmp/cisst-saw/cisst/cisstParameterTypes/code/../prmBaseFrame.cdg
4
5#pragma once
6#ifndef _cisstParameterTypes_prmBaseFrame_h
7#define _cisstParameterTypes_prmBaseFrame_h
8
11#if CISST_HAS_JSON
13#endif // CISST_HAS_JSON
14
15/* source line: 1 */
16
17
18
19
20// for mts-proxy
24
25/* source line: 1 */
26/* source line: 4 */
27
31
32// Always include last
34
35// Following needed on Windows
36#ifdef interface
37#undef interface
38#endif
39
40/* source line: 18 */
42{
43 /* default constructors and destructors. */
44 public:
46 prmBaseFrame(const prmBaseFrame & other);
49
50/* source line: 28 */
51 protected:
52 std::string mreference_frame; // Name of reference frame for a fixed base frame
53 public:
54 /* accessors is set to: all */
55#ifndef SWIG
56 void Getreference_frame(std::string & placeHolder) const;
57#endif
58 inline std::string Getreference_frame(void) const {
59 return mreference_frame;
60 }
61 void Setreference_frame(const std::string & newValue);
62 /* accessors is set to: all */
63 const std::string & reference_frame(void) const;
64 std::string & reference_frame(void);
65/* source line: 35 */
66 protected:
67 vctFrm4x4 mtransform; // Homogeneous transform from local frame to base frame
68 public:
69 /* accessors is set to: all */
70#ifndef SWIG
71 void Gettransform(vctFrm4x4 & placeHolder) const;
72#endif
73 inline vctFrm4x4 Gettransform(void) const {
74 return mtransform;
75 }
76 void Settransform(const vctFrm4x4 & newValue);
77 /* accessors is set to: all */
78 const vctFrm4x4 & transform(void) const;
80/* source line: 42 */
81 protected:
82 std::string mcomponent; // Component name for a dynamic base frame provider
83 public:
84 /* accessors is set to: all */
85#ifndef SWIG
86 void Getcomponent(std::string & placeHolder) const;
87#endif
88 inline std::string Getcomponent(void) const {
89 return mcomponent;
90 }
91 void Setcomponent(const std::string & newValue);
92 /* accessors is set to: all */
93 const std::string & component(void) const;
94 std::string & component(void);
95/* source line: 49 */
96 protected:
97 std::string minterface; // Interface name for a dynamic base frame provider
98 public:
99 /* accessors is set to: all */
100#ifndef SWIG
101 void Getinterface(std::string & placeHolder) const;
102#endif
103 inline std::string Getinterface(void) const {
104 return minterface;
105 }
106 void Setinterface(const std::string & newValue);
107 /* accessors is set to: all */
108 const std::string & interface(void) const;
109 std::string & interface(void);
110/* source line: 56 */
111
112 private:
113 CMN_DECLARE_SERVICES(CMN_DYNAMIC_CREATION, CMN_LOG_ALLOW_DEFAULT);
114
115 public:
116 inline bool ValidDefinition(void) const {
117 return (((!reference_frame().empty())
118 && component().empty()
119 && interface().empty())
120 || (reference_frame().empty()
122 && !component().empty()
123 && !interface().empty()));
124 }
125
126 inline bool Fixed(void) const {
127 return !reference_frame().empty();
128 }
129
130 inline bool Dynamic(void) const {
131 return !component().empty();
132 }
133
134 inline void ApplyTo(const prmStateCartesian & local,
135 prmStateCartesian & withBase) const {
136 withBase = local;
137 if (!ValidDefinition()) {
138 cmnThrow("prmBaseFrame::ApplyTo: invalid base frame");
139 }
140 if (!Fixed()) {
141 cmnThrow("prmBaseFrame::ApplyTo: only fixed base frames can be applied directly");
142 }
143
144 vctFrm3 fixedTransform;
145 fixedTransform.From(transform());
146 const vctRot3 & rotation = fixedTransform.Rotation();
147 withBase.ReferenceFrame() = reference_frame();
148
149 if (local.PositionIsValid()) {
150 withBase.Position() = fixedTransform * local.Position();
151 withBase.PositionIsValid() = true;
152 }
153
154 if (local.VelocityIsValid()) {
155 const vctFixedSizeConstVectorRef<double, 3, 1> localLinear(local.Velocity().XYZ());
156 const vctFixedSizeConstVectorRef<double, 3, 1> localAngular(local.Velocity().Pointer(3));
157 vctFixedSizeVectorRef<double, 3, 1> withBaseLinear(withBase.Velocity().XYZ());
158 vctFixedSizeVectorRef<double, 3, 1> withBaseAngular(withBase.Velocity().Pointer(3));
159 rotation.ApplyTo(localLinear, withBaseLinear);
160 rotation.ApplyTo(localAngular, withBaseAngular);
161 withBase.VelocityIsValid() = true;
162 }
163
164 if (local.ForceIsValid()) {
165 const vctFixedSizeConstVectorRef<double, 3, 1> localForce(local.Force().XYZ());
166 const vctFixedSizeConstVectorRef<double, 3, 1> localTorque(local.Force().Pointer(3));
167 vctFixedSizeVectorRef<double, 3, 1> withBaseForce(withBase.Force().XYZ());
168 vctFixedSizeVectorRef<double, 3, 1> withBaseTorque(withBase.Force().Pointer(3));
169 rotation.ApplyTo(localForce, withBaseForce);
170 rotation.ApplyTo(localTorque, withBaseTorque);
171 withBase.ForceIsValid() = true;
172 }
173 }
174 /* default methods */
175 public:
176 void SerializeRaw(std::ostream & outputStream) const override;
177 void DeSerializeRaw(std::istream & inputStream) override;
178 void ToStream(std::ostream & outputStream) const override;
179 void ToStreamRaw(std::ostream & outputStream, const char delimiter = ' ',
180 bool headerOnly = false, const std::string & headerPrefix = "") const override;
181 /* default data methods */
182 public:
183 void Copy(const prmBaseFrame & source);
184 void SerializeBinary(std::ostream & outputStream) const CISST_THROW(std::runtime_error);
185 void DeSerializeBinary(std::istream & inputStream, const cmnDataFormat & localFormat, const cmnDataFormat & remoteFormat) CISST_THROW(std::runtime_error);
186 void SerializeText(std::ostream & outputStream, const char delimiter = ',') const CISST_THROW(std::runtime_error);
187 std::string SerializeDescription(const char delimiter = ',', const std::string & userDescription = "") const;
188 void DeSerializeText(std::istream & inputStream, const char delimiter = ',') CISST_THROW(std::runtime_error);
189 std::string HumanReadable(void) const;
190 bool ScalarNumberIsFixed(void) const override;
191 size_t ScalarNumber(void) const override;
192 double Scalar(const size_t index) const CISST_THROW(std::out_of_range) override;
193 std::string ScalarDescription(const size_t index, const std::string & userDescription = "") const CISST_THROW(std::out_of_range) override;
194#if CISST_HAS_JSON
195 void SerializeTextJSON(Json::Value & jsonValue) const override;
196 void DeSerializeTextJSON(const Json::Value & jsonValue) CISST_THROW(std::runtime_error) override;
197#endif // CISST_HAS_JSON
198
199}; // prmBaseFrame
200
201// mts-proxy set to true
204
205/* default functions */
206void CISST_EXPORT cmnSerializeRaw(std::ostream & outputStream, const prmBaseFrame & object);
207void CISST_EXPORT cmnDeSerializeRaw(std::istream & inputStream, prmBaseFrame & placeHolder);
208/* data functions */
209template <> class cmnData<prmBaseFrame > {
210public:
211 enum {IS_SPECIALIZED = 1};
213 static void Copy(DataType & data, const DataType & source) {
214 data.Copy(source);
215 }
216 static std::string SerializeDescription(const DataType & data, const char delimiter, const std::string & userDescription) {
217 return data.SerializeDescription(delimiter, userDescription);
218 }
219 static void SerializeBinary(const DataType & data, std::ostream & outputStream) CISST_THROW(std::runtime_error) {
220 data.SerializeBinary(outputStream);
221 }
222 static void DeSerializeBinary(DataType & data, std::istream & inputStream, const cmnDataFormat & localFormat, const cmnDataFormat & remoteFormat) CISST_THROW(std::runtime_error) {
223 data.DeSerializeBinary(inputStream, localFormat, remoteFormat);
224 }
225 static void SerializeText(const DataType & data, std::ostream & outputStream, const char delimiter = ',') CISST_THROW(std::runtime_error) {
226 data.SerializeText(outputStream, delimiter);
227 }
228 static void DeSerializeText(DataType & data, std::istream & inputStream, const char delimiter = ',') CISST_THROW(std::runtime_error) {
229 data.DeSerializeText(inputStream, delimiter);
230 }
231 static std::string HumanReadable(const DataType & data) {
232 return data.HumanReadable();
233 }
234 static bool ScalarNumberIsFixed(const DataType & data) {
235 return data.ScalarNumberIsFixed();
236 }
237 static size_t ScalarNumber(const DataType & data) {
238 return data.ScalarNumber();
239 }
240 static std::string ScalarDescription(const DataType & data, const size_t index, const std::string & userDescription = "") CISST_THROW(std::out_of_range) {
241 return data.ScalarDescription(index, userDescription);
242 }
243 static double Scalar(const DataType & data, const size_t index) CISST_THROW(std::out_of_range) {
244 return data.Scalar(index);
245 }
246};
247inline std::ostream & operator << (std::ostream & outputStream, const prmBaseFrame & data) {
248 outputStream << cmnData<prmBaseFrame >::HumanReadable(data);
249 return outputStream;
250}
251#if CISST_HAS_JSON
252template <> void CISST_EXPORT cmnDataJSON<prmBaseFrame >::SerializeText(const prmBaseFrame & data, Json::Value & jsonValue);
253template <> void CISST_EXPORT cmnDataJSON<prmBaseFrame >::DeSerializeText(prmBaseFrame & data, const Json::Value & jsonValue) CISST_THROW(std::runtime_error);
254#endif // CISST_HAS_JSON
255
256/* source line: 122 */
257
259
260
261#endif // _cisstParameterTypes_prmBaseFrame_h
static std::string SerializeDescription(const DataType &data, const char delimiter, const std::string &userDescription)
Definition prmBaseFrame.h:216
static size_t ScalarNumber(const DataType &data)
Definition prmBaseFrame.h:237
static std::string HumanReadable(const DataType &data)
Definition prmBaseFrame.h:231
static void DeSerializeText(DataType &data, std::istream &inputStream, const char delimiter=',') CISST_THROW(std
Definition prmBaseFrame.h:228
static void DeSerializeBinary(DataType &data, std::istream &inputStream, const cmnDataFormat &localFormat, const cmnDataFormat &remoteFormat) CISST_THROW(std
Definition prmBaseFrame.h:222
static void Copy(DataType &data, const DataType &source)
Definition prmBaseFrame.h:213
static void SerializeBinary(const DataType &data, std::ostream &outputStream) CISST_THROW(std
Definition prmBaseFrame.h:219
@ IS_SPECIALIZED
Definition prmBaseFrame.h:211
static void SerializeText(const DataType &data, std::ostream &outputStream, const char delimiter=',') CISST_THROW(std
Definition prmBaseFrame.h:225
static double Scalar(const DataType &data, const size_t index) CISST_THROW(std
Definition prmBaseFrame.h:243
static std::string ScalarDescription(const DataType &data, const size_t index, const std::string &userDescription="") CISST_THROW(std
Definition prmBaseFrame.h:240
static bool ScalarNumberIsFixed(const DataType &data)
Definition prmBaseFrame.h:234
prmBaseFrame DataType
Definition prmBaseFrame.h:212
Definition cmnDataFormat.h:30
Definition cmnDataFunctions.h:51
virtual std::string ScalarDescription(const size_t CMN_UNUSED(index), const std::string &CMN_UNUSED(userDescription)) const
Definition cmnGenericObject.h:154
virtual double Scalar(const size_t CMN_UNUSED(index)) const CISST_THROW(std
Definition cmnGenericObject.h:145
mtsGenericObject(void)
Definition mtsGenericObject.h:77
Definition mtsGenericObjectProxy.h:376
Definition prmBaseFrame.h:42
const vctFrm4x4 & transform(void) const
void DeSerializeText(std::istream &inputStream, const char delimiter=',') CISST_THROW(std std::string HumanReadable(void) const
Definition prmBaseFrame.h:189
bool Dynamic(void) const
Definition prmBaseFrame.h:130
prmBaseFrame(const prmBaseFrame &other)
vctFrm4x4 Gettransform(void) const
Definition prmBaseFrame.h:73
void Getcomponent(std::string &placeHolder) const
size_t ScalarNumber(void) const override
void Setcomponent(const std::string &newValue)
void ToStreamRaw(std::ostream &outputStream, const char delimiter=' ', bool headerOnly=false, const std::string &headerPrefix="") const override
void Getreference_frame(std::string &placeHolder) const
const std::string & component(void) const
std::string Getreference_frame(void) const
Definition prmBaseFrame.h:58
bool Fixed(void) const
Definition prmBaseFrame.h:126
void Copy(const prmBaseFrame &source)
void SerializeBinary(std::ostream &outputStream) const CISST_THROW(std void DeSerializeBinary(std::istream &inputStream, const cmnDataFormat &localFormat, const cmnDataFormat &remoteFormat) CISST_THROW(std void SerializeText(std::ostream &outputStream, const char delimiter=',') const CISST_THROW(std std::string SerializeDescription(const char delimiter=',', const std::string &userDescription="") const
Definition prmBaseFrame.h:187
vctFrm4x4 mtransform
Definition prmBaseFrame.h:67
std::string & reference_frame(void)
bool ValidDefinition(void) const
Definition prmBaseFrame.h:116
void DeSerializeRaw(std::istream &inputStream) override
vctFrm4x4 & transform(void)
void Settransform(const vctFrm4x4 &newValue)
std::string Getinterface(void) const
Definition prmBaseFrame.h:103
void Setinterface(const std::string &newValue)
void Gettransform(vctFrm4x4 &placeHolder) const
void Setreference_frame(const std::string &newValue)
void ApplyTo(const prmStateCartesian &local, prmStateCartesian &withBase) const
Definition prmBaseFrame.h:134
void SerializeRaw(std::ostream &outputStream) const override
std::string Getcomponent(void) const
Definition prmBaseFrame.h:88
std::string minterface
Definition prmBaseFrame.h:97
void ToStream(std::ostream &outputStream) const override
std::string mreference_frame
Definition prmBaseFrame.h:52
std::string & component(void)
bool ScalarNumberIsFixed(void) const override
std::string & interface(void)
void Getinterface(std::string &placeHolder) const
prmBaseFrame(void)
const std::string & interface(void) const
std::string mcomponent
Definition prmBaseFrame.h:82
const std::string & reference_frame(void) const
Definition prmStateCartesian.h:39
const bool & VelocityIsValid(void) const
const vct6 & Force(void) const
const bool & PositionIsValid(void) const
const bool & ForceIsValid(void) const
const std::string & ReferenceFrame(void) const
const vct6 & Velocity(void) const
const vctFrm3 & Position(void) const
Definition vctForwardDeclarations.h:86
vctFixedSizeVectorRef< _elementType, 3, _stride > XYZ(void)
Definition vctFixedSizeVectorBase.h:684
pointer Pointer(size_type index=0)
Definition vctFixedSizeVectorBase.h:226
Definition vctForwardDeclarations.h:89
static CISST_EXPORT const FrameValueType & Identity(void)
ThisType & From(const vctFrameBase< __rotationType > &other) CISST_THROW(std
Definition vctFrameBase.h:131
const RotationType & Rotation(void) const
Definition vctFrameBase.h:205
void ApplyTo(const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &input, vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &output) const
Definition vctMatrixRotation3ConstBase.h:156
Class registration macros.
#define CMN_DECLARE_SERVICES_INSTANTIATION(className)
Definition cmnClassRegisterMacros.h:199
const int CMN_DYNAMIC_CREATION
Definition cmnClassRegisterMacros.h:328
Defines cmnClassServices.
void cmnDeSerializeRaw(std::istream &inputStream, _elementType &data) CISST_THROW(std
Definition cmnDeSerializer.h:82
#define CISST_EXPORT
Definition cmnExportMacros.h:50
#define CMN_LOG_ALLOW_DEFAULT
Definition cmnLogLoD.h:76
#define CISST_THROW(exceptionParameter)
Somewhat portable compilation warning message. This works with very recent versions of gcc (4....
Definition cmnPortability.h:559
void cmnSerializeRaw(std::ostream &outputStream, const _elementType &data) CISST_THROW(std
Definition cmnSerializer.h:76
void cmnThrow(const _exceptionType &except, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_ERROR)
Definition cmnThrow.h:76
STL namespace.
std::ostream & operator<<(std::ostream &outputStream, const prmBaseFrame &data)
Definition prmBaseFrame.h:247
mtsGenericObjectProxy< prmBaseFrame > prmBaseFrameProxy
Definition prmBaseFrame.h:202
bool empty() const
Definition vctDynamicConstMatrixBase.h:274
ThisType & operator=(const vctDynamicConstMatrixBase< __matrixOwnerType, __elementType > &otherMatrix)
Definition vctDynamicMatrix.h:255
Declaration of vctFixedSizeVectorRef.
Typedef for different transformations.
vctMatrixRotation3< double, VCT_ROW_MAJOR > vctRot3
Definition vctTransformationTypes.h:109
vctFrame4x4< double, VCT_ROW_MAJOR > vctFrm4x4
Definition vctTransformationTypes.h:153
vctFrameBase< vctRot3 > vctFrm3
Definition vctTransformationTypes.h:137