|
Monado OpenXR Runtime
|
Public Member Functions | |
| Camera (ConstellationTracker *tracker, std::weak_ptr< CameraMosaic > mosaic, const t_constellation_tracker_camera &camera_params, enum u_logging_level *log_level_ptr, size_t index) | |
| Camera (const Camera &)=delete | |
| Camera (Camera &&)=delete | |
| Camera & | operator= (const Camera &)=delete |
| Camera & | operator= (Camera &&)=delete |
| std::optional< xrt_pose > | GetWorldPose (timepoint_ns when_ns) |
| void | DeferSampleToSlowThread (CameraSample &sample) |
| bool | TryDevicePose (std::unique_ptr< Device > &device, CameraSample &sample, xrt_pose &Tcv_cam_world, xrt_pose &Tcv_world_device_prior, xrt_pose &Tcv_world_device_candidate, xrt_pose &Tcv_cam_device_found) |
| Fast matching based on prior pose. | |
| bool | TryDeviceBlobRecovery (std::unique_ptr< Device > &device, CameraSample &sample, xrt_pose &Tcv_cam_world, xrt_pose &Tcv_world_device_prior, xrt_pose &Tcv_cam_device_found) |
| void | SlowSampleProcess (CameraSample &sample) |
| bool | FastSampleProcess (CameraSample &sample) |
| Returns whether a slow search is needed. | |
| void | PushPose (CameraSample &sample, std::unique_ptr< Device > &device, pose_metrics &score, xrt_pose &Tcv_cam_device, bool optimize) |
| void | DebugScribbleSample (CameraSample &sample, bool fast) |
Static Public Member Functions | |
| static Camera * | Get (t_blob_sink *tbs) |
Data Fields | ||
| t_blob_sink | base | |
| ConstellationTracker * | tracker | |
| The owner tracker, so we can retrieve it from the blob sink callback. | ||
| std::weak_ptr< CameraMosaic > | mosaic | |
| t_camera_calibration | calibration | |
| camera_model | model | |
| CameraScribbleSettings | scribble_settings {} | |
| size_t | index | |
| The index in the mosaic. | ||
| os_thread_helper | slow_processing_thread | |
| Does "slow" processing for this camera when fast recovery paths fail. | ||
| struct { | ||
| std::optional< CameraSample > sample {std::nullopt} | ||
| correspondence_search * cs {nullptr} | ||
| u_sink_debug debug_sink {} | ||
| } | slow_processing_thread_data | |
| os_thread_helper | fast_processing_thread | |
| Does "fast" processing for this camera, trying to recover a pose quickly. | ||
| struct { | ||
| std::optional< CameraSample > sample {std::nullopt} | ||
| correspondence_search * cs {nullptr} | ||
| u_sink_debug debug_sink {} | ||
| } | fast_processing_thread_data | |
| os::Mutex | processing_lock | |
| Locks all processing data. | ||
| struct { | ||
| xrt_pose Txr_origin_cam | ||
| bool has_concrete_pose | ||
| } | locked_data | |
| All data protected by the processing lock. | ||
| bool xrt::tracking::constellation::Camera::FastSampleProcess | ( | CameraSample & | sample | ) |
Returns whether a slow search is needed.
References tracker, and TryDevicePose().
| bool xrt::tracking::constellation::Camera::TryDevicePose | ( | std::unique_ptr< Device > & | device, |
| CameraSample & | sample, | ||
| xrt_pose & | Tcv_cam_world, | ||
| xrt_pose & | Tcv_world_device_prior, | ||
| xrt_pose & | Tcv_world_device_candidate, | ||
| xrt_pose & | Tcv_cam_device_found | ||
| ) |
Fast matching based on prior pose.
References POSE_MATCH_GOOD, and POSE_MATCH_LED_IDS.
Referenced by FastSampleProcess().
| t_blob_sink xrt::tracking::constellation::Camera::base |
| os_thread_helper xrt::tracking::constellation::Camera::fast_processing_thread |
Does "fast" processing for this camera, trying to recover a pose quickly.
It's valid for this to happen at the same time as a slow process.
| size_t xrt::tracking::constellation::Camera::index |
The index in the mosaic.
| struct { ... } xrt::tracking::constellation::Camera::locked_data |
All data protected by the processing lock.
|
mutable |
Locks all processing data.
| os_thread_helper xrt::tracking::constellation::Camera::slow_processing_thread |
Does "slow" processing for this camera when fast recovery paths fail.
| ConstellationTracker* xrt::tracking::constellation::Camera::tracker |
The owner tracker, so we can retrieve it from the blob sink callback.
Referenced by FastSampleProcess().