Copyright 2023. All rights reserved.
Robotics Research Group, University of Lleida.

Authors: Eduard Clotet.

This MEX file merges two point clouds (O and A) after aplying the given 
transformation to the coordinates of A. This transformation can be provided
either as a rotation/translation matrix or as a position/orientation vector.

MergeScans is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or any later version.

MergeScans is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
MergeScans; if not, write to the Free Software Foundation, Inc., 51 Franklin
Street, Fifth Floor, Boston, MA 02110-1301, USA


*********************************************************************************
Release Info
*********************************************************************************
- Version: 1.2
- Release date: 07/12/2023

*********************************************************************************
Change Log (V1.2)
*********************************************************************************
1) Fixed some minor errors in the documentation.

2) PCMerge can now return the transformed points of T as an optional output parameter
        Ex: [M, tT] = PCMerge(M,T,ep);



*********************************************************************************
Release Info
*********************************************************************************
- Version: 1.1
- Release date: 16/05/2023

*********************************************************************************
Change Log (V1.1)
*********************************************************************************
1) Added new examples with 2D data

*********************************************************************************
Index
*********************************************************************************
1) Directory Content
2) How to compile
3) How to use

*********************************************************************************
Directory Content
*********************************************************************************
- PCMerge (folder)
|- Compiled library  (folder)
|  |- PCMerge.mex64 (MEX file)
|
|- Documentation (folder)
|  |- Documentation.txt (text file)
|
|- To Compile (folder)
|  |- PCMerge.cpp (source code)
|  |- make.m (compile script)
|
|- Examples (folder)
   |- PCMerge.mexw64 (compiled MEX)
   |- example_3D.m (example code)
   |- data_3D.mat (data file)
   |- example_2D.m (example code)
   |- data_2D.mat (data file)

*********************************************************************************
How to compile
*********************************************************************************
1) Navigate to the folder containing the PCMerge.cpp and make.m file

2) From a Matlab terminal, run the "make.m" script. 

4) The "PCMerge.mex64" file should appear into the current directory.

* Note: this library has been compiled successfuly from Matlab using Windows 10 O.S. (x64) and 'Microsoft Visual C++ 2015 Professional (C)'.

*********************************************************************************
How to use
*********************************************************************************
   To get a list of all the input/output parameters supported by this MEX, type "PCMerge" in a Matlab terminal.