OSVR-Core
TrackingSystem_Impl.h
Go to the documentation of this file.
1 
11 // Copyright 2016 Sensics, Inc.
12 //
13 // Licensed under the Apache License, Version 2.0 (the "License");
14 // you may not use this file except in compliance with the License.
15 // You may obtain a copy of the License at
16 //
17 // http://www.apache.org/licenses/LICENSE-2.0
18 //
19 // Unless required by applicable law or agreed to in writing, software
20 // distributed under the License is distributed on an "AS IS" BASIS,
21 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22 // See the License for the specific language governing permissions and
23 // limitations under the License.
24 
25 #ifndef INCLUDED_TrackingSystem_Impl_h_GUID_9EC4CAF8_58AA_45A5_59A0_6B1FB4B86BE7
26 #define INCLUDED_TrackingSystem_Impl_h_GUID_9EC4CAF8_58AA_45A5_59A0_6B1FB4B86BE7
27 
28 // Internal Includes
29 #include "ConfigParams.h"
30 #include "RoomCalibration.h"
31 #include "TrackingSystem.h"
32 #include <CameraParameters.h>
33 #include <GenericBlobExtractor.h>
34 
35 // Library/third-party includes
36 #include <boost/noncopyable.hpp>
37 #include <opencv2/core/core.hpp>
39 #include <osvr/Util/TimeValue.h>
40 
41 // Standard includes
42 #include <memory>
43 
44 namespace osvr {
45 namespace vbtracker {
46  class TrackingDebugDisplay;
47 
49  struct TrackingSystem::Impl : private boost::noncopyable {
50  Impl(ConfigParams const &params);
51  ~Impl();
52  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
53  void triggerDebugDisplay(TrackingSystem &tracking);
54 
58  cv::Mat frame;
60  cv::Mat frameGray;
63  util::time::TimeValue lastFrame;
65  bool roomCalibCompleteCached = false;
66 
67  bool haveCameraPose = false;
68  Eigen::Isometry3d cameraPose = Eigen::Isometry3d::Identity();
69  Eigen::Isometry3d cameraPoseInv = Eigen::Isometry3d::Identity();
70 
71  RoomCalibration calib;
72 
73  LedUpdateCount updateCount;
74  BlobExtractorPtr blobExtractor;
75  std::unique_ptr<TrackingDebugDisplay> debugDisplay;
76  };
77 
78 } // namespace vbtracker
79 } // namespace osvr
80 #endif // INCLUDED_TrackingSystem_Impl_h_GUID_9EC4CAF8_58AA_45A5_59A0_6B1FB4B86BE7
cv::Mat frameGray
Cached copy of the last grey frame.
Definition: TrackingSystem_Impl.h:60
The main namespace for all C++ elements of the framework, internal and external.
Definition: namespace_osvr.dox:3
Definition: CameraParameters.h:41
Header wrapping include of <Eigen/Core> and <Eigen/Geometry> for warning quieting.
Private implementation structure for TrackingSystem.
Definition: TrackingSystem_Impl.h:49
Definition: TrackingSystem.h:54
Takes care of the initial room calibration startup step, when we learn the pose of the camera in spac...
Definition: RoomCalibration.h:48
General configuration parameters.
Definition: ConfigParams.h:82
Header providing a C++ wrapper around TimeValueC.h.
Standardized, portable parallel to struct timeval for representing both absolute times and time inter...
Definition: TimeValueC.h:81
Definition: Transform.h:43
CameraParameters camParams
Cached copy of the last (undistorted) camera parameters to be used.
Definition: TrackingSystem_Impl.h:62