37 #ifndef RIEGL_RDB_POINTCLOUD_QUERYINSERT_HPP 38 #define RIEGL_RDB_POINTCLOUD_QUERYINSERT_HPP 54 namespace pointcloud {
87 explicit QueryInsert(riegl::rdb::PointcloudData *pointcloud);
94 operator bool()
const;
133 const std::string &attribute,
136 const std::int32_t stride = 0
154 const std::int32_t stride = 0
158 template <
typename ValueType>
160 const std::string &attribute,
161 const ValueType &buffer,
162 const std::int32_t stride = 0
172 template <
typename ValueType>
175 const std::int32_t stride = 0
185 template <
typename ValueType>
188 const std::int32_t stride = 0
204 template <
typename ObjectType,
typename MemberPo
inter>
206 const std::string &attribute,
207 const ObjectType &
object,
208 const MemberPointer member
212 attribute,
object.*member,
213 static_cast<std::int32_t>(
sizeof(ObjectType))
221 template <
typename ObjectType,
typename MemberPo
inter>
229 static_cast<std::int32_t>(
sizeof(ObjectType))
234 template <
typename ObjectType,
typename MemberPo
inter>
236 const std::string &attribute,
237 const ObjectType &
object,
238 const MemberPointer member,
239 const std::size_t index
243 attribute, (
object.*member)[index],
244 static_cast<std::int32_t>(
sizeof(ObjectType))
252 template <
typename ObjectType,
typename MemberPo
inter>
255 MemberPointer member,
256 const std::size_t index
260 (
object.*member)[index],
261 static_cast<std::int32_t>(
sizeof(ObjectType))
298 std::shared_ptr<Private> data;
303 #endif // RIEGL_RDB_POINTCLOUD_QUERYINSERT_HPP void bindMember(const std::string &attribute, const ObjectType &object, const MemberPointer member)
Bind attribute buffer.
DataType
Point attribute access data type.
void bind(const std::string &attribute, const DataType dataType, const void *buffer, const std::int32_t stride=0)
Bind attribute buffer.
ValueType * dataPointerOf(ValueType *const value)
Get pointer to variable or to data in a std::array or vector container.
void bindIdMember(ObjectType &object, MemberPointer member, const std::size_t index)
Bind point id buffer.
bool valid() const
Check if query is not null.
RIEGL Laser Measurement Systems GmbH, Austria.
DataType dataTypeOf()
Convenience wrapper for DataTypeOf class.
void bindIdBuffer(ValueType &buffer, const std::int32_t stride=0)
Bind point id buffer.
std::uint32_t next(std::uint32_t count)
Insert points.
void bindIdMember(ObjectType &object, MemberPointer member)
Bind point id buffer.
void close()
Finish query.
void bindId(const DataType dataType, void *buffer, const std::int32_t stride=0)
Bind point id buffer.
void bindBuffer(const std::string &attribute, const ValueType &buffer, const std::int32_t stride=0)
Bind attribute buffer.
Point attribute access data types.
Pointcloud class implementation details.
void bindMember(const std::string &attribute, const ObjectType &object, const MemberPointer member, const std::size_t index)
Bind attribute buffer.
void bindIdBuffer(ValueType *buffer, const std::int32_t stride=0)
Bind point id buffer.
QueryInsert()
Default constructor.