![]() |
RDB 2
|
Main point cloud database class. More...
#include <pointcloud.hpp>
Public Member Functions | |
Constructors and destructor | |
Pointcloud (Context context=Context()) | |
Create Pointcloud instance. More... | |
~Pointcloud () | |
Destroy Pointcloud instance. More... | |
Database Access | |
void | create (const std::string &location, const pointcloud::CreateSettings &settings) |
Create new database. More... | |
void | create (const std::string &location, const pointcloud::CreateSettings &settings, const std::string &schema, const bool optionals=false) |
Create new database. More... | |
void | open (const std::string &location, const pointcloud::OpenSettings &settings) |
Open existing database. More... | |
void | close () |
Close database. More... | |
bool | isOpen () const |
Check if a database is open. More... | |
bool | isEmpty () const |
Check if a database is empty. More... | |
std::string | getUUID () const |
Get database file's UUID. More... | |
std::string | inspect (const std::uint8_t format) |
File statistics and debugging information. More... | |
void | clearCache () |
Clear internal data cache. More... | |
Database Management | |
pointcloud::Management & | management () |
Basic point cloud management interface. More... | |
const pointcloud::Management & | management () const |
Basic point cloud management interface. More... | |
pointcloud::Changelog & | changelog () |
Manage point cloud changelog. More... | |
const pointcloud::Changelog & | changelog () const |
Manage point cloud changelog. More... | |
pointcloud::MetaData & | metaData () |
Manage point cloud meta data. More... | |
const pointcloud::MetaData & | metaData () const |
Manage point cloud meta data. More... | |
pointcloud::PointAttributes & | pointAttribute () |
Manage point attributes. More... | |
const pointcloud::PointAttributes & | pointAttribute () const |
Manage point attributes. More... | |
pointcloud::Transactions & | transaction () |
Manage point cloud transactions. More... | |
const pointcloud::Transactions & | transaction () const |
Manage point cloud transactions. More... | |
Point Queries | |
pointcloud::QueryInsert | insert () |
Insert points. More... | |
pointcloud::QueryUpdate | update () |
Update points. More... | |
pointcloud::QuerySelect | select (const std::string &filter=std::string()) |
Select points. More... | |
pointcloud::QuerySelect | select (const pointcloud::GraphNode::ID &node, const std::string &filter=std::string()) |
Select points by index node. More... | |
pointcloud::QuerySelect | select (const std::vector< pointcloud::GraphNode::ID > &nodes, const std::string &filter=std::string()) |
Select points by index nodes. More... | |
pointcloud::QueryFill | fill (const std::string &filter=std::string()) |
Fill points. More... | |
pointcloud::QueryFill | fill (const pointcloud::GraphNode::ID &node, const std::string &filter=std::string()) |
Fill points by index node. More... | |
pointcloud::QueryFill | fill (const std::vector< pointcloud::GraphNode::ID > &nodes, const std::string &filter=std::string()) |
Fill points by index nodes. More... | |
pointcloud::QueryInvert | invert (const std::string &filter=std::string()) |
Invert points. More... | |
pointcloud::QueryInvert | invert (const pointcloud::GraphNode::ID &node, const std::string &filter=std::string()) |
Invert points by index node. More... | |
pointcloud::QueryInvert | invert (const std::vector< pointcloud::GraphNode::ID > &nodes, const std::string &filter=std::string()) |
Invert points by index nodes. More... | |
pointcloud::QueryRemove | remove () |
Remove points. More... | |
pointcloud::QueryStat | stat () |
Query point statistics. More... | |
Friends | |
class | riegl::rdb::pointcloud::PointAttributes |
Main point cloud database class.
Use this class to create or open a point cloud database and insert, update or query points.
Definition at line 89 of file pointcloud.hpp.
Create Pointcloud instance.
This creates a new Pointcloud object instance. To actually access or create a point cloud database file, you must call open() or create().
Each Pointcloud instance may only be accessed from one thread/process at a time. Opening the same database using different Pointcloud instances (in the same or different thread or process) is allowed.
riegl::rdb::Pointcloud::~Pointcloud | ( | ) |
Destroy Pointcloud instance.
pointcloud::Changelog& riegl::rdb::Pointcloud::changelog | ( | ) |
Manage point cloud changelog.
const pointcloud::Changelog& riegl::rdb::Pointcloud::changelog | ( | ) | const |
Manage point cloud changelog.
void riegl::rdb::Pointcloud::clearCache | ( | ) |
Clear internal data cache.
This function clears (flushes) the internal data cache and reduces memory consumption as much as possible.
void riegl::rdb::Pointcloud::close | ( | ) |
Close database.
Close database file and release all internal resources. This function fails if there are pending transactions.
void riegl::rdb::Pointcloud::create | ( | const std::string & | location, |
const pointcloud::CreateSettings & | settings | ||
) |
Create new database.
This function creates a new (empty) database. If the given database already exists, it will be overwritten (unless it is opened by other clients, in which case the creation will fail). The target folder must exist - it is not created automatically. If the database could not be created, an exception is thrown.
[in] | location | database location (filename) |
[in] | settings | database creation settings |
void riegl::rdb::Pointcloud::create | ( | const std::string & | location, |
const pointcloud::CreateSettings & | settings, | ||
const std::string & | schema, | ||
const bool | optionals = false |
||
) |
Create new database.
Create new database. This function creates a new (empty) database. If the given database already exists, it will be overwritten (unless it is opened by other clients, in which case the creation will fail). The target folder must exist - it is not created automatically. If the database could not be created, an exception is thrown.
Additionally, all required point attributes and metadata entries as defined by the schema are added to the database. The schema is given in JSON format, details see riegl::rdb::pointcloud::Management::validate(). If 'optionals' is 'true', then also the optional point attributes and metadata entries are added to the database.
[in] | location | database location (filename) |
[in] | settings | database creation settings |
[in] | schema | database schema (JSON format) |
[in] | optionals | true: include optional items |
pointcloud::QueryFill riegl::rdb::Pointcloud::fill | ( | const pointcloud::GraphNode::ID & | node, |
const std::string & | filter = std::string() |
||
) |
Fill points by index node.
This function creates a new query object that can be used to set (modify) attributes of existing points.
Please have a look at select() for details about the filter expression.
Instead of modifying all points of the point cloud this variant just modifies the points contained in a single node. See notes about LOD for details.
[in] | node | ID of index graph node |
[in] | filter | optional point filter expression |
pointcloud::QueryFill riegl::rdb::Pointcloud::fill | ( | const std::string & | filter = std::string() | ) |
Fill points.
This function creates a new query object that can be used to set (modify) attributes of existing points.
Please have a look at select() for details about the filter expression.
[in] | filter | optional point filter expression |
pointcloud::QueryFill riegl::rdb::Pointcloud::fill | ( | const std::vector< pointcloud::GraphNode::ID > & | nodes, |
const std::string & | filter = std::string() |
||
) |
Fill points by index nodes.
This function creates a new query object that can be used to set (modify) attributes of existing points.
Please have a look at select() for details about the filter expression.
Instead of modifying all points of the point cloud this variant just modifies the points contained in the given nodes. See notes about LOD for details.
[in] | nodes | IDs of index graph nodes |
[in] | filter | optional point filter expression |
std::string riegl::rdb::Pointcloud::getUUID | ( | ) | const |
Get database file's UUID.
pointcloud::QueryInsert riegl::rdb::Pointcloud::insert | ( | ) |
Insert points.
This function creates a new query object that can be used to insert (new) points into the database.
std::string riegl::rdb::Pointcloud::inspect | ( | const std::uint8_t | format | ) |
File statistics and debugging information.
This function returns statistics and debugging information about the database file which is intended for factory usage only (i.e. the format may change at any time and the content is undocumented).
pointcloud::QueryInvert riegl::rdb::Pointcloud::invert | ( | const pointcloud::GraphNode::ID & | node, |
const std::string & | filter = std::string() |
||
) |
Invert points by index node.
This function creates a new query object that can be used to invert attributes of existing points.
Please have a look at select() for details about the filter expression.
Instead of inverting all points of the point cloud this variant just inverts the points contained in a single node. See notes about LOD for details.
[in] | node | ID of index graph node |
[in] | filter | optional point filter expression |
pointcloud::QueryInvert riegl::rdb::Pointcloud::invert | ( | const std::string & | filter = std::string() | ) |
Invert points.
This function creates a new query object that can be used to invert attributes of existing points.
Please have a look at select() for details about the filter expression.
[in] | filter | optional point filter expression |
pointcloud::QueryInvert riegl::rdb::Pointcloud::invert | ( | const std::vector< pointcloud::GraphNode::ID > & | nodes, |
const std::string & | filter = std::string() |
||
) |
Invert points by index nodes.
This function creates a new query object that can be used to invert attributes of existing points.
Please have a look at select() for details about the filter expression.
Instead of inverting all points of the point cloud this variant just inverts the points contained in the given nodes. See notes about LOD for details.
[in] | nodes | IDs of index graph nodes |
[in] | filter | optional point filter expression |
bool riegl::rdb::Pointcloud::isEmpty | ( | ) | const |
Check if a database is empty.
bool riegl::rdb::Pointcloud::isOpen | ( | ) | const |
Check if a database is open.
pointcloud::Management& riegl::rdb::Pointcloud::management | ( | ) |
Basic point cloud management interface.
const pointcloud::Management& riegl::rdb::Pointcloud::management | ( | ) | const |
Basic point cloud management interface.
pointcloud::MetaData& riegl::rdb::Pointcloud::metaData | ( | ) |
Manage point cloud meta data.
const pointcloud::MetaData& riegl::rdb::Pointcloud::metaData | ( | ) | const |
Manage point cloud meta data.
void riegl::rdb::Pointcloud::open | ( | const std::string & | location, |
const pointcloud::OpenSettings & | settings | ||
) |
Open existing database.
Open existing database location. If the given database does not exist, an exception is thrown.
[in] | location | database location (filename) |
[in] | settings | database open settings |
pointcloud::PointAttributes& riegl::rdb::Pointcloud::pointAttribute | ( | ) |
Manage point attributes.
const pointcloud::PointAttributes& riegl::rdb::Pointcloud::pointAttribute | ( | ) | const |
Manage point attributes.
pointcloud::QueryRemove riegl::rdb::Pointcloud::remove | ( | ) |
Remove points.
This function creates a new query object that can be used to remove (delete) existing points.
pointcloud::QuerySelect riegl::rdb::Pointcloud::select | ( | const pointcloud::GraphNode::ID & | node, |
const std::string & | filter = std::string() |
||
) |
Select points by index node.
This function creates a new query object that can be used to select (read) attributes of existing points.
The optional filter expression can be used to select particular points - if no filter is given, all points will be loaded.
Filter expression operators:
operator | meaning |
---|---|
== | equality (left == right) |
!= | inequality (left != right) |
< | less than (left < right) |
<= | less than or equal to (left <= right) |
> | greater than (left > right) |
>= | greater than or equal to (left >= right) |
&& | conjunction (left && right) |
|| | disjunction (left || right) |
% | unsigned modulo (left % right) |
Filter expression syntax:
Filter expression examples:
Stored filters:
Filters can also be stored in the metadata as riegl.stored_filters
. All activated filters of this list will be applied in addition to the filter specified by the application (conjunction). To temporarily ignore (override) all stored filters, insert "!!"
at the beginning or end of the filter string (e.g. "!! riegl.id == 1"
or "riegl.id == 1 !!"
).
Instead of loading all points of the point cloud this variant just loads the points contained in a single node. See notes about LOD for details.
[in] | node | ID of index graph node |
[in] | filter | optional point filter expression |
pointcloud::QuerySelect riegl::rdb::Pointcloud::select | ( | const std::string & | filter = std::string() | ) |
Select points.
This function creates a new query object that can be used to select (read) attributes of existing points.
The optional filter expression can be used to select particular points - if no filter is given, all points will be loaded.
Filter expression operators:
operator | meaning |
---|---|
== | equality (left == right) |
!= | inequality (left != right) |
< | less than (left < right) |
<= | less than or equal to (left <= right) |
> | greater than (left > right) |
>= | greater than or equal to (left >= right) |
&& | conjunction (left && right) |
|| | disjunction (left || right) |
% | unsigned modulo (left % right) |
Filter expression syntax:
Filter expression examples:
Stored filters:
Filters can also be stored in the metadata as riegl.stored_filters
. All activated filters of this list will be applied in addition to the filter specified by the application (conjunction). To temporarily ignore (override) all stored filters, insert "!!"
at the beginning or end of the filter string (e.g. "!! riegl.id == 1"
or "riegl.id == 1 !!"
).
[in] | filter | optional point filter expression |
pointcloud::QuerySelect riegl::rdb::Pointcloud::select | ( | const std::vector< pointcloud::GraphNode::ID > & | nodes, |
const std::string & | filter = std::string() |
||
) |
Select points by index nodes.
This function creates a new query object that can be used to select (read) attributes of existing points.
The optional filter expression can be used to select particular points - if no filter is given, all points will be loaded.
Filter expression operators:
operator | meaning |
---|---|
== | equality (left == right) |
!= | inequality (left != right) |
< | less than (left < right) |
<= | less than or equal to (left <= right) |
> | greater than (left > right) |
>= | greater than or equal to (left >= right) |
&& | conjunction (left && right) |
|| | disjunction (left || right) |
% | unsigned modulo (left % right) |
Filter expression syntax:
Filter expression examples:
Stored filters:
Filters can also be stored in the metadata as riegl.stored_filters
. All activated filters of this list will be applied in addition to the filter specified by the application (conjunction). To temporarily ignore (override) all stored filters, insert "!!"
at the beginning or end of the filter string (e.g. "!! riegl.id == 1"
or "riegl.id == 1 !!"
).
Instead of loading all points of the point cloud this variant just loads the points contained in the given nodes. See notes about LOD for details.
[in] | nodes | IDs of index graph nodes |
[in] | filter | optional point filter expression |
pointcloud::QueryStat riegl::rdb::Pointcloud::stat | ( | ) |
Query point statistics.
This function creates a new query object that can be used to get point attribute statistics like minimum and maximum value.
pointcloud::Transactions& riegl::rdb::Pointcloud::transaction | ( | ) |
Manage point cloud transactions.
const pointcloud::Transactions& riegl::rdb::Pointcloud::transaction | ( | ) | const |
Manage point cloud transactions.
pointcloud::QueryUpdate riegl::rdb::Pointcloud::update | ( | ) |
Update points.
This function creates a new query object that can be used to update (modify) attributes of existing points.
|
friend |
Definition at line 478 of file pointcloud.hpp.