iRoCS Toolbox  1.1.0
PointMarker.hh
Go to the documentation of this file.
1 /**************************************************************************
2  *
3  * This file belongs to the iRoCS Toolbox.
4  *
5  * Copyright (C) 2015 Thorsten Falk
6  *
7  * Image Analysis Lab, University of Freiburg, Germany
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 3 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22  *
23  **************************************************************************/
24 
25 #ifndef POINTMARKER_HH
26 #define POINTMARKER_HH
27 
28 #ifdef HAVE_CONFIG_H
29 #include <config.hh>
30 #endif
31 
32 #include "Marker.hh"
33 #include "MarkerPresetWidget.hh"
34 #include "MarkerControlWidget.hh"
35 
37 {
38 
39  Q_OBJECT
40 
41 public:
42 
44  AnnotationChannelSpecs* channel, QWidget* parent = 0);
46 
47 };
48 
49 
51 {
52 
53  Q_OBJECT
54 
55 public:
56 
58  AnnotationChannelSpecs* channel, QWidget* parent = 0);
60 
61 };
62 
63 
64 class PointMarker : public Marker
65 {
66 
67  Q_OBJECT
68 
69 public:
70 
71  PointMarker(AnnotationChannelSpecs* channel = NULL);
72  PointMarker(const blitz::TinyVector<double,3>& position,
73  AnnotationChannelSpecs* channel = NULL);
74  PointMarker(const PointMarker& marker);
75  virtual ~PointMarker();
76 
77  PointMarker &operator=(const PointMarker& marker);
78 
79  virtual Marker::MarkerType markerType() const;
80  virtual bool inherits(Marker::MarkerType type) const;
81 
82  virtual MarkerRenderer *addRenderer(ViewWidget* view);
83 
84  static void save(
85  AnnotationChannelSpecs const *channel,
86  BlitzH5File &outFile, std::string const &group,
87  iRoCS::ProgressReporter *pr = NULL);
88  static void load(
89  AnnotationChannelSpecs *channel,
90  BlitzH5File const &inFile, std::string const &group,
91  iRoCS::ProgressReporter *pr = NULL);
92 
93  virtual void saveCSV(std::ofstream &out) const;
94  virtual void loadFromMap(std::map<std::string,std::string> const &values);
95 
96  virtual bool occupiesPositionUm(
97  blitz::TinyVector<double,3> const &positionUm) const;
98 
99 protected:
100 
101  virtual void _updateBoundingBox() const;
102 
103 };
104 
105 #endif
The Marker class specifies the properties of an abstract Marker that can be contained in an Annotatio...
Definition: Marker.hh:56
PointMarkerPresetWidget(AnnotationChannelSpecs *channel, QWidget *parent=0)
MarkerType
Marker.hh "liblabelling_qt4/Marker.hh".
Definition: Marker.hh:73