summaryrefslogtreecommitdiffhomepage
path: root/tracker-aruco
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2018-02-15 09:06:13 +0100
committerStanislaw Halik <sthalik@misaki.pl>2018-02-15 10:23:11 +0100
commit0a92bc147f91f3ecacdf66d995f01f9577107a86 (patch)
treed748f1b081cd37eb2b4a6cd6b5254433ba8b8dab /tracker-aruco
parentd8327db8025e56500ebb0bef2ab45aa8963a36ca (diff)
clean up "static" and "constexpr" types
- use `static constexpr inline' to avoid requiring explicit declarations in object code - use `const Foo* const' to maybe put into readonly binary segment (at least for ELF DSOs) - `constexpr' in function scope has storage, avoid `static' - don't use `constexpr' where there's no advantage, like arrays We'd like to avoid overhead of atomic initialization for each function call. No idea how `static constexpr' requiring storage in the standard plays with atomic initialization requirement. Hearsay points that `constexpr' without `static' in block scope behaves more to our liking. It's all hazy though. I'm not 100% sure if `static inline constexpr' has any storage. Hopefully none, like a #define, and stuff bigger than registers gets coalesced within the same module, with small stuff being immediates.
Diffstat (limited to 'tracker-aruco')
-rw-r--r--tracker-aruco/ftnoir_tracker_aruco.cpp26
-rw-r--r--tracker-aruco/ftnoir_tracker_aruco.h29
2 files changed, 27 insertions, 28 deletions
diff --git a/tracker-aruco/ftnoir_tracker_aruco.cpp b/tracker-aruco/ftnoir_tracker_aruco.cpp
index c322d323..faa8bb44 100644
--- a/tracker-aruco/ftnoir_tracker_aruco.cpp
+++ b/tracker-aruco/ftnoir_tracker_aruco.cpp
@@ -33,6 +33,32 @@
#include <algorithm>
#include <iterator>
+static const int adaptive_sizes[] =
+{
+#if defined USE_EXPERIMENTAL_CANNY
+ 10,
+ 30,
+ 80,
+#else
+ 7,
+ 9,
+ 13,
+#endif
+};
+
+struct resolution_tuple
+{
+ int width;
+ int height;
+};
+
+static const resolution_tuple resolution_choices[] =
+{
+ { 640, 480 },
+ { 320, 240 },
+ { 0, 0 }
+};
+
aruco_tracker::aruco_tracker()
{
cv::setBreakOnError(true);
diff --git a/tracker-aruco/ftnoir_tracker_aruco.h b/tracker-aruco/ftnoir_tracker_aruco.h
index 3a98e9d1..b753fdec 100644
--- a/tracker-aruco/ftnoir_tracker_aruco.h
+++ b/tracker-aruco/ftnoir_tracker_aruco.h
@@ -69,7 +69,7 @@ class aruco_tracker : protected virtual QThread, public ITracker
{
Q_OBJECT
friend class aruco_dialog;
- static constexpr float c_search_window = 1.3f;
+ static constexpr inline float c_search_window = 1.3f;
public:
aruco_tracker();
~aruco_tracker() override;
@@ -124,44 +124,17 @@ private:
unsigned adaptive_size_pos = 0;
bool use_otsu = false;
- struct resolution_tuple
- {
- int width;
- int height;
- };
-
- static constexpr inline const int adaptive_sizes[] =
- {
-#if defined USE_EXPERIMENTAL_CANNY
- 10,
- 30,
- 80,
-#else
- 7,
- 9,
- 13,
-#endif
- };
-
#if !defined USE_EXPERIMENTAL_CANNY
static constexpr inline int adaptive_thres = 6;
#else
static constexpr inline int adaptive_thres = 3;
#endif
- static constexpr inline const resolution_tuple resolution_choices[] =
- {
- { 640, 480 },
- { 320, 240 },
- { 0, 0 }
- };
-
#ifdef DEBUG_UNSHARP_MASKING
static constexpr inline double gauss_kernel_size = 3;
#endif
static constexpr inline double timeout = 1;
-
static constexpr inline double timeout_backoff_c = 4./11;
static constexpr inline float size_min = 0.05;