From 3b2bb498a8ceba1c45247e32eea3767367925a79 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 31 Aug 2026 01:05:33 +0000 Subject: [PATCH] Update documentation (latest) 7eb26e1dc21557958c481f4c2e2e9308e1b082ad --- api/latest/namespacertabmap_1_1util3d.html | 12 +- api/latest/util3d__surface_8h_source.html | 802 +++++++++++---------- index.html | 2 +- 3 files changed, 409 insertions(+), 407 deletions(-) diff --git a/api/latest/namespacertabmap_1_1util3d.html b/api/latest/namespacertabmap_1_1util3d.html index 852eb10f..ceb852a3 100644 --- a/api/latest/namespacertabmap_1_1util3d.html +++ b/api/latest/namespacertabmap_1_1util3d.html @@ -1148,12 +1148,12 @@ std::vector< pcl::Vertices > RTABMAP_CORE_EXPORT  pcl::PolygonMesh::Ptr RTABMAP_CORE_EXPORT createMesh (const pcl::PointCloud< pcl::PointXYZRGBNormal >::Ptr &cloudWithNormals, float gp3SearchRadius=0.025, float gp3Mu=2.5, int gp3MaximumNearestNeighbors=100, float gp3MaximumSurfaceAngle=M_PI/4, float gp3MinimumAngle=M_PI/18, float gp3MaximumAngle=2 *M_PI/3, bool gp3NormalConsistency=true)   - -pcl::TextureMesh::Ptr RTABMAP_CORE_EXPORT createTextureMesh (const pcl::PolygonMesh::Ptr &mesh, const std::map< int, Transform > &poses, const std::map< int, CameraModel > &cameraModels, const std::map< int, cv::Mat > &cameraDepths, float maxDistance=0.0f, float maxDepthError=0.0f, float maxAngle=0.0f, int minClusterSize=50, const std::vector< float > &roiRatios=std::vector< float >(), const ProgressState *state=0, std::vector< std::map< int, pcl::PointXY > > *vertexToPixels=0, bool distanceToCamPolicy=false) -  - -pcl::TextureMesh::Ptr RTABMAP_CORE_EXPORT createTextureMesh (const pcl::PolygonMesh::Ptr &mesh, const std::map< int, Transform > &poses, const std::map< int, std::vector< CameraModel > > &cameraModels, const std::map< int, cv::Mat > &cameraDepths, float maxDistance=0.0f, float maxDepthError=0.0f, float maxAngle=0.0f, int minClusterSize=50, const std::vector< float > &roiRatios=std::vector< float >(), const ProgressState *state=0, std::vector< std::map< int, pcl::PointXY > > *vertexToPixels=0, bool distanceToCamPolicy=false) -  + +pcl::TextureMesh::Ptr RTABMAP_CORE_EXPORT createTextureMesh (const pcl::PolygonMesh::Ptr &mesh, const std::map< int, Transform > &poses, const std::map< int, CameraModel > &cameraModels, const std::map< int, cv::Mat > &cameraDepths, float maxDistance=0.0f, float maxDepthError=0.0f, float maxAngle=0.0f, int minClusterSize=50, const std::vector< float > &roiRatios=std::vector< float >(), const ProgressState *state=0, std::vector< std::map< int, pcl::PointXY > > *vertexToPixels=0, bool distanceToCamPolicy=false, int numThreads=1) +  + +pcl::TextureMesh::Ptr RTABMAP_CORE_EXPORT createTextureMesh (const pcl::PolygonMesh::Ptr &mesh, const std::map< int, Transform > &poses, const std::map< int, std::vector< CameraModel > > &cameraModels, const std::map< int, cv::Mat > &cameraDepths, float maxDistance=0.0f, float maxDepthError=0.0f, float maxAngle=0.0f, int minClusterSize=50, const std::vector< float > &roiRatios=std::vector< float >(), const ProgressState *state=0, std::vector< std::map< int, pcl::PointXY > > *vertexToPixels=0, bool distanceToCamPolicy=false, int numThreads=1) +  void RTABMAP_CORE_EXPORT cleanTextureMesh (pcl::TextureMesh &textureMesh, int minClusterSize)   diff --git a/api/latest/util3d__surface_8h_source.html b/api/latest/util3d__surface_8h_source.html index bf6d9056..f9393f9e 100644 --- a/api/latest/util3d__surface_8h_source.html +++ b/api/latest/util3d__surface_8h_source.html @@ -249,409 +249,411 @@ $(document).ready(function(){initNavTree('util3d__surface_8h_source.html',''); i
150 const std::vector<float> & roiRatios = std::vector<float>(), // [left, right, top, bottom] region of interest (in ratios) of the image projected.
151 const ProgressState * state = 0,
152 std::vector<std::map<int, pcl::PointXY> > * vertexToPixels = 0, // For each point, we have a list of cameras with corresponding pixel in it. Beware that the camera ids don't correspond to pose ids, they are indexes from 0 to total camera models and texture's materials.
-
153 bool distanceToCamPolicy = false);
-
154pcl::TextureMesh::Ptr RTABMAP_CORE_EXPORT createTextureMesh(
-
155 const pcl::PolygonMesh::Ptr & mesh,
-
156 const std::map<int, Transform> & poses,
-
157 const std::map<int, std::vector<CameraModel> > & cameraModels,
-
158 const std::map<int, cv::Mat> & cameraDepths,
-
159 float maxDistance = 0.0f, // max camera distance to polygon to apply texture
-
160 float maxDepthError = 0.0f, // maximum depth error between reprojected mesh and depth image to texture a face (-1=disabled, 0=edge length is used)
-
161 float maxAngle = 0.0f, // maximum angle between camera and face (0=disabled)
-
162 int minClusterSize = 50, // minimum size of polygons clusters textured
-
163 const std::vector<float> & roiRatios = std::vector<float>(), // [left, right, top, bottom] region of interest (in ratios) of the image projected.
-
164 const ProgressState * state = 0,
-
165 std::vector<std::map<int, pcl::PointXY> > * vertexToPixels = 0, // For each point, we have a list of cameras with corresponding pixel in it. Beware that the camera ids don't correspond to pose ids, they are indexes from 0 to total camera models and texture's materials.
-
166 bool distanceToCamPolicy = false);
-
167
-
171void RTABMAP_CORE_EXPORT cleanTextureMesh(
-
172 pcl::TextureMesh & textureMesh,
-
173 int minClusterSize);
-
174
-
175pcl::TextureMesh::Ptr RTABMAP_CORE_EXPORT concatenateTextureMeshes(
-
176 const std::list<pcl::TextureMesh::Ptr> & meshes);
-
177
-
178void RTABMAP_CORE_EXPORT concatenateTextureMaterials(
-
179 pcl::TextureMesh & mesh, const cv::Size & imageSize, int textureSize, int maxTextures, float & scale, std::vector<bool> * materialsKept=0);
-
180
-
181std::vector<std::vector<RTABMAP_PCL_INDEX> > RTABMAP_CORE_EXPORT convertPolygonsFromPCL(
-
182 const std::vector<pcl::Vertices> & polygons);
-
183std::vector<std::vector<std::vector<RTABMAP_PCL_INDEX> > > RTABMAP_CORE_EXPORT convertPolygonsFromPCL(
-
184 const std::vector<std::vector<pcl::Vertices> > & polygons);
-
185std::vector<pcl::Vertices> RTABMAP_CORE_EXPORT convertPolygonsToPCL(
-
186 const std::vector<std::vector<RTABMAP_PCL_INDEX> > & polygons);
-
187std::vector<std::vector<pcl::Vertices> > RTABMAP_CORE_EXPORT convertPolygonsToPCL(
-
188 const std::vector<std::vector<std::vector<RTABMAP_PCL_INDEX> > > & tex_polygons);
-
189
-
190pcl::TextureMesh::Ptr RTABMAP_CORE_EXPORT assembleTextureMesh(
-
191 const cv::Mat & cloudMat,
-
192 const std::vector<std::vector<std::vector<RTABMAP_PCL_INDEX> > > & polygons,
-
193#if PCL_VERSION_COMPARE(>=, 1, 8, 0)
-
194 const std::vector<std::vector<Eigen::Vector2f, Eigen::aligned_allocator<Eigen::Vector2f> > > & texCoords,
-
195#else
-
196 const std::vector<std::vector<Eigen::Vector2f> > & texCoords,
-
197#endif
-
198 cv::Mat & textures,
-
199 bool mergeTextures = false);
-
200
-
201pcl::PolygonMesh::Ptr RTABMAP_CORE_EXPORT assemblePolygonMesh(
-
202 const cv::Mat & cloudMat,
-
203 const std::vector<std::vector<RTABMAP_PCL_INDEX> > & polygons);
-
204
-
209cv::Mat RTABMAP_CORE_EXPORT mergeTextures(
-
210 pcl::TextureMesh & mesh,
-
211 const std::map<int, cv::Mat> & images, // raw or compressed, can be empty if memory or dbDriver should be used
-
212 const std::map<int, CameraModel> & calibrations, // Should match images
-
213 const Memory * memory = 0, // Should be set if images are not set
-
214 const DBDriver * dbDriver = 0, // Should be set if images and memory are not set
-
215 int textureSize = 4096,
-
216 int textureCount = 1,
-
217 const std::vector<std::map<int, pcl::PointXY> > & vertexToPixels = std::vector<std::map<int, pcl::PointXY> >(), // needed for parameters below
-
218 bool gainCompensation = true,
-
219 float gainBeta = 10.0f,
-
220 bool gainRGB = true, //Do gain compensation on each channel
-
221 bool blending = true,
-
222 int blendingDecimation = 0, //0=auto depending on projected polygon size and texture size
-
223 int brightnessContrastRatioLow = 0, //0=disabled, values between 0 and 100
-
224 int brightnessContrastRatioHigh = 0, //0=disabled, values between 0 and 100
-
225 bool exposureFusion = false, //Exposure fusion can be used only with OpenCV3
-
226 const ProgressState * state = 0,
-
227 unsigned char blankValue = 255, //Gray value for blank polygons (without texture)
-
228 bool clearVertexColorUnderTexture = true,
-
229 std::map<int, std::map<int, cv::Vec4d> > * gains = 0, // <Camera ID, Camera Sub Index (multi-cameras), gains Gray-R-G-B>
-
230 std::map<int, std::map<int, cv::Mat> > * blendingGains = 0, // <Camera ID, Camera Sub Index (multi-cameras), gains>
-
231 std::pair<float, float> * contrastValues = 0); // Alpha/beta contrast values
-
232cv::Mat RTABMAP_CORE_EXPORT mergeTextures(
-
233 pcl::TextureMesh & mesh,
-
234 const std::map<int, cv::Mat> & images, // raw or compressed, can be empty if memory or dbDriver should be used
-
235 const std::map<int, std::vector<CameraModel> > & calibrations, // Should match images
-
236 const Memory * memory = 0, // Should be set if images are not set
-
237 const DBDriver * dbDriver = 0, // Should be set if images and memory are not set
-
238 int textureSize = 4096,
-
239 int textureCount = 1,
-
240 const std::vector<std::map<int, pcl::PointXY> > & vertexToPixels = std::vector<std::map<int, pcl::PointXY> >(), // needed for parameters below
-
241 bool gainCompensation = true,
-
242 float gainBeta = 10.0f,
-
243 bool gainRGB = true, //Do gain compensation on each channel
-
244 bool blending = true,
-
245 int blendingDecimation = 0, //0=auto depending on projected polygon size and texture size
-
246 int brightnessContrastRatioLow = 0, //0=disabled, values between 0 and 100
-
247 int brightnessContrastRatioHigh = 0, //0=disabled, values between 0 and 100
-
248 bool exposureFusion = false, //Exposure fusion can be used only with OpenCV3
-
249 const ProgressState * state = 0,
-
250 unsigned char blankValue = 255, //Gray value for blank polygons (without texture)
-
251 bool clearVertexColorUnderTexture = true,
-
252 std::map<int, std::map<int, cv::Vec4d> > * gains = 0, // <Camera ID, Camera Sub Index (multi-cameras), gains Gray-R-G-B>
-
253 std::map<int, std::map<int, cv::Mat> > * blendingGains = 0, // <Camera ID, Camera Sub Index (multi-cameras), gains>
-
254 std::pair<float, float> * contrastValues = 0); // Alpha/beta contrast values
-
255
-
256void RTABMAP_CORE_EXPORT fixTextureMeshForVisualization(pcl::TextureMesh & textureMesh);
+
153 bool distanceToCamPolicy = false,
+
154 int numThreads = 1); // number of threads used to compute the visible faces of the cameras (1=sequential)
+
155pcl::TextureMesh::Ptr RTABMAP_CORE_EXPORT createTextureMesh(
+
156 const pcl::PolygonMesh::Ptr & mesh,
+
157 const std::map<int, Transform> & poses,
+
158 const std::map<int, std::vector<CameraModel> > & cameraModels,
+
159 const std::map<int, cv::Mat> & cameraDepths,
+
160 float maxDistance = 0.0f, // max camera distance to polygon to apply texture
+
161 float maxDepthError = 0.0f, // maximum depth error between reprojected mesh and depth image to texture a face (-1=disabled, 0=edge length is used)
+
162 float maxAngle = 0.0f, // maximum angle between camera and face (0=disabled)
+
163 int minClusterSize = 50, // minimum size of polygons clusters textured
+
164 const std::vector<float> & roiRatios = std::vector<float>(), // [left, right, top, bottom] region of interest (in ratios) of the image projected.
+
165 const ProgressState * state = 0,
+
166 std::vector<std::map<int, pcl::PointXY> > * vertexToPixels = 0, // For each point, we have a list of cameras with corresponding pixel in it. Beware that the camera ids don't correspond to pose ids, they are indexes from 0 to total camera models and texture's materials.
+
167 bool distanceToCamPolicy = false,
+
168 int numThreads = 1); // number of threads used to compute the visible faces of the cameras (1=sequential)
+
169
+
173void RTABMAP_CORE_EXPORT cleanTextureMesh(
+
174 pcl::TextureMesh & textureMesh,
+
175 int minClusterSize);
+
176
+
177pcl::TextureMesh::Ptr RTABMAP_CORE_EXPORT concatenateTextureMeshes(
+
178 const std::list<pcl::TextureMesh::Ptr> & meshes);
+
179
+
180void RTABMAP_CORE_EXPORT concatenateTextureMaterials(
+
181 pcl::TextureMesh & mesh, const cv::Size & imageSize, int textureSize, int maxTextures, float & scale, std::vector<bool> * materialsKept=0);
+
182
+
183std::vector<std::vector<RTABMAP_PCL_INDEX> > RTABMAP_CORE_EXPORT convertPolygonsFromPCL(
+
184 const std::vector<pcl::Vertices> & polygons);
+
185std::vector<std::vector<std::vector<RTABMAP_PCL_INDEX> > > RTABMAP_CORE_EXPORT convertPolygonsFromPCL(
+
186 const std::vector<std::vector<pcl::Vertices> > & polygons);
+
187std::vector<pcl::Vertices> RTABMAP_CORE_EXPORT convertPolygonsToPCL(
+
188 const std::vector<std::vector<RTABMAP_PCL_INDEX> > & polygons);
+
189std::vector<std::vector<pcl::Vertices> > RTABMAP_CORE_EXPORT convertPolygonsToPCL(
+
190 const std::vector<std::vector<std::vector<RTABMAP_PCL_INDEX> > > & tex_polygons);
+
191
+
192pcl::TextureMesh::Ptr RTABMAP_CORE_EXPORT assembleTextureMesh(
+
193 const cv::Mat & cloudMat,
+
194 const std::vector<std::vector<std::vector<RTABMAP_PCL_INDEX> > > & polygons,
+
195#if PCL_VERSION_COMPARE(>=, 1, 8, 0)
+
196 const std::vector<std::vector<Eigen::Vector2f, Eigen::aligned_allocator<Eigen::Vector2f> > > & texCoords,
+
197#else
+
198 const std::vector<std::vector<Eigen::Vector2f> > & texCoords,
+
199#endif
+
200 cv::Mat & textures,
+
201 bool mergeTextures = false);
+
202
+
203pcl::PolygonMesh::Ptr RTABMAP_CORE_EXPORT assemblePolygonMesh(
+
204 const cv::Mat & cloudMat,
+
205 const std::vector<std::vector<RTABMAP_PCL_INDEX> > & polygons);
+
206
+
211cv::Mat RTABMAP_CORE_EXPORT mergeTextures(
+
212 pcl::TextureMesh & mesh,
+
213 const std::map<int, cv::Mat> & images, // raw or compressed, can be empty if memory or dbDriver should be used
+
214 const std::map<int, CameraModel> & calibrations, // Should match images
+
215 const Memory * memory = 0, // Should be set if images are not set
+
216 const DBDriver * dbDriver = 0, // Should be set if images and memory are not set
+
217 int textureSize = 4096,
+
218 int textureCount = 1,
+
219 const std::vector<std::map<int, pcl::PointXY> > & vertexToPixels = std::vector<std::map<int, pcl::PointXY> >(), // needed for parameters below
+
220 bool gainCompensation = true,
+
221 float gainBeta = 10.0f,
+
222 bool gainRGB = true, //Do gain compensation on each channel
+
223 bool blending = true,
+
224 int blendingDecimation = 0, //0=auto depending on projected polygon size and texture size
+
225 int brightnessContrastRatioLow = 0, //0=disabled, values between 0 and 100
+
226 int brightnessContrastRatioHigh = 0, //0=disabled, values between 0 and 100
+
227 bool exposureFusion = false, //Exposure fusion can be used only with OpenCV3
+
228 const ProgressState * state = 0,
+
229 unsigned char blankValue = 255, //Gray value for blank polygons (without texture)
+
230 bool clearVertexColorUnderTexture = true,
+
231 std::map<int, std::map<int, cv::Vec4d> > * gains = 0, // <Camera ID, Camera Sub Index (multi-cameras), gains Gray-R-G-B>
+
232 std::map<int, std::map<int, cv::Mat> > * blendingGains = 0, // <Camera ID, Camera Sub Index (multi-cameras), gains>
+
233 std::pair<float, float> * contrastValues = 0); // Alpha/beta contrast values
+
234cv::Mat RTABMAP_CORE_EXPORT mergeTextures(
+
235 pcl::TextureMesh & mesh,
+
236 const std::map<int, cv::Mat> & images, // raw or compressed, can be empty if memory or dbDriver should be used
+
237 const std::map<int, std::vector<CameraModel> > & calibrations, // Should match images
+
238 const Memory * memory = 0, // Should be set if images are not set
+
239 const DBDriver * dbDriver = 0, // Should be set if images and memory are not set
+
240 int textureSize = 4096,
+
241 int textureCount = 1,
+
242 const std::vector<std::map<int, pcl::PointXY> > & vertexToPixels = std::vector<std::map<int, pcl::PointXY> >(), // needed for parameters below
+
243 bool gainCompensation = true,
+
244 float gainBeta = 10.0f,
+
245 bool gainRGB = true, //Do gain compensation on each channel
+
246 bool blending = true,
+
247 int blendingDecimation = 0, //0=auto depending on projected polygon size and texture size
+
248 int brightnessContrastRatioLow = 0, //0=disabled, values between 0 and 100
+
249 int brightnessContrastRatioHigh = 0, //0=disabled, values between 0 and 100
+
250 bool exposureFusion = false, //Exposure fusion can be used only with OpenCV3
+
251 const ProgressState * state = 0,
+
252 unsigned char blankValue = 255, //Gray value for blank polygons (without texture)
+
253 bool clearVertexColorUnderTexture = true,
+
254 std::map<int, std::map<int, cv::Vec4d> > * gains = 0, // <Camera ID, Camera Sub Index (multi-cameras), gains Gray-R-G-B>
+
255 std::map<int, std::map<int, cv::Mat> > * blendingGains = 0, // <Camera ID, Camera Sub Index (multi-cameras), gains>
+
256 std::pair<float, float> * contrastValues = 0); // Alpha/beta contrast values
257
-
258// Use the same method with 22 parameters instead.
-
259RTABMAP_DEPRECATED bool RTABMAP_CORE_EXPORT multiBandTexturing(
-
260 const std::string & outputOBJPath,
-
261 const pcl::PCLPointCloud2 & cloud,
-
262 const std::vector<pcl::Vertices> & polygons,
-
263 const std::map<int, Transform> & cameraPoses,
-
264 const std::vector<std::map<int, pcl::PointXY> > & vertexToPixels, // required output of util3d::createTextureMesh()
-
265 const std::map<int, cv::Mat> & images, // raw or compressed, can be empty if memory or dbDriver should be used
-
266 const std::map<int, std::vector<CameraModel> > & cameraModels, // Should match images
-
267 const Memory * memory = 0, // Should be set if images are not set
-
268 const DBDriver * dbDriver = 0, // Should be set if images and memory are not set
-
269 int textureSize = 8192,
-
270 const std::string & textureFormat = "jpg", // png, jpg
-
271 const std::map<int, std::map<int, cv::Vec4d> > & gains = std::map<int, std::map<int, cv::Vec4d> >(), // optional output of util3d::mergeTextures()
-
272 const std::map<int, std::map<int, cv::Mat> > & blendingGains = std::map<int, std::map<int, cv::Mat> >(), // optional output of util3d::mergeTextures()
-
273 const std::pair<float, float> & contrastValues = std::pair<float, float>(0,0), // optional output of util3d::mergeTextures()
-
274 bool gainRGB = true);
-
275
-
302bool RTABMAP_CORE_EXPORT multiBandTexturing(
-
303 const std::string & outputOBJPath,
-
304 const pcl::PCLPointCloud2 & cloud,
-
305 const std::vector<pcl::Vertices> & polygons,
-
306 const std::map<int, Transform> & cameraPoses,
-
307 const std::vector<std::map<int, pcl::PointXY> > & vertexToPixels,
-
308 const std::map<int, cv::Mat> & images,
-
309 const std::map<int, std::vector<CameraModel> > & cameraModels,
-
310 const Memory * memory = 0,
-
311 const DBDriver * dbDriver = 0,
-
312 unsigned int textureSize = 8192,
-
313 unsigned int textureDownscale = 2,
-
314 const std::string & nbContrib = "1 5 10 0",
-
315 const std::string & textureFormat = "jpg",
-
316 const std::map<int, std::map<int, cv::Vec4d> > & gains = std::map<int, std::map<int, cv::Vec4d> >(),
-
317 const std::map<int, std::map<int, cv::Mat> > & blendingGains = std::map<int, std::map<int, cv::Mat> >(),
-
318 const std::pair<float, float> & contrastValues = std::pair<float, float>(0,0),
-
319 bool gainRGB = true,
-
320 unsigned int unwrapMethod = 0,
-
321 bool fillHoles = false,
-
322 unsigned int padding = 5,
-
323 double bestScoreThreshold = 0.1,
-
324 double angleHardThreshold = 90.0,
-
325 bool forceVisibleByAllVertices = false);
-
326
-
327cv::Mat RTABMAP_CORE_EXPORT computeNormals(
-
328 const cv::Mat & laserScan,
-
329 int searchK,
-
330 float searchRadius);
-
331pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals(
-
332 const pcl::PointCloud<pcl::PointXYZ>::Ptr & cloud,
-
333 int searchK = 20,
-
334 float searchRadius = 0.0f,
-
335 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
-
336pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals(
-
337 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
-
338 int searchK = 20,
-
339 float searchRadius = 0.0f,
-
340 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
-
341pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals(
-
342 const pcl::PointCloud<pcl::PointXYZI>::Ptr & cloud,
-
343 int searchK = 20,
-
344 float searchRadius = 0.0f,
-
345 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
-
346pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals(
-
347 const pcl::PointCloud<pcl::PointXYZ>::Ptr & cloud,
-
348 const pcl::IndicesPtr & indices,
-
349 int searchK = 20,
-
350 float searchRadius = 0.0f,
-
351 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
-
352pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals(
-
353 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
-
354 const pcl::IndicesPtr & indices,
-
355 int searchK = 20,
-
356 float searchRadius = 0.0f,
-
357 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
-
358pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals(
-
359 const pcl::PointCloud<pcl::PointXYZI>::Ptr & cloud,
-
360 const pcl::IndicesPtr & indices,
-
361 int searchK = 20,
-
362 float searchRadius = 0.0f,
-
363 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
-
364
-
365pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals2D(
-
366 const pcl::PointCloud<pcl::PointXYZ>::Ptr & cloud,
-
367 int searchK = 5,
-
368 float searchRadius = 0.0f,
-
369 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
-
370pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals2D(
-
371 const pcl::PointCloud<pcl::PointXYZI>::Ptr & cloud,
-
372 int searchK = 5,
-
373 float searchRadius = 0.0f,
-
374 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
-
375pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeFastOrganizedNormals2D(
-
376 const pcl::PointCloud<pcl::PointXYZ>::Ptr & cloud,
-
377 int searchK = 5,
-
378 float searchRadius = 0.0f,
-
379 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
-
380pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeFastOrganizedNormals2D(
-
381 const pcl::PointCloud<pcl::PointXYZI>::Ptr & cloud,
-
382 int searchK = 5,
-
383 float searchRadius = 0.0f,
-
384 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
-
385
-
386pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeFastOrganizedNormals(
-
387 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
-
388 float maxDepthChangeFactor = 0.02f,
-
389 float normalSmoothingSize = 10.0f,
-
390 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
-
391pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeFastOrganizedNormals(
-
392 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
-
393 const pcl::IndicesPtr & indices,
-
394 float maxDepthChangeFactor = 0.02f,
-
395 float normalSmoothingSize = 10.0f,
-
396 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
-
397
-
433float RTABMAP_CORE_EXPORT computeNormalsComplexity(
-
434 const LaserScan & scan,
-
435 const Transform & t = Transform::getIdentity(),
-
436 cv::Mat * pcaEigenVectors = 0,
-
437 cv::Mat * pcaEigenValues = 0,
-
438 bool centered = true);
-
440float RTABMAP_CORE_EXPORT computeNormalsComplexity(
-
441 const pcl::PointCloud<pcl::Normal> & normals,
-
442 const Transform & t = Transform::getIdentity(),
-
443 bool is2d = false,
-
444 cv::Mat * pcaEigenVectors = 0,
-
445 cv::Mat * pcaEigenValues = 0,
-
446 bool centered = true);
-
448float RTABMAP_CORE_EXPORT computeNormalsComplexity(
-
449 const pcl::PointCloud<pcl::PointNormal> & cloud,
-
450 const Transform & t = Transform::getIdentity(),
-
451 bool is2d = false,
-
452 cv::Mat * pcaEigenVectors = 0,
-
453 cv::Mat * pcaEigenValues = 0,
-
454 bool centered = true);
-
456float RTABMAP_CORE_EXPORT computeNormalsComplexity(
-
457 const pcl::PointCloud<pcl::PointXYZINormal> & cloud,
-
458 const Transform & t = Transform::getIdentity(),
-
459 bool is2d = false,
-
460 cv::Mat * pcaEigenVectors = 0,
-
461 cv::Mat * pcaEigenValues = 0,
-
462 bool centered = true);
-
464float RTABMAP_CORE_EXPORT computeNormalsComplexity(
-
465 const pcl::PointCloud<pcl::PointXYZRGBNormal> & cloud,
-
466 const Transform & t = Transform::getIdentity(),
-
467 bool is2d = false,
-
468 cv::Mat * pcaEigenVectors = 0,
-
469 cv::Mat * pcaEigenValues = 0,
-
470 bool centered = true);
-
473pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr RTABMAP_CORE_EXPORT mls(
-
474 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
-
475 float searchRadius = 0.0f,
-
476 int polygonialOrder = 2,
-
477 int upsamplingMethod = 0, // NONE, DISTINCT_CLOUD, SAMPLE_LOCAL_PLANE, RANDOM_UNIFORM_DENSITY, VOXEL_GRID_DILATION
-
478 float upsamplingRadius = 0.0f, // SAMPLE_LOCAL_PLANE
-
479 float upsamplingStep = 0.0f, // SAMPLE_LOCAL_PLANE
-
480 int pointDensity = 0, // RANDOM_UNIFORM_DENSITY
-
481 float dilationVoxelSize = 1.0f, // VOXEL_GRID_DILATION
-
482 int dilationIterations = 0); // VOXEL_GRID_DILATION
-
483pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr RTABMAP_CORE_EXPORT mls(
-
484 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
-
485 const pcl::IndicesPtr & indices,
-
486 float searchRadius = 0.0f,
-
487 int polygonialOrder = 2,
-
488 int upsamplingMethod = 0, // NONE, DISTINCT_CLOUD, SAMPLE_LOCAL_PLANE, RANDOM_UNIFORM_DENSITY, VOXEL_GRID_DILATION
-
489 float upsamplingRadius = 0.0f, // SAMPLE_LOCAL_PLANE
-
490 float upsamplingStep = 0.0f, // SAMPLE_LOCAL_PLANE
-
491 int pointDensity = 0, // RANDOM_UNIFORM_DENSITY
-
492 float dilationVoxelSize = 1.0f, // VOXEL_GRID_DILATION
-
493 int dilationIterations = 0); // VOXEL_GRID_DILATION
-
494
-
495// Use version with groundNormalsUp as float. For forceGroundNormalsUp=true, set groundNormalsUp to 0.8f, otherwise set groundNormalsUp to 0.0f.
-
496RTABMAP_DEPRECATED LaserScan RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
-
497 const LaserScan & scan,
-
498 const Eigen::Vector3f & viewpoint,
-
499 bool forceGroundNormalsUp);
-
500LaserScan RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
-
501 const LaserScan & scan,
-
502 const Eigen::Vector3f & viewpoint = Eigen::Vector3f(0,0,0),
-
503 float groundNormalsUp = 0.0f);
-
504// Use version with groundNormalsUp as float. For forceGroundNormalsUp=true, set groundNormalsUp to 0.8f, otherwise set groundNormalsUp to 0.0f.
-
505RTABMAP_DEPRECATED void RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
-
506 pcl::PointCloud<pcl::PointNormal>::Ptr & cloud,
-
507 const Eigen::Vector3f & viewpoint,
-
508 bool forceGroundNormalsUp);
-
509void RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
-
510 pcl::PointCloud<pcl::PointNormal>::Ptr & cloud,
-
511 const Eigen::Vector3f & viewpoint = Eigen::Vector3f(0,0,0),
-
512 float groundNormalsUp = 0.0f);
-
513// Use version with groundNormalsUp as float. For forceGroundNormalsUp=true, set groundNormalsUp to 0.8f, otherwise set groundNormalsUp to 0.0f.
-
514RTABMAP_DEPRECATED void RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
-
515 pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr & cloud,
-
516 const Eigen::Vector3f & viewpoint,
-
517 bool forceGroundNormalsUp);
-
518void RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
-
519 pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr & cloud,
-
520 const Eigen::Vector3f & viewpoint = Eigen::Vector3f(0,0,0),
-
521 float groundNormalsUp = 0.0f);
-
522// Use version with groundNormalsUp as float. For forceGroundNormalsUp=true, set groundNormalsUp to 0.8f, otherwise set groundNormalsUp to 0.0f.
-
523RTABMAP_DEPRECATED void RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
-
524 pcl::PointCloud<pcl::PointXYZINormal>::Ptr & cloud,
-
525 const Eigen::Vector3f & viewpoint,
-
526 bool forceGroundNormalsUp);
-
527void RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
-
528 pcl::PointCloud<pcl::PointXYZINormal>::Ptr & cloud,
-
529 const Eigen::Vector3f & viewpoint = Eigen::Vector3f(0,0,0),
-
530 float groundNormalsUp = 0.0f);
-
531
-
532void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
-
533 const std::map<int, Transform> & poses,
-
534 const std::vector<int> & cameraIndices,
-
535 pcl::PointCloud<pcl::PointNormal>::Ptr & cloud,
-
536 float groundNormalsUp = 0.0f);
-
537void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
-
538 const std::map<int, Transform> & poses,
-
539 const std::vector<int> & cameraIndices,
-
540 pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr & cloud,
-
541 float groundNormalsUp = 0.0f);
-
542void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
-
543 const std::map<int, Transform> & poses,
-
544 const std::vector<int> & cameraIndices,
-
545 pcl::PointCloud<pcl::PointXYZINormal>::Ptr & cloud,
-
546 float groundNormalsUp = 0.0f);
-
547
-
548void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
-
549 const std::map<int, Transform> & poses,
-
550 const pcl::PointCloud<pcl::PointXYZ>::Ptr & rawCloud,
-
551 const std::vector<int> & rawCameraIndices,
-
552 pcl::PointCloud<pcl::PointNormal>::Ptr & cloud,
-
553 float groundNormalsUp = 0.0f);
-
554void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
-
555 const std::map<int, Transform> & poses,
-
556 const pcl::PointCloud<pcl::PointXYZ>::Ptr & rawCloud,
-
557 const std::vector<int> & rawCameraIndices,
-
558 pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr & cloud,
-
559 float groundNormalsUp = 0.0f);
-
560void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
-
561 const std::map<int, Transform> & poses,
-
562 const pcl::PointCloud<pcl::PointXYZ>::Ptr & rawCloud,
-
563 const std::vector<int> & rawCameraIndices,
-
564 pcl::PointCloud<pcl::PointXYZINormal>::Ptr & cloud,
-
565 float groundNormalsUp = 0.0f);
-
566
-
567void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
-
568 const std::map<int, Transform> & viewpoints,
-
569 const LaserScan & rawScan,
-
570 const std::vector<int> & viewpointIds,
-
571 LaserScan & scan,
-
572 float groundNormalsUp = 0.0f);
-
573
-
574pcl::PolygonMesh::Ptr RTABMAP_CORE_EXPORT meshDecimation(const pcl::PolygonMesh::Ptr & mesh, float factor);
+
258void RTABMAP_CORE_EXPORT fixTextureMeshForVisualization(pcl::TextureMesh & textureMesh);
+
259
+
260// Use the same method with 22 parameters instead.
+
261RTABMAP_DEPRECATED bool RTABMAP_CORE_EXPORT multiBandTexturing(
+
262 const std::string & outputOBJPath,
+
263 const pcl::PCLPointCloud2 & cloud,
+
264 const std::vector<pcl::Vertices> & polygons,
+
265 const std::map<int, Transform> & cameraPoses,
+
266 const std::vector<std::map<int, pcl::PointXY> > & vertexToPixels, // required output of util3d::createTextureMesh()
+
267 const std::map<int, cv::Mat> & images, // raw or compressed, can be empty if memory or dbDriver should be used
+
268 const std::map<int, std::vector<CameraModel> > & cameraModels, // Should match images
+
269 const Memory * memory = 0, // Should be set if images are not set
+
270 const DBDriver * dbDriver = 0, // Should be set if images and memory are not set
+
271 int textureSize = 8192,
+
272 const std::string & textureFormat = "jpg", // png, jpg
+
273 const std::map<int, std::map<int, cv::Vec4d> > & gains = std::map<int, std::map<int, cv::Vec4d> >(), // optional output of util3d::mergeTextures()
+
274 const std::map<int, std::map<int, cv::Mat> > & blendingGains = std::map<int, std::map<int, cv::Mat> >(), // optional output of util3d::mergeTextures()
+
275 const std::pair<float, float> & contrastValues = std::pair<float, float>(0,0), // optional output of util3d::mergeTextures()
+
276 bool gainRGB = true);
+
277
+
304bool RTABMAP_CORE_EXPORT multiBandTexturing(
+
305 const std::string & outputOBJPath,
+
306 const pcl::PCLPointCloud2 & cloud,
+
307 const std::vector<pcl::Vertices> & polygons,
+
308 const std::map<int, Transform> & cameraPoses,
+
309 const std::vector<std::map<int, pcl::PointXY> > & vertexToPixels,
+
310 const std::map<int, cv::Mat> & images,
+
311 const std::map<int, std::vector<CameraModel> > & cameraModels,
+
312 const Memory * memory = 0,
+
313 const DBDriver * dbDriver = 0,
+
314 unsigned int textureSize = 8192,
+
315 unsigned int textureDownscale = 2,
+
316 const std::string & nbContrib = "1 5 10 0",
+
317 const std::string & textureFormat = "jpg",
+
318 const std::map<int, std::map<int, cv::Vec4d> > & gains = std::map<int, std::map<int, cv::Vec4d> >(),
+
319 const std::map<int, std::map<int, cv::Mat> > & blendingGains = std::map<int, std::map<int, cv::Mat> >(),
+
320 const std::pair<float, float> & contrastValues = std::pair<float, float>(0,0),
+
321 bool gainRGB = true,
+
322 unsigned int unwrapMethod = 0,
+
323 bool fillHoles = false,
+
324 unsigned int padding = 5,
+
325 double bestScoreThreshold = 0.1,
+
326 double angleHardThreshold = 90.0,
+
327 bool forceVisibleByAllVertices = false);
+
328
+
329cv::Mat RTABMAP_CORE_EXPORT computeNormals(
+
330 const cv::Mat & laserScan,
+
331 int searchK,
+
332 float searchRadius);
+
333pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals(
+
334 const pcl::PointCloud<pcl::PointXYZ>::Ptr & cloud,
+
335 int searchK = 20,
+
336 float searchRadius = 0.0f,
+
337 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
+
338pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals(
+
339 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
+
340 int searchK = 20,
+
341 float searchRadius = 0.0f,
+
342 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
+
343pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals(
+
344 const pcl::PointCloud<pcl::PointXYZI>::Ptr & cloud,
+
345 int searchK = 20,
+
346 float searchRadius = 0.0f,
+
347 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
+
348pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals(
+
349 const pcl::PointCloud<pcl::PointXYZ>::Ptr & cloud,
+
350 const pcl::IndicesPtr & indices,
+
351 int searchK = 20,
+
352 float searchRadius = 0.0f,
+
353 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
+
354pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals(
+
355 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
+
356 const pcl::IndicesPtr & indices,
+
357 int searchK = 20,
+
358 float searchRadius = 0.0f,
+
359 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
+
360pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals(
+
361 const pcl::PointCloud<pcl::PointXYZI>::Ptr & cloud,
+
362 const pcl::IndicesPtr & indices,
+
363 int searchK = 20,
+
364 float searchRadius = 0.0f,
+
365 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
+
366
+
367pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals2D(
+
368 const pcl::PointCloud<pcl::PointXYZ>::Ptr & cloud,
+
369 int searchK = 5,
+
370 float searchRadius = 0.0f,
+
371 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
+
372pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeNormals2D(
+
373 const pcl::PointCloud<pcl::PointXYZI>::Ptr & cloud,
+
374 int searchK = 5,
+
375 float searchRadius = 0.0f,
+
376 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
+
377pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeFastOrganizedNormals2D(
+
378 const pcl::PointCloud<pcl::PointXYZ>::Ptr & cloud,
+
379 int searchK = 5,
+
380 float searchRadius = 0.0f,
+
381 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
+
382pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeFastOrganizedNormals2D(
+
383 const pcl::PointCloud<pcl::PointXYZI>::Ptr & cloud,
+
384 int searchK = 5,
+
385 float searchRadius = 0.0f,
+
386 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
+
387
+
388pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeFastOrganizedNormals(
+
389 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
+
390 float maxDepthChangeFactor = 0.02f,
+
391 float normalSmoothingSize = 10.0f,
+
392 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
+
393pcl::PointCloud<pcl::Normal>::Ptr RTABMAP_CORE_EXPORT computeFastOrganizedNormals(
+
394 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
+
395 const pcl::IndicesPtr & indices,
+
396 float maxDepthChangeFactor = 0.02f,
+
397 float normalSmoothingSize = 10.0f,
+
398 const Eigen::Vector3f & viewPoint = Eigen::Vector3f(0,0,0));
+
399
+
435float RTABMAP_CORE_EXPORT computeNormalsComplexity(
+
436 const LaserScan & scan,
+
437 const Transform & t = Transform::getIdentity(),
+
438 cv::Mat * pcaEigenVectors = 0,
+
439 cv::Mat * pcaEigenValues = 0,
+
440 bool centered = true);
+
442float RTABMAP_CORE_EXPORT computeNormalsComplexity(
+
443 const pcl::PointCloud<pcl::Normal> & normals,
+
444 const Transform & t = Transform::getIdentity(),
+
445 bool is2d = false,
+
446 cv::Mat * pcaEigenVectors = 0,
+
447 cv::Mat * pcaEigenValues = 0,
+
448 bool centered = true);
+
450float RTABMAP_CORE_EXPORT computeNormalsComplexity(
+
451 const pcl::PointCloud<pcl::PointNormal> & cloud,
+
452 const Transform & t = Transform::getIdentity(),
+
453 bool is2d = false,
+
454 cv::Mat * pcaEigenVectors = 0,
+
455 cv::Mat * pcaEigenValues = 0,
+
456 bool centered = true);
+
458float RTABMAP_CORE_EXPORT computeNormalsComplexity(
+
459 const pcl::PointCloud<pcl::PointXYZINormal> & cloud,
+
460 const Transform & t = Transform::getIdentity(),
+
461 bool is2d = false,
+
462 cv::Mat * pcaEigenVectors = 0,
+
463 cv::Mat * pcaEigenValues = 0,
+
464 bool centered = true);
+
466float RTABMAP_CORE_EXPORT computeNormalsComplexity(
+
467 const pcl::PointCloud<pcl::PointXYZRGBNormal> & cloud,
+
468 const Transform & t = Transform::getIdentity(),
+
469 bool is2d = false,
+
470 cv::Mat * pcaEigenVectors = 0,
+
471 cv::Mat * pcaEigenValues = 0,
+
472 bool centered = true);
+
475pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr RTABMAP_CORE_EXPORT mls(
+
476 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
+
477 float searchRadius = 0.0f,
+
478 int polygonialOrder = 2,
+
479 int upsamplingMethod = 0, // NONE, DISTINCT_CLOUD, SAMPLE_LOCAL_PLANE, RANDOM_UNIFORM_DENSITY, VOXEL_GRID_DILATION
+
480 float upsamplingRadius = 0.0f, // SAMPLE_LOCAL_PLANE
+
481 float upsamplingStep = 0.0f, // SAMPLE_LOCAL_PLANE
+
482 int pointDensity = 0, // RANDOM_UNIFORM_DENSITY
+
483 float dilationVoxelSize = 1.0f, // VOXEL_GRID_DILATION
+
484 int dilationIterations = 0); // VOXEL_GRID_DILATION
+
485pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr RTABMAP_CORE_EXPORT mls(
+
486 const pcl::PointCloud<pcl::PointXYZRGB>::Ptr & cloud,
+
487 const pcl::IndicesPtr & indices,
+
488 float searchRadius = 0.0f,
+
489 int polygonialOrder = 2,
+
490 int upsamplingMethod = 0, // NONE, DISTINCT_CLOUD, SAMPLE_LOCAL_PLANE, RANDOM_UNIFORM_DENSITY, VOXEL_GRID_DILATION
+
491 float upsamplingRadius = 0.0f, // SAMPLE_LOCAL_PLANE
+
492 float upsamplingStep = 0.0f, // SAMPLE_LOCAL_PLANE
+
493 int pointDensity = 0, // RANDOM_UNIFORM_DENSITY
+
494 float dilationVoxelSize = 1.0f, // VOXEL_GRID_DILATION
+
495 int dilationIterations = 0); // VOXEL_GRID_DILATION
+
496
+
497// Use version with groundNormalsUp as float. For forceGroundNormalsUp=true, set groundNormalsUp to 0.8f, otherwise set groundNormalsUp to 0.0f.
+
498RTABMAP_DEPRECATED LaserScan RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
+
499 const LaserScan & scan,
+
500 const Eigen::Vector3f & viewpoint,
+
501 bool forceGroundNormalsUp);
+
502LaserScan RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
+
503 const LaserScan & scan,
+
504 const Eigen::Vector3f & viewpoint = Eigen::Vector3f(0,0,0),
+
505 float groundNormalsUp = 0.0f);
+
506// Use version with groundNormalsUp as float. For forceGroundNormalsUp=true, set groundNormalsUp to 0.8f, otherwise set groundNormalsUp to 0.0f.
+
507RTABMAP_DEPRECATED void RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
+
508 pcl::PointCloud<pcl::PointNormal>::Ptr & cloud,
+
509 const Eigen::Vector3f & viewpoint,
+
510 bool forceGroundNormalsUp);
+
511void RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
+
512 pcl::PointCloud<pcl::PointNormal>::Ptr & cloud,
+
513 const Eigen::Vector3f & viewpoint = Eigen::Vector3f(0,0,0),
+
514 float groundNormalsUp = 0.0f);
+
515// Use version with groundNormalsUp as float. For forceGroundNormalsUp=true, set groundNormalsUp to 0.8f, otherwise set groundNormalsUp to 0.0f.
+
516RTABMAP_DEPRECATED void RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
+
517 pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr & cloud,
+
518 const Eigen::Vector3f & viewpoint,
+
519 bool forceGroundNormalsUp);
+
520void RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
+
521 pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr & cloud,
+
522 const Eigen::Vector3f & viewpoint = Eigen::Vector3f(0,0,0),
+
523 float groundNormalsUp = 0.0f);
+
524// Use version with groundNormalsUp as float. For forceGroundNormalsUp=true, set groundNormalsUp to 0.8f, otherwise set groundNormalsUp to 0.0f.
+
525RTABMAP_DEPRECATED void RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
+
526 pcl::PointCloud<pcl::PointXYZINormal>::Ptr & cloud,
+
527 const Eigen::Vector3f & viewpoint,
+
528 bool forceGroundNormalsUp);
+
529void RTABMAP_CORE_EXPORT adjustNormalsToViewPoint(
+
530 pcl::PointCloud<pcl::PointXYZINormal>::Ptr & cloud,
+
531 const Eigen::Vector3f & viewpoint = Eigen::Vector3f(0,0,0),
+
532 float groundNormalsUp = 0.0f);
+
533
+
534void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
+
535 const std::map<int, Transform> & poses,
+
536 const std::vector<int> & cameraIndices,
+
537 pcl::PointCloud<pcl::PointNormal>::Ptr & cloud,
+
538 float groundNormalsUp = 0.0f);
+
539void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
+
540 const std::map<int, Transform> & poses,
+
541 const std::vector<int> & cameraIndices,
+
542 pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr & cloud,
+
543 float groundNormalsUp = 0.0f);
+
544void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
+
545 const std::map<int, Transform> & poses,
+
546 const std::vector<int> & cameraIndices,
+
547 pcl::PointCloud<pcl::PointXYZINormal>::Ptr & cloud,
+
548 float groundNormalsUp = 0.0f);
+
549
+
550void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
+
551 const std::map<int, Transform> & poses,
+
552 const pcl::PointCloud<pcl::PointXYZ>::Ptr & rawCloud,
+
553 const std::vector<int> & rawCameraIndices,
+
554 pcl::PointCloud<pcl::PointNormal>::Ptr & cloud,
+
555 float groundNormalsUp = 0.0f);
+
556void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
+
557 const std::map<int, Transform> & poses,
+
558 const pcl::PointCloud<pcl::PointXYZ>::Ptr & rawCloud,
+
559 const std::vector<int> & rawCameraIndices,
+
560 pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr & cloud,
+
561 float groundNormalsUp = 0.0f);
+
562void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
+
563 const std::map<int, Transform> & poses,
+
564 const pcl::PointCloud<pcl::PointXYZ>::Ptr & rawCloud,
+
565 const std::vector<int> & rawCameraIndices,
+
566 pcl::PointCloud<pcl::PointXYZINormal>::Ptr & cloud,
+
567 float groundNormalsUp = 0.0f);
+
568
+
569void RTABMAP_CORE_EXPORT adjustNormalsToViewPoints(
+
570 const std::map<int, Transform> & viewpoints,
+
571 const LaserScan & rawScan,
+
572 const std::vector<int> & viewpointIds,
+
573 LaserScan & scan,
+
574 float groundNormalsUp = 0.0f);
575
-
576template<typename pointT>
-
577std::vector<pcl::Vertices> normalizePolygonsSide(
-
578 const pcl::PointCloud<pointT> & cloud,
-
579 const std::vector<pcl::Vertices> & polygons,
-
580 const pcl::PointXYZ & viewPoint = pcl::PointXYZ(0,0,0));
-
581
-
582template<typename pointRGBT>
-
583void denseMeshPostProcessing(
-
584 pcl::PolygonMeshPtr & mesh,
-
585 float meshDecimationFactor = 0.0f, // value between 0 and 1, 0=disabled
-
586 int maximumPolygons = 0, // 0=disabled
-
587 const typename pcl::PointCloud<pointRGBT>::Ptr & cloud = pcl::PointCloud<pointRGBT>::Ptr(), // A RGB point cloud used to transfer colors back to mesh (needed for parameters below)
-
588 float transferColorRadius = 0.05f, // <0=disabled, 0=nearest color
-
589 bool coloredOutput = true, // Not used anymore, output is colored if transferColorRadius>=0
-
590 bool cleanMesh = true, // Remove polygons not colored (if coloredOutput is disabled, transferColorRadius is still used to clean the mesh)
-
591 int minClusterSize = 50, // Remove small polygon clusters after the mesh has been cleaned (0=disabled)
-
592 ProgressState * progressState = 0);
-
593
-
616bool RTABMAP_CORE_EXPORT intersectRayTriangle(
-
617 const Eigen::Vector3f & p,
-
618 const Eigen::Vector3f & dir,
-
619 const Eigen::Vector3f & v0,
-
620 const Eigen::Vector3f & v1,
-
621 const Eigen::Vector3f & v2,
-
622 float & distance,
-
623 Eigen::Vector3f & normal);
-
624
-
625template<typename PointT>
-
626bool intersectRayMesh(
-
627 const Eigen::Vector3f & origin,
-
628 const Eigen::Vector3f & dir,
-
629 const typename pcl::PointCloud<PointT> & cloud,
-
630 const std::vector<pcl::Vertices> & polygons,
-
631 bool ignoreBackFaces,
-
632 float & distance,
-
633 Eigen::Vector3f & normal,
-
634 int & index);
-
635
-
636int RTABMAP_CORE_EXPORT saveOBJFile(
-
637 const std::string &file_name,
-
638 const pcl::TextureMesh &tex_mesh,
-
639 unsigned precision = 5);
-
640
-
641int RTABMAP_CORE_EXPORT saveOBJFile(
-
642 const std::string &file_name,
-
643 const pcl::PolygonMesh &mesh,
-
644 unsigned precision = 5);
-
645
-
646} // namespace util3d
-
647} // namespace rtabmap
-
648
-
649#include "rtabmap/core/impl/util3d_surface.hpp"
+
576pcl::PolygonMesh::Ptr RTABMAP_CORE_EXPORT meshDecimation(const pcl::PolygonMesh::Ptr & mesh, float factor);
+
577
+
578template<typename pointT>
+
579std::vector<pcl::Vertices> normalizePolygonsSide(
+
580 const pcl::PointCloud<pointT> & cloud,
+
581 const std::vector<pcl::Vertices> & polygons,
+
582 const pcl::PointXYZ & viewPoint = pcl::PointXYZ(0,0,0));
+
583
+
584template<typename pointRGBT>
+
585void denseMeshPostProcessing(
+
586 pcl::PolygonMeshPtr & mesh,
+
587 float meshDecimationFactor = 0.0f, // value between 0 and 1, 0=disabled
+
588 int maximumPolygons = 0, // 0=disabled
+
589 const typename pcl::PointCloud<pointRGBT>::Ptr & cloud = pcl::PointCloud<pointRGBT>::Ptr(), // A RGB point cloud used to transfer colors back to mesh (needed for parameters below)
+
590 float transferColorRadius = 0.05f, // <0=disabled, 0=nearest color
+
591 bool coloredOutput = true, // Not used anymore, output is colored if transferColorRadius>=0
+
592 bool cleanMesh = true, // Remove polygons not colored (if coloredOutput is disabled, transferColorRadius is still used to clean the mesh)
+
593 int minClusterSize = 50, // Remove small polygon clusters after the mesh has been cleaned (0=disabled)
+
594 ProgressState * progressState = 0);
+
595
+
618bool RTABMAP_CORE_EXPORT intersectRayTriangle(
+
619 const Eigen::Vector3f & p,
+
620 const Eigen::Vector3f & dir,
+
621 const Eigen::Vector3f & v0,
+
622 const Eigen::Vector3f & v1,
+
623 const Eigen::Vector3f & v2,
+
624 float & distance,
+
625 Eigen::Vector3f & normal);
+
626
+
627template<typename PointT>
+
628bool intersectRayMesh(
+
629 const Eigen::Vector3f & origin,
+
630 const Eigen::Vector3f & dir,
+
631 const typename pcl::PointCloud<PointT> & cloud,
+
632 const std::vector<pcl::Vertices> & polygons,
+
633 bool ignoreBackFaces,
+
634 float & distance,
+
635 Eigen::Vector3f & normal,
+
636 int & index);
+
637
+
638int RTABMAP_CORE_EXPORT saveOBJFile(
+
639 const std::string &file_name,
+
640 const pcl::TextureMesh &tex_mesh,
+
641 unsigned precision = 5);
+
642
+
643int RTABMAP_CORE_EXPORT saveOBJFile(
+
644 const std::string &file_name,
+
645 const pcl::PolygonMesh &mesh,
+
646 unsigned precision = 5);
+
647
+
648} // namespace util3d
+
649} // namespace rtabmap
650
-
651#endif /* UTIL3D_SURFACE_H_ */
+
651#include "rtabmap/core/impl/util3d_surface.hpp"
+
652
+
653#endif /* UTIL3D_SURFACE_H_ */
Abstract database driver for RTAB-Map maps (signatures, links, words, statistics).
Definition DBDriver.h:72
Represents 2D or 3D laser scan data with support for multiple point data formats.
Definition LaserScan.h:46
Three-tiered memory management (STM, WM, LTM) for RTAB-Map.
Definition Memory.h:102
diff --git a/index.html b/index.html index 40a0421c..dd56c038 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ - + RTAB-Map | Real-Time Appearance-Based Mapping