X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_TestOCC.cpp;h=29c5829a037ff570a181571710499251ddc27286;hb=9e869ede4d8c56262bb20534543c2bf56cd6a91b;hp=9de46957036ce667977f75df99f1c8b66c18f65e;hpb=fd30229f7f40d6cc60670a4d9367324431964961;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_TestOCC.cpp b/src/PartSet/PartSet_TestOCC.cpp index 9de469570..29c5829a0 100644 --- a/src/PartSet/PartSet_TestOCC.cpp +++ b/src/PartSet/PartSet_TestOCC.cpp @@ -7,20 +7,18 @@ #include #include #include -#include #include -#include -#include #include #include +#include #include #include #include static double myTestDelta; -static FeaturePtr myTestFeature; +static ResultPtr myTestObject; #include #include @@ -33,16 +31,17 @@ static FeaturePtr myTestFeature; void PartSet_TestOCC::testSelection(XGUI_Workshop* theWorkshop) { - if (!myTestFeature) { + if (!myTestObject) { PartSet_TestOCC::createTestLine(theWorkshop); PartSet_TestOCC::moveMouse(theWorkshop->viewer()->AISContext(), theWorkshop->viewer()->activeView()); PartSet_TestOCC::changeTestLine(theWorkshop); } - Handle(AIS_InteractiveObject) anIO = theWorkshop->displayer()->getAISObject(myTestFeature); - if (!anIO.IsNull()) { + std::shared_ptr anIO = theWorkshop->displayer()->getAISObject(myTestObject); + if (!anIO->empty()) { theWorkshop->viewer()->AISContext()->MoveTo(0, 0, theWorkshop->viewer()->activeView()); - theWorkshop->viewer()->AISContext()->Select(0, 0, 2500, 2500, theWorkshop->viewer()->activeView()); + theWorkshop->viewer()->AISContext()->Select(0, 0, 2500, 2500, + theWorkshop->viewer()->activeView()); } } @@ -98,7 +97,7 @@ void PartSet_TestOCC::local_selection_change_shape(Handle_AIS_InteractiveContext } void PartSet_TestOCC::local_selection_erase(Handle_AIS_InteractiveContext theContext, - Handle_V3d_View theView) + Handle_V3d_View theView) { // 1. Create shape gp_Pnt aPnt1(100, 100, 0); @@ -129,98 +128,100 @@ void PartSet_TestOCC::createTestLine(XGUI_Workshop* theWorkshop) ModuleBase_Operation* anOperation = theWorkshop->operationMgr()->currentOperation(); PartSet_OperationSketchBase* aPreviewOp = dynamic_cast(anOperation); - FeaturePtr aSketch; + FeaturePtr aSketch; if (aPreviewOp) { // create a line - boost::shared_ptr aDoc = ModelAPI_PluginManager::get()->rootDocument(); - FeaturePtr aFeature = aDoc->addFeature(SKETCH_LINE_KIND); - if (aFeature) // TODO: generate an error if feature was not created + std::shared_ptr aDoc = ModelAPI_Session::get()->moduleDocument(); + FeaturePtr aFeature = aDoc->addFeature(SketchPlugin_Line::ID()); + if (aFeature) // TODO: generate an error if feature was not created aFeature->execute(); - boost::shared_ptr aSketch = - boost::dynamic_pointer_cast(aPreviewOp->sketch()); + std::shared_ptr aSketch = std::dynamic_pointer_cast< + SketchPlugin_Feature>(aPreviewOp->sketch()); aSketch->addSub(aFeature); - PartSet_Tools::setFeaturePoint(aFeature, 100, 100, LINE_ATTR_START); - PartSet_Tools::setFeaturePoint(aFeature, 150, 300, LINE_ATTR_END); + PartSet_Tools::setFeaturePoint(aFeature, 100, 100, SketchPlugin_Line::START_ID()); + PartSet_Tools::setFeaturePoint(aFeature, 150, 300, SketchPlugin_Line::END_ID()); - boost::shared_ptr aPreview = PartSet_OperationSketchBase::preview(aFeature); + std::shared_ptr aPreview = PartSet_OperationSketchBase::preview(aFeature); XGUI_Displayer* aDisplayer = theWorkshop->displayer(); - Handle(AIS_InteractiveObject) anAIS = PartSet_Presentation::createPresentation( - aFeature, aSketch, - aPreview ? aPreview->impl() : TopoDS_Shape(), NULL); - if (!anAIS.IsNull()) - aDisplayer->redisplay(aFeature, anAIS, -1, false); + std::shared_ptr aPrevAIS; + std::shared_ptr aSPFeature = std::dynamic_pointer_cast< + SketchPlugin_Feature>(aFeature); + //std::shared_ptr anAIS = aSPFeature->getAISObject(aPrevAIS); + //if (!anAIS->empty()) + aDisplayer->display(aFeature, false); + //aDisplayer->redisplay(aFeature->firstResult(), anAIS, false); std::list aModes; aModes.push_back(TopAbs_VERTEX); aModes.push_back(TopAbs_EDGE); - aDisplayer->activateInLocalContext(aFeature, aModes, true); + aDisplayer->activateInLocalContext(aFeature->firstResult(), aModes, true); // change the line /*double aDelta = -200; - for (int i = 0; i < 20; i++) { - aDelta = aDelta - i*2; - PartSet_Tools::setFeaturePoint(aFeature, 100+aDelta, 200+aDelta, LINE_ATTR_START); - PartSet_Tools::setFeaturePoint(aFeature, 300+aDelta, 500+aDelta, LINE_ATTR_END); - - boost::shared_ptr aPreview = PartSet_OperationSketchBase::preview(aFeature); - Handle(AIS_InteractiveObject) anAIS = PartSet_Presentation::createPresentation( - aFeature, aSketch, - aPreview ? aPreview->impl() : TopoDS_Shape(), NULL); - if (!anAIS.IsNull()) - aDisplayer->redisplay(aFeature, anAIS, -1, true); - - int aVal = 90; - for (int j = 0; j < 10000000; j++) - aVal = aVal/aVal+aVal*2; - }*/ + for (int i = 0; i < 20; i++) { + aDelta = aDelta - i*2; + PartSet_Tools::setFeaturePoint(aFeature, 100+aDelta, 200+aDelta, SketchPlugin_Line::START_ID()); + PartSet_Tools::setFeaturePoint(aFeature, 300+aDelta, 500+aDelta, SketchPlugin_Line::END_ID()); + + std::shared_ptr aPreview = PartSet_OperationSketchBase::preview(aFeature); + Handle(AIS_InteractiveObject) anAIS = PartSet_Presentation::createPresentation( + aFeature, aSketch, + aPreview ? aPreview->impl() : TopoDS_Shape(), NULL); + if (!anAIS.IsNull()) + aDisplayer->redisplay(aFeature, anAIS, true); + + int aVal = 90; + for (int j = 0; j < 10000000; j++) + aVal = aVal/aVal+aVal*2; + }*/ //std::list aModes; //aModes.clear(); //aModes.push_back(TopAbs_VERTEX); //aModes.push_back(TopAbs_EDGE); //aDisplayer->activateInLocalContext(aFeature, aModes, true); - myTestFeature = aFeature; + myTestObject = aFeature->firstResult(); - std::list aPrs; - aPrs.push_back(XGUI_ViewerPrs(myTestFeature, TopoDS_Shape(), NULL)); - aDisplayer->setSelected(aPrs, true); + QList aFeatureList; + aFeatureList.append(myTestObject); + aDisplayer->setSelected(aFeatureList, true); } } void PartSet_TestOCC::changeTestLine(XGUI_Workshop* theWorkshop) { // change the line - if (!myTestFeature) + if (!myTestObject) return; - FeaturePtr aFeature = myTestFeature; + ResultPtr aFeature = myTestObject; myTestDelta = myTestDelta - 50; double aDelta = myTestDelta; - PartSet_Tools::setFeaturePoint(aFeature, -100/*aDelta*/, -100/*aDelta*/, LINE_ATTR_START); - PartSet_Tools::setFeaturePoint(aFeature, 200/*aDelta*2*/, 200/*aDelta*2*/, LINE_ATTR_END); - boost::shared_ptr aPreview = PartSet_OperationSketchBase::preview(aFeature); - - Handle(AIS_InteractiveObject) aPrevAIS; - FeaturePtr aSketch;//NULL - Handle(AIS_InteractiveObject) anAIS = PartSet_Presentation::createPresentation( - aFeature, aSketch, - aPreview ? aPreview->impl() : TopoDS_Shape(), - aPrevAIS); - if (!anAIS.IsNull()) - theWorkshop->displayer()->redisplay(aFeature, anAIS, -1, true); + // TODO + //PartSet_Tools::setFeaturePoint(aFeature, -100/*aDelta*/, -100/*aDelta*/, LINE_ATTR_START); + //PartSet_Tools::setFeaturePoint(aFeature, 200/*aDelta*2*/, 200/*aDelta*2*/, LINE_ATTR_END); + //std::shared_ptr aPreview = PartSet_OperationSketchBase::preview(aFeature); + + std::shared_ptr aPrevAIS; + std::shared_ptr aSPFeature = std::dynamic_pointer_cast< + SketchPlugin_Feature>(aFeature); + //std::shared_ptr anAIS = aSPFeature->getAISObject(aPrevAIS); + //if (!anAIS->empty()) + theWorkshop->displayer()->display(aFeature, true); + // theWorkshop->displayer()->redisplay(aFeature, anAIS, true); //std::list aModes; //aModes.clear(); //aModes.push_back(TopAbs_VERTEX); //aModes.push_back(TopAbs_EDGE); //aDisplayer->activateInLocalContext(aFeature, aModes, true); - /*std::list aPrs; - aPrs.push_back(XGUI_ViewerPrs(myTestFeature, TopoDS_Shape())); - theWorkshop->displayer()->setSelected(aPrs, true);*/ + /*QFeatureList aFeatureList; + aFeatureList.append(myTestObject); + theWorkshop->displayer()->setSelected(aFeatureList, true);*/ theWorkshop->displayer()->updateViewer(); } @@ -229,4 +230,4 @@ void PartSet_TestOCC::moveMouse(Handle(AIS_InteractiveContext) theContext, Handl { theContext->MoveTo(10, 10, theView); theContext->Select(); -} \ No newline at end of file +}