UsTK : Ultrasound ToolKit  version 2.0.1 under development (2023-12-07)
usVolumeGrabbedInfo.h
1 /****************************************************************************
2  *
3  * This file is part of the ustk software.
4  * Copyright (C) 2016 - 2017 by Inria. All rights reserved.
5  *
6  * This software is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * ("GPL") version 2 as published by the Free Software Foundation.
9  * See the file LICENSE.txt at the root directory of this source
10  * distribution for additional information about the GNU GPL.
11  *
12  * For using ustk with software that can not be combined with the GNU
13  * GPL, please contact Inria about acquiring a ViSP Professional
14  * Edition License.
15  *
16  * This software was developed at:
17  * Inria Rennes - Bretagne Atlantique
18  * Campus Universitaire de Beaulieu
19  * 35042 Rennes Cedex
20  * France
21  *
22  * If you have questions regarding the use of this file, please contact
23  * Inria at ustk@inria.fr
24  *
25  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
26  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27  *
28  * Authors:
29  * Marc Pouliquen
30  *
31  *****************************************************************************/
32 
39 #ifndef __usVolumeGrabbedInfo_h_
40 #define __usVolumeGrabbedInfo_h_
41 
42 #include <visp3/ustk_core/usConfig.h>
43 
44 #if defined(USTK_HAVE_QT5) || defined(USTK_HAVE_VTK_QT)
45 
46 #include <visp3/ustk_grabber/usNetworkGrabber.h>
47 
48 #include <QtCore/QTypeInfo>
49 
57 template <class Type> class usVolumeGrabbedInfo : public Type
58 {
59 public:
60  explicit usVolumeGrabbedInfo();
62 
63  void addTimeStamp(quint64 timestamp, unsigned int position);
64 
65  quint32 getVolumeCount() const;
66  std::vector<uint64_t> getTimeStamps() const;
67 
68  void setVolumeCount(quint32 volumeCount);
69 
70 private:
71  quint32 m_volumeCount; // from the beginning of acquisition
72  std::vector<uint64_t> m_timestamps; // msecs since epoch (on ultrasond machine)
73 };
74 
78 template <class Type> usVolumeGrabbedInfo<Type>::usVolumeGrabbedInfo() : Type(), m_volumeCount(0), m_timestamps() {}
79 
84 
89 template <class Type> quint32 usVolumeGrabbedInfo<Type>::getVolumeCount() const { return m_volumeCount; }
90 
95 template <class Type> void usVolumeGrabbedInfo<Type>::setVolumeCount(quint32 volumeCount)
96 {
97  m_volumeCount = volumeCount;
98 }
99 
105 template <class Type> void usVolumeGrabbedInfo<Type>::addTimeStamp(quint64 timestamp, unsigned int position)
106 {
107  if (position == m_timestamps.size())
108  m_timestamps.push_back(timestamp);
109  else if (position > m_timestamps.size()) {
110  m_timestamps.resize(position + 1);
111  m_timestamps.at(position) = timestamp;
112  } else
113  m_timestamps.at(position) = timestamp;
114 }
115 
121 template <class Type> std::vector<uint64_t> usVolumeGrabbedInfo<Type>::getTimeStamps() const { return m_timestamps; }
122 
131 template <class Type> std::ostream &operator<<(std::ostream &out, const usVolumeGrabbedInfo<Type> &other)
132 {
133  out << "volumeCount : " << other.getVolumeCount() << std::endl << (Type)other << std::endl;
134 
135  return out;
136 }
137 
138 #endif // QT4 || QT5
139 #endif // __usVolumeGrabbedInfo_h_
Class to store additionnal informations arriving on the network with ultrasound volumes grabbed,...
std::vector< uint64_t > getTimeStamps() const
void setVolumeCount(quint32 volumeCount)
void addTimeStamp(quint64 timestamp, unsigned int position)
quint32 getVolumeCount() const