# Changelog 

## [8.0.29]

    - Added geoid support in ProjectedCoordinateSystem



## [8.0.0]

    - Added Distance constraints 
    - Added Camera constraints
    - Added Camera grouping 
    - Added Orthophoto convenience methods 
    - Added Orthophoto, CameraConstraints and ProjectedCoordinateSystem serialization
    - Added examples ExampleCameraGroupsPair, ExampleCameraGroupsPano
    - Added circular marker detection
    - Added point classification 
    
    Breaking changes from 7.XXX:

       - Removed APIs to query for CUDA devices 
       - Added APIs to query for logical graphics interfaces (see FlowEngine::getGraphicsDeviceCount)
       - FlowEngineInterface::performBundleAdjustment now supports cameras, 
         control points and distances constraints, but its signature has changed
       - Markers families have been renamed, use the related API for a list of available tag names (see ExampleMarkers)

    
## [7.511]
    - Added API to fetch and apply calibrations from 3Dflow online calibrations database.


## [7.013]
    - Improved CamerasLoader::loadImages performance
    - Added an optional ProgressBarInterface parameter to CamerasLoader::loadImages


## [7.005]
    - Various bug fixes 




## [7.000]
    - New floating licensing system and related APIs    
    - New meshing algorithm
    - Improved photoconsistency filter
    - Improved decimation filter
    - Improved Samantha's geometric reconstruction
    - Speed improvements on SfM, MvS, and meshing phases
    - Several bug fixes 



## [6.9xx]

### Added 
	- FlowEngineInterface::computeStructureAndMotionConstrained
	- Camera constraints in structure and motion
	- Camera constraints in bundle adjustment 
    - API to reset the stereo mesh with custom data in one call
	- API to query camera ground sample distance
    - API to replace camera visibility in StereoPointCloud and StereoMesh objects

### Changed
	- FlowEngineInterface::performBundleAdjustment now requires both camera and control points constraints 



## [6.4xx]

### Added
    - Better error handling for SettingsInterface::load 

### Changed (API break)
    - Moved utility function CheckResult from Utilities to Common.h (distributed with the SDK)
    - Changed CheckResult policy when an error is detected: from std::exit to an exception




## [6.000] 

### Changed 

    - (Non-free only) Changed policy when the license check fails: 
     now a method only available to licensed users will fail with result code 
     `Result::LicenseCheckFailed` instead of exiting the application directly.

    - (API break) (Non-free only) Changed marker detection algorithm (FlowEngineInterface::detectMarkers and MarkerPrinter)
      - Now uses a more robust algorithm.
      - Added support for different tags.
      - Older markers tags are still supported.


## [5.010] 

### Changed 

    - Updated Turbo Float library on Linux versions




## [5.008] 

### Fixed
    - fixed a bug where FlowEngine::computeSparsePointCloudFromKnownPPM would not correctly reconstruct cameras.




## [5.004] 

### Added 
    - added more decimation filters to dense point cloud 
    - added st-map exporting 




## [5.002] - 2020-07-20

### Added 
    - added a method to orient a camera (or a set of bubble view cameras) with a set of control points 
    - added a method to generate the st-map of a camera 




## [5.000] - 2020-07-06

### Added 
    - added a changelog 
    - added the option to set the object name for some objects (NamedObjectInterface::setName, etc..)
    - added a method to retrieve the private key in the LicenseManager
    - added various stereo point clouds filtering methods (see StereoPointCloudInterface)
    - added a DestroyFlowEngine() method for coherence with the creation method.
    - added trial support 
    - added serialization support for ControlPointConstraintInterface objects.
    - added a method to CameraCalibrationInterface to undistort an user-supplied image.
    - added a parameter to Equirectangular::decomposeEquirectangularImage to retrieve the undistorted camera images.

### Fixed 
    - fixed a bug where camera masks temporary files would not be saved in the settings temp path
    - fixed dll lookup strategy in the checksum calculation for Windows platform 
    - fixed the error message in case dll is not found during checksum 
    - fixed cmake minimum required version (3.15)
    - fixed Orthophoto example 

### Changed (possibily breaking)
    - changed the interface of CameraInterface::loadMask to accept a settings object
    - removed alignment constraints on common data types. 
    - changed the behavior of StereoMeshInterface::saveToObj: 
        by default the color information is not included now but 
        there's a new optional bool parameter.
    - added a parameter to Equirectangular::decomposeEquirectangularImage that 
        allows to specify the output cameras field of view.