Freestyle: Fix for VC++ warnings about 'hypot' macro redefinitions (Part 1).

The issue was caused by including both Python.h and BLI_math.h.  Since the macro
definition in Python.h was unconditional, it was necessary to include it first and then
BLI_math.h.

Addressing the issue turned out to affect many Freestyle source files.  There were several
other coding flaws that complicated the situation:

1. intern/system/FreestyleConfig.h was abused just to include BLI_math.h which was in
fact unnecessary in FreestyleConfig.h.  While addressing this, inclusion of both math.h
and BLI_math.h had to be duly dealt with to avoid a compiler error about round().

2. #include <Python.h> was not properly put in the extern "C" { ... } construct.

3. intern/view_map/Interface0D.h and intern/python/Director.h, both of which included
Python.h, were included from within Freestyle header files that were almost or completely
independent of Python.  These non-Python header files were used everywhere in the
Freestyle code base, causing many cases of the reported macro redefinitions.

4. The Director.h file was also declaring 'using namespace Freestyle', which was causing
another scope issue in several Freestyle header files.

This commit is intended to address the first problem above.  Subsequent commits will deal
with the other three.
This commit is contained in:
Tamito Kajiyama 2014-04-17 12:01:10 +09:00
parent ba61992cc3
commit 5db8da8105
9 changed files with 11 additions and 10 deletions

View File

@ -31,6 +31,8 @@
#include "../scene_graph/NodeDrawingStyle.h"
#include "../system/Precision.h"
#include "BLI_math.h"
#ifdef WITH_CXX_GUARDEDALLOC
#include "MEM_guardedalloc.h"
#endif

View File

@ -36,10 +36,10 @@
* \author Bruno Levy
*/
#include <math.h>
#include "matrix_util.h"
#include "BLI_math.h"
namespace Freestyle {
namespace OGF {

View File

@ -28,7 +28,7 @@
#include "NodeTransform.h"
#include "../system/FreestyleConfig.h"
#include "BLI_math.h"
namespace Freestyle {

View File

@ -30,8 +30,6 @@
#include <string>
#include "BLI_math.h"
using namespace std;
namespace Freestyle {

View File

@ -26,7 +26,6 @@
*/
#include <float.h>
#include <math.h>
#include "FEdgeXDetector.h"

View File

@ -39,6 +39,8 @@
#include "../winged_edge/Curvature.h"
#include "../winged_edge/WXEdge.h"
#include "BLI_math.h"
#ifdef WITH_CXX_GUARDEDALLOC
#include "MEM_guardedalloc.h"
#endif

View File

@ -25,7 +25,6 @@
* \date 01/07/2003
*/
#include <math.h>
//soc #include <qimage.h>
//soc #include <qstring.h>
#include <sstream>
@ -39,6 +38,7 @@
#include "../image/Image.h"
#include "BKE_global.h"
#include "BLI_math.h"
extern "C" {
#include "IMB_imbuf.h"

View File

@ -45,7 +45,6 @@
#include <assert.h>
#include <cstdlib> // for malloc and free
#include <math.h>
#include <set>
#include <stack>
@ -54,7 +53,7 @@
#include "../geometry/normal_cycle.h"
#include "../system/FreestyleConfig.h"
#include "BLI_math.h"
namespace Freestyle {

View File

@ -29,7 +29,6 @@
*/
#include <iterator>
#include <math.h>
#include <vector>
#include "../geometry/Geom.h"
@ -38,6 +37,8 @@
#include "../system/FreestyleConfig.h"
#include "BLI_math.h"
#ifdef WITH_CXX_GUARDEDALLOC
#include "MEM_guardedalloc.h"
#endif