NDEVR
API Documentation
PCLFunctions.h
1#pragma once
2#include "DLLInfo.h"
3#include <NDEVR/GeometryRegistration.h>
4#include <NDEVR/BaseValues.h>
5#include <NDEVR/RGBColor.h>
6#include <pcl/common/transforms.h>
7#include <pcl/point_cloud.h>
8#include <pcl/point_types.h>
9using namespace pcl;
10typedef PointNormal PointT;
11typedef PointCloud<PointT> Cloud;
12typedef Cloud::Ptr CloudPtr;
13typedef Cloud::ConstPtr CloudConstPtr;
14namespace NDEVR
15{
16 template<uint01 t_dim, class t_type>
17 class RTree;
18
19 class InfoPipe;
20 class Geometry;
26 {
27 public:
28 static Eigen::Matrix4f ConvertMatrix(const Matrix<fltp04>& transform);
29 static Eigen::Matrix4d ConvertMatrix(const Matrix<fltp08>& transform);
30 static Matrix<fltp08> ConvertMatrix(const Eigen::Matrix4d& transform);
31 static Matrix<fltp04> ConvertMatrix(const Eigen::Matrix4f& transform);
32 static pcl::PointCloud<pcl::PointNormal>::Ptr Convert(const Buffer<Vertex<3, fltp04>>& vertices, const Buffer<Ray<3, fltp04>>& normals, const Buffer<bool>& filtered = Buffer<bool>());
33 static pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr Convert(const Buffer<Vertex<3, fltp04>>& vertices, const Buffer<RGBColor>& colors, const Buffer<Ray<3, fltp04>>& normals);
34 static pcl::PointCloud<pcl::PointXYZ>::Ptr Convert(const Buffer<Vertex<3, fltp04>>& vertices, const Buffer<bool>& filtered = Buffer<bool>());
35 static pcl::PointCloud<pcl::PointNormal>::Ptr CalculateNormalCloud(const Buffer<Vertex<3, fltp04>>& vertices, const Buffer<Vertex<3, fltp04>>& tree_sorted_vertices, uint04 mean_k, fltp04 distance, const RTree<3, fltp04>& tree, const Vertex<3, fltp04>& center);
36 static Buffer<Ray<3, fltp04>> CalculateNormals(const Buffer<Vertex<3, fltp04>>& vertices, const Buffer<Vertex<3, fltp04>>& tree_sorted_vertices, uint04 mean_k, fltp04 distance, const RTree<3, fltp04>& tree, LogPtr log = nullptr, const void* lock_ptr = nullptr);
39 {
40 Buffer<Vertex<3, fltp04>>* positions;
42 Buffer<RGBColor>* colors;
43 Buffer<Vertex<3, fltp04>>* tree_sorted_vertices;
44
45 Buffer<Vertex<3, fltp04>> keypoints;
46 uint04 mean_k;
47 RTree<3, fltp04>* tree;
48 LogPtr log;
49 const void* lock_ptr;
50 };
51 static void CalculateKeypoints(KeyPointArgs& args);
52 };
53}
The equivelent of std::vector but with a bit more control.
Definition Buffer.hpp:58
Class to easily restore calculated data in a Geometry after a location altering process.
Definition Geometry.h:2851
A core class within the model hierarchy containing vertex-based data (Usually 3D data) within a set c...
Definition Geometry.h:143
A light-weight base class for Log that allows processes to update, without the need for additional in...
A light-weight wrapper that will be a no-op if there is not a valid log reference,...
Templated logic for doing matrix multiplication.
Definition Matrix.hpp:182
Utility class providing conversions between NDEVR and PCL data types, plus normal and keypoint calcul...
A point in N-dimensional space, used primarily for spatial location information.
Definition Vertex.hpp:44
The primary namespace for the NDEVR SDK.
float fltp04
Defines an alias representing a 4 byte floating-point number Bit layout is as follows: -Sign: 1 bit a...
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
@ transform
A 4x4 transform matrix that maps local coordinates into global space.
Arguments for keypoint detection in point cloud data.