Crate riscan_pro [] [src]

Crack open RiSCAN Pro xml files.

RiSCAN Pro is software developed by Riegl for terrestrial LiDAR scanning. RiSCAN Pro stores most project metadata, e.g. calibration and transformation matrices, in a xml file inside of the RiSCAN Pro project directory. This is a Rust library for reading these xml files and extracting the good bits.

This project is not created by Riegl and no support from them is provided or implied. Please do not contact Riegl about this software.

This library is not complete, as there's lots of project components that aren't supported. This was developed for a specific purpose (colorizing points and transforming them) and so far hasn't been developed much beyond that.

Examples

Projects can be opened from the directory or the rsp file themselves:

use riscan_pro::Project;
let project1 = Project::from_path("data/project.RiSCAN").unwrap();
let project2 = Project::from_path("data/project.RiSCAN/project.rsp").unwrap();
assert_eq!(project1, project2);

Everything available to you is a public attribute of the project. For example, to transform a point in the project's coordinate system (PRCS) to the global coordinate system (GLCS), use the pop attribute of the project. Points are typed so they can't be compared directly, but they can be dereferenced into their underlying nalgebra::Point3<f64>.

use riscan_pro::{Point, Project};
let project = Project::from_path("data/project.RiSCAN").unwrap();
let prcs = Point::prcs(1., 2., 3.);
let glcs = prcs.to_glcs(project.pop);
// assert!(prcs != glcs) <-- compile error
assert!(*prcs != *glcs);

Reexports

pub use scan_position::ScanPosition;

Modules

element

Improvements to xmltree::Element.

scan_position

Scan positions and their consituant parts.

Structs

CameraCalibration

A camera calibration.

Cmcs

The CaMera's Coordinate System.

Glcs

The GLobal Coordinate System.

MountCalibration

A camera mount calibration.

Point

A three-dimensional point.

Prcs

The PRoject Coordinate System.

Project

A RiSCAN Pro project.

Socs

The Scanner's Own Coordiate System.

Enums

Error

Our custom error enum.

Type Definitions

Result

Our custom result type.