Safe Haskell | None |
---|
Define a data structure for a PCD file header and an associated parser.
- data DimType
- data DataFormat
- data FieldType
- fieldParser :: DimType -> Int -> Parser FieldType
- pointParser :: Header -> Parser [FieldType]
- data Header = Header {}
- width :: Lens Header Header Integer Integer
- viewpoint :: Lens Header Header (V3 Double, Quaternion Double) (V3 Double, Quaternion Double)
- version :: Lens Header Header Text Text
- sizes :: Lens Header Header [Int] [Int]
- points :: Lens Header Header Integer Integer
- height :: Lens Header Header Int Int
- format :: Lens Header Header DataFormat DataFormat
- fields :: Lens Header Header [Text] [Text]
- dimTypes :: Lens Header Header [DimType] [DimType]
- counts :: Lens Header Header [Int] [Int]
- defaultHeader :: Header
- readVersion :: Parser Text
- readFields :: Parser [Text]
- readTypes :: Parser [DimType]
- namedIntegral :: Integral a => Text -> Parser a
- namedIntegrals :: Integral a => Text -> Parser [a]
- readViewpoint :: Parser (V3 Double, Quaternion Double)
- readFormat :: Parser DataFormat
- nextLine :: Handle -> IO Text
- readHeader :: Handle -> IO (Header, Maybe Text)
- writeHeader :: Header -> Text
Documentation
Fields attached to a point may be signed integers (I), unsigned integers (U), or floating point (F).
data DataFormat Source
The PCD format has both ASCII and binary variants.
fieldParser :: DimType -> Int -> Parser FieldTypeSource
Construct a parser for a field based on its type and size.
pointParser :: Header -> Parser [FieldType]Source
Assemble a parser for points by sequencing together all necessary field parsers.
readFields :: Parser [Text]Source
namedIntegral :: Integral a => Text -> Parser aSource
namedIntegrals :: Integral a => Text -> Parser [a]Source
readHeader :: Handle -> IO (Header, Maybe Text)Source
Parse a PCD header. Returns the Header
and the rest of the file
contents.
writeHeader :: Header -> TextSource
Format a Header
to be compatible with the PCD specification.