diff --git a/.gitignore b/.gitignore index fec529fe0..4b20705d3 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,6 @@ cmake_install.cmake *~ CMakeFiles/ *qrc.depends -qrc_*.cpp ui_*.h moc_*.cpp Makefile @@ -27,3 +26,4 @@ install_manifest.txt /lib/ /Mod/ /ZERO_CHECK.dir/ +/build/ diff --git a/CMakeLists.txt b/CMakeLists.txt index fa753325b..b6f6792a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -318,6 +318,7 @@ if(FREECAD_LIBPACK_USE) find_file(FREECAD_LIBPACK_CHECKFILE9X boost_program_options-vc90-mt-gd-1_54.lib ${FREECAD_LIBPACK_DIR}/lib ) find_file(FREECAD_LIBPACK_CHECKFILE10X boost_program_options-vc110-mt-1_55.lib ${FREECAD_LIBPACK_DIR}/lib ) find_file(FREECAD_LIBPACK_CHECKCUSTOM boost_program_options-vc90-mt-gd-1_41.lib ${FREECAD_LIBPACK_DIR}/lib ) + find_file(FREECAD_LIBPACK_CHECKFILE_CLBUNDLER MANIFEST.db ${FREECAD_LIBPACK_DIR}) # don't show them in the GUI set(FREECAD_LIBPACK_CHECKFILE6X "${FREECAD_LIBPACK_CHECKFILE6X}" CACHE INTERNAL "Find libpack") @@ -326,8 +327,12 @@ if(FREECAD_LIBPACK_USE) set(FREECAD_LIBPACK_CHECKFILE9X "${FREECAD_LIBPACK_CHECKFILE9X}" CACHE INTERNAL "Find libpack") set(FREECAD_LIBPACK_CHECKFILE10X "${FREECAD_LIBPACK_CHECKFILE10X}" CACHE INTERNAL "Find libpack") set(FREECAD_LIBPACK_CHECKCUSTOM "${FREECAD_LIBPACK_CHECKCUSTOM}" CACHE INTERNAL "Find libpack") + set(FREECAD_LIBPACK_CHECKFILE_CLBUNDLER "${FREECAD_LIBPACK_CHECKFILE_CLBUNDLER}" CACHE INTERNAL "Find libpack") - IF(FREECAD_LIBPACK_CHECKFILE6X) + IF(FREECAD_LIBPACK_CHECKFILE_CLBUNDLER) + set(FREECAD_LIBPACK_VERSION "CLbundler" CACHE STRING "Displays if the libpack has been found" FORCE) + include(cMake/UseLibPackCLbundler.cmake) + ELSEIF(FREECAD_LIBPACK_CHECKFILE6X) set(FREECAD_LIBPACK_VERSION "6.x" CACHE STRING "Displays if the libpack has been found" FORCE) include(cMake/UseLibPack6x.cmake) ELSEIF(FREECAD_LIBPACK_CHECKFILE7X) @@ -355,10 +360,10 @@ if(FREECAD_LIBPACK_USE) ELSEIF(FREECAD_LIBPACK_CHECKCUSTOM) set(FREECAD_LIBPACK_VERSION "Custom" CACHE STRING "Displays if the libpack has been found" FORCE) include(cMake/UseLibPackCustom.cmake) - ELSE(FREECAD_LIBPACK_CHECKFILE6X) + ELSE(FREECAD_LIBPACK_CHECKFILE_CLBUNDLER) set(FREECAD_LIBPACK_VERSION "NOTFOUND" CACHE STRING "Displays if the libpack has been found" FORCE) message(SEND_ERROR "Could not find libpack in specified location:" ${FREECAD_LIBPACK_DIR}) - ENDIF(FREECAD_LIBPACK_CHECKFILE6X) + ENDIF(FREECAD_LIBPACK_CHECKFILE_CLBUNDLER) # -------------------------------- PyCXX -------------------------------- @@ -376,7 +381,9 @@ if(FREECAD_LIBPACK_USE) find_package(PySideTools REQUIRED) # Pyside utilities (pyside-uic & pyside-rcc) -else(FREECAD_LIBPACK_USE) +endif(FREECAD_LIBPACK_USE) + +if(NOT FREECAD_LIBPACK_USE OR FREECAD_LIBPACK_CHECKFILE_CLBUNDLER) # ================================================================================ # == for other OSes search the packages ========================================== @@ -439,8 +446,7 @@ else(FREECAD_LIBPACK_USE) endif() find_package (OCE QUIET) if(${OCE_FOUND}) - message("-- OpenCASCADE Community Edition has been found.") - add_definitions (-DHAVE_CONFIG_H) + message(STATUS "-- OpenCASCADE Community Edition has been found.") #lib list copied from FreeCAD's FindOpenCasCade.cmake set(OCC_LIBRARIES TKFillet @@ -476,6 +482,8 @@ else(FREECAD_LIBPACK_USE) TKXDEIGES TKMeshVS ) + set(OCC_INCLUDE_DIR ${OCE_INCLUDE_DIRS}) + CHECK_MINIMUM_OCC_VERSION_HEX(0x060703) if (NOT OCC_MIN_VERSION) set(OCC_OCAF_LIBRARIES @@ -483,15 +491,15 @@ else(FREECAD_LIBPACK_USE) TKAdvTools ) endif() - set(OCC_INCLUDE_DIR ${OCE_INCLUDE_DIRS}) + set(OCC_FOUND ${OCE_FOUND}) else() #look for OpenCASCADE find_package(OpenCasCade) if(NOT OCC_FOUND) message("Neither OpenCASCADE Community Edition nor OpenCasCade were found: will not build CAD modules!") else() - message("-- OpenCASCADE include directory: ${OCC_INCLUDE_PATH}") - message("-- OpenCASCADE shared libraries directory: ${OCC_LIB_PATH}") + message(STATUS "-- OpenCASCADE include directory: ${OCC_INCLUDE_PATH}") + message(STATUS "-- OpenCASCADE shared libraries directory: ${OCC_LIB_PATH}") endif() endif() @@ -586,7 +594,11 @@ else(FREECAD_LIBPACK_USE) foreach(it ${moc_files}) get_filename_component(it ${it} ABSOLUTE) QT4_MAKE_OUTPUT_FILE(${it} moc_ cpp outfile) - QT4_CREATE_MOC_COMMAND(${it} ${outfile} "${moc_flags}" "${moc_options}" "${moc_target}") + ADD_CUSTOM_COMMAND(OUTPUT ${outfile} + COMMAND ${QT_MOC_EXECUTABLE} + ARGS ${moc_options} ${it} -o ${outfile} + MAIN_DEPENDENCY ${it} + ) set(${outfiles} ${${outfiles}} ${outfile}) add_file_dependencies(${it} ${outfile}) endforeach(it) @@ -641,7 +653,7 @@ else(FREECAD_LIBPACK_USE) find_package(Matplotlib) IF(MATPLOTLIB_FOUND) - message("-- matplotlib-${MATPLOTLIB_VERSION} has been found.") + message(STATUS "-- matplotlib-${MATPLOTLIB_VERSION} has been found.") ELSE(MATPLOTLIB_FOUND) message("-- matplotlib not found, Plot module won't be available!") ENDIF(MATPLOTLIB_FOUND) @@ -652,7 +664,7 @@ else(FREECAD_LIBPACK_USE) endif(BUILD_GUI) -endif(FREECAD_LIBPACK_USE) +endif(NOT FREECAD_LIBPACK_USE OR FREECAD_LIBPACK_CHECKFILE_CLBUNDLER) if(BUILD_VR) find_package(Rift) @@ -689,7 +701,7 @@ ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8) IF(MSVC) # set default compiler settings SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /EHa") - SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFC_DEBUG") + SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFC_DEBUG /Zm128") # set default libs SET (CMAKE_C_STANDARD_LIBRARIES "kernel32.lib user32.lib gdi32.lib winspool.lib SHFolder.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib winmm.lib comsupp.lib Ws2_32.lib dbghelp.lib ") set (CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES}") diff --git a/cMake/FindNETGEN.cmake b/cMake/FindNETGEN.cmake index d993fbfad..c93aca0eb 100644 --- a/cMake/FindNETGEN.cmake +++ b/cMake/FindNETGEN.cmake @@ -15,7 +15,10 @@ FIND_LIBRARY(NGLIB_LIBRARIES nglib /usr/lib /usr/local/lib) SET(NETGEN_INCLUDE_DIRS) SET(NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIRS} -DNO_PARALLEL_THREADS -DOCCGEOMETRY) -SET(NETGENDATA /usr/share/netgen/libsrc) +if(NOT NETGENDATA) + SET(NETGENDATA /usr/share/netgen/libsrc) +endif() + FIND_PATH(NETGEN_DIR_csg csg.hpp PATHS ${NETGENDATA}/csg) FIND_PATH(NETGEN_DIR_gen array.hpp PATHS ${NETGENDATA}/general) FIND_PATH(NETGEN_DIR_geom2d geom2dmesh.hpp PATHS ${NETGENDATA}/geom2d) diff --git a/cMake/UseLibPack10x.cmake b/cMake/UseLibPack10x.cmake index e77186da5..7a2f4c014 100644 --- a/cMake/UseLibPack10x.cmake +++ b/cMake/UseLibPack10x.cmake @@ -132,12 +132,8 @@ set(QT_DEBUG_LIBRARIES debug QtWebKitd4.lib ) -set(QT_QTCORE_LIBRARY_DEBUG - debug QtCored4.lib -) - set(QT_QTCORE_LIBRARY - optimized QtCore4.lib + optimized QtCore4.lib debug QtCored4.lib ) set(QT_QT3SUPPORT_LIBRARY_DEBUG diff --git a/cMake/UseLibPack8x.cmake b/cMake/UseLibPack8x.cmake index 4d01bba21..d3ce8a681 100644 --- a/cMake/UseLibPack8x.cmake +++ b/cMake/UseLibPack8x.cmake @@ -137,12 +137,9 @@ set(QT_DEBUG_LIBRARIES debug QtWebKitd4.lib ) -set(QT_QTCORE_LIBRARY_DEBUG - debug QtCored4.lib - ) - set(QT_QTCORE_LIBRARY optimized QtCore4.lib + debug QtCored4.lib ) set(QT_UIC_EXECUTABLE ${FREECAD_LIBPACK_DIR}/bin/uic.exe) diff --git a/cMake/UseLibPack9x.cmake b/cMake/UseLibPack9x.cmake index 1ba79ed3b..99c540d59 100644 --- a/cMake/UseLibPack9x.cmake +++ b/cMake/UseLibPack9x.cmake @@ -140,12 +140,9 @@ set(QT_DEBUG_LIBRARIES debug QtWebKitd4.lib ) -set(QT_QTCORE_LIBRARY_DEBUG - debug QtCored4.lib -) - set(QT_QTCORE_LIBRARY optimized QtCore4.lib + debug QtCored4.lib ) set(QT_QT3SUPPORT_LIBRARY_DEBUG diff --git a/cMake/UseLibPackCLbundler.cmake b/cMake/UseLibPackCLbundler.cmake new file mode 100644 index 000000000..a06b34c88 --- /dev/null +++ b/cMake/UseLibPackCLbundler.cmake @@ -0,0 +1,87 @@ +set(ENV{PATH} "${FREECAD_LIBPACK_DIR};$ENV{PATH}") +set(ENV{CMAKE_PREFIX_PATH} ${FREECAD_LIBPACK_DIR}) + +set(Boost_INCLUDE_DIR ${FREECAD_LIBPACK_DIR}/include CACHE PATH "" FORCE) + +set(OCE_DIR ${FREECAD_LIBPACK_DIR}/lib/cmake CACHE PATH "" FORCE) + +set(SWIG_EXECUTABLE ${FREECAD_LIBPACK_DIR}/bin/swig/swig.exe CACHE FILEPATH "Swig" FORCE) + +set(PYTHON_EXECUTABLE ${FREECAD_LIBPACK_DIR}/bin/python.exe CACHE FILEPATH "" FORCE) +set(PYTHON_LIBRARY ${FREECAD_LIBPACK_DIR}/lib/python27.lib CACHE FILEPATH "" FORCE) +set(PYTHON_DEBUG_LIBRARY ${FREECAD_LIBPACK_DIR}/lib/python27_d.lib CACHE FILEPATH "" FORCE) +set(PYTHON_INCLUDE_DIR ${FREECAD_LIBPACK_DIR}/include/python2.7 CACHE PATH "" FORCE) + +find_library(XERCESC_LIBRARIES xerces-c_3 "${FREECAD_LIBPACK_DIR}/lib") +find_library(XERCESC_DEBUG_LIBRARIES xerces-c_3D "${FREECAD_LIBPACK_DIR}/lib") +set(XERCESC_FOUND TRUE) + +find_library(COIN3D_LIBRARY_RELEASE coin4 "${FREECAD_LIBPACK_DIR}/lib") +find_library(COIN3D_LIBRARY_DEBUG coin4d "${FREECAD_LIBPACK_DIR}/lib") +set(COIN3D_FOUND TRUE) + +set(NETGENDATA ${FREECAD_LIBPACK_DIR}/include/netgen) + +if(FREECAD_USE_FREETYPE) + set(FREETYPE_INCLUDE_DIR_freetype2 ${FREECAD_LIBPACK_DIR}/include/freetype2) +endif(FREECAD_USE_FREETYPE) + +link_directories(${FREECAD_LIBPACK_DIR}/lib) +set(PCL_INCLUDE_DIRS ${FREECAD_LIBPACK_DIR}/include/pcl-1.7) +set(PCL_LIBRARY_DIRS ${FREECAD_LIBPACK_DIR}/lib) + +set(PCL_COMMON_LIBRARIES optimized pcl_common_release debug pcl_common_debug) +set(PCL_FEATURES_LIBRARIES optimized pcl_features_release debug pcl_features_debug) +set(PCL_FILTERS_LIBRARIES optimized pcl_filters_release debug pcl_filters_debug) +set(PCL_IO_LIBRARIES optimized pcl_io_release debug pcl_io_debug) +set(PCL_IO_PLY_LIBRARIES optimized pcl_io_ply_release debug pcl_io_ply_debug) +set(PCL_KDTREE_LIBRARIES optimized pcl_kdtree_release debug pcl_kdtree_debug) +set(PCL_KEYPOINTS_LIBRARIES optimized pcl_keypoints_release debug pcl_keypoints_debug) +set(PCL_ML_LIBRARIES optimized pcl_ml_release debug pcl_ml_debug) +set(PCL_OCTREE_LIBRARIES optimized pcl_octree_release debug pcl_octree_debug) +set(PCL_RECOGNITION_LIBRARIES optimized pcl_recognition_release debug pcl_recognition_debug) +set(PCL_REGISTRATION_LIBRARIES optimized pcl_registration_release debug pcl_registration_debug) +set(PCL_SAMPLE_CONSENSUS_LIBRARIES optimized pcl_sample_consensus_release debug pcl_sample_consensus_debug) +set(PCL_SEARCH_LIBRARIES optimized pcl_search_release debug pcl_search_debug) +set(PCL_SEGMENTATION_LIBRARIES optimized pcl_segmentation_release debug pcl_segmentation_debug) +set(PCL_STEREO_LIBRARIES optimized pcl_stereo_release debug pcl_stereo_debug) +set(PCL_SURFACE_LIBRARIES optimized pcl_surface_release debug pcl_surface_debug) +set(PCL_TRACKING_LIBRARIES optimized pcl_tracking_release debug pcl_tracking_debug) + +set(PCL_LIBRARIES + ${PCL_COMMON_LIBRARIES} + ${PCL_FEATURES_LIBRARIES} + ${PCL_FILTERS_LIBRARIES} + ${PCL_IO_LIBRARIES} + ${PCL_IO_PLY_LIBRARIES} + ${PCL_KDTREE_LIBRARIES} + ${PCL_KEYPOINTS_LIBRARIES} + ${PCL_ML_LIBRARIES} + ${PCL_OCTREE_LIBRARIES} + ${PCL_RECOGNITION_LIBRARIES} + ${PCL_REGISTRATION_LIBRARIES} + ${PCL_SAMPLE_CONSENSUS_LIBRARIES} + ${PCL_SEARCH_LIBRARIES} + ${PCL_SEGMENTATION_LIBRARIES} + ${PCL_STEREO_LIBRARIES} + ${PCL_SURFACE_LIBRARIES} + ${PCL_TRACKING_LIBRARIES} +) +set(PCL_FOUND TRUE) +set(PCL_COMMON_FOUND TRUE) +set(PCL_FEATURES_FOUND TRUE) +set(PCL_FILTERS_FOUND TRUE) +set(PCL_IO_FOUND TRUE) +set(PCL_IO_PLY_FOUND TRUE) +set(PCL_KDTREE_FOUND TRUE) +set(PCL_KEYPOINTS_FOUND TRUE) +set(PCL_ML_FOUND TRUE) +set(PCL_OCTREE_FOUND TRUE) +set(PCL_RECOGNITION_FOUND TRUE) +set(PCL_REGISTRATION_FOUND TRUE) +set(PCL_SAMPLE_CONSENSUS_FOUND TRUE) +set(PCL_SEARCH_FOUND TRUE) +set(PCL_SEGMENTATION_FOUND TRUE) +set(PCL_STEREO_FOUND TRUE) +set(PCL_SURFACE_FOUND TRUE) +set(PCL_TRACKING_FOUND TRUE) diff --git a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Hypothesis.cpp b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Hypothesis.cpp index f743919a7..b57ff17ca 100644 --- a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Hypothesis.cpp +++ b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Hypothesis.cpp @@ -211,13 +211,13 @@ istream & NETGENPlugin_Hypothesis::LoadFrom(istream & load) int is; double val; - isOK = (load >> val); + isOK = !(load >> val).bad(); if (isOK) _maxSize = val; else load.clear(ios::badbit | load.rdstate()); - isOK = (load >> is); + isOK = !(load >> is).bad(); if (isOK) SetFineness((Fineness) is); else @@ -225,32 +225,32 @@ istream & NETGENPlugin_Hypothesis::LoadFrom(istream & load) if (_fineness == UserDefined) { - isOK = (load >> val); + isOK = !(load >> val).bad(); if (isOK) _growthRate = val; else load.clear(ios::badbit | load.rdstate()); - isOK = (load >> val); + isOK = !(load >> val).bad(); if (isOK) _nbSegPerEdge = val; else load.clear(ios::badbit | load.rdstate()); - isOK = (load >> val); + isOK = !(load >> val).bad(); if (isOK) _nbSegPerRadius = val; else load.clear(ios::badbit | load.rdstate()); } - isOK = (load >> is); + isOK = !(load >> is).bad(); if (isOK) _secondOrder = (bool) is; else load.clear(ios::badbit | load.rdstate()); - isOK = (load >> is); + isOK = !(load >> is).bad(); if (isOK) _optimize = (bool) is; else diff --git a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Hypothesis_2D.cpp b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Hypothesis_2D.cpp index 4b8b4aebb..41b19f839 100644 --- a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Hypothesis_2D.cpp +++ b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Hypothesis_2D.cpp @@ -96,7 +96,7 @@ istream & NETGENPlugin_Hypothesis_2D::LoadFrom(istream & load) bool isOK = true; int is; - isOK = (load >> is); + isOK = !(load >> is).bad(); if (isOK) _quadAllowed = (bool) is; else diff --git a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_2D.cpp b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_2D.cpp index b1f359bf0..e45db1082 100644 --- a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_2D.cpp +++ b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_2D.cpp @@ -142,19 +142,19 @@ istream & NETGENPlugin_SimpleHypothesis_2D::LoadFrom(istream & load) bool isOK = true; double val; - isOK = (load >> val); + isOK = !(load >> val).bad(); if (isOK) _nbSegments = (int) val; else load.clear(ios::badbit | load.rdstate()); - isOK = (load >> val); + isOK = !(load >> val).bad(); if (isOK) _segmentLength = val; else load.clear(ios::badbit | load.rdstate()); - isOK = (load >> val); + isOK = !(load >> val).bad(); if (isOK) _area = val; else diff --git a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_3D.cpp b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_3D.cpp index fd799b9cb..b8a18854d 100644 --- a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_3D.cpp +++ b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_3D.cpp @@ -108,7 +108,7 @@ istream & NETGENPlugin_SimpleHypothesis_3D::LoadFrom(istream & load) bool isOK = true; double val; - isOK = (load >> val); + isOK = !(load >> val).bad(); if (isOK) _volume = val; else diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Arithmetic1D.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Arithmetic1D.cpp index 9dd35269e..fc2d00c50 100644 --- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Arithmetic1D.cpp +++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Arithmetic1D.cpp @@ -120,10 +120,10 @@ ostream & StdMeshers_Arithmetic1D::SaveTo(ostream & save) istream & StdMeshers_Arithmetic1D::LoadFrom(istream & load) { bool isOK = true; - isOK = (load >> _begLength); + isOK = !(load >> _begLength).bad(); if (!isOK) load.clear(ios::badbit | load.rdstate()); - isOK = (load >> _endLength); + isOK = !(load >> _endLength).bad(); if (!isOK) load.clear(ios::badbit | load.rdstate()); return load; diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Deflection1D.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Deflection1D.cpp index 6854ed419..5033aa812 100644 --- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Deflection1D.cpp +++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Deflection1D.cpp @@ -119,7 +119,7 @@ ostream & StdMeshers_Deflection1D::SaveTo(ostream & save) istream & StdMeshers_Deflection1D::LoadFrom(istream & load) { - bool isOK = (load >> _value); + bool isOK = !(load >> _value).bad(); if (!isOK) load.clear(ios::badbit | load.rdstate()); return load; diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_LengthFromEdges.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_LengthFromEdges.cpp index 2f6e3c703..5e350d90d 100644 --- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_LengthFromEdges.cpp +++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_LengthFromEdges.cpp @@ -106,7 +106,7 @@ istream & StdMeshers_LengthFromEdges::LoadFrom(istream & load) { bool isOK = true; int a; - isOK = (load >> a); + isOK = !(load >> a).bad(); if (isOK) this->_mode = a; else diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_LocalLength.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_LocalLength.cpp index 54fc1a59f..2ca825caf 100644 --- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_LocalLength.cpp +++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_LocalLength.cpp @@ -148,13 +148,13 @@ istream & StdMeshers_LocalLength::LoadFrom(istream & load) bool isOK = true; double a; - isOK = (load >> a); + isOK = !(load >> a).bad(); if (isOK) this->_length = a; else load.clear(ios::badbit | load.rdstate()); - isOK = (load >> a); + isOK = !(load >> a).bad(); if (isOK) this->_precision = a; else diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MaxElementArea.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MaxElementArea.cpp index 6b7403ddd..cc776a47a 100644 --- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MaxElementArea.cpp +++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MaxElementArea.cpp @@ -114,7 +114,7 @@ istream & StdMeshers_MaxElementArea::LoadFrom(istream & load) { bool isOK = true; double a; - isOK = (load >> a); + isOK = !(load >> a).bad(); if (isOK) this->_maxArea = a; else diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MaxElementVolume.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MaxElementVolume.cpp index 9d6cbb511..d4369c691 100644 --- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MaxElementVolume.cpp +++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MaxElementVolume.cpp @@ -116,7 +116,7 @@ istream & StdMeshers_MaxElementVolume::LoadFrom(istream & load) { bool isOK = true; double a; - isOK = (load >> a); + isOK = !(load >> a).bad(); if (isOK) this->_maxVolume = a; else diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MaxLength.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MaxLength.cpp index 862dd2647..21d1bb012 100644 --- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MaxLength.cpp +++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MaxLength.cpp @@ -159,20 +159,20 @@ istream & StdMeshers_MaxLength::LoadFrom(istream & load) bool isOK = true; double a; - isOK = (load >> a); + isOK = !(load >> a).bad(); if (isOK) _length = a; else load.clear(ios::badbit | load.rdstate()); - isOK = (load >> a); + isOK = !(load >> a).bad(); if (isOK) _preestimated = a; else load.clear(ios::badbit | load.rdstate()); bool pre; - isOK = (load >> pre); + isOK = !(load >> pre).bad(); if ( isOK ) _preestimation = pre; else diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_NumberOfLayers.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_NumberOfLayers.cpp index 554650b6c..187cbae78 100644 --- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_NumberOfLayers.cpp +++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_NumberOfLayers.cpp @@ -118,7 +118,7 @@ ostream & StdMeshers_NumberOfLayers::SaveTo(ostream & save) istream & StdMeshers_NumberOfLayers::LoadFrom(istream & load) { bool isOK = true; - isOK = (load >> _nbLayers); + isOK = !(load >> _nbLayers).bad(); if (!isOK) load.clear(ios::badbit | load.rdstate()); return load; diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_NumberOfSegments.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_NumberOfSegments.cpp index b9dd3284b..30af4fbd5 100644 --- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_NumberOfSegments.cpp +++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_NumberOfSegments.cpp @@ -520,7 +520,7 @@ istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load) int a; // read number of segments - isOK = (load >> a); + isOK = !(load >> a).bad(); if (isOK) _numberOfSegments = a; else @@ -533,7 +533,7 @@ istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load) // (nb.segments, distr.type, some other params.), // we wait here the ditribution type, which is integer double scale_factor; - isOK = (load >> scale_factor); + isOK = !(load >> scale_factor).bad(); a = (int)scale_factor; // try to interprete ditribution type, @@ -554,7 +554,7 @@ istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load) { case DT_Scale: { - isOK = (load >> b); + isOK = !(load >> b).bad(); if (isOK) _scaleFactor = b; else @@ -568,14 +568,14 @@ istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load) break; case DT_TabFunc: { - isOK = (load >> a); + isOK = !(load >> a).bad(); if (isOK) { _table.resize(a, 0.); int i; for (i=0; i < _table.size(); i++) { - isOK = (load >> b); + isOK = !(load >> b).bad(); if (isOK) _table[i] = b; else @@ -594,7 +594,7 @@ istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load) case DT_ExprFunc: { string str; - isOK = (load >> str); + isOK = !(load >> str).bad(); if (isOK) _func = str; else @@ -613,7 +613,7 @@ istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load) if (_distrType == DT_TabFunc || _distrType == DT_ExprFunc) { - isOK = (load >> a); + isOK = !(load >> a).bad(); if (isOK) _convMode = a; else diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_SegmentLengthAroundVertex.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_SegmentLengthAroundVertex.cpp index cadc330a9..7ccdf9568 100644 --- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_SegmentLengthAroundVertex.cpp +++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_SegmentLengthAroundVertex.cpp @@ -117,7 +117,7 @@ istream & StdMeshers_SegmentLengthAroundVertex::LoadFrom(istream & load) { bool isOK = true; double a; - isOK = (load >> a); + isOK = !(load >> a).bad(); if (isOK) this->_length = a; else diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_StartEndLength.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_StartEndLength.cpp index f7b0d2570..01cef56d1 100644 --- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_StartEndLength.cpp +++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_StartEndLength.cpp @@ -121,10 +121,10 @@ ostream & StdMeshers_StartEndLength::SaveTo(ostream & save) istream & StdMeshers_StartEndLength::LoadFrom(istream & load) { bool isOK = true; - isOK = (load >> _begLength); + isOK = !(load >> _begLength).bad(); if (!isOK) load.clear(ios::badbit | load.rdstate()); - isOK = (load >> _endLength); + isOK = !(load >> _endLength).bad(); if (!isOK) load.clear(ios::badbit | load.rdstate()); return load; diff --git a/src/App/Application.cpp b/src/App/Application.cpp index 08011e92c..e7b9af325 100644 --- a/src/App/Application.cpp +++ b/src/App/Application.cpp @@ -45,10 +45,6 @@ #ifdef FC_OS_WIN32 # include -// Doesn't seem to work with VS2010 -# if (defined(_MSC_VER) && (_MSC_VER < 1600)) -# include -# endif #endif @@ -916,7 +912,7 @@ void Application::destructObserver(void) if ( _pConsoleObserverStd ) { Console().DetachObserver(_pConsoleObserverStd); delete _pConsoleObserverStd; - _pConsoleObserverFile = 0; + _pConsoleObserverStd = 0; } } diff --git a/src/Base/CMakeLists.txt b/src/Base/CMakeLists.txt index 3b4bef55d..4087287bd 100644 --- a/src/Base/CMakeLists.txt +++ b/src/Base/CMakeLists.txt @@ -22,11 +22,10 @@ if(MSVC) ${Boost_LIBRARIES} ${Boost_DEBUG_LIBRARIES} debug ${PYTHON_DEBUG_LIBRARY} - optimized ${PYTHON_LIBRARY} + ${PYTHON_LIBRARY} debug ${XERCESC_DEBUG_LIBRARIES} optimized ${XERCESC_LIBRARIES} ${QT_QTCORE_LIBRARY} - ${QT_QTCORE_LIBRARY_DEBUG} ${ZLIB_LIBRARIES} debug MSVCRTD.LIB debug MSVCPRTD.LIB diff --git a/src/Doc/CMakeLists.txt b/src/Doc/CMakeLists.txt index a3dec2a45..e197e2831 100644 --- a/src/Doc/CMakeLists.txt +++ b/src/Doc/CMakeLists.txt @@ -4,7 +4,7 @@ if(DOXYGEN_FOUND) IF (DOXYGEN_DOT_EXECUTABLE) SET(HAVE_DOT YES) ELSE (DOXYGEN_DOT_EXECUTABLE) - message("Note: Doxygen docs will look better with graphviz's dot installed.") + message(STATUS "Note: Doxygen docs will look better with graphviz's dot installed.") SET(HAVE_DOT NO) ENDIF (DOXYGEN_DOT_EXECUTABLE) diff --git a/src/Mod/Drawing/App/PreCompiled.h b/src/Mod/Drawing/App/PreCompiled.h index c225ce530..cb599e286 100644 --- a/src/Mod/Drawing/App/PreCompiled.h +++ b/src/Mod/Drawing/App/PreCompiled.h @@ -114,7 +114,7 @@ #include #include #include -#if OCC_VERSION_HEX < 0x060800 +#if OCC_VERSION_HEX < 0x060700 #include #include #endif diff --git a/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp b/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp index 5211b18fb..04c2a42b2 100755 --- a/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp @@ -415,10 +415,14 @@ std::string ViewProviderFemMesh::getElement(const SoDetail* detail) const // int edge = line_detail->getLineIndex() + 1; // str << "Edge" << edge; //} - else if (detail->getTypeId() == SoPointDetail::getClassTypeId()) { - const SoPointDetail* point_detail = static_cast(detail); - int vertex = vNodeElementIdx[point_detail->getCoordinateIndex()]; - str << "Node" << vertex; + else if (detail->getTypeId() == SoPointDetail::getClassTypeId()) { + const SoPointDetail* point_detail = static_cast(detail); + int idx = point_detail->getCoordinateIndex(); + if (idx < vNodeElementIdx.size()) { + int vertex = vNodeElementIdx[point_detail->getCoordinateIndex()]; + str << "Node" << vertex; + }else + return ""; } } diff --git a/src/Mod/Mesh/App/CMakeLists.txt b/src/Mod/Mesh/App/CMakeLists.txt index 270555614..564ecfaf3 100644 --- a/src/Mod/Mesh/App/CMakeLists.txt +++ b/src/Mod/Mesh/App/CMakeLists.txt @@ -20,7 +20,6 @@ include_directories( set(Mesh_LIBS ${Boost_LIBRARIES} ${QT_QTCORE_LIBRARY} - ${QT_QTCORE_LIBRARY_DEBUG} FreeCADBase FreeCADApp ) diff --git a/src/Mod/Part/App/modelRefine.cpp b/src/Mod/Part/App/modelRefine.cpp index 68dd1d791..d6f3d80ee 100644 --- a/src/Mod/Part/App/modelRefine.cpp +++ b/src/Mod/Part/App/modelRefine.cpp @@ -22,6 +22,7 @@ #include "PreCompiled.h" +#include #include #include #include @@ -64,6 +65,8 @@ using namespace ModelRefine; + + void ModelRefine::getFaceEdges(const TopoDS_Face &face, EdgeVectorType &edges) { TopExp_Explorer it; diff --git a/src/Mod/Robot/App/CMakeLists.txt b/src/Mod/Robot/App/CMakeLists.txt index ee3588c33..eccb50227 100644 --- a/src/Mod/Robot/App/CMakeLists.txt +++ b/src/Mod/Robot/App/CMakeLists.txt @@ -20,20 +20,11 @@ include_directories( ) link_directories(${OCC_LIBRARY_DIR}) -if(MSVC) - set(Robot_LIBS - Part - ${QT_QTCORE_LIBRARY} - ${QT_QTCORE_LIBRARY_DEBUG} - FreeCADApp - ) -else(MSVC) - set(Robot_LIBS - Part - ${QT_QTCORE_LIBRARY} - FreeCADApp - ) -endif(MSVC) +set(Robot_LIBS + Part + ${QT_QTCORE_LIBRARY} + FreeCADApp +) FILE( GLOB KDL_SRCS kdl_cp/[^.]*.cpp ) FILE( GLOB KDL_HPPS kdl_cp/[^.]*.hpp kdl_cp/[^.]*.inl) diff --git a/src/Mod/Sketcher/App/freegcs/Constraints.cpp b/src/Mod/Sketcher/App/freegcs/Constraints.cpp index 97e992ca7..e8de23bee 100644 --- a/src/Mod/Sketcher/App/freegcs/Constraints.cpp +++ b/src/Mod/Sketcher/App/freegcs/Constraints.cpp @@ -22,6 +22,7 @@ #include #include "Constraints.h" +#include namespace GCS {