Voyant API 0.2.1
Loading...
Searching...
No Matches
voyant_point_data_wrapper.hpp
Go to the documentation of this file.
1// Copyright (c) 2024-2025 Voyant Photonics, Inc.
2// All rights reserved.
3
4#pragma once
5#include "../capnp_wrapper.h"
6#include "point.capnp.h"
7#include <capnp/message.h>
8#include <capnp/serialize.h>
9
16class PointDataWrapper : public CapnpWrapper<PointData>
17{
18private:
19 int32_t timestamp_nanosecs_ = 0;
20 uint32_t point_index_ = 0;
21 float x_ = 0.0f;
22 float y_ = 0.0f;
23 float z_ = 0.0f;
24 float radial_vel_ = 0.0f;
25 float snr_linear_ = 0.0f;
26 float calibrated_reflectance_ = 0.0f;
27 float noise_mean_estimate_ = 0.0f;
28 float min_ramp_snr_ = 0.0f;
29 DropReason drop_reason_ = DropReason::UNKNOWN;
30
31public:
36
41 void fromProto(PointData::Reader reader) override;
42
47 void toProto(PointData::Builder &builder) const override;
48
53 void debugString(std::ostream &os) const override;
54
55 // Getters and setters
60 int32_t timestamp_nanosecs() const { return timestamp_nanosecs_; }
61
66 void set_timestamp_nanosecs(int32_t value) { timestamp_nanosecs_ = value; }
67
72 uint32_t point_index() const { return point_index_; }
73
78 void set_point_index(uint32_t value) { point_index_ = value; }
79
84 float x() const { return x_; }
85
90 void set_x(float value) { x_ = value; }
91
96 float y() const { return y_; }
97
102 void set_y(float value) { y_ = value; }
103
108 float z() const { return z_; }
109
114 void set_z(float value) { z_ = value; }
115
120 float radial_vel() const { return radial_vel_; }
121
126 void set_radial_vel(float value) { radial_vel_ = value; }
127
132 float snr_linear() const { return snr_linear_; }
133
138 void set_snr_linear(float value) { snr_linear_ = value; }
139
144 float calibrated_reflectance() const { return calibrated_reflectance_; }
145
150 void set_calibrated_reflectance(float value) { calibrated_reflectance_ = value; }
151
156 float noise_mean_estimate() const { return noise_mean_estimate_; }
157
162 void set_noise_mean_estimate(float value) { noise_mean_estimate_ = value; }
163
168 float min_ramp_snr() const { return min_ramp_snr_; }
169
174 void set_min_ramp_snr(float value) { min_ramp_snr_ = value; }
175
180 DropReason drop_reason() const { return drop_reason_; }
181
186 void set_drop_reason(DropReason value) { drop_reason_ = value; }
187
192 bool is_valid() const { return drop_reason_ == DropReason::SUCCESS; }
193
199 void set_point_index_components(uint16_t azimuth, uint16_t elevation);
200
205 uint16_t azimuth_index() const;
206
211 uint16_t elevation_index() const;
212
217 float range() const;
218};
Base template class for Cap'n Proto wrappers.
Definition capnp_wrapper.h:23
Wrapper for PointData messages.
Definition voyant_point_data_wrapper.hpp:17
float snr_linear() const
Get signal-to-noise ratio (linear)
Definition voyant_point_data_wrapper.hpp:132
void set_noise_mean_estimate(float value)
Set noise mean estimate.
Definition voyant_point_data_wrapper.hpp:162
void set_y(float value)
Set Y position.
Definition voyant_point_data_wrapper.hpp:102
int32_t timestamp_nanosecs() const
Get timestamp in nanoseconds since frame start.
Definition voyant_point_data_wrapper.hpp:60
void set_radial_vel(float value)
Set radial velocity.
Definition voyant_point_data_wrapper.hpp:126
void set_snr_linear(float value)
Set signal-to-noise ratio.
Definition voyant_point_data_wrapper.hpp:138
void set_min_ramp_snr(float value)
Set minimum ramp SNR.
Definition voyant_point_data_wrapper.hpp:174
float x() const
Get X position in meters.
Definition voyant_point_data_wrapper.hpp:84
float calibrated_reflectance() const
Get calibrated reflectance.
Definition voyant_point_data_wrapper.hpp:144
uint16_t azimuth_index() const
Extract azimuth index from point_index.
~PointDataWrapper() override
Destructor.
void set_drop_reason(DropReason value)
Set point drop reason.
Definition voyant_point_data_wrapper.hpp:186
void fromProto(PointData::Reader reader) override
Update wrapper fields from a Cap'n Proto reader.
void set_timestamp_nanosecs(int32_t value)
Set timestamp in nanoseconds.
Definition voyant_point_data_wrapper.hpp:66
float range() const
Calculate the range (Euclidean distance from origin) of the point.
void set_point_index_components(uint16_t azimuth, uint16_t elevation)
Encode azimuth and elevation into the point_index field.
void set_z(float value)
Set Z position.
Definition voyant_point_data_wrapper.hpp:114
float z() const
Get Z position in meters.
Definition voyant_point_data_wrapper.hpp:108
void set_x(float value)
Set X position.
Definition voyant_point_data_wrapper.hpp:90
float min_ramp_snr() const
Get minimum ramp SNR.
Definition voyant_point_data_wrapper.hpp:168
uint16_t elevation_index() const
Extract elevation index from point_index.
float radial_vel() const
Get radial velocity in m/s.
Definition voyant_point_data_wrapper.hpp:120
void toProto(PointData::Builder &builder) const override
Write wrapper fields to a Cap'n Proto builder.
void set_point_index(uint32_t value)
Set point index.
Definition voyant_point_data_wrapper.hpp:78
void debugString(std::ostream &os) const override
Generate a debug string representation.
void set_calibrated_reflectance(float value)
Set calibrated reflectance.
Definition voyant_point_data_wrapper.hpp:150
float y() const
Get Y position in meters.
Definition voyant_point_data_wrapper.hpp:96
float noise_mean_estimate() const
Get noise mean estimate.
Definition voyant_point_data_wrapper.hpp:156
DropReason drop_reason() const
Get point drop reason.
Definition voyant_point_data_wrapper.hpp:180
uint32_t point_index() const
Get point index within frame.
Definition voyant_point_data_wrapper.hpp:72
bool is_valid() const
Check if point is valid based on drop reason.
Definition voyant_point_data_wrapper.hpp:192
Definition point.capnp.h:123
Definition point.capnp.h:72
DropReason_d8797e665e96107b
Definition point.capnp.h:22