ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ccMeasurement.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <ecvHObject.h>
11 #include <ecvMainAppInterface.h>
12 #include <ecvPointCloud.h>
13 
14 /*
15 A template class for all "measurements" made with ccCompass. Contains basic
16 stuff like highligts, draw colours etc.
17 */
19 public:
21 
22  virtual ~ccMeasurement() {}
23 
24  // drawing stuff
25  void setDefaultColor(const ecvColor::Rgb& col) { m_normal_colour = col; }
26  void setHighlightColor(const ecvColor::Rgb& col) {
27  m_highlight_colour = col;
28  }
29  void setActiveColor(const ecvColor::Rgb& col) { m_active_colour = col; }
30  void setAlternateColor(const ecvColor::Rgb& col) {
31  m_alternate_colour = col;
32  }
33 
34  // returns the colour of this measurment object given the active/highlighted
35  // state
37  if (m_isActive) {
38  return m_active_colour;
39  } else if (m_isAlternate) {
40  return m_alternate_colour;
41  } else if (m_isHighlighted) {
42  return m_highlight_colour;
43  }
44  return m_normal_colour;
45  }
46 
47  // set draw state of this measurment
48  void setActive(bool isActive) { m_isActive = isActive; }
49  void setHighlight(bool isActive) { m_isHighlighted = isActive; }
50  void setAlternate(bool isActive) { m_isAlternate = isActive; }
51  void setNormal() {
52  m_isActive = false;
53  m_isHighlighted = false;
54  m_isAlternate = false;
55  }
56 
57 protected:
58  // drawing variables
59  bool m_isActive = false;
60  bool m_isHighlighted = false;
61  bool m_isAlternate = false;
66 };
virtual ~ccMeasurement()
Definition: ccMeasurement.h:22
ecvColor::Rgb m_alternate_colour
Definition: ccMeasurement.h:64
void setAlternateColor(const ecvColor::Rgb &col)
Definition: ccMeasurement.h:30
void setAlternate(bool isActive)
Definition: ccMeasurement.h:50
void setNormal()
Definition: ccMeasurement.h:51
void setActiveColor(const ecvColor::Rgb &col)
Definition: ccMeasurement.h:29
ecvColor::Rgb m_active_colour
Definition: ccMeasurement.h:62
void setActive(bool isActive)
Definition: ccMeasurement.h:48
ecvColor::Rgb getMeasurementColour() const
Definition: ccMeasurement.h:36
bool m_isHighlighted
Definition: ccMeasurement.h:60
void setDefaultColor(const ecvColor::Rgb &col)
Definition: ccMeasurement.h:25
ecvColor::Rgb m_normal_colour
Definition: ccMeasurement.h:65
ecvColor::Rgb m_highlight_colour
Definition: ccMeasurement.h:63
void setHighlightColor(const ecvColor::Rgb &col)
Definition: ccMeasurement.h:26
void setHighlight(bool isActive)
Definition: ccMeasurement.h:49
RGB color structure.
Definition: ecvColorTypes.h:49
constexpr Rgb cyan(0, MAX, MAX)
constexpr Rgb blue(0, 0, MAX)
constexpr Rgb green(0, MAX, 0)
constexpr Rgb yellow(MAX, MAX, 0)