38 #ifndef RIEGL_RDB_POINTCLOUD_MANAGEMENT_HPP 39 #define RIEGL_RDB_POINTCLOUD_MANAGEMENT_HPP 54 namespace pointcloud {
70 explicit Management(riegl::rdb::PointcloudData* pointcloud);
122 void *userdata =
nullptr 130 template<
typename Callable>
133 typedef typename std::decay<Callable>::type CallableType;
135 &progress_proxy_callable<CallableType>,
136 const_cast<CallableType*>(&progress)
145 template<
typename Receiver>
146 void vacuum(
void (Receiver::*progress)(uint8_t), Receiver &receiver)
148 auto userdata = std::make_pair(progress, &receiver);
149 this->
vacuum(&progress_proxy_receiver<Receiver>, &userdata);
158 template<
typename Receiver>
159 void vacuum(
void (Receiver::*progress)(uint8_t)
const,
const Receiver &receiver)
161 auto userdata = std::make_pair(progress, &receiver);
162 this->
vacuum(&progress_proxy_receiver<Receiver>, &userdata);
198 const std::string &schema,
199 const bool strict=
false 203 riegl::rdb::PointcloudData *data;
205 template<
typename Callable>
206 static void progress_proxy_callable(uint8_t progress,
void *userdata)
210 Callable &callback = *
reinterpret_cast<Callable*
>(userdata);
219 template<
typename Receiver>
220 static void progress_proxy_receiver(uint8_t progress,
void *userdata)
224 typedef void (Receiver::*Function)(uint8_t);
225 auto data(
reinterpret_cast<std::pair<Function, Receiver*>*
>(userdata));
226 (*data->second.*data->first)(progress);
237 #endif // RIEGL_RDB_POINTCLOUD_MANAGEMENT_HPP void vacuum(Progress progress=nullptr, void *userdata=nullptr)
Optimize database file.
Operation progress feedback tools.
uint32_t getLodMode() const
Query level of detail mode.
void(* Progress)(uint8_t progress, void *userdata)
Progress callback function type.
void vacuum(Callable &&progress)
Optimize database file.
RIEGL Laser Measurement Systems GmbH, Austria.
void setLodMode(const uint32_t value)
Modify level of detail mode.
void vacuum(void(Receiver::*progress)(uint8_t) const, const Receiver &receiver)
Optimize database file.
void validate(const std::string &schema, const bool strict=false) const
Validate database file.
void vacuum(void(Receiver::*progress)(uint8_t), Receiver &receiver)
Optimize database file.
uint32_t getChunkSizeLOD() const
Query level of detail size.
Management(riegl::rdb::PointcloudData *pointcloud)
Constructor.
Pointcloud class implementation details.
void setChunkSizeLOD(const uint32_t value)
Modify level of detail size.
void finalize()
Dismiss database history.
Basic point cloud management interface.