Enum las::point::Classification[][src]

pub enum Classification {
    CreatedNeverClassified,
    Unclassified,
    Ground,
    LowVegetation,
    MediumVegetation,
    HighVegetation,
    Building,
    LowPoint,
    ModelKeyPoint,
    Water,
    Rail,
    RoadSurface,
    WireGuard,
    WireConductor,
    TransmissionTower,
    WireStructureConnector,
    BridgeDeck,
    HighNoise,
    Reserved(u8),
    UserDefinable(u8),
}

The ASPRS classification table.

Classifications can be created from u8s and converted back into them:

use las::point::Classification;
let classification = Classification::new(2).unwrap();
assert_eq!(Classification::Ground, classification);
assert_eq!(2, u8::from(classification));

We make one modification to this table: we remove OverlapPoints, code 12. Las 1.4 added the extended point formats, which include an overlap bit. The overlap bit is intended to allow a point to both be an overlap point and contain some other classification.

Here's how we deal with that change:

  • If the point format doesn't support the overlap bit, the classification is overwritten with the code for overlap points (12). On ingest, points with an overlap classification are given the Unclassified code and Point::is_overlap is set to true.
  • If the point format does support the overlap bit, that is preferred.

Because of this change, trying to create a classification with code 12 is an error:

use las::point::Classification;
assert!(Classification::new(12).is_err());

Variants

CreatedNeverClassified
Unclassified
Ground
LowVegetation
MediumVegetation
HighVegetation
Building
LowPoint
ModelKeyPoint
Water
Rail
RoadSurface
WireGuard
WireConductor
TransmissionTower
WireStructureConnector
BridgeDeck
HighNoise
Reserved(u8)
UserDefinable(u8)

Implementations

impl Classification[src]

pub fn new(n: u8) -> Result<Classification>[src]

Creates a new classification.

Throws an error if the classification is 12 (overlap).

Examples

use las::point::Classification;
assert_eq!(Classification::Ground, Classification::new(2).unwrap());
assert!(Classification::new(12).is_err());

Trait Implementations

impl Clone for Classification[src]

impl Copy for Classification[src]

impl Debug for Classification[src]

impl Default for Classification[src]

impl PartialEq<Classification> for Classification[src]

impl StructuralPartialEq for Classification[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.