mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-04 13:13:25 +03:00
Integration of OCCT 6.5.0 from SVN
This commit is contained in:
579
samples/mfc/occtdemo/Common/WNT/OCCDemoView.cpp
Executable file
579
samples/mfc/occtdemo/Common/WNT/OCCDemoView.cpp
Executable file
@@ -0,0 +1,579 @@
|
||||
// OCCDemoView.cpp : implementation of the COCCDemoView class
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "MainFrm.h"
|
||||
#include "OCCDemo.h"
|
||||
#include "OCCDemoDoc.h"
|
||||
#include "OCCDemoView.h"
|
||||
|
||||
#include <Graphic3d_GraphicDriver.hxx>
|
||||
#include <V3d_Coordinate.hxx>
|
||||
|
||||
#define ValZWMin 1
|
||||
|
||||
#ifdef _DEBUG
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// COCCDemoView
|
||||
|
||||
IMPLEMENT_DYNCREATE(COCCDemoView, CView)
|
||||
|
||||
BEGIN_MESSAGE_MAP(COCCDemoView, CView)
|
||||
//{{AFX_MSG_MAP(COCCDemoView)
|
||||
ON_COMMAND(ID_BUTTONAxo, OnBUTTONAxo)
|
||||
ON_COMMAND(ID_BUTTONBack, OnBUTTONBack)
|
||||
ON_COMMAND(ID_BUTTONBottom, OnBUTTONBottom)
|
||||
ON_COMMAND(ID_BUTTONFront, OnBUTTONFront)
|
||||
ON_COMMAND(ID_BUTTONHlrOn, OnBUTTONHlrOn)
|
||||
ON_COMMAND(ID_BUTTONLeft, OnBUTTONLeft)
|
||||
ON_COMMAND(ID_BUTTONPan, OnBUTTONPan)
|
||||
ON_COMMAND(ID_BUTTONPanGlo, OnBUTTONPanGlo)
|
||||
ON_COMMAND(ID_BUTTONReset, OnBUTTONReset)
|
||||
ON_COMMAND(ID_BUTTONRight, OnBUTTONRight)
|
||||
ON_COMMAND(ID_BUTTONRot, OnBUTTONRot)
|
||||
ON_COMMAND(ID_BUTTONTop, OnBUTTONTop)
|
||||
ON_COMMAND(ID_BUTTONZoomAll, OnBUTTONZoomAll)
|
||||
ON_WM_SIZE()
|
||||
ON_COMMAND(ID_BUTTONZoomProg, OnBUTTONZoomProg)
|
||||
ON_COMMAND(ID_BUTTONZoomWin, OnBUTTONZoomWin)
|
||||
ON_WM_LBUTTONDOWN()
|
||||
ON_WM_LBUTTONUP()
|
||||
ON_WM_MOUSEMOVE()
|
||||
ON_WM_RBUTTONDOWN()
|
||||
ON_WM_RBUTTONUP()
|
||||
ON_UPDATE_COMMAND_UI(ID_BUTTONPanGlo, OnUpdateBUTTONPanGlo)
|
||||
ON_UPDATE_COMMAND_UI(ID_BUTTONPan, OnUpdateBUTTONPan)
|
||||
ON_UPDATE_COMMAND_UI(ID_BUTTONZoomProg, OnUpdateBUTTONZoomProg)
|
||||
ON_UPDATE_COMMAND_UI(ID_BUTTONZoomWin, OnUpdateBUTTONZoomWin)
|
||||
ON_UPDATE_COMMAND_UI(ID_BUTTONRot, OnUpdateBUTTONRot)
|
||||
ON_COMMAND(ID_BUTTONWire, OnBUTTONWire)
|
||||
ON_COMMAND(ID_BUTTONShade, OnBUTTONShade)
|
||||
ON_UPDATE_COMMAND_UI(ID_BUTTONHlrOn, OnUpdateBUTTONHlrOn)
|
||||
ON_UPDATE_COMMAND_UI(ID_BUTTONShade, OnUpdateBUTTONShade)
|
||||
ON_UPDATE_COMMAND_UI(ID_BUTTONWire, OnUpdateBUTTONWire)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// COCCDemoView construction/destruction
|
||||
|
||||
COCCDemoView::COCCDemoView()
|
||||
{
|
||||
myXmin=0;
|
||||
myYmin=0;
|
||||
myXmax=0;
|
||||
myYmax=0;
|
||||
myCurZoom=0;
|
||||
myCurrentMode = CurAction3d_Nothing;
|
||||
myVisMode = VIS_SHADE;
|
||||
m_Pen = NULL;
|
||||
myGraphicDriver = Handle(Graphic3d_GraphicDriver)::DownCast(
|
||||
((COCCDemoApp*)AfxGetApp())->GetGraphicDevice()->GraphicDriver() );
|
||||
}
|
||||
|
||||
COCCDemoView::~COCCDemoView()
|
||||
{
|
||||
if (!myView.IsNull())
|
||||
myView->Remove();
|
||||
if (m_Pen)
|
||||
delete m_Pen;
|
||||
}
|
||||
|
||||
BOOL COCCDemoView::PreCreateWindow(CREATESTRUCT& cs)
|
||||
{
|
||||
// TODO: Modify the Window class or styles here by modifying
|
||||
// the CREATESTRUCT cs
|
||||
|
||||
return CView::PreCreateWindow(cs);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// COCCDemoView drawing
|
||||
|
||||
void COCCDemoView::OnInitialUpdate()
|
||||
{
|
||||
CView::OnInitialUpdate();
|
||||
|
||||
myView = GetDocument()->GetViewer()->CreateView();
|
||||
|
||||
Handle(Graphic3d_WNTGraphicDevice) theGraphicDevice =
|
||||
((COCCDemoApp*)AfxGetApp())->GetGraphicDevice();
|
||||
|
||||
Handle(WNT_Window) aWNTWindow = new WNT_Window(theGraphicDevice,GetSafeHwnd ());
|
||||
myView->SetWindow(aWNTWindow);
|
||||
if (!aWNTWindow->IsMapped()) aWNTWindow->Map();
|
||||
|
||||
myCurrentMode = CurAction3d_Nothing;
|
||||
myVisMode = VIS_SHADE;
|
||||
RedrawVisMode();
|
||||
}
|
||||
|
||||
void COCCDemoView::OnDraw(CDC* pDC)
|
||||
{
|
||||
COCCDemoDoc* pDoc = GetDocument();
|
||||
ASSERT_VALID(pDoc);
|
||||
// TODO: add draw code for native data here
|
||||
myView->Redraw();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// COCCDemoView diagnostics
|
||||
|
||||
#ifdef _DEBUG
|
||||
void COCCDemoView::AssertValid() const
|
||||
{
|
||||
CView::AssertValid();
|
||||
}
|
||||
|
||||
void COCCDemoView::Dump(CDumpContext& dc) const
|
||||
{
|
||||
CView::Dump(dc);
|
||||
}
|
||||
|
||||
COCCDemoDoc* COCCDemoView::GetDocument() // non-debug version is inline
|
||||
{
|
||||
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(COCCDemoDoc)));
|
||||
return (COCCDemoDoc*)m_pDocument;
|
||||
}
|
||||
#endif //_DEBUG
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// COCCDemoView message handlers
|
||||
|
||||
void COCCDemoView::OnSize(UINT nType, int cx, int cy)
|
||||
{
|
||||
if (!myView.IsNull())
|
||||
myView->MustBeResized();
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONBack()
|
||||
{
|
||||
myView->SetProj(V3d_Ypos);
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONFront()
|
||||
{
|
||||
myView->SetProj(V3d_Yneg);
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONBottom()
|
||||
{
|
||||
myView->SetProj(V3d_Zneg);
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONTop()
|
||||
{
|
||||
myView->SetProj(V3d_Zpos);
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONLeft()
|
||||
{
|
||||
myView->SetProj(V3d_Xneg);
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONRight()
|
||||
{
|
||||
myView->SetProj(V3d_Xpos);
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONAxo()
|
||||
{
|
||||
myView->SetProj(V3d_XposYnegZpos);
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONPan()
|
||||
{
|
||||
myCurrentMode = CurAction3d_DynamicPanning;
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONPanGlo()
|
||||
{
|
||||
// save the current zoom value
|
||||
myCurZoom = myView->Scale();
|
||||
// Do a Global Zoom
|
||||
myView->FitAll();
|
||||
// Set the mode
|
||||
myCurrentMode = CurAction3d_GlobalPanning;
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONReset()
|
||||
{
|
||||
myView->Reset();
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONRot()
|
||||
{
|
||||
myCurrentMode = CurAction3d_DynamicRotation;
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONZoomAll()
|
||||
{
|
||||
myView->FitAll();
|
||||
myView->ZFitAll();
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONZoomProg()
|
||||
{
|
||||
myCurrentMode = CurAction3d_DynamicZooming;
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONZoomWin()
|
||||
{
|
||||
myCurrentMode = CurAction3d_WindowZooming;
|
||||
}
|
||||
|
||||
void COCCDemoView::OnLButtonDown(UINT nFlags, CPoint point)
|
||||
{
|
||||
// save the current mouse coordinate in min
|
||||
myXmin=point.x; myYmin=point.y;
|
||||
myXmax=point.x; myYmax=point.y;
|
||||
|
||||
if ( ! (nFlags & MK_CONTROL) )
|
||||
{
|
||||
if (myCurrentMode == CurAction3d_DynamicRotation)
|
||||
{
|
||||
myView->SetComputedMode(Standard_False);
|
||||
myView->StartRotation(point.x,point.y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void COCCDemoView::OnLButtonUp(UINT nFlags, CPoint point)
|
||||
{
|
||||
if ( !(nFlags & MK_CONTROL) )
|
||||
{
|
||||
switch (myCurrentMode)
|
||||
{
|
||||
case CurAction3d_Nothing :
|
||||
myXmax=point.x;
|
||||
myYmax=point.y;
|
||||
break;
|
||||
case CurAction3d_DynamicZooming :
|
||||
myCurrentMode = CurAction3d_Nothing;
|
||||
break;
|
||||
case CurAction3d_WindowZooming :
|
||||
DrawRectangle(myXmin,myYmin,myXmax,myYmax,Standard_False);
|
||||
myXmax=point.x;
|
||||
myYmax=point.y;
|
||||
if ((abs(myXmin-myXmax)>ValZWMin) || (abs(myYmin-myYmax)>ValZWMin))
|
||||
// Test if the zoom window is greater than a minimale window.
|
||||
{
|
||||
// Do the zoom window between Pmin and Pmax
|
||||
myView->WindowFitAll(myXmin,myYmin,myXmax,myYmax);
|
||||
}
|
||||
myCurrentMode = CurAction3d_Nothing;
|
||||
break;
|
||||
case CurAction3d_DynamicPanning :
|
||||
myCurrentMode = CurAction3d_Nothing;
|
||||
break;
|
||||
case CurAction3d_GlobalPanning :
|
||||
myView->Place(point.x,point.y,myCurZoom);
|
||||
myCurrentMode = CurAction3d_Nothing;
|
||||
break;
|
||||
case CurAction3d_DynamicRotation :
|
||||
if (myVisMode == VIS_HLR)
|
||||
{
|
||||
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
|
||||
myView->SetComputedMode(Standard_True);
|
||||
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
|
||||
}
|
||||
myCurrentMode = CurAction3d_Nothing;
|
||||
break;
|
||||
} //switch (myCurrentMode)
|
||||
}
|
||||
}
|
||||
|
||||
void COCCDemoView::OnRButtonDown(UINT nFlags, CPoint point)
|
||||
{
|
||||
if ( nFlags & MK_CONTROL )
|
||||
{
|
||||
myView->SetComputedMode(Standard_False);
|
||||
myView->StartRotation(point.x,point.y);
|
||||
}
|
||||
}
|
||||
|
||||
void COCCDemoView::OnRButtonUp(UINT nFlags, CPoint point)
|
||||
{
|
||||
if (myVisMode == VIS_HLR)
|
||||
{
|
||||
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
|
||||
myView->SetComputedMode(Standard_True);
|
||||
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
|
||||
}
|
||||
}
|
||||
|
||||
void COCCDemoView::OnMouseMove(UINT nFlags, CPoint point)
|
||||
{
|
||||
// ============================ LEFT BUTTON =======================
|
||||
if ( nFlags & MK_LBUTTON)
|
||||
{
|
||||
if ( nFlags & MK_CONTROL )
|
||||
{
|
||||
// move with MB1 and Control : on the dynamic zooming
|
||||
// Do the zoom in function of mouse's coordinates
|
||||
myView->Zoom(myXmax,myYmax,point.x,point.y);
|
||||
// save the current mouse coordinate in max
|
||||
myXmax = point.x;
|
||||
myYmax = point.y;
|
||||
}
|
||||
else // if ( Ctrl )
|
||||
{
|
||||
switch (myCurrentMode)
|
||||
{
|
||||
case CurAction3d_Nothing :
|
||||
myXmax = point.x;
|
||||
myYmax = point.y;
|
||||
break;
|
||||
case CurAction3d_DynamicZooming :
|
||||
myView->Zoom(myXmax,myYmax,point.x,point.y);
|
||||
// save the current mouse coordinate in max;
|
||||
myXmax=point.x;
|
||||
myYmax=point.y;
|
||||
break;
|
||||
case CurAction3d_WindowZooming :
|
||||
myXmax = point.x; myYmax = point.y;
|
||||
DrawRectangle(myXmin,myYmin,myXmax,myYmax,Standard_False,LongDash);
|
||||
DrawRectangle(myXmin,myYmin,myXmax,myYmax,Standard_True,LongDash);
|
||||
break;
|
||||
case CurAction3d_DynamicPanning :
|
||||
myView->Pan(point.x-myXmax,myYmax-point.y); // Realize the panning
|
||||
myXmax = point.x; myYmax = point.y;
|
||||
break;
|
||||
case CurAction3d_GlobalPanning : // nothing
|
||||
break;
|
||||
case CurAction3d_DynamicRotation :
|
||||
myView->Rotation(point.x,point.y);
|
||||
myView->Redraw();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// ============================ MIDDLE BUTTON =======================
|
||||
else if ( nFlags & MK_MBUTTON)
|
||||
{
|
||||
if ( nFlags & MK_CONTROL )
|
||||
{
|
||||
myView->Pan(point.x-myXmax,myYmax-point.y); // Realize the panning
|
||||
myXmax = point.x; myYmax = point.y;
|
||||
}
|
||||
}
|
||||
// ============================ RIGHT BUTTON =======================
|
||||
else if ( nFlags & MK_RBUTTON)
|
||||
{
|
||||
if ( nFlags & MK_CONTROL )
|
||||
{
|
||||
myView->Rotation(point.x,point.y);
|
||||
}
|
||||
}
|
||||
// ============================ NO BUTTON =======================
|
||||
else
|
||||
{
|
||||
myXmax = point.x;
|
||||
myYmax = point.y;
|
||||
}
|
||||
}
|
||||
|
||||
void COCCDemoView::OnUpdateBUTTONPanGlo(CCmdUI* pCmdUI)
|
||||
{
|
||||
pCmdUI->SetCheck (myCurrentMode == CurAction3d_GlobalPanning);
|
||||
pCmdUI->Enable (myCurrentMode != CurAction3d_GlobalPanning);
|
||||
}
|
||||
|
||||
void COCCDemoView::OnUpdateBUTTONPan(CCmdUI* pCmdUI)
|
||||
{
|
||||
pCmdUI->SetCheck (myCurrentMode == CurAction3d_DynamicPanning);
|
||||
pCmdUI->Enable (myCurrentMode != CurAction3d_DynamicPanning );
|
||||
}
|
||||
|
||||
void COCCDemoView::OnUpdateBUTTONZoomProg(CCmdUI* pCmdUI)
|
||||
{
|
||||
pCmdUI->SetCheck (myCurrentMode == CurAction3d_DynamicZooming );
|
||||
pCmdUI->Enable (myCurrentMode != CurAction3d_DynamicZooming);
|
||||
}
|
||||
|
||||
void COCCDemoView::OnUpdateBUTTONZoomWin(CCmdUI* pCmdUI)
|
||||
{
|
||||
pCmdUI->SetCheck (myCurrentMode == CurAction3d_WindowZooming);
|
||||
pCmdUI->Enable (myCurrentMode != CurAction3d_WindowZooming);
|
||||
}
|
||||
|
||||
void COCCDemoView::OnUpdateBUTTONRot(CCmdUI* pCmdUI)
|
||||
{
|
||||
pCmdUI->SetCheck (myCurrentMode == CurAction3d_DynamicRotation);
|
||||
pCmdUI->Enable (myCurrentMode != CurAction3d_DynamicRotation);
|
||||
}
|
||||
|
||||
void COCCDemoView::DrawRectangle(const Standard_Integer MinX,
|
||||
const Standard_Integer MinY,
|
||||
const Standard_Integer MaxX,
|
||||
const Standard_Integer MaxY,
|
||||
const Standard_Boolean Draw,
|
||||
const LineStyle aLineStyle)
|
||||
{
|
||||
static int m_DrawMode;
|
||||
if (!m_Pen && aLineStyle ==Solid )
|
||||
{
|
||||
m_Pen = new CPen(PS_SOLID, 1, RGB(0,0,0)); m_DrawMode = R2_MERGEPENNOT;
|
||||
}
|
||||
else if (!m_Pen && aLineStyle ==Dot )
|
||||
{
|
||||
m_Pen = new CPen(PS_DOT, 1, RGB(0,0,0)); m_DrawMode = R2_XORPEN;
|
||||
}
|
||||
else if (!m_Pen && aLineStyle == ShortDash)
|
||||
{
|
||||
m_Pen = new CPen(PS_DASH, 1, RGB(255,0,0)); m_DrawMode = R2_XORPEN;
|
||||
}
|
||||
else if (!m_Pen && aLineStyle == LongDash)
|
||||
{
|
||||
m_Pen = new CPen(PS_DASH, 1, RGB(0,0,0)); m_DrawMode = R2_NOTXORPEN;
|
||||
}
|
||||
else if (aLineStyle == Default)
|
||||
{
|
||||
m_Pen = NULL; m_DrawMode = R2_MERGEPENNOT;
|
||||
}
|
||||
|
||||
CPen* aOldPen;
|
||||
CClientDC clientDC(this);
|
||||
if (m_Pen)
|
||||
aOldPen = clientDC.SelectObject(m_Pen);
|
||||
clientDC.SetROP2(m_DrawMode);
|
||||
|
||||
static Standard_Integer StoredMinX, StoredMaxX, StoredMinY, StoredMaxY;
|
||||
static Standard_Boolean m_IsVisible = Standard_False;
|
||||
|
||||
if ( m_IsVisible && !Draw) // move or up : erase at the old position
|
||||
{
|
||||
clientDC.MoveTo(StoredMinX,StoredMinY); clientDC.LineTo(StoredMinX,StoredMaxY);
|
||||
clientDC.LineTo(StoredMaxX,StoredMaxY);
|
||||
clientDC.LineTo(StoredMaxX,StoredMinY); clientDC.LineTo(StoredMinX,StoredMinY);
|
||||
m_IsVisible = false;
|
||||
}
|
||||
|
||||
StoredMinX = min ( MinX, MaxX );
|
||||
StoredMinY = min ( MinY, MaxY );
|
||||
StoredMaxX = max ( MinX, MaxX );
|
||||
StoredMaxY = max ( MinY, MaxY);
|
||||
|
||||
if (Draw) // move : draw
|
||||
{
|
||||
clientDC.MoveTo(StoredMinX,StoredMinY); clientDC.LineTo(StoredMinX,StoredMaxY);
|
||||
clientDC.LineTo(StoredMaxX,StoredMaxY);
|
||||
clientDC.LineTo(StoredMaxX,StoredMinY); clientDC.LineTo(StoredMinX,StoredMinY);
|
||||
m_IsVisible = true;
|
||||
}
|
||||
|
||||
if (m_Pen)
|
||||
clientDC.SelectObject(aOldPen);
|
||||
}
|
||||
|
||||
void COCCDemoView::InitButtons()
|
||||
{
|
||||
myXmin=0;
|
||||
myYmin=0;
|
||||
myXmax=0;
|
||||
myYmax=0;
|
||||
myCurZoom=0;
|
||||
myCurrentMode = CurAction3d_Nothing;
|
||||
}
|
||||
|
||||
void COCCDemoView::Reset()
|
||||
{
|
||||
InitButtons();
|
||||
myVisMode = VIS_SHADE;
|
||||
if (!myView.IsNull())
|
||||
{
|
||||
RedrawVisMode();
|
||||
myView->Reset();
|
||||
}
|
||||
}
|
||||
|
||||
void COCCDemoView::RedrawVisMode()
|
||||
{
|
||||
switch (myVisMode)
|
||||
{
|
||||
case VIS_WIREFRAME:
|
||||
GetDocument()->GetAISContext()->SetDisplayMode(AIS_WireFrame);
|
||||
myView->SetComputedMode (Standard_False);
|
||||
break;
|
||||
case VIS_SHADE:
|
||||
GetDocument()->GetAISContext()->SetDisplayMode(AIS_Shaded);
|
||||
myView->SetComputedMode (Standard_False);
|
||||
break;
|
||||
case VIS_HLR:
|
||||
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
|
||||
myView->SetComputedMode (Standard_True);
|
||||
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
|
||||
GetDocument()->GetAISContext()->SetDisplayMode(AIS_WireFrame);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONWire()
|
||||
{
|
||||
myVisMode = VIS_WIREFRAME;
|
||||
RedrawVisMode();
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONShade()
|
||||
{
|
||||
myVisMode = VIS_SHADE;
|
||||
RedrawVisMode();
|
||||
}
|
||||
|
||||
void COCCDemoView::OnBUTTONHlrOn()
|
||||
{
|
||||
myVisMode = VIS_HLR;
|
||||
RedrawVisMode();
|
||||
}
|
||||
|
||||
void COCCDemoView::OnUpdateBUTTONWire(CCmdUI* pCmdUI)
|
||||
{
|
||||
pCmdUI->SetCheck (myVisMode == VIS_WIREFRAME);
|
||||
pCmdUI->Enable (myVisMode != VIS_WIREFRAME);
|
||||
}
|
||||
|
||||
void COCCDemoView::OnUpdateBUTTONShade(CCmdUI* pCmdUI)
|
||||
{
|
||||
pCmdUI->SetCheck (myVisMode == VIS_SHADE);
|
||||
pCmdUI->Enable (myVisMode != VIS_SHADE);
|
||||
}
|
||||
|
||||
void COCCDemoView::OnUpdateBUTTONHlrOn(CCmdUI* pCmdUI)
|
||||
{
|
||||
pCmdUI->SetCheck (myVisMode == VIS_HLR);
|
||||
pCmdUI->Enable (myVisMode != VIS_HLR);
|
||||
}
|
||||
|
||||
void COCCDemoView::GetViewCenter(V3d_Coordinate& Xc, V3d_Coordinate& Yc)
|
||||
{
|
||||
myView->Center(Xc,Yc);
|
||||
}
|
||||
|
||||
void COCCDemoView::SetViewCenter(V3d_Coordinate Xc, V3d_Coordinate Yc)
|
||||
{
|
||||
myView->SetCenter(Xc,Yc);
|
||||
}
|
||||
|
||||
void COCCDemoView::GetViewEye(V3d_Coordinate& X, V3d_Coordinate& Y, V3d_Coordinate& Z)
|
||||
{
|
||||
myView->Eye(X,Y,Z);
|
||||
}
|
||||
|
||||
void COCCDemoView::SetViewEye(V3d_Coordinate X, V3d_Coordinate Y, V3d_Coordinate Z)
|
||||
{
|
||||
myView->SetEye(X,Y,Z);
|
||||
}
|
||||
|
||||
Quantity_Factor COCCDemoView::GetViewScale()
|
||||
{
|
||||
return myView->Scale();
|
||||
}
|
||||
|
||||
void COCCDemoView::SetViewScale(Quantity_Factor Coef)
|
||||
{
|
||||
myView->SetScale(Coef);
|
||||
}
|
Reference in New Issue
Block a user