- Added the minEnclosingTriangle function declaration to the imgproc header
- Added the source code for the function in the separate file min_enclosing_triangle.cpp
- Changed the type of the minEnclosingTriangle function parameters by using proxy classes InputArray/OutputArray instead of std::vector<T>
- Adapted the source code to accommodate this change
Changed the semantics of the minEnclosingTriangle function such that:

1. The function receives a set of points as input instead of a convex polygon with more than three vertices
2. The convex hull P is computed inside the function
3.1. If the number of vertices of P is greater than three then the algorithm which was implemented before executes
3.2. Otherwise the vertices of the triangle are picked from the vertices of the given polygon and the area computed
Added some assert statements to constrain the type of the input and output parameters. Convert the input set of points to vector<Point2f> before passing it to the findMinimumAreaEnclosingTriangle function.
Optimised one assert statement in the min_enclosing_triangle.cpp file. Added the minEnclosingTriangle functionality to the existing minarea.cpp sample file.
Overloaded the minEnclosingTriangle function such that there is an alternative function with the same name which does not require the output parameter ``area''.
Changed the sample source file minarea.cpp to use the overloaded version of the function.
Updated some comments in the min_enclosing_triangle.cpp source file.
- Wrote the documentation for the minEnclosingTriangle function (+1 extra picture depicting a sample output)
Added the tests for the minEnclosingTriangle function in the existing test_convhull.cpp file.
Added the signature cvMinEnclosingTriangle (C version) to the imgproc_c.h header
Changed the return type of cvMinEnclosingTriangle to CVAPI(void). Added the implementation of the function to the min_enclosing_triangle.cpp source file.
Added the C interface function signature and the overloaded minEnclosingTriangle Python function to the documentation.
Made the following changes after code inspection (min_enclosing_triangle.cpp):
* Corrected minor typos in comments/function signatures
* Added new details to copyright statement
* Removed unreferenced macros
* Removed the assert statement which was checking the type of the OutputArray triangle
* When returning results using Mat::copyTo instead of Mat::convertTo
* Changed C-style casts to static_casts
* Added division by zero check to distanceFromPointToLine() function
* Updated reference webpages last access dates
* Moved the declaration of the gammaOfA variable outside the while loop in moveAIfLowAndBIfHigh() function for efficiency reasons
Updated the return type of the cvMinEnclosingTriangle function in the documentation
Added a namespace and prefixed global variables with "G_" in order to prevent variable shadowing problems.
Removed non-ASCII characters from the comments
Removed the cvMinEnclosingTriangle function since the C API will be deprecated starting with OpenCV 3.0
Changed the signature of the minEnclosingTriangle function such that it returns the area automatically. Moreover, the overloaded function was no longer required so it was removed. Sample code, documentation and unit tests were updated correspondingly.
Removed static variables which were not read-only and used more function parameters instead.
Merge pull request #1470 from IceRage:min_enclosing_triangle