Salome HOME
Merge remote-tracking branch 'remotes/origin/master' into SketchSolver
authorazv <azv@opencascade.com>
Thu, 5 Jun 2014 11:09:28 +0000 (15:09 +0400)
committerazv <azv@opencascade.com>
Thu, 5 Jun 2014 11:09:28 +0000 (15:09 +0400)
Conflicts:
src/GeomAlgoAPI/CMakeLists.txt

1  2 
src/GeomAlgoAPI/CMakeLists.txt
src/SketchPlugin/SketchPlugin_Sketch.cpp

index 548f7002f059005ef606fec6c162634eac72afb6,181bf09de2c37299ac71e89a35429ae18e2794a9..5822d61fb15faafa03f551fd693e723608ea1b04
@@@ -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
index a0adedd05eebb6a97b46f789ec3624a41713aaac,d2c111990d926303e5c6197e3655ce4cc2552572..bc9d72735210f7e0e9647aa93afa68a1cb16f5a7
@@@ -10,7 -10,6 +10,7 @@@
  #include <GeomDataAPI_Point.h>
  #include <GeomAlgoAPI_FaceBuilder.h>
  #include <GeomAlgoAPI_CompoundBuilder.h>
 +#include <GeomAlgoAPI_SketchBuilder.h>
  
  using namespace std;
  
@@@ -32,38 -31,6 +32,38 @@@ void SketchPlugin_Sketch::initAttribute
  
  void SketchPlugin_Sketch::execute() 
  {
 +  if (!data()->isValid())
 +    return ;
 +  boost::shared_ptr<ModelAPI_AttributeRefList> aRefList =
 +    boost::dynamic_pointer_cast<ModelAPI_AttributeRefList>(data()->attribute(SKETCH_ATTR_FEATURES));
 +
 +  boost::shared_ptr<GeomDataAPI_Dir> aDirX = 
 +    boost::dynamic_pointer_cast<GeomDataAPI_Dir>(data()->attribute(SKETCH_ATTR_DIRX));
 +  boost::shared_ptr<GeomDataAPI_Dir> aDirY = 
 +    boost::dynamic_pointer_cast<GeomDataAPI_Dir>(data()->attribute(SKETCH_ATTR_DIRY));
 +  boost::shared_ptr<GeomDataAPI_Dir> aNorm = 
 +    boost::dynamic_pointer_cast<GeomDataAPI_Dir>(data()->attribute(SKETCH_ATTR_NORM));
 +
 +  std::list<boost::shared_ptr<ModelAPI_Feature> > aFeatures = aRefList->list();
 +  if (aFeatures.empty())
 +    return ;
 +
 +  std::list<boost::shared_ptr<ModelAPI_Feature> >::const_iterator anIt = aFeatures.begin(),
 +                                                                  aLast = aFeatures.end();
 +
 +  boost::shared_ptr<SketchPlugin_Feature> aFeature;
 +  std::list< boost::shared_ptr<GeomAPI_Shape> > aFeaturesPreview;
 +  for (; anIt != aLast; anIt++) {
 +    aFeature = boost::dynamic_pointer_cast<SketchPlugin_Feature>(*anIt);
 +    boost::shared_ptr<GeomAPI_Shape> aPreview = aFeature->preview();
 +    if (aPreview)
 +      aFeaturesPreview.push_back(aPreview);
 +  }
 +
 +  std::list< boost::shared_ptr<GeomAPI_Shape> > aLoops;
 +  std::list< boost::shared_ptr<GeomAPI_Shape> > aWires;
 +  GeomAlgoAPI_SketchBuilder::createFaces(aDirX->dir(), aDirY->dir(), aNorm->dir(),
 +                                         aFeaturesPreview, aLoops, aWires);
  }
  
  const boost::shared_ptr<GeomAPI_Shape>& SketchPlugin_Sketch::preview()
@@@ -83,7 -50,7 +83,7 @@@
    return getPreview();
  }
  
- const void SketchPlugin_Sketch::addSub(const boost::shared_ptr<ModelAPI_Feature>& theFeature)
+ const void SketchPlugin_Sketch::addSub(const FeaturePtr& theFeature)
  {
    boost::dynamic_pointer_cast<SketchPlugin_Feature>(theFeature)->setSketch(this);
    data()->reflist(SKETCH_ATTR_FEATURES)->append(theFeature);