RDB 2
RDB 2 Documentation

Introduction

The RIEGL RDB library offers tools to efficiently organize, compress and store point clouds.

Features

  • Point cloud is stored in a single indexed and compressed file
  • Variable number of point attributes (dimensions)
  • Dynamic point cloud, i.e. insert, remove or update points at any time
  • Flexible point query function that allows to
    • specify simple point attribute filters (similar to SQL's WHERE clause)
    • read points into 8/16/32/64 bit integer or 32/64 bit floating point data buffers with on-the-fly data type conversion
    • read points into array- or record-like data containers
  • Multiple coarse representations of the original point cloud for fast 3D visualization (level of detail)
  • Block-oriented algorithms to support large number of points
  • Log point cloud modifications to journal (transaction log)

Interface

The core library has a C-style interface (API). The RDB SDK contains client side wrappers for following programming languages:

  • C
  • C++
  • Pascal (Delphi)
  • Python

The interface files for each language can be found in a separate sub-folder in the "interface" folder of the RDB SDK.

Documentation

The best point to start at is to have a look on the class riegl::rdb::Pointcloud which is the main database management and access class.

Remarks
This documentation only covers the C++ interface - all other interfaces are very similar. Details about other language interfaces can be found in the corresponding interface (header) files.
Note
All strings are expected to be UTF-8 encoded.
Warning
Thread-Safety: Accessing the same instance of riegl::rdb::Context or riegl::rdb::Pointcloud from multiple threads at the same time is not safe, no matter if accessing the instance through its methods directly or indirectly (e.g. through any of the 'Query' classes). You either must ensure that only one thread accesses the point cloud (and thus the context) at a time or use multiple different instances of riegl::rdb::Context and riegl::rdb::Pointcloud and open the same database file. See also documentation of class riegl::rdb::Pointcloud, especially for the constructor.

Examples

C++ example code can be found on the "Examples" page.

License

Copyright (c) 2015-2023 RIEGL LASER MEASUREMENT SYSTEMS

1. By downloading, installing, copying or otherwise using the Software
   you (the "Licensee") agree to be bound by the licensing terms set
   forth herein.

2. Obligations of the Licensee:

i.   Licensee must not, nor attempt to, itself, or by encouraging any
     third party to do so, decompile, disassemble or otherwise reverse
     engineer the Software.

ii.  Licensee shall not be entitled to distribute the Software alone as
     a separate product.

iii. Licensee may distribute the Software bundled with third party software
     with a name distinguishable from the Software's name and provided that
     it agrees with the end-users on terms at least as protective for RIEGL
     as the terms set forth herein.

iv.  Licensee shall be solely responsible for testing the Software and
     ensuring its compatibility with other software.

3. The Software is provided on an "AS IS" basis. To the maximum extent
   permitted by law, ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS,
   AND WARRANTIES including, without limitation, any implied warranty or
   condition of merchantability and fitness for a particular purpose ARE
   HEREBY EXPRESSLY EXCLUDED AND ARE EXPRESSLY DISCLAIMED BY RIEGL AND ITS
   SUPPLIERS. Without limiting the generality of the foregoing, RIEGL does
   not warrant that the licensed Software is accurate, will meet Licensee's
   requirements, will operate in any combination that may be selected for
   use by Licensee or in combination with other software, will operate
   uninterrupted or error free etc. Furthermore, RIEGL does not warrant
   that any errors, defects or inefficiencies will be recovered, nor does
   RIEGL assume any liability for failure to correct any such error, defect
   or inefficiency. RIEGL makes no warranty, and Licensee assumes the entire
   risk as to the integrity of any data and the results, capabilities,
   suitability, use, or performance of the Software.

4. Licensee acknowledges that RIEGL has the right but NOT THE OBLIGATION
   to provide maintenance, support, updates, enhancements, modifications,
   information about the availability on new downloads or other support
   services related to the Software. RIEGL reserves the right to cease the
   development of the Software, or the Software's free distribution at any
   time under express preclusion of any and all reimbursement to (or other
   raise of claims by) the Licensee.

License terms of the libraries the RIEGL RDB library is based on see folder "manual/licenses".