From: azv Date: Thu, 5 Jun 2014 11:09:28 +0000 (+0400) Subject: Merge remote-tracking branch 'remotes/origin/master' into SketchSolver X-Git-Tag: V_0.4.4~281^2~3^2^2~2 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=ae347a8a8014a15245199a3bb603413628e3f7d4;hp=-c;p=modules%2Fshaper.git Merge remote-tracking branch 'remotes/origin/master' into SketchSolver Conflicts: src/GeomAlgoAPI/CMakeLists.txt --- ae347a8a8014a15245199a3bb603413628e3f7d4 diff --combined src/GeomAlgoAPI/CMakeLists.txt index 548f7002f,181bf09de..5822d61fb --- a/src/GeomAlgoAPI/CMakeLists.txt +++ b/src/GeomAlgoAPI/CMakeLists.txt @@@ -1,5 -1,4 +1,4 @@@ FIND_PACKAGE(SWIG REQUIRED) - INCLUDE(FindCAS) INCLUDE(${SWIG_USE_FILE}) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) @@@ -9,14 -8,14 +8,16 @@@ SET(PROJECT_HEADER GeomAlgoAPI_CompoundBuilder.h GeomAlgoAPI_FaceBuilder.h GeomAlgoAPI_EdgeBuilder.h + GeomAlgoAPI_PointBuilder.h + GeomAlgoAPI_SketchBuilder.h ) SET(PROJECT_SOURCES GeomAlgoAPI_CompoundBuilder.cpp GeomAlgoAPI_FaceBuilder.cpp GeomAlgoAPI_EdgeBuilder.cpp + GeomAlgoAPI_PointBuilder.cpp + GeomAlgoAPI_SketchBuilder.cpp ) ADD_DEFINITIONS(-DGEOMALGOAPI_EXPORTS ${CAS_DEFINITIONS}) @@@ -32,7 -31,7 +33,7 @@@ INCLUDE_DIRECTORIES ${CAS_INCLUDE_DIRS} ) -TARGET_LINK_LIBRARIES(GeomAlgoAPI ${PROJECT_LIBRARIES} GeomAPI ${CAS_KERNEL} ${CAS_MODELER}) +TARGET_LINK_LIBRARIES(GeomAlgoAPI ${PROJECT_LIBRARIES} GeomAPI ${CAS_TKBool} ${CAS_TKBO}) SET(SWIG_SCRIPTS ${CMAKE_CURRENT_BINARY_DIR}/GeomAlgoAPI.py diff --combined src/SketchPlugin/SketchPlugin_Sketch.cpp index a0adedd05,d2c111990..bc9d72735 --- a/src/SketchPlugin/SketchPlugin_Sketch.cpp +++ b/src/SketchPlugin/SketchPlugin_Sketch.cpp @@@ -10,7 -10,6 +10,7 @@@ #include #include #include +#include using namespace std; @@@ -32,38 -31,6 +32,38 @@@ void SketchPlugin_Sketch::initAttribute void SketchPlugin_Sketch::execute() { + if (!data()->isValid()) + return ; + boost::shared_ptr aRefList = + boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_FEATURES)); + + boost::shared_ptr aDirX = + boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_DIRX)); + boost::shared_ptr aDirY = + boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_DIRY)); + boost::shared_ptr aNorm = + boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_NORM)); + + std::list > aFeatures = aRefList->list(); + if (aFeatures.empty()) + return ; + + std::list >::const_iterator anIt = aFeatures.begin(), + aLast = aFeatures.end(); + + boost::shared_ptr aFeature; + std::list< boost::shared_ptr > aFeaturesPreview; + for (; anIt != aLast; anIt++) { + aFeature = boost::dynamic_pointer_cast(*anIt); + boost::shared_ptr aPreview = aFeature->preview(); + if (aPreview) + aFeaturesPreview.push_back(aPreview); + } + + std::list< boost::shared_ptr > aLoops; + std::list< boost::shared_ptr > aWires; + GeomAlgoAPI_SketchBuilder::createFaces(aDirX->dir(), aDirY->dir(), aNorm->dir(), + aFeaturesPreview, aLoops, aWires); } const boost::shared_ptr& SketchPlugin_Sketch::preview() @@@ -83,7 -50,7 +83,7 @@@ return getPreview(); } - const void SketchPlugin_Sketch::addSub(const boost::shared_ptr& theFeature) + const void SketchPlugin_Sketch::addSub(const FeaturePtr& theFeature) { boost::dynamic_pointer_cast(theFeature)->setSketch(this); data()->reflist(SKETCH_ATTR_FEATURES)->append(theFeature);