X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=blobdiff_plain;f=samples%2Fmfc%2Fstandard%2FCommon%2FLengthParamsEdgePage.cpp;h=89c90ce6eb730f9c918523dd2f9e06d278b8d5d3;hp=a29426c93d0a86c3da14028d491dfd1a18acab2e;hb=787ff2408c680462f82753ae698239cf5587fa98;hpb=60bf98ae02fbd90f174ee2561ed8bb8ccab34e21 diff --git a/samples/mfc/standard/Common/LengthParamsEdgePage.cpp b/samples/mfc/standard/Common/LengthParamsEdgePage.cpp index a29426c93d..89c90ce6eb 100644 --- a/samples/mfc/standard/Common/LengthParamsEdgePage.cpp +++ b/samples/mfc/standard/Common/LengthParamsEdgePage.cpp @@ -7,8 +7,7 @@ #include #include -#include -#include +#include #include #include @@ -67,36 +66,39 @@ CButton* CLengthParamsEdgePage::GetButton() void CLengthParamsEdgePage::OnBnClickedChooseEdgeBtn() { - myAISContext->LocalContext()->InitSelected(); + myAISContext->InitSelected(); - if (!myAISContext->LocalContext()->MoreSelected()) + if (!myAISContext->MoreSelected() || + myAISContext->SelectedShape().ShapeType() != TopAbs_EDGE) { - AfxMessageBox ( _T("Choose the vertex and press the button again"), MB_ICONINFORMATION | MB_OK); + AfxMessageBox ( _T("Choose the edge and press the button again"), MB_ICONINFORMATION | MB_OK); return; } - TopoDS_Edge anEdge = TopoDS::Edge(myAISContext->LocalContext()->SelectedShape()); - myAISContext->LocalContext()->ClearSelected(); + TopoDS_Shape aSelShape = myAISContext->SelectedShape(); + const TopoDS_Edge& anEdge = TopoDS::Edge (aSelShape); + + myAISContext->ClearSelected (Standard_False); TopoDS_Vertex aFirstVertex, aSecondVertex; - TopExp::Vertices (anEdge, aFirstVertex, aSecondVertex); + TopExp::Vertices (TopoDS::Edge (anEdge), aFirstVertex, aSecondVertex); - gp_Pnt aP1=BRep_Tool::Pnt (aFirstVertex); - gp_Pnt aP2=BRep_Tool::Pnt (aSecondVertex); - gp_Pnt aP3(aP2.X()+10, aP2.Y()+10, aP2.Z()+10); + gp_Pnt aP1 = BRep_Tool::Pnt (aFirstVertex); + gp_Pnt aP2 = BRep_Tool::Pnt (aSecondVertex); + gp_Pnt aP3 (aP2.X() + 10, aP2.Y() + 10, aP2.Z() + 10); GC_MakePlane aMkPlane (aP1,aP2,aP3); - Handle(Geom_Plane) aPlane = aMkPlane.Value (); + Handle(Geom_Plane) aPlane = aMkPlane.Value(); CDimensionDlg *aDimDlg = (CDimensionDlg*)(GetParentOwner()); - Handle(AIS_LengthDimension) aLenDim = new AIS_LengthDimension (anEdge, aPlane->Pln()); + Handle(PrsDim_LengthDimension) aLenDim = new PrsDim_LengthDimension (TopoDS::Edge (anEdge), aPlane->Pln()); Handle(Prs3d_DimensionAspect) anAspect = new Prs3d_DimensionAspect(); anAspect->MakeArrows3d (Standard_False); anAspect->MakeText3d (aDimDlg->GetTextType()); anAspect->TextAspect()->SetHeight (aDimDlg->GetFontHeight()); anAspect->MakeTextShaded (aDimDlg->IsText3dShaded()); anAspect->SetCommonColor (aDimDlg->GetDimensionColor()); - aLenDim->DimensionAspect()->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed()); + anAspect->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed()); if (aDimDlg->IsUnitsDisplayed()) { aLenDim->SetDisplayUnits (aDimDlg->GetUnits()); @@ -105,8 +107,6 @@ void CLengthParamsEdgePage::OnBnClickedChooseEdgeBtn() aLenDim->SetDimensionAspect (anAspect); aLenDim->SetFlyout (aDimDlg->GetFlyout()); - myAISContext->CloseAllContexts(); - myAISContext->Display (aLenDim); - myAISContext->OpenLocalContext(); - myAISContext->ActivateStandardMode(TopAbs_EDGE); + myAISContext->Display (aLenDim, Standard_True); + myAISContext->Activate (AIS_Shape::SelectionMode (TopAbs_EDGE)); }