cisst-saw
Loading...
Searching...
No Matches
prmMaskedVector.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3
4/*
5 Author(s): Anton Deguet
6 Created on: 2008-02-05
7
8 (C) Copyright 2008-2023 Johns Hopkins University (JHU), All Rights Reserved.
9
10--- begin cisst license - do not edit ---
11
12This software is provided "as is" under an open source license, with
13no warranty. The complete license can be found in license.txt and
14http://www.cisst.org/cisst/license.txt.
15
16--- end cisst license ---
17*/
18
19#ifndef _prmMaskedVector_h
20#define _prmMaskedVector_h
21
25
26//#include <cisstMultiTask/mtsForwardDeclarations.h>
27
28// Always include last
30
31template <class _elementType>
33{
34 // declare services, requires dynamic creation
35 CMN_DECLARE_SERVICES_EXPORT_ALWAYS(CMN_DYNAMIC_CREATION, CMN_LOG_ALLOW_DEFAULT);
36
37public:
38 typedef size_t size_type;
42
43protected:
48
53
54public:
56 inline prmMaskedVector(void):
57 DataMember(0),
58 MaskMember(0)
59 {}
60
64 inline void SetSize(const size_type size) {
65 DataMember.SetSize(size);
66 MaskMember.SetSize(size);
67 DataMember.Zeros();
68 MaskMember.Zeros();
69 }
70
71
75 }
76
77 inline prmMaskedVector(const DataType & data,
78 const vctBoolVec & mask):
79 DataMember(data),
80 MaskMember(mask)
81 {
82 CMN_ASSERT(data.size() == mask.size());
83 }
84
86 inline prmMaskedVector(const ThisType & otherVector):
87 mtsGenericObject(otherVector),
88 DataMember(otherVector.Data()),
89 MaskMember(otherVector.Mask())
90 {}
91
94 inline ~prmMaskedVector() {}
95
97 virtual std::string ToString(void) const {
98 std::stringstream outputStream;
99 ToStream(outputStream);
100 return outputStream.str();
101 }
102
104 void ToStream(std::ostream & outputStream) const override {
105 mtsGenericObject::ToStream(outputStream);
106 outputStream << ", " <<DataMember << ", " << MaskMember;
107 }
108
110 void SerializeRaw(std::ostream & outputStream) const override {
111 BaseType::SerializeRaw(outputStream);
112 MaskMember.SerializeRaw(outputStream);
113 DataMember.SerializeRaw(outputStream);
114 }
115
117 void DeSerializeRaw(std::istream & inputStream) override {
118 BaseType::DeSerializeRaw(inputStream);
119 MaskMember.DeSerializeRaw(inputStream);
120 DataMember.DeSerializeRaw(inputStream);
121 }
122};
123
124
125// define some basic vectors
128
131
134
137
140
143
146
149
152
155
158
159#endif // _prmMaskedVector_h
virtual void SerializeRaw(std::ostream &outputStream) const
virtual void ToStream(std::ostream &outputStream) const
mtsGenericObject(void)
Definition mtsGenericObject.h:77
virtual void DeSerializeRaw(std::istream &inputStream)
Definition prmMaskedVector.h:33
prmMaskedVector(const DataType &data, const vctBoolVec &mask)
Definition prmMaskedVector.h:77
~prmMaskedVector()
Definition prmMaskedVector.h:94
size_t size_type
Definition prmMaskedVector.h:38
void ToStream(std::ostream &outputStream) const override
Definition prmMaskedVector.h:104
CMN_DECLARE_MEMBER_AND_ACCESSORS(DataType, Data)
vctDynamicVector< _elementType > DataType
Definition prmMaskedVector.h:41
void SerializeRaw(std::ostream &outputStream) const override
Definition prmMaskedVector.h:110
CMN_DECLARE_MEMBER_AND_ACCESSORS(vctBoolVec, Mask)
prmMaskedVector(const size_type size)
Definition prmMaskedVector.h:73
prmMaskedVector< _elementType > ThisType
Definition prmMaskedVector.h:39
virtual std::string ToString(void) const
Definition prmMaskedVector.h:97
mtsGenericObject BaseType
Definition prmMaskedVector.h:40
void DeSerializeRaw(std::istream &inputStream) override
Definition prmMaskedVector.h:117
prmMaskedVector(void)
Definition prmMaskedVector.h:56
prmMaskedVector(const ThisType &otherVector)
Definition prmMaskedVector.h:86
void SetSize(const size_type size)
Definition prmMaskedVector.h:64
Definition vctForwardDeclarations.h:131
#define CMN_ASSERT(expr)
Definition cmnAssert.h:97
#define CMN_DECLARE_SERVICES_INSTANTIATION(className)
Definition cmnClassRegisterMacros.h:199
const int CMN_DYNAMIC_CREATION
Definition cmnClassRegisterMacros.h:328
#define CMN_LOG_ALLOW_DEFAULT
Definition cmnLogLoD.h:76
Rules of exporting.
Defines mtsGenericObject.
prmMaskedVector< short > prmMaskedShortVec
Definition prmMaskedVector.h:144
prmMaskedVector< double > prmMaskedDoubleVec
Definition prmMaskedVector.h:126
prmMaskedVector< long > prmMaskedLongVec
Definition prmMaskedVector.h:132
prmMaskedVector< int > prmMaskedIntVec
Definition prmMaskedVector.h:138
prmMaskedVector< bool > prmMaskedBoolVec
Definition prmMaskedVector.h:156
prmMaskedVector< unsigned int > prmMaskedUIntVec
Definition prmMaskedVector.h:141
prmMaskedVector< unsigned long > prmMaskedULongVec
Definition prmMaskedVector.h:135
prmMaskedVector< unsigned short > prmMaskedUShortVec
Definition prmMaskedVector.h:147
prmMaskedVector< char > prmMaskedCharVec
Definition prmMaskedVector.h:150
prmMaskedVector< float > prmMaskedFloatVec
Definition prmMaskedVector.h:129
prmMaskedVector< unsigned char > prmMaskedUCharVec
Definition prmMaskedVector.h:153
size_type size(void) const
Definition vctDynamicConstMatrixBase.h:228
Typedef for dynamic vectors.
vctDynamicVector< bool > vctBoolVec
Definition vctDynamicVectorTypes.h:44