Advanced C++ API¶
Advanced functions, detailed intrinsics, error handling, and utility classes for C++ developers.
Functions¶
Detailed Intrinsics Estimation¶
-
Result<IntrinsicsDetailed> alice_lri::estimateIntrinsicsDetailed(const PointCloud::Float &points) noexcept¶
Estimate detailed sensor intrinsics from a float point cloud.
- Parameters:
points – Input point cloud (float precision).
- Returns:
Result containing detailed Intrinsics or error status.
-
Result<IntrinsicsDetailed> alice_lri::estimateIntrinsicsDetailed(const PointCloud::Double &points) noexcept¶
Estimate detailed sensor intrinsics from a double point cloud.
- Parameters:
points – Input point cloud (double precision).
- Returns:
Result containing detailed Intrinsics or error status.
JSON Serialization¶
-
Result<Intrinsics> alice_lri::intrinsicsFromJsonStr(const AliceString &json) noexcept¶
Parse Intrinsics from a JSON string.
- Parameters:
json – JSON string.
- Returns:
Result containing Intrinsics or error status.
-
AliceString alice_lri::intrinsicsToJsonStr(const Intrinsics &result, int32_t indent = -1) noexcept¶
Serialize Intrinsics to a JSON string.
- Parameters:
result – Intrinsics to serialize.
indent – Indentation for pretty printing (-1 for compact).
- Returns:
JSON string.
-
Result<Intrinsics> alice_lri::intrinsicsFromJsonFile(const char *path) noexcept¶
Parse Intrinsics from a JSON file.
- Parameters:
path – Path to JSON file.
- Returns:
Result containing Intrinsics or error status.
-
Status alice_lri::intrinsicsToJsonFile(const Intrinsics &result, const char *outputPath, int32_t indent = -1) noexcept¶
Write Intrinsics to a JSON file.
- Parameters:
result – Intrinsics to write.
outputPath – Output file path.
indent – Indentation for pretty printing (-1 for compact).
- Returns:
Status of the operation.
Data Structures¶
Detailed Intrinsics¶
-
struct IntrinsicsDetailed¶
Detailed intrinsic parameters, including scanline details and statistics.
Public Functions
-
inline explicit IntrinsicsDetailed(const int32_t scanlineCount) noexcept¶
Construct with a given number of scanlines.
- Parameters:
scanlineCount – Number of scanlines.
-
inline IntrinsicsDetailed(const int32_t scanlineCount, const int32_t verticalIterations, const int32_t unassignedPoints, const int32_t pointsCount, const EndReason endReason) noexcept¶
Full constructor with all statistics.
- Parameters:
scanlineCount – Number of scanlines.
verticalIterations – Number of vertical iterations.
unassignedPoints – Number of unassigned points.
pointsCount – Total number of points.
endReason – Reason for ending the iterative algorithm.
Public Members
-
AliceArray<ScanlineDetailed> scanlines¶
Array of detailed scanlines.
-
int32_t verticalIterations = 0¶
Number of vertical iterations performed.
-
int32_t unassignedPoints = 0¶
Number of unassigned points.
-
int32_t pointsCount = 0¶
Total number of points.
-
EndReason endReason = EndReason::MAX_ITERATIONS¶
Reason for ending the process.
-
inline explicit IntrinsicsDetailed(const int32_t scanlineCount) noexcept¶
-
struct ScanlineDetailed¶
Detailed scanline information with uncertainty and voting statistics.
Public Members
-
ValueConfInterval verticalOffset¶
Vertical spatial offset with confidence interval.
-
ValueConfInterval verticalAngle¶
Vertical angle with confidence interval.
-
double horizontalOffset¶
Horizontal spatial offset.
-
double azimuthalOffset¶
Azimuthal offset.
-
int32_t resolution¶
Horizontal resolution of the scanline.
-
double uncertainty¶
Estimated uncertainty.
-
int64_t houghVotes¶
Number of Hough transform votes.
-
uint64_t houghHash¶
Hash value for Hough voting.
-
uint64_t pointsCount¶
Number of points assigned to this scanline.
-
ScanlineAngleBounds theoreticalAngleBounds¶
Theoretical angle bounds for the scanline.
-
bool verticalHeuristic¶
Whether vertical heuristic was used.
-
bool horizontalHeuristic¶
Whether horizontal heuristic was used.
-
ValueConfInterval verticalOffset¶
-
struct ScanlineAngleBounds¶
Angle bounds for a scanline.
Mathematical Utilities¶
-
struct Interval¶
Represents a numeric interval [lower, upper].
Public Functions
-
inline double diff() const noexcept¶
Get the width of the interval.
- Returns:
Difference upper - lower.
-
bool anyContained(const Interval &other) const noexcept¶
Check if any part of another interval is contained in this interval.
- Parameters:
other – The other interval.
- Returns:
True if any part is contained.
-
void clampBoth(double minValue, double maxValue) noexcept¶
Clamp both bounds to [minValue, maxValue].
- Parameters:
minValue – Minimum value.
maxValue – Maximum value.
-
inline double diff() const noexcept¶
-
struct ValueConfInterval¶
Value with associated confidence interval.
Error Handling¶
Status and Error Codes¶
-
struct Status¶
Status of an operation, including error code and message.
Public Functions
-
inline explicit operator bool() const noexcept¶
Check if status is OK (no error).
- Returns:
True if no error.
Public Members
-
AliceString message = AliceString()¶
Error message.
Public Static Functions
-
static inline Status buildError(const ErrorCode c) noexcept¶
Build an error status from code.
- Parameters:
c – Error code.
- Returns:
Status with error code and message.
-
static inline Status buildError(const ErrorCode c, const AliceString &msg) noexcept¶
Build an error status from code and custom message.
- Parameters:
c – Error code.
msg – Custom message.
- Returns:
Status with error code and custom message.
-
inline explicit operator bool() const noexcept¶
-
enum class alice_lri::ErrorCode¶
Error codes for Alice LRI operations.
Values:
-
enumerator NONE¶
No error.
-
enumerator MISMATCHED_SIZES¶
Input arrays have mismatched sizes.
-
enumerator EMPTY_POINT_CLOUD¶
Point cloud is empty.
-
enumerator RANGES_XY_ZERO¶
At least one point has a range of zero in the XY plane.
-
enumerator INTERNAL_ERROR¶
Internal error occurred.
-
enumerator NONE¶
-
AliceString alice_lri::errorMessage(ErrorCode code)¶
Get a human-readable error message for an ErrorCode.
- Parameters:
code – Error code.
- Returns:
Error message string.
Enums¶
-
enum class alice_lri::EndReason¶
Reason for ending the iterative vertical fitting process.
Values:
-
enumerator ALL_ASSIGNED¶
All points assigned. This is the normal termination condition.
-
enumerator MAX_ITERATIONS¶
Maximum number of iterations reached.
-
enumerator NO_MORE_PEAKS¶
No more peaks found in the Hough accumulator.
-
enumerator ALL_ASSIGNED¶