3 unstable releases

Uses old Rust 2015

0.3.0 Feb 23, 2018
0.1.1 Oct 16, 2017
0.1.0 Nov 25, 2015

#1 in #riegl


Used in pabst

MIT license

230KB
506 lines

rivlib-rs

Use Riegl's RiVLib via Rust.

Note: This software was not developed by Riegl. Please do not contact Riegl for support related to this software.

To use, you'll need to have RiVLib installed somewhere on your library search path, e.g. /usr/local/lib. You'll also need the headers installed to somewhere on your include file search path, e.g. /usr/local/include.

Sub-crates

Underneath the rivlib Rust lib, there are two sub-crates:

  • scanifc-sys uses bindgen to build Rust bindings to RiVLib's C interface, scanifc.
  • scanlib uses a custom C++ wrapper to expose functionality from RiVLib's C++ interface, scanlib. This C++ wrapper must be compiled on your machine when you're building the rivlib crate.

lib.rs:

Interface into Riegl's RiVLib.

Examples

Use a Reader to extract data from rxp files:

use rivlib::Reader;
let reader = Reader::from_path("data/scan.rxp");

Use .points() to get an iterator over the file's points:

let mut reader = rivlib::Reader::from_path("data/scan.rxp");
let points = reader.points().unwrap().filter_map(|p| p.ok()).collect::<Vec<_>>();

Use .inclinations() to get an iterator over the file's inclination readings:

let mut reader = rivlib::Reader::from_path("data/scan.rxp");
let inclinations = reader.inclinations().unwrap().filter_map(|i| i.ok()).collect::<Vec<_>>();

Dependencies

~0–2MB
~40K SLoC