#include "LengthParamsEdgesPage.h"
#include "DimensionDlg.h"
#include <AIS_InteractiveContext.hxx>
-#include <AIS_LocalContext.hxx>
-#include <AIS_LengthDimension.hxx>
-#include <AIS_AngleDimension.hxx>
+#include <PrsDim_LengthDimension.hxx>
+#include <PrsDim_AngleDimension.hxx>
#include <GC_MakePlane.hxx>
// CLengthParamsEdgesPage dialog
void CLengthParamsEdgesPage::OnBnClickedEdge1Btn()
{
- // Open local context and choose the edge for length dimensions
- if (!myAISContext->HasOpenedContext())
- {
- myAISContext->OpenLocalContext();
- myAISContext->ActivateStandardMode (TopAbs_EDGE);
- AfxMessageBox (_T("Local context was not opened. Choose the edge and press the button again"),
- MB_ICONINFORMATION | MB_OK);
- return;
- }
+ myAISContext->Activate (AIS_Shape::SelectionMode (TopAbs_EDGE));
- // Now it's ok, local context is opened and edge selection mode is activated
+ // Now it's ok, edge selection mode is activated
// Check if some edge is selected
- myAISContext->LocalContext()->InitSelected();
- if (!myAISContext->LocalContext()->MoreSelected())
+ myAISContext->InitSelected();
+ if (!myAISContext->MoreSelected() ||
+ myAISContext->SelectedShape().ShapeType() != TopAbs_EDGE)
{
AfxMessageBox(_T("Choose the edge and press the button again"),
MB_ICONINFORMATION | MB_OK);
myFirstEdge = TopoDS::Edge (myAISContext->SelectedShape());
- myAISContext->LocalContext()->ClearSelected();
+ myAISContext->ClearSelected (Standard_True);
}
//=======================================================================
void CLengthParamsEdgesPage::OnBnClickedEdge2Btn()
{
- myAISContext->LocalContext()->InitSelected();
- if (!myAISContext->LocalContext()->MoreSelected())
+ myAISContext->InitSelected();
+ if (!myAISContext->MoreSelected() ||
+ myAISContext->SelectedShape().ShapeType() != TopAbs_EDGE)
{
AfxMessageBox (_T("Choose the edge and press the button again"),
MB_ICONINFORMATION | MB_OK);
mySecondEdge = TopoDS::Edge (myAISContext->SelectedShape());
- myAISContext->LocalContext()->ClearSelected();
+ myAISContext->ClearSelected (Standard_True);
// Build plane through three points
BRepAdaptor_Curve aCurve1 (myFirstEdge);
CDimensionDlg *aDimDlg = (CDimensionDlg*)(GetParentOwner());
- myAISContext->CloseAllContexts();
-
Handle(Prs3d_DimensionAspect) anAspect = new Prs3d_DimensionAspect();
anAspect->MakeArrows3d (Standard_False);
anAspect->MakeText3d (aDimDlg->GetTextType());
if (myIsAngleDimension)
{
// Build an angle dimension between two non-parallel edges
- Handle(AIS_AngleDimension) anAngleDim = new AIS_AngleDimension (myFirstEdge, mySecondEdge);
+ Handle(PrsDim_AngleDimension) anAngleDim = new PrsDim_AngleDimension (myFirstEdge, mySecondEdge);
anAngleDim->SetDimensionAspect (anAspect);
anAngleDim->DimensionAspect()->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed());
if (aDimDlg->IsUnitsDisplayed())
}
else
{
- anAngleDim->SetDisplaySpecialSymbol (AIS_DSS_No);
+ anAngleDim->SetDisplaySpecialSymbol (PrsDim_DisplaySpecialSymbol_No);
}
}
anAngleDim->SetFlyout (aDimDlg->GetFlyout());
- myAISContext->Display (anAngleDim);
+ myAISContext->Display (anAngleDim, Standard_True);
}
else
{
- Handle(AIS_LengthDimension) aLenDim = new AIS_LengthDimension (myFirstEdge, mySecondEdge, aPlane->Pln());
+ Handle(PrsDim_LengthDimension) aLenDim = new PrsDim_LengthDimension (myFirstEdge, mySecondEdge, aPlane->Pln());
aLenDim->SetDimensionAspect (anAspect);
aLenDim->SetFlyout (aDimDlg->GetFlyout());
if (aDimDlg->IsUnitsDisplayed())
aLenDim->SetDisplayUnits (aDimDlg->GetUnits());
}
- myAISContext->Display (aLenDim);
+ myAISContext->Display (aLenDim, Standard_True);
}
- myAISContext->OpenLocalContext();
- myAISContext->ActivateStandardMode (TopAbs_EDGE);
+ myAISContext->Activate (AIS_Shape::SelectionMode (TopAbs_EDGE));
}