/****************************************/
/********* CC (HOLLY) TODO LIST *********/
/****************************************/

Methods not yet migrated back to V2:
- void MainWindow::doActionKMeans
- void MainWindow::doActionFrontPropagation
- void MainWindow::doActionLoadShader

File I/O:
- Export PTX files
- Generate PDF 3D
- OpenCTM format (https://github.com/cloudcompare/trunk/issues/146)
- Visual SFM format (http://www.cloudcompare.org/forum/viewtopic.php?t=550)
- OpenVDB format (http://www.danielgm.net/cc/forum/viewtopic.php?t=3057)

*** And from the forum topic or emails 'recent requests' ***

Big ones:

[*] Move to OpenGL 4+
[*] Support cloud transparency (WIP)
[*] Out of core support
	- editable
	- being able to work on portions of very big clouds while other portions are visible but in 'read-only' mode (http://www.cloudcompare.org/forum/viewtopic.php?t=1699)
[*] Undo mechanism

Command line mode:
[*] Option to generate a scalar field with the cloud indexes when merging clouds (https://www.cloudcompare.org/forum/viewtopic.php?p=29907)
[*] Option to set or add the Global Shift manually (https://www.cloudcompare.org/forum/viewtopic.php?p=24959 or https://www.cloudcompare.org/forum/viewtopic.php?t=4307)
[*] SF_TO_COORD option (see https://www.cloudcompare.org/forum/viewtopic.php?p=24955)
[*] Label Connected Components tool (http://www.cloudcompare.org/forum/viewtopic.php?t=933)
[*] Extract a cross section from a point cloud using an existing polyline (loading in .bin or dxf format as in the interface) (http://www.danielgm.net/cc/forum/viewtopic.php?t=1515)
[*] Change the default output directory (http://www.danielgm.net/cc/forum/viewtopic.php?t=1240)
[*] Clean filter
[*] Let the user specify the precise content of an ASCII file in order to prevent the file opening dialog
	from appearing (will happen - even in 'silent mode' - if the file has more than 5 columns)
[*] Export the history transformation (or the barycenter translation - see http://www.danielgm.net/cc/forum/viewtopic.php?t=1242)
[*] Choose the format of STL output (acsii / binary - see http://www.danielgm.net/cc/forum/viewtopic.php?f=13)
[*] Set a custom prefix for saved filenames (see https://www.cloudcompare.org/forum/viewtopic.php?p=23987)
[*] Rasterize tool
	- set the active layer for raster generation (see https://www.cloudcompare.org/forum/viewtopic.php?t=5576)
	- set the output raster filename (see https://www.cloudcompare.org/forum/viewtopic.php?t=5576)
	- compute and export the population per cell (https://www.cloudcompare.org/forum/viewtopic.php?p=25085)
[*] Colors level (https://www.cloudcompare.org/forum/viewtopic.php?t=5743)
	- Fit > Sphere (https://www.cloudcompare.org/forum/viewtopic.php?p=25333)
	- Edit > Colors > Enhance with intensities (https://www.cloudcompare.org/forum/viewtopic.php?t=5795)
	- Set the random subsampling rate as a percentage (https://www.cloudcompare.org/forum/viewtopic.php?f=14&t=6357)
[*] Point cloud cleanup tools (http://www.cloudcompare.org/forum/viewtopic.php?t=191)
[*] Volume calculation
	- between clouds (from distances)
	- between meshes (http://www.danielgm.net/cc/forum/viewtopic.php?t=1253)
[*] Control the fitted plane output filename and format (https://www.cloudcompare.org/forum/viewtopic.php?p=29618)
[*] Compute the distance/range from sensor center via the command line (https://www.cloudcompare.org/forum/viewtopic.php?t=3786 and https://www.cloudcompare.org/forum/viewtopic.php?p=27540)
[*] Command line option to 'Export cloud info' (https://www.cloudcompare.org/forum/viewtopic.php?t=5243)

qAnimation plugin:
[*] It would be great to specify the resolution.
[*] Have different levels of smoothing between each viewport.  This way the turns and translations are not as abrupt.
[*] Generate side-by-side stereo animations (for Google cardboard, etc.) with the qAnimation plugin
[*] Use a point cloud (e.g. sensor positions / trajectory) to make the virtual camera move (https://www.cloudcompare.org/forum/viewtopic.php?t=6348)

qFacets plugin:
[*] Option to export 3D polygons (facets) in SHP files
[*] Add the facet perimeter to the set of exported values
[*] Export more metrics in CSV/SHP DB files (perimeter, etc.) (see https://www.cloudcompare.org/forum/viewtopic.php?p=28216#p28216)

Scissors/segmentation tool
[*] Scissors tool: option to inverse the segmentation or to remove visible points (https://www.cloudcompare.org/forum/viewtopic.php?p=26981)
[*] Add a 'circle' option in the Graphical Segmentation tool (https://www.cloudcompare.org/forum/viewtopic.php?t=5319 and https://www.cloudcompare.org/forum/viewtopic.php?t=5756)
[*] Add a confirmation popup when exiting from the Segmentation tool with 'ESC' (https://www.cloudcompare.org/forum/viewtopic.php?t=5793)
[*] Segment polylines with the scissors tool (https://www.cloudcompare.org/forum/viewtopic.php?t=4692)
[*] Add a filter to the current scissors selection based on the point colors (https://www.cloudcompare.org/forum/viewtopic.php?p=29711)
[*] Enable or Disable other clouds while using the scissors tool (for visual reference) (https://www.cloudcompare.org/forum/viewtopic.php?t=6143)

Various:
[*] ASCII load file dialog: display the extracted colum title directly under the role of each column (https://www.cloudcompare.org/forum/viewtopic.php?t=7085)
[*] Option to lock an entity (https://www.cloudcompare.org/forum/viewtopic.php?p=29251)
[*] Batch export several entities to single-entity formats (LAS, etc.) (see https://www.cloudcompare.org/forum/viewtopic.php?p=29066)
[*] Restore the option to not decompose the classification field with the new LAS I/O filter (https://www.cloudcompare.org/forum/viewtopic.php?p=28999)
[*] Save or load preset format for the new LAS I/O plugin (https://www.cloudcompare.org/forum/viewtopic.php?t=6167)
[*] Converting viewports to sensors, or creating sensors from current viewport (https://www.cloudcompare.org/forum/viewtopic.php?t=6722)
[*] Coloring brush (https://www.cloudcompare.org/forum/viewtopic.php?t=6672)
[*] Shortcut to translate the cloud (relative to the drawn polygon/rectangle) in graphical segmentation mode (https://www.cloudcompare.org/forum/viewtopic.php?t=6658)
[*] Add more controls and a preview option to the 'Color Levels' tool (https://www.cloudcompare.org/forum/viewtopic.php?t=6629)
[*] Option 'no to all' for the Global Shift dialog (https://www.cloudcompare.org/forum/viewtopic.php?t=6628)
[*] Batch export several polylines CSV 'height profiles' (see https://www.cloudcompare.org/forum/viewtopic.php?p=28189)
[*] Rasterize tool (GUI)
	- choose the exported raster format (https://www.cloudcompare.org/forum/viewtopic.php?t=6378)
	- export images in the Rasterize tool with a custom color ramp (https://www.cloudcompare.org/forum/viewtopic.php?f=10&t=6023)
	- additional options to the Rasterize 'resample input cloud' mode (original mix/max position, average position - https://www.cloudcompare.org/forum/viewtopic.php?p=24953)
	- export other fields than the height field (SFs, colors, etc.) when exporting the grid to an image or a matrix file (http://www.cloudcompare.org/forum/viewtopic.php?t=1800)
[*] Dark mode (https://www.cloudcompare.org/forum/viewtopic.php?t=6369)
[*] Add 'drawing' tools (curve passing through 3 points, arc, circle, etc.) to be exported to DXF
[*] Being able to select only the visible or the enabled clouds with the  'Select children by type and/or name' feature (https://www.cloudcompare.org/forum/viewtopic.php?p=27159)
[*] Save multiple clouds in a LAS file (or other file types that normally only store one cloud - https://www.cloudcompare.org/forum/viewtopic.php?p=27131)
[*] Manage viewports as sensors to be able to move/edit them easily (https://www.cloudcompare.org/forum/posting.php?mode=reply&t=6112)
[*] Option to automatically delete the source cloud in the 'SF > Filter by value' tool (https://www.cloudcompare.org/forum/viewtopic.php?t=6113)
[*] Voxel display mode (https://towardsdatascience.com/how-to-automate-voxel-modelling-of-3d-point-cloud-with-python-459f4d43a227)
[*] Create Height / Surface / Volume chart for bathymetry jobs (https://www.cloudcompare.org/forum/viewtopic.php?p=26787)
[*] Add options to compute the local average and std.dev. (and maybe medoid) of a SF (https://www.cloudcompare.org/forum/viewtopic.php?t=5700)
[*] Add a 'Set value' operation to the SF arithmetics tool (https://www.cloudcompare.org/forum/viewtopic.php?t=5933)
[*] Improve the CSF plugin with the method proposed in https://www.mdpi.com/2072-4292/13/15/2938 (https://www.cloudcompare.org/forum/viewtopic.php?t=5887)
[*] Add a confirmation popup when deleting an entity in the DB tree (https://www.cloudcompare.org/forum/viewtopic.php?t=5756)
[*] Shortcut to the 'Edit > Scalar fields > Export coordinate(s) to SF' (https://github.com/CloudCompare/CloudCompare/issues/1607)
[*] Option to input the rotation point for the Translate/Rotate tool (https://www.cloudcompare.org/forum/viewtopic.php?p=24572)
[*] Extract E57 images (as standard image files) via the command line (https://www.cloudcompare.org/forum/viewtopic.php?p=24493)
[*] Being able to select the entities to load from a BIN file (https://www.cloudcompare.org/forum/viewtopic.php?t=5102)
[*] Manual editing of each point of a polyline (https://www.cloudcompare.org/forum/viewtopic.php?t=4690)
[*] Let the user choose the color scale in the '2.5D Volume computation' tool (https://www.cloudcompare.org/forum/viewtopic.php?t=4196)
[*] Update the two-point-distance label 'in real time' when the mouse hovers points (https://www.cloudcompare.org/forum/viewtopic.php?t=3765)
[*] Ability to change the mouse buttons mapping (http://www.cloudcompare.org/forum/viewtopic.php?t=2676)
[*] Ability to define custom shortcuts for some methods (http://www.cloudcompare.org/forum/viewtopic.php?t=2676)
[*] Set the Cross Section box using a plane entity (http://www.danielgm.net/cc/forum/viewtopic.php?t=2485)
[*] Apply the qCSF plugin to more than one cloud at once (http://www.cloudcompare.org/forum/viewtopic.php?t=2242)
[*] Add a shortcut to take a 'snapshot' of the current view (automatic filename and export dir?)
[*] Add support for Gocad pointset files (= ASCII file with a specific header and decoration)
[*] Read PTS files as multiple clouds (http://www.cloudcompare.org/forum/viewtopic.php?t=2004)
[*] Generate side-by-side OpenGL views for Sony or Epson AR glasses (http://www.cloudcompare.org/forum/viewtopic.php?t=2011)
[*] Add GeoJSON format support for vector data... and a lot of other ideas (http://www.danielgm.net/cc/forum/viewtopic.php?t=1845)
[*] Export grid structure in E57 files (http://www.cloudcompare.org/forum/viewtopic.php?t=1134)
[*] Auto-save function (http://www.danielgm.net/cc/forum/viewtopic.php?t=1292)
[*] Spherical projection of 360 degrees images to color a point cloud (http://www.danielgm.net/cc/forum/viewtopic.php?t=1268&p=4709#p4709)
[*] Load georeferenced images (ecw+ers, jpg+jgw) (http://www.cloudcompare.org/forum/viewtopic.php?t=1244)
[*] Add a check box to turn on and off gradient colors in the Color Scale Editor
[*] Add the distance 'units' as a parameter for the color ramp
[*] Add key bindings to pan the active 3D view (so as to be able to pan even in segmentation / polyline tracing mode - http://www.cloudcompare.org/forum/viewtopic.php?t=1714)
[*] Choose the columns to export for ASCII files (http://www.cloudcompare.org/forum/viewtopic.php?t=1449)
[*] Handle arc-polylines (Autocad - http://www.cloudcompare.org/forum/viewtopic.php?t=1413)
[*] fly-through mode (http://www.cloudcompare.org/forum/viewtopic.php?t=179)
[*] Use the LEAP device to interact with point clouds (http://www.danielgm.net/cc/forum/viewtopic.php?t=1090)
[*] Compute vertical distances (http://www.cloudcompare.org/forum/viewtopic.php?t=1245)
[*] Use a temporary clipping box in the Interactive Segmentation tool (https://github.com/cloudcompare/trunk/issues/215)
[*] Option to segment a point cloud via the clipping box instead of creating a new cloud (section) (https://github.com/cloudcompare/trunk/issues/215)
[*] Import sensors from E57 files (http://www.cloudcompare.org/forum/viewtopic.php?t=1168)
[*] Save polylines color and thickness in DXF files (http://www.danielgm.net/cc/forum/viewtopic.php?t=1086)
[*] Add a filter to the DB tree (http://www.danielgm.net/cc/forum/viewtopic.php?t=1055)
[*] Selection of planar area based on region growing would be nice (http://www.cloudcompare.org/forum/viewtopic.php?t=1046)
[*] Create a camera object at the current position of the OpenGL camera
[*] Add a 'two-windows' mode to the point-pair based alignment tool (http://cloudcompare.org/forum/viewtopic.php?t=1043)
[*] Handle 'Folded Normal Distribution' in the Compute Stats Params method (for positive scalar fields, e.g. unsigned C2C distances)
[*] Export primitives to a (simple, free) CAD format (http://www.cloudcompare.org/forum/viewtopic.php?t=573)
[*] Edit parameters for qEDL (luminosity, etc.)
[*] Dedicated method for isolated points removal (based on the Connected Components one)
[*] Enhance qCork so as to keep the mesh(es) properties (color, normals, etc.)
[*] Properly segment meshes in the graphical segmentation tool
[*] Import control points from ascii file (for point pair-based registration - http://www.cloudcompare.org/forum/viewtopic.php?t=585)
[*] Reverse Unroll Feature (http://www.cloudcompare.org/forum/viewtopic.php?t=645)
[*] Per-point size based on SF values (http://www.cloudcompare.org/forum/viewtopic.php?t=507)
[*] Display ortho-rectified images as high-res textures (instead of point clouds!)
[*] Add interactive measurement features to ccViewer
[*] Support mesh transparency (and PLY 'alpha' property for instance)
[*] Convert RGB colors/scalar field to texture when exporting to OBJ mesh file (http://www.danielgm.net/cc/forum/viewtopic.php?t=830)
[*] Overlay grid (for 3D views - http://www.cloudcompare.org/forum/viewtopic.php?t=926) 

From Florian W.
[*] Adding an option in front of RANSAC to specify the angular position in space to a reference point would also be very useful. This could perhaps be set so that the program only finds shapes that lie vertically or horizontally in space. Sometimes it happens that cylinders are found which are arranged obliquely and do not exist at all. This is probably due to the density of the point cloud (in my case it has to be thinned out because it is too computationally intensive).
[*] Adding the length setting for the cylinders before RANSAC could also reduce the frequency of errors. 
[*] When sorting incorrectly recognized shapes according to RANSAC, there is unfortunately no "Back function / Back button". An accidental deletion of an actual shape would then no longer be tragic.

From Dimitri L.
[*] Advanced maths on scalar fields (http://www.danielgm.net/cc/forum/viewtopic.php?t=1277)
[*] Interactive modification of scalar vlaues (http://www.cloudcompare.org/forum/viewtopic.php?t=1331)
[*] Being able to apply various methods based on a sub-sampled cloud
[*] Vector fields (http://www.cloudcompare.org/forum/viewtopic.php?t=201)
[*] Histogram enhancements (http://www.danielgm.net/cc/forum/viewtopic.php?t=1160)

From 'kachilca' (http://www.cloudcompare.org/forum/viewtopic.php?t=1399)
[*] Normal map support and generation
[*] Mesh decimation (with curvature priority)

From Caleb B. (http://www.danielgm.org/forum/viewtopic.php?t=1334)
[*] an ICP option for "no-rotation" (or more complex, max-rotation) that finds the best translation between the clouds
[*] exposure of the existing in-gui option for rotation around only one specified plane to the command line, i.e., -AXISOFROT Z to the command line mode

From Thomas S. (http://www.cloudcompare.org/forum/viewtopic.php?t=550)
[*] If CloudCompare would support VisualSFM, it would be possible to import the VisualSFM-Project (with the saved camera positions).
	Then it should be possible to measure the points for the georeferencing in the images itself, instead of the point-cloud, which would be much more accurate.

From Andrew B.
[*] 'minimise bounding box' or various automated ways to make objects 'stand up' the way they are supposed to or be rigid-transformed on the basis of perceived axial symmetry
[*] An automatic 'scale to unit size' in cases where compare different sized things is of interest, but size can be discarded or treated separately
[*] Automation of the above tasks via the command line

From Thomas D.
[*] Splatting (http://idav.ucdavis.edu/~okreylos/ResDev/LiDAR/index.html)
[*] Show/hide points based on their normal (http://www.cloudcompare.org/forum/viewtopic.php?t=168)
[*] Facets plugin:
	- trace iso-density contour lines in the stereogram plot
	- use a log scale for colors

From AdrienA
[*] Radiance scaling shader

From Chartzell
[*] A limit box- Being able to hide portions of the clouds you are working on can make the registration process much quicker and easier. With a customizable limit box you can look at just a small cross section of the clouds to get a good view of how well they fit together and what adjustments need to be made. Ideally, you would be able to push and pull on the various sides of the box to change it's dimensions.

From Konrad W.
[*] Something like the plane shader from point tools where the depth is coloured with the Hue channel
[*] Out-of-core support (like those guys: http://ros.org/wiki/megatree or the out-of-core structure in the PCL)

From Rav M.
[*] Add front and back cutting plane
[*] move and rotate global coordinate (X,Y,Z) or aligning it like camera and then adding another parts to correct scene in right place.

From Gianluca C.
[*] to overlay an image over the mesh with some common points and "drape" the photo on the surface

From Eugene L.
[*] To be able to transfer color from a jpg image to a mesh or point cloud. (same as Gianluca?)
[*] Would it be possible to enter a % value like 95% and then obtain the exact value for the number of points that fall in that range?

From Andrew O.
[*] add some type of 3D eraser. Perhaps being able to select and clear an octree cell may be the place to start (http://www.cloudcompare.org/forum/viewtopic.php?t=191)

From Tim C.
[*] Translate/Rotate with keys or GUI buttons (http://www.cloudcompare.org/forum/viewtopic.php?t=556)

From Andrew O.
[*] Small Clouds: I consider a cloud to be 2 or more data points. Small clouds don't behave well in Cloud compare. RANSAC, Connected Components and some other functions either crash the app or hang or go off in an endless loop when this is the case. 
[*] Selected Sets: It would be nice to be able to work with a selected set rather than having to segment the cloud. What you need here is some database functionality. Since CloudCompare is an analysis tool, it could benefit from conceptual thinking from the GIS world. Filtering scalar fields is a good start - I use that a lot. Being able to do some simple SQL to grab points into a set would be very helpful. This ties in with my comment on attributes below. 
[*] Point ID: It would be nice if Ascii import could import the "labels: for points. I don't expect to be able to render labels for a large cloud - that would be silly. They can be accessed in point collection, but I'd like to be able to use my own labels as they occur rather than think my way through a zero based collection based on point order. They need to be alpha-numeric. This relates to the selected sets comment above. 
[*] 3-d Line: There is a lot of functionality for planes, spheres etc, but there is no line primitive.There are case where I would like to be able to model a line of best fit on observed points and compare that to another edge. For example, I have a current task to compare columns in a structure and we are measuring multiple points on the edge of steel members. It would be good to implement a number of objects: segment (two point), string (>2 points) etc. The mirror to this in the primitive space would be objects such as lemniscates, cubic spirals, helixes etc.
[*] Attributes and strings: It would be nice to be able to connect common points in a cloud according to alpha and/or numeric values in the cloud. This is common in surveying software where we code a point by an alpha/numeric code to indicate a feature type such as "edge of footpath". We would code the data with the edge as alpha and give it a string number. Then when the software encounters the data it builds lines according to the order they are in the file and the string number. Additional codes can be used to start and end strings or do more complex things. 
[*] Data Entry: It would be nice to be able to key the data for a point or points, to simply add few point to the cloud. A case where this would be advantageous is to enable to user to add in additional control data rather than having to suck in another ascii file. Alternatively in a small cloud, you may wish to edit the coordinates of a point
[*] Alignments: Nice functionality but...it would be nice if a report was produced that explained the scale, rotation and translation, mentioned the residuals, and did some statistical tests to help the user determine if it was a valid transformation.
[*] Transformations: It would be nice to be able to apply conformal and affine transformations. The current matrix system requires complex calculation outside the software to compute the 4x4 matrix from known parameters. It would be nice to apply scale,omega,kappa,phi,tx,ty,tz directly.

From 'dsims1980'
[*] Spherical Parameterization of cloud or meshes is very useful for visual comparison of two models (http://www.cloudcompare.org/forum/viewtopic.php?t=581)

Probably done (TBC)
[*] Divert the command line console to the system console (https://github.com/cloudcompare/trunk/issues/362)
