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