/////////////////////////////////////////////////////////////////////////////
// CSelectionDialog dialog
-CSelectionDialog::CSelectionDialog(CHLRDoc* aDoc,CWnd* pParent /*=NULL*/)
- : CDialog(CSelectionDialog::IDD, pParent)
+CSelectionDialog::CSelectionDialog (CHLRDoc* aDoc,CWnd* pParent /*=NULL*/)
+: CDialog(CSelectionDialog::IDD, pParent)
{
- myDoc = aDoc;
- myDisplay = false;
- //{{AFX_DATA_INIT(CSelectionDialog)
- m_Algo = 0;
- m_DisplayMode = 0;
- m_NbIsos = 2;
- m_DrawHiddenLine = TRUE;
- m_DegeneratedModeOn = TRUE;
- //}}AFX_DATA_INIT
+ myDoc = aDoc;
+ myIsDisplayed = false;
+ //{{AFX_DATA_INIT(CSelectionDialog)
+ m_Algo = 0;
+ m_DisplayMode = 0;
+ m_NbIsos = 2;
+ m_DrawHiddenLine = TRUE;
+ m_HlrModeIsOn = TRUE;
+ //}}AFX_DATA_INIT
}
-void CSelectionDialog::DoDataExchange(CDataExchange* pDX)
+void CSelectionDialog::DoDataExchange (CDataExchange* pDX)
{
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CSelectionDialog)
- DDX_Radio(pDX, IDC_PolyAlgo, m_Algo);
- DDX_Radio(pDX, IDC_DisplayDefault, m_DisplayMode);
- DDX_Text(pDX, IDC_EDIT_NBIsos, m_NbIsos);
- DDX_Check(pDX, IDC_DrawHiddenLine, m_DrawHiddenLine);
- DDX_Check(pDX, IDC_DegeneratedMode, m_DegeneratedModeOn);
- //}}AFX_DATA_MAP
+ CDialog::DoDataExchange(pDX);
+ //{{AFX_DATA_MAP(CSelectionDialog)
+ DDX_Radio(pDX, IDC_PolyAlgo, m_Algo);
+ DDX_Radio(pDX, IDC_DisplayDefault, m_DisplayMode);
+ DDX_Text(pDX, IDC_EDIT_NBIsos, m_NbIsos);
+ DDX_Check(pDX, IDC_DrawHiddenLine, m_DrawHiddenLine);
+ DDX_Check(pDX, IDC_HlrModeIsOn, m_HlrModeIsOn);
+ //}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSelectionDialog, CDialog)
- //{{AFX_MSG_MAP(CSelectionDialog)
- ON_BN_CLICKED(ID_GetShape, OnGetShape)
- ON_BN_CLICKED(IDC_DisplayDefault, OnDisplayDefault)
- ON_BN_CLICKED(IDC_VIsoParametrics, OnVIsoParametrics)
- ON_BN_CLICKED(IDC_VApparentContour, OnVApparentContour)
- ON_BN_CLICKED(IDC_VSewingEdges, OnVSewingEdges)
- ON_BN_CLICKED(IDC_VsharpEdges, OnVsharpEdges)
- ON_BN_CLICKED(IDC_VsmoothEdges, OnVsmoothEdges)
- ON_BN_CLICKED(IDC_HsharpEdges, OnHsharpEdges)
- ON_BN_CLICKED(IDC_HsmoothEdges, OnHsmoothEdges)
- ON_BN_CLICKED(IDC_HSewingEdges, OnHSewingEdges)
- ON_BN_CLICKED(IDC_HIsoParametrics, OnHIsoParametrics)
- ON_BN_CLICKED(IDC_HApparentContour, OnHApparentContour)
- ON_EN_CHANGE(IDC_EDIT_NBIsos, OnChangeEDITNBIsos)
- ON_BN_CLICKED(IDC_Algo, OnAlgo)
- ON_BN_CLICKED(IDC_PolyAlgo, OnPolyAlgo)
- ON_BN_CLICKED(ID_Update2D, OnUpdate2D)
- ON_BN_CLICKED(IDC_TopView, OnTopView)
- ON_BN_CLICKED(IDC_BottomView, OnBottomView)
- ON_BN_CLICKED(IDC_LeftView, OnLeftView)
- ON_BN_CLICKED(IDC_RightView, OnRightView)
- ON_BN_CLICKED(IDC_FrontView, OnFrontView)
- ON_BN_CLICKED(IDC_BackView, OnBackView)
- ON_BN_CLICKED(IDC_AxoView, OnAxoView)
- ON_WM_LBUTTONDOWN()
- ON_WM_LBUTTONUP()
- ON_WM_RBUTTONDOWN()
- ON_WM_RBUTTONUP()
- ON_WM_MOUSEMOVE()
- ON_BN_CLICKED(IDC_DrawHiddenLine, OnDrawHiddenLine)
- ON_BN_CLICKED(IDC_DegeneratedMode, OnDegeneratedMode)
- ON_WM_DRAWITEM()
- ON_WM_PAINT()
- //}}AFX_MSG_MAP
+ //{{AFX_MSG_MAP(CSelectionDialog)
+ ON_BN_CLICKED(ID_GetShape, OnGetSelectedShapes)
+ ON_BN_CLICKED(IDC_DisplayDefault, OnDisplayDefault)
+ ON_BN_CLICKED(IDC_VIsoParametrics, OnVIsoParametrics)
+ ON_BN_CLICKED(IDC_VApparentContour, OnVApparentContour)
+ ON_BN_CLICKED(IDC_VSewingEdges, OnVSewingEdges)
+ ON_BN_CLICKED(IDC_VsharpEdges, OnVsharpEdges)
+ ON_BN_CLICKED(IDC_VsmoothEdges, OnVsmoothEdges)
+ ON_BN_CLICKED(IDC_HsharpEdges, OnHsharpEdges)
+ ON_BN_CLICKED(IDC_HsmoothEdges, OnHsmoothEdges)
+ ON_BN_CLICKED(IDC_HSewingEdges, OnHSewingEdges)
+ ON_BN_CLICKED(IDC_HIsoParametrics, OnHIsoParametrics)
+ ON_BN_CLICKED(IDC_HApparentContour, OnHApparentContour)
+ ON_EN_CHANGE(IDC_EDIT_NBIsos, OnChangeEDITNBIsos)
+ ON_BN_CLICKED(IDC_Algo, OnAlgo)
+ ON_BN_CLICKED(IDC_PolyAlgo, OnPolyAlgo)
+ ON_BN_CLICKED(ID_Update2D, OnUpdate2D)
+ ON_BN_CLICKED(IDC_TopView, OnTopView)
+ ON_BN_CLICKED(IDC_BottomView, OnBottomView)
+ ON_BN_CLICKED(IDC_LeftView, OnLeftView)
+ ON_BN_CLICKED(IDC_RightView, OnRightView)
+ ON_BN_CLICKED(IDC_FrontView, OnFrontView)
+ ON_BN_CLICKED(IDC_BackView, OnBackView)
+ ON_BN_CLICKED(IDC_AxoView, OnAxoView)
+ ON_WM_LBUTTONDOWN()
+ ON_WM_LBUTTONUP()
+ ON_WM_RBUTTONDOWN()
+ ON_WM_RBUTTONUP()
+ ON_WM_MOUSEMOVE()
+ ON_BN_CLICKED(IDC_DrawHiddenLine, OnDrawHiddenLine)
+ ON_BN_CLICKED(IDC_HlrModeIsOn, OnHlrMode)
+ ON_WM_DRAWITEM()
+ ON_WM_PAINT()
+ //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSelectionDialog message handlers
-BOOL CSelectionDialog::OnInitDialog()
+BOOL CSelectionDialog::OnInitDialog()
{
- CDialog::OnInitDialog();
-
- VERIFY(TopView.AutoLoad(IDC_TopView, this));
- VERIFY(BottomView.AutoLoad(IDC_BottomView, this)) ;
- VERIFY(LeftView .AutoLoad(IDC_LeftView , this)) ;
- VERIFY(RightView .AutoLoad(IDC_RightView , this)) ;
- VERIFY(FrontView .AutoLoad(IDC_FrontView , this)) ;
- VERIFY(BackView .AutoLoad(IDC_BackView , this)) ;
- VERIFY(AxoView .AutoLoad(IDC_AxoView , this)) ;
-
- // get the View Window position to managed mouse move
- CRect BoxRect,ViewRect;
- GetWindowRect(BoxRect);
- CWnd * TheViewerWindow = GetDlgItem(IDC_DUMMYBUTTON);
- TheViewerWindow->GetWindowRect(ViewRect);
- myPosMinX = ViewRect.TopLeft().x - BoxRect.TopLeft().x;
- myPosMaxX = ViewRect.Width()+myPosMinX;
- myPosMinY = ViewRect.TopLeft().y - BoxRect.TopLeft().y;
- myPosMaxY = myPosMinY + ViewRect.Height();
-
- ShowHideButton(Standard_False);
- OnDisplay(true);
-
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
+ CDialog::OnInitDialog();
+
+ VERIFY(TopView.AutoLoad (IDC_TopView, this));
+ VERIFY(BottomView.AutoLoad (IDC_BottomView, this)) ;
+ VERIFY(LeftView .AutoLoad (IDC_LeftView , this)) ;
+ VERIFY(RightView .AutoLoad (IDC_RightView , this)) ;
+ VERIFY(FrontView .AutoLoad (IDC_FrontView , this)) ;
+ VERIFY(BackView .AutoLoad (IDC_BackView , this)) ;
+ VERIFY(AxoView .AutoLoad (IDC_AxoView , this)) ;
+
+ // get the View Window position to managed mouse move
+ CRect BoxRect,ViewRect;
+ GetWindowRect (BoxRect);
+ CWnd * TheViewerWindow = GetDlgItem (IDC_HlrDlgView);
+ TheViewerWindow->GetWindowRect (ViewRect);
+ myPosMinX = ViewRect.TopLeft().x - BoxRect.TopLeft().x;
+ myPosMaxX = ViewRect.Width() + myPosMinX;
+ myPosMinY = ViewRect.TopLeft().y - BoxRect.TopLeft().y;
+ myPosMaxY = myPosMinY + ViewRect.Height();
+
+ ShowHideButton (Standard_False);
+ OnDisplay (true);
+
+ // return TRUE unless you set the focus to a control
+ // EXCEPTION: OCX Property Pages should return FALSE
+ return TRUE;
}
-void CSelectionDialog::OnDisplay(bool isFit)
+void CSelectionDialog::OnDisplay (bool isFit)
{
- GetDlgItem(IDC_DUMMYBUTTON)->SetRedraw(true);
- if(!myDisplay) {
- Handle(Graphic3d_GraphicDriver) aGraphicDriver =
- ((CHLRApp*)AfxGetApp())->GetGraphicDriver();
-
- myActiveViewer = new V3d_Viewer(aGraphicDriver,(short *) "Visu3D");
- myActiveViewer->SetDefaultLights();
- myActiveViewer->SetLightOn();
- myActiveView = myActiveViewer->CreateView();
-
- Handle(WNT_Window) aWNTWindow = new WNT_Window(GetDlgItem(IDC_DUMMYBUTTON)->GetSafeHwnd(),
- Quantity_NOC_GRAY);
-
- if (m_DegeneratedModeOn) myActiveView->SetDegenerateModeOn();
- myActiveView->SetWindow(aWNTWindow);
-
- myInteractiveContext = new AIS_InteractiveContext(myActiveViewer);
-
- // TRIHEDRON
- Handle(Geom_Axis2Placement) aTrihedronAxis=new Geom_Axis2Placement(gp::XOY());
- myTrihedron=new AIS_Trihedron(aTrihedronAxis);
-
- myInteractiveContext->Display(myTrihedron);
- }
- if(isFit) {
- myActiveView->ZFitAll();
- myActiveView->FitAll();
- }
- myActiveView->Redraw();
- myDisplay = Standard_True;
- GetDlgItem(IDC_DUMMYBUTTON)->SetRedraw(false);
+ // GetDlgItem(IDC_HlrDlgView)->SetRedraw() wrapping of this method makes view blinking,
+ // but displaying of big models may be faster.
+ //GetDlgItem(IDC_HlrDlgView)->SetRedraw(true);
+ if (!myIsDisplayed)
+ {
+ Handle(Graphic3d_GraphicDriver) aGraphicDriver =
+ ((CHLRApp*)AfxGetApp())->GetGraphicDriver();
+
+ myActiveViewer = new V3d_Viewer (aGraphicDriver, (Standard_ExtString )"Visu3D");
+ myActiveViewer->SetDefaultLights();
+ myActiveViewer->SetLightOn();
+ myActiveView = myActiveViewer->CreateView();
+
+ Handle(WNT_Window) aWNTWindow = new WNT_Window (GetDlgItem (IDC_HlrDlgView)->GetSafeHwnd(),
+ Quantity_NOC_GRAY);
+ myActiveView->SetComputedMode (m_HlrModeIsOn != 0);
+ myActiveView->SetWindow(aWNTWindow);
+
+ myInteractiveContext = new AIS_InteractiveContext (myActiveViewer);
+
+ // TRIHEDRON
+ Handle(Geom_Axis2Placement) aTrihedronAxis = new Geom_Axis2Placement (gp::XOY());
+ myTrihedron = new AIS_Trihedron (aTrihedronAxis);
+
+ myInteractiveContext->Display (myTrihedron);
+ myIsDisplayed = Standard_True;
+ }
+ if(isFit)
+ {
+ myActiveView->ZFitAll();
+ myActiveView->FitAll();
+ }
+
+ myActiveView->Redraw();
+ //GetDlgItem (IDC_HlrDlgView)->SetRedraw (false);
}
-void CSelectionDialog::SetTitle(CString & aTitle)
+void CSelectionDialog::SetTitle (const CString & aTitle)
{
- SetWindowText(aTitle);
+ SetWindowText (aTitle);
}
-void CSelectionDialog::OnGetShape()
+void CSelectionDialog::UpdateViews()
{
- UpdateData(true);
- myDoc->GetInteractiveContext2D()->EraseAll();
- myDisplayableShape = new ISession2D_Shape( );
- UpdateProjector();
- myDisplayableShape->SetNbIsos(m_NbIsos);
+ // Clear HLR dialog view
+ myInteractiveContext->RemoveAll();
+ myInteractiveContext->Display (myTrihedron);
- myInteractiveContext->EraseAll(Standard_False);
- myInteractiveContext->Display(myTrihedron);
+ UpdateProjector();
+ // Display chosen shapes in the HLR dialog view.
Standard_Boolean OneOrMoreFound = Standard_False;
for (myDoc->GetAISContext()->InitCurrent();
- myDoc->GetAISContext()->MoreCurrent ();
- myDoc->GetAISContext()->NextCurrent ())
+ myDoc->GetAISContext()->MoreCurrent();
+ myDoc->GetAISContext()->NextCurrent())
{
- Handle(AIS_Shape) anAISShape = Handle(AIS_Shape)::DownCast(myDoc->GetAISContext()->Current());
-
+ Handle(AIS_Shape) anAISShape = Handle(AIS_Shape)::DownCast (myDoc->GetAISContext()->Current());
if (!anAISShape.IsNull())
- {
- OneOrMoreFound = Standard_True;
- TopoDS_Shape aShape = anAISShape->Shape();
- myDisplayableShape->Add( aShape );
- myInteractiveContext->Display(anAISShape);
- }
- }
+ {
+ OneOrMoreFound = Standard_True;
+ myInteractiveContext->Display (anAISShape);
+ }
+ }
- Standard_Integer DisplayMode = m_DisplayMode;
- if (m_Algo == 1) DisplayMode+=100;
- if (!m_DrawHiddenLine) DisplayMode+=1000;
+ // Apply HLR to chosen shapes and display result into the 2d view.
+ Apply();
+ // Update viewer
+ myDoc->FitAll2DViews (Standard_False);
+ // Check the selection: if no object : disable all possiblity.
+ ShowHideButton (OneOrMoreFound);
+ OnDisplay (true);
+}
- myDoc->GetInteractiveContext2D()->Display(myDisplayableShape, // object
- DisplayMode, // display mode
- DisplayMode, // selection mode
- Standard_True); // Redraw
+void CSelectionDialog::OnGetSelectedShapes()
+{
+ // Create new displayable shape.
+ myDisplayableShape = new ISession2D_Shape();
+ UpdateProjector();
+ myDisplayableShape->SetNbIsos (m_NbIsos);
- myDoc->FitAll2DViews(Standard_False); // Update Viewer
+ // Clear HLR dialog view
+ myInteractiveContext->RemoveAll();
+ myInteractiveContext->Display (myTrihedron);
+ Standard_Boolean OneOrMoreFound = Standard_False;
+ for (myDoc->GetAISContext()->InitCurrent();
+ myDoc->GetAISContext()->MoreCurrent();
+ myDoc->GetAISContext()->NextCurrent())
+ {
+ Handle(AIS_Shape) anAISShape = Handle(AIS_Shape)::DownCast (myDoc->GetAISContext()->Current());
- // check the selection :
- // if no object : disable all possiblity!!
- ShowHideButton(OneOrMoreFound);
- OnDisplay(true);
+ if (!anAISShape.IsNull())
+ {
+ OneOrMoreFound = Standard_True;
+ TopoDS_Shape aShape = anAISShape->Shape();
+ myDisplayableShape->Add (aShape);
+ Handle(AIS_Shape) aSelectedShape = new AIS_Shape (aShape);
+ myInteractiveContext->Display (aSelectedShape);
+ }
+ }
+
+ // Apply HLR to chosen shapes and display result into the 2d view.
+ Apply();
+ // Update viewer
+ myDoc->FitAll2DViews (Standard_False);
+
+ // Check the selection: if no object : disable all possiblity.
+ ShowHideButton (OneOrMoreFound);
+ OnDisplay (true);
}
-void CSelectionDialog::Apply()
+void CSelectionDialog::Apply()
{
- SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
- myDoc->GetInteractiveContext2D()->EraseAll(/*Standard_False*/);
- UpdateData(true);
+ SetCursor(AfxGetApp()->LoadStandardCursor (IDC_WAIT));
+ myDoc->GetInteractiveContext2D()->RemoveAll();
+ UpdateData (true);
- Standard_Integer DisplayMode = m_DisplayMode;
- if (m_Algo == 1) DisplayMode+=100;
+ Standard_Integer aDisplayMode = m_DisplayMode;
- if (!m_DrawHiddenLine) DisplayMode+=1000;
+ if (m_Algo == 1)
+ {
+ aDisplayMode += 100;
+ }
- myDoc->GetInteractiveContext2D()->Display(myDisplayableShape, // object
- DisplayMode,
- DisplayMode,
- Standard_True); // Redraw
+ if (!m_DrawHiddenLine)
+ {
+ aDisplayMode += 1000;
+ }
- SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
+ myDoc->GetInteractiveContext2D()->Display (myDisplayableShape, // object
+ aDisplayMode,
+ aDisplayMode,
+ Standard_True); // Redraw
+
+ SetCursor(AfxGetApp()->LoadStandardCursor (IDC_ARROW));
}
void CSelectionDialog::UpdateProjector()
{
- V3d_Coordinate DX,DY,DZ,XAt,YAt,ZAt, Vx,Vy,Vz ;
- myActiveView->Proj(DX,DY,DZ);
- myActiveView->At(XAt,YAt,ZAt);
- myActiveView->Up( Vx,Vy,Vz );
- OnDisplay(false);
- Standard_Boolean IsPerspective = (myActiveView->Type() == V3d_PERSPECTIVE);
- Quantity_Length aFocus = 1;
- Prs3d_Projector aPrs3dProjector(IsPerspective,aFocus,DX,DY,DZ,XAt,YAt,ZAt,Vx,Vy,Vz);
- HLRAlgo_Projector aProjector = aPrs3dProjector.Projector();
-
- if (myDisplayableShape.IsNull()) return;
- myDisplayableShape->SetProjector(aProjector);
+ V3d_Coordinate DX,DY,DZ,XAt,YAt,ZAt, Vx,Vy,Vz ;
+ myActiveView->Proj(DX,DY,DZ);
+ myActiveView->At(XAt,YAt,ZAt);
+ myActiveView->Up( Vx,Vy,Vz );
+ OnDisplay(false);
+ Standard_Boolean IsPerspective = (myActiveView->Type() == V3d_PERSPECTIVE);
+ Quantity_Length aFocus = 1;
+ Prs3d_Projector aPrs3dProjector(IsPerspective,aFocus,DX,DY,DZ,XAt,YAt,ZAt,Vx,Vy,Vz);
+ HLRAlgo_Projector aProjector = aPrs3dProjector.Projector();
+
+ if (myDisplayableShape.IsNull()) return;
+ myDisplayableShape->SetProjector(aProjector);
}
void CSelectionDialog::ShowHideButton(Standard_Boolean EnableButton)
{
- UpdateData(true);
-
- GetDlgItem(ID_Update2D )->EnableWindow(EnableButton);
- GetDlgItem(IDC_DisplayDefault )->EnableWindow(EnableButton);
- GetDlgItem(IDC_PolyAlgo )->EnableWindow(EnableButton);
- GetDlgItem(IDC_Algo )->EnableWindow(EnableButton);
+ UpdateData(true);
- GetDlgItem(IDC_VsharpEdges )->EnableWindow(EnableButton);
- GetDlgItem(IDC_VsmoothEdges )->EnableWindow(EnableButton);
- GetDlgItem(IDC_VSewingEdges )->EnableWindow(EnableButton);
- GetDlgItem(IDC_VApparentContour )->EnableWindow(EnableButton);
- GetDlgItem(IDC_VIsoParametrics )->EnableWindow(EnableButton);
+ GetDlgItem(ID_Update2D )->EnableWindow(EnableButton);
+ GetDlgItem(IDC_DisplayDefault )->EnableWindow(EnableButton);
+ GetDlgItem(IDC_PolyAlgo )->EnableWindow(EnableButton);
+ GetDlgItem(IDC_Algo )->EnableWindow(EnableButton);
- GetDlgItem(IDC_DrawHiddenLine )->EnableWindow(EnableButton);
+ GetDlgItem(IDC_VsharpEdges )->EnableWindow(EnableButton);
+ GetDlgItem(IDC_VsmoothEdges )->EnableWindow(EnableButton);
+ GetDlgItem(IDC_VSewingEdges )->EnableWindow(EnableButton);
+ GetDlgItem(IDC_VApparentContour )->EnableWindow(EnableButton);
+ GetDlgItem(IDC_VIsoParametrics )->EnableWindow(EnableButton);
- GetDlgItem(IDC_HsmoothEdges )->EnableWindow(EnableButton && m_DrawHiddenLine);
- GetDlgItem(IDC_HSewingEdges )->EnableWindow(EnableButton && m_DrawHiddenLine);
- GetDlgItem(IDC_HApparentContour )->EnableWindow(EnableButton && m_DrawHiddenLine);
- GetDlgItem(IDC_HsharpEdges )->EnableWindow(EnableButton && m_DrawHiddenLine);
- GetDlgItem(IDC_HIsoParametrics )->EnableWindow(EnableButton && m_DrawHiddenLine);
+ GetDlgItem(IDC_DrawHiddenLine )->EnableWindow(EnableButton);
- GetDlgItem(IDC_EDIT_NBIsos )->EnableWindow(EnableButton);
- GetDlgItem(IDC_STATIC_NbIsos )->EnableWindow(EnableButton);
+ GetDlgItem(IDC_HsmoothEdges )->EnableWindow(EnableButton && m_DrawHiddenLine);
+ GetDlgItem(IDC_HSewingEdges )->EnableWindow(EnableButton && m_DrawHiddenLine);
+ GetDlgItem(IDC_HApparentContour )->EnableWindow(EnableButton && m_DrawHiddenLine);
+ GetDlgItem(IDC_HsharpEdges )->EnableWindow(EnableButton && m_DrawHiddenLine);
+ GetDlgItem(IDC_HIsoParametrics )->EnableWindow(EnableButton && m_DrawHiddenLine);
- if(m_Algo == 0)
- {
- if (m_DisplayMode == 5) m_DisplayMode=0;
- if (m_DisplayMode == 10) m_DisplayMode=0;
+ GetDlgItem(IDC_EDIT_NBIsos )->EnableWindow(EnableButton);
+ GetDlgItem(IDC_STATIC_NbIsos )->EnableWindow(EnableButton);
- GetDlgItem(IDC_VIsoParametrics)->EnableWindow(false);
- GetDlgItem(IDC_HIsoParametrics)->EnableWindow(false);
- GetDlgItem(IDC_STATIC_NbIsos) ->EnableWindow(false);
- GetDlgItem(IDC_EDIT_NBIsos) ->EnableWindow(false);
- }
- else
+ if(m_Algo == 0)
+ {
+ if (m_DisplayMode == 5 || m_DisplayMode == 10)
{
- GetDlgItem(IDC_VIsoParametrics)->EnableWindow(true);
- GetDlgItem(IDC_HIsoParametrics)->EnableWindow(m_DrawHiddenLine);
- GetDlgItem(IDC_STATIC_NbIsos) ->EnableWindow(true);
- GetDlgItem(IDC_EDIT_NBIsos) ->EnableWindow(true);
+ m_DisplayMode=0;
}
- UpdateData(false);
+
+ GetDlgItem(IDC_VIsoParametrics)->EnableWindow(false);
+ GetDlgItem(IDC_HIsoParametrics)->EnableWindow(false);
+ GetDlgItem(IDC_STATIC_NbIsos) ->EnableWindow(false);
+ GetDlgItem(IDC_EDIT_NBIsos) ->EnableWindow(false);
+ }
+ else
+ {
+ GetDlgItem(IDC_VIsoParametrics)->EnableWindow(true);
+ GetDlgItem(IDC_HIsoParametrics)->EnableWindow(m_DrawHiddenLine);
+ GetDlgItem(IDC_STATIC_NbIsos) ->EnableWindow(true);
+ GetDlgItem(IDC_EDIT_NBIsos) ->EnableWindow(true);
+ }
+ UpdateData(false);
}
void CSelectionDialog::OnDisplayDefault()
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
myDoc->ActivateFrame(RUNTIME_CLASS(OCC_2dView),SW_NORMAL);
UpdateProjector();
- Apply();
+ Apply();
+ myDoc->FitAll2DViews(Standard_False);
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
}
void CSelectionDialog::OnLeftView()
{
- myActiveView->SetProj(V3d_Ypos);
+ myActiveView->SetProj(V3d_Xneg);
OnDisplay(true);
}
void CSelectionDialog::OnRightView()
{
- myActiveView->SetProj(V3d_Yneg);
+ myActiveView->SetProj(V3d_Xpos);
OnDisplay(true);
}
void CSelectionDialog::OnFrontView()
{
- myActiveView->SetProj(V3d_Xpos);
+ myActiveView->SetProj(V3d_Yneg);
OnDisplay(true);
}
void CSelectionDialog::OnBackView()
{
- myActiveView->SetProj(V3d_Xneg);
+ myActiveView->SetProj(V3d_Ypos);
OnDisplay(true);
}
OnDisplay(true);
}
-void CSelectionDialog::OnDegeneratedMode()
+void CSelectionDialog::OnHlrMode()
{
UpdateData(true);
- if(m_DegeneratedModeOn)
+ if (!m_HlrModeIsOn)
{
- myActiveView->SetDegenerateModeOn();
- m_DegeneratedModeOn = Standard_True;
+ myActiveView->SetComputedMode (m_HlrModeIsOn != 0);
}
else
{
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
- myActiveView->SetDegenerateModeOff();
- m_DegeneratedModeOn = Standard_False;
+ myActiveView->SetComputedMode (m_HlrModeIsOn != 0);
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
}
OnDisplay(false);
{
CDialog::OnRButtonDown(nFlags, point);
- if ((myPosMinX > point.x)||(myPosMaxX < point.x) ||
- (myPosMinY > point.y) ||(myPosMaxY < point.y))
+ if ((myPosMinX > point.x) || (myPosMaxX < point.x) ||
+ (myPosMinY > point.y) || (myPosMaxY < point.y))
+ {
return;
+ }
- if ( nFlags & CASCADESHORTCUTKEY )
+ if ( nFlags & CASCADESHORTCUTKEY )
{
- if (!m_DegeneratedModeOn)
- myActiveView->SetDegenerateModeOn();
- myActiveView->StartRotation(point.x,point.y);
- OnDisplay(false);
+ if (m_HlrModeIsOn)
+ {
+ myActiveView->SetComputedMode (Standard_False);
+ }
+ myActiveView->StartRotation (point.x, point.y);
+ OnDisplay (false);
}
}
{
CDialog::OnRButtonUp(nFlags, point);
- if ((myPosMinX > point.x)||(myPosMaxX < point.x) ||
- (myPosMinY > point.y) ||(myPosMaxY < point.y))
+ if ((myPosMinX > point.x) || (myPosMaxX < point.x) ||
+ (myPosMinY > point.y) || (myPosMaxY < point.y))
+ {
return;
+ }
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
- // reset tyhe good Degenerated mode according to the strored one
- // --> dynamic rotation may have change it
- if (!m_DegeneratedModeOn)
- myActiveView->SetDegenerateModeOff();
- else
- myActiveView->SetDegenerateModeOn();
+ // reset the good HLR mode according to the stored one
+ // --> dynamic rotation may have change it
+ myActiveView->SetComputedMode (m_HlrModeIsOn != 0);
OnDisplay(false);
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
}
void CSelectionDialog::OnPaint()
{
- CPaintDC dc(this); // device context for painting
OnDisplay(false);
}