0025284: Problems with standard MFC samples
authoraba <aba@opencascade.com>
Thu, 9 Oct 2014 11:40:14 +0000 (15:40 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 9 Oct 2014 12:02:12 +0000 (16:02 +0400)
 - OCAF sample Save Document option: corrected conversion from LPCTSTR to Standard_CString
 - HLR sample: corrected mouse move event handling for HLR 2D view; Corrected CSelectionDialog view displaying and updating
 - Geometry sample: CGeometryDoc correction to avoid code duplication
 - OCC_3dBaseDoc: corrected DragEvent() handler for proper emulation of rectangle selection.
 - Viewer3d sample: moved resource files (resource.h; resource.hm; AISToolbar.bmp) from /src to /res

Code style changes

Fixed "About" dialog error in release.

Corrected dimension dialogs

Workaround for dimensions sample: AIS_LocalContext::SelectedShape() doesn't take into account TopoDS shape local transformation, and operates with selected interactive transformation.

51 files changed:
samples/mfc/standard/01_Geometry/src/GeometryDoc.cpp
samples/mfc/standard/01_Geometry/src/GeometryDoc.h
samples/mfc/standard/01_Geometry/src/GeometryView.cpp
samples/mfc/standard/01_Geometry/src/GeometryView.h
samples/mfc/standard/04_Viewer3d/adm/win/vc10/Viewer3d.vcxproj
samples/mfc/standard/04_Viewer3d/adm/win/vc10/Viewer3d.vcxproj.filters
samples/mfc/standard/04_Viewer3d/adm/win/vc11/Viewer3d.vcxproj
samples/mfc/standard/04_Viewer3d/adm/win/vc11/Viewer3d.vcxproj.filters
samples/mfc/standard/04_Viewer3d/adm/win/vc12/Viewer3d.vcxproj
samples/mfc/standard/04_Viewer3d/adm/win/vc12/Viewer3d.vcxproj.filters
samples/mfc/standard/04_Viewer3d/adm/win/vc8/Viewer3d.vcproj
samples/mfc/standard/04_Viewer3d/adm/win/vc9/Viewer3d.vcproj
samples/mfc/standard/04_Viewer3d/res/AISToolbar.bmp [moved from samples/mfc/standard/04_Viewer3d/src/AISToolbar.bmp with 100% similarity, mode: 0644]
samples/mfc/standard/04_Viewer3d/res/Viewer3d.rc
samples/mfc/standard/04_Viewer3d/res/resource.h
samples/mfc/standard/04_Viewer3d/res/resource.hm [moved from samples/mfc/standard/04_Viewer3d/src/resource.hm with 100% similarity, mode: 0644]
samples/mfc/standard/04_Viewer3d/src/OffsetDlg.cpp
samples/mfc/standard/04_Viewer3d/src/ScaleDlg.h
samples/mfc/standard/04_Viewer3d/src/ShadingModelDlg.h
samples/mfc/standard/04_Viewer3d/src/StdAfx.h
samples/mfc/standard/04_Viewer3d/src/TrihedronDlg.h
samples/mfc/standard/04_Viewer3d/src/Viewer3d.rc [deleted file]
samples/mfc/standard/04_Viewer3d/src/Viewer3dDoc.cpp
samples/mfc/standard/04_Viewer3d/src/Viewer3dDoc.h
samples/mfc/standard/04_Viewer3d/src/Viewer3dView.cpp
samples/mfc/standard/04_Viewer3d/src/resource.h [deleted file]
samples/mfc/standard/05_ImportExport/src/ImportExportDoc.cpp
samples/mfc/standard/05_ImportExport/src/ImportExportDoc.h
samples/mfc/standard/06_Ocaf/src/OcafDoc.cpp
samples/mfc/standard/08_HLR/res/HLR.rc
samples/mfc/standard/08_HLR/res/resource.h
samples/mfc/standard/08_HLR/src/HLRDoc.cpp
samples/mfc/standard/08_HLR/src/HLRView2D.cpp
samples/mfc/standard/08_HLR/src/HLRView2D.h
samples/mfc/standard/08_HLR/src/SelectionDialog.cpp
samples/mfc/standard/Common/AngleParamsVerticesPage.cpp
samples/mfc/standard/Common/DimensionDlg.cpp
samples/mfc/standard/Common/DimensionDlg.h
samples/mfc/standard/Common/LengthParamsEdgePage.cpp
samples/mfc/standard/Common/LengthParamsEdgesPage.cpp
samples/mfc/standard/Common/LengthParamsVerticesPage.cpp
samples/mfc/standard/Common/OCC_2dDoc.h
samples/mfc/standard/Common/OCC_3dBaseDoc.cpp
samples/mfc/standard/Common/OCC_3dBaseDoc.h
samples/mfc/standard/Common/OCC_3dDoc.cpp
samples/mfc/standard/Common/OCC_3dDoc.h
samples/mfc/standard/Common/OCC_3dView.cpp
samples/mfc/standard/Common/OCC_App.cpp
samples/mfc/standard/Common/ParamsFacesPage.cpp
samples/mfc/standard/Common/RadiusParamsPage.cpp
samples/mfc/standard/Common/res/OCC_Resource.rc

index 125ed6c..e7d6085 100755 (executable)
@@ -29,9 +29,9 @@ static char THIS_FILE[] = __FILE__;
 /////////////////////////////////////////////////////////////////////////////
 // CGeometryDoc
 
-IMPLEMENT_DYNCREATE(CGeometryDoc, CDocument)
+IMPLEMENT_DYNCREATE(CGeometryDoc, OCC_3dBaseDoc)
 
-BEGIN_MESSAGE_MAP(CGeometryDoc, CDocument)
+BEGIN_MESSAGE_MAP(CGeometryDoc, OCC_3dBaseDoc)
   //{{AFX_MSG_MAP(CGeometryDoc)
   ON_COMMAND(ID_WINDOW_NEW2D, OnWindowNew2d)
   ON_COMMAND(ID_BUTTON_Test_1, OnBUTTONTest1)
@@ -143,28 +143,21 @@ END_MESSAGE_MAP()
 // CGeometryDoc construction/destruction
 
 CGeometryDoc::CGeometryDoc()
+: OCC_3dBaseDoc()
 {
   FitMode = false;
   AfxInitRichEdit();
 
-  // TODO: add one-time construction code here
-  Handle(Graphic3d_GraphicDriver) aGraphicDriver = 
-    ((CGeometryApp*)AfxGetApp())->GetGraphicDriver();
-
-  TCollection_ExtendedString a3DName("Visu3D");
-  myViewer = new V3d_Viewer(aGraphicDriver,a3DName.ToExtString());
-  myViewer->SetDefaultLights();
-  myViewer->SetLightOn();
-
-  myAISContext =new AIS_InteractiveContext(myViewer);
   myAISContext->DefaultDrawer()->UIsoAspect()->SetNumber(11);
   myAISContext->DefaultDrawer()->VIsoAspect()->SetNumber(11);
 
+  Handle(Graphic3d_GraphicDriver) aGraphicDriver = ((OCC_App*)AfxGetApp())->GetGraphicDriver();
   TCollection_ExtendedString a2DName("Visu2D");
   myViewer2D = new V3d_Viewer(aGraphicDriver,a2DName.ToExtString());
   myViewer2D->SetCircularGridValues(0,0,1,8,0);
   myViewer2D->SetRectangularGridValues(0,0,1,1,0);
-  //set view projection
+
+  // Set view projection
   myViewer2D->SetDefaultViewProj(V3d_Zpos);
   myAISContext2D = new AIS_InteractiveContext(myViewer2D);     
   myCResultDialog.Create(CResultDialog::IDD,NULL);
@@ -200,9 +193,7 @@ BOOL CGeometryDoc::OnNewDocument()
   return TRUE;
 }
 
-
-
-void CGeometryDoc::OnWindowNew2d() 
+void CGeometryDoc::OnWindowNew2d()
 {
   ((CGeometryApp*)AfxGetApp())->CreateView2D(this);
 }
@@ -330,6 +321,48 @@ void  CGeometryDoc::Popup2D(const Standard_Integer x,
     AfxGetMainWnd());
 }
 
+
+//-----------------------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------------------
+void  CGeometryDoc::Popup (const Standard_Integer theMouseX,
+                           const Standard_Integer theMouseY,
+                           const Handle(V3d_View)& theView) 
+{ 
+  Standard_Integer PopupMenuNumber=0;
+  GetAISContext()->InitCurrent();
+  if (GetAISContext()->MoreCurrent())
+  {
+    PopupMenuNumber=1;
+  }
+
+  CMenu menu;
+  VERIFY(menu.LoadMenu(IDR_Popup3D));
+  CMenu* pPopup = menu.GetSubMenu(PopupMenuNumber);
+  ASSERT(pPopup != NULL);
+
+  POINT winCoord = { theMouseX , theMouseY };
+  Handle(WNT_Window) aWNTWindow = Handle(WNT_Window)::DownCast(theView->Window());
+  ClientToScreen ( (HWND)(aWNTWindow->HWindow()), &winCoord );
+
+  pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON ,
+                         winCoord.x, winCoord.y , 
+                         AfxGetMainWnd());
+}
+
+//-----------------------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------------------
+void CGeometryDoc::InputEvent (const Standard_Integer /*theMouseX*/,
+                                const Standard_Integer /*theMouseY*/,
+                                const Handle(V3d_View)& /*theView*/)
+{
+  myAISContext->Select();
+}
+
+//-----------------------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------------------
 void CGeometryDoc::Put2DOnTop(bool isMax)
 {
   POSITION position = GetFirstViewPosition();
@@ -354,6 +387,9 @@ void CGeometryDoc::Put2DOnTop(bool isMax)
   }
 }
 
+//-----------------------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------------------
 void CGeometryDoc::Minimize2D()
 {
   POSITION position = GetFirstViewPosition();
@@ -371,6 +407,9 @@ void CGeometryDoc::Minimize2D()
   }
 }
 
+//-----------------------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------------------
 void CGeometryDoc::Fit2DViews()
 {
   POSITION position = GetFirstViewPosition();
@@ -385,6 +424,10 @@ void CGeometryDoc::Fit2DViews()
     }
   }
 }
+
+//-----------------------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------------------
 void CGeometryDoc::Put3DOnTop(bool isMax)
 {
   POSITION position = GetFirstViewPosition();
@@ -409,6 +452,9 @@ void CGeometryDoc::Put3DOnTop(bool isMax)
   }
 }
 
+//-----------------------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------------------
 void CGeometryDoc::Minimize3D()
 {
   POSITION position = GetFirstViewPosition();
@@ -426,6 +472,9 @@ void CGeometryDoc::Minimize3D()
   }
 }
 
+//-----------------------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------------------
 void CGeometryDoc::Fit3DViews(Quantity_Coefficient Coef)
 {
   POSITION position = GetFirstViewPosition();
@@ -441,6 +490,9 @@ void CGeometryDoc::Fit3DViews(Quantity_Coefficient Coef)
   }
 }
 
+//-----------------------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------------------
 void CGeometryDoc::Set3DViewsZoom(const Quantity_Factor& Coef)
 {
   POSITION position = GetFirstViewPosition();
@@ -456,6 +508,9 @@ void CGeometryDoc::Set3DViewsZoom(const Quantity_Factor& Coef)
   }
 }
 
+//-----------------------------------------------------------------------------------------
+//                                Buttons event handlers
+//-----------------------------------------------------------------------------------------
 void CGeometryDoc::OnBUTTONTest1() 
 {   Current = 1;
 GeomSources::gpTest1(this);      }
@@ -1013,15 +1068,6 @@ void CGeometryDoc::OnCloseDocument()
   CDocument::OnCloseDocument();
 }
 
-void CGeometryDoc::Fit()
-{
-  CMDIFrameWnd *pFrame =  (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;
-  CMDIChildWnd *pChild =  (CMDIChildWnd *) pFrame->GetActiveFrame();
-  OCC_3dView *pView = (OCC_3dView *) pChild->GetActiveView();
-  pView->FitAll();
-}
-
-
 void CGeometryDoc::OnCreateSol() 
 {
   // TODO: Add your command handler code here
@@ -1368,7 +1414,7 @@ void CGeometryDoc::simplify(const TopoDS_Shape& aShape)
       if(aPoints1(i).X() > aPntMax.X())
       {
         aIndex = i;
-        aPntMax = aPoints1(aIndex);      
+        aPntMax = aPoints1(aIndex);
       } 
     }
 
index 7ab5419..6128ff9 100755 (executable)
@@ -9,12 +9,12 @@
 #pragma once
 #endif // _MSC_VER >= 1000
 
-#include "OCC_BaseDoc.h"
+#include "OCC_3dBaseDoc.h"
 #include "ResultDialog.h"
 
 class Handle_AIS_Point;
 
-class CGeometryDoc : public OCC_BaseDoc
+class CGeometryDoc : public OCC_3dBaseDoc
 {
 public:
   void Put2DOnTop(bool isMax = true);
@@ -25,32 +25,41 @@ public:
   void simplify(const TopoDS_Shape& aShape);
 
 
-  static void Fit();
+  //-------------------- 2D -------------------//
 
-  //              2D
   void DragEvent2D       (const Standard_Integer  x       ,
                           const Standard_Integer  y       ,
                           const Standard_Integer  TheState,
                           const Handle_V3d_View& aView   );
   void InputEvent2D      (const Standard_Integer  x       ,
                           const Standard_Integer  y       ,
-                          const Handle_V3d_View& aView   );  
+                          const Handle_V3d_View& aView   );
   void MoveEvent2D       (const Standard_Integer  x       ,
                           const Standard_Integer  y       ,
-                          const Handle_V3d_View& aView   ); 
+                          const Handle_V3d_View& aView   );
   void ShiftMoveEvent2D  (const Standard_Integer  x       ,
                           const Standard_Integer  y       ,
-                          const Handle_V3d_View& aView   ); 
+                          const Handle_V3d_View& aView   );
   void ShiftDragEvent2D  (const Standard_Integer  x       ,
                           const Standard_Integer  y       ,
                           const Standard_Integer  TheState,
-                          const Handle_V3d_View& aView   ); 
+                          const Handle_V3d_View& aView   );
   void ShiftInputEvent2D (const Standard_Integer  x       ,
                           const Standard_Integer  y       ,
-                          const Handle_V3d_View& aView   ); 
+                          const Handle_V3d_View& aView   );
   void Popup2D           (const Standard_Integer  x       ,
                           const Standard_Integer  y       ,
-                          const Handle_V3d_View& aView   ); 
+                          const Handle_V3d_View& aView   );
+
+  //-------------------- 3D -------------------//
+
+  virtual void Popup (const Standard_Integer theMouseX,
+                        const Standard_Integer theMouseY,
+                        const Handle(V3d_View)& theView);
+
+  virtual void InputEvent (const Standard_Integer theMouseX,
+                          const Standard_Integer theMouseY,
+                          const Handle(V3d_View)& theView);
 
   Handle_AIS_InteractiveObject drawSurface
     (const Handle_Geom_Surface& theSurface,
@@ -211,10 +220,6 @@ protected:
   //}}AFX_MSG
   DECLARE_MESSAGE_MAP()
 
-private:
-  Handle_V3d_Viewer myViewer2D;
-  Handle_AIS_InteractiveContext myAISContext2D;
-
 public:
   int Current;
   void Minimize3D();
@@ -223,9 +228,14 @@ public:
   Handle_AIS_InteractiveContext& GetISessionContext() { return myAISContext2D; };
   BOOL FitMode;
 
-public :
+public:
   CResultDialog myCResultDialog;
 
+private:
+  Handle_V3d_Viewer myViewer2D;
+  Handle_AIS_InteractiveContext myAISContext2D;
+
+
 };
 
 /////////////////////////////////////////////////////////////////////////////
index 2ca07f7..bbb4a29 100755 (executable)
@@ -23,21 +23,6 @@ IMPLEMENT_DYNCREATE(CGeometryView, OCC_3dView)
 BEGIN_MESSAGE_MAP(CGeometryView, OCC_3dView)
   //{{AFX_MSG_MAP(CGeometryView)
   ON_COMMAND(ID_FILE_EXPORT_IMAGE, OnFileExportImage)
-  ON_WM_SIZE()
-  ON_WM_LBUTTONDOWN()
-  ON_WM_LBUTTONUP()
-  ON_WM_MBUTTONDOWN()
-  ON_WM_MBUTTONUP()
-  ON_WM_MOUSEMOVE()
-  ON_WM_RBUTTONDOWN()
-  ON_WM_RBUTTONUP()
-  ON_UPDATE_COMMAND_UI(ID_BUTTONHlrOff, OnUpdateBUTTONHlrOff)
-  ON_UPDATE_COMMAND_UI(ID_BUTTONHlrOn, OnUpdateBUTTONHlrOn)
-  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)
   //}}AFX_MSG_MAP
 END_MESSAGE_MAP()
 
@@ -76,402 +61,7 @@ CGeometryDoc* CGeometryView::GetDocument() // non-debug version is inline
 /////////////////////////////////////////////////////////////////////////////
 // CGeometryView message handlers
 
-
 void CGeometryView::OnFileExportImage()
 {
   GetDocument()->ExportView (myView);
 }
-
-void CGeometryView::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
-{
-  if (!myView.IsNull())
-    myView->MustBeResized();
-}
-
-void CGeometryView::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 ) 
-  {
-    // Button MB1 down Control :start zomming 
-    // SetCursor(AfxGetApp()->LoadStandardCursor());
-  }
-  else // if ( Ctrl )
-  {
-    switch (myCurrentMode)
-    {
-    case CurAction3d_Nothing : // start a drag
-      if (nFlags & MK_SHIFT)
-        ShiftDragEvent(myXmax,myYmax,-1);
-      else
-        DragEvent(myXmax,myYmax,-1);
-      break;
-      break;
-    case CurAction3d_DynamicZooming : // noting
-      // SetCursor(AfxGetApp()->LoadStandardCursor());
-      break;
-    case CurAction3d_WindowZooming : 
-      break;
-    case CurAction3d_DynamicPanning :// noting
-      // SetCursor(AfxGetApp()->LoadStandardCursor());
-      break;
-    case CurAction3d_GlobalPanning :// noting
-      // SetCursor(AfxGetApp()->LoadStandardCursor());
-      break;
-    case  CurAction3d_DynamicRotation :
-      // SetCursor(AfxGetApp()->LoadStandardCursor());
-      if (myHlrModeIsOn)
-      {
-        myView->SetComputedMode (Standard_False);
-      }
-      myView->StartRotation (point.x, point.y);
-      break;
-    default :
-      Standard_Failure::Raise(" incompatible Current Mode ");
-      break;
-    }
-  }
-}
-
-void CGeometryView::OnLButtonUp(UINT nFlags, CPoint point) 
-{
-  if ( nFlags & MK_CONTROL ) 
-  {
-    return;
-  }
-  else // if ( Ctrl )
-  {
-    switch (myCurrentMode)
-    {
-    case CurAction3d_Nothing :
-      if (point.x == myXmin && point.y == myYmin)
-      { // no offset between down and up --> selectEvent
-        myXmax=point.x;  
-        myYmax=point.y;
-        if (nFlags & MK_SHIFT )
-          ShiftInputEvent(point.x,point.y);
-        else
-          InputEvent     (point.x,point.y);
-      } else
-      {
-        myXmax=point.x;    myYmax=point.y;
-        DrawRectangle(myXmin,myYmin,myXmax,myYmax,Standard_False);
-        if (nFlags & MK_SHIFT)
-          ShiftDragEvent(point.x,point.y,1);
-        else
-          DragEvent(point.x,point.y,1);
-      }
-      break;
-    case CurAction3d_DynamicZooming :
-      // SetCursor(AfxGetApp()->LoadStandardCursor());         
-      myCurrentMode = CurAction3d_Nothing;
-      break;
-    case CurAction3d_WindowZooming :
-      myXmax=point.x;  myYmax=point.y;
-      DrawRectangle(myXmin,myYmin,myXmax,myYmax,Standard_False,LongDash);
-      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 :
-      myCurrentMode = CurAction3d_Nothing;
-      break;
-    default :
-      Standard_Failure::Raise(" incompatible Current Mode ");
-      break;
-    } //switch (myCurrentMode)
-  } // else // if ( Ctrl )
-}
-
-void CGeometryView::OnMButtonDown(UINT nFlags, CPoint /*point*/) 
-{
-  if ( nFlags & MK_CONTROL ) 
-  {
-    // Button MB2 down Control : panning init  
-    // SetCursor(AfxGetApp()->LoadStandardCursor());   
-  }
-}
-
-void CGeometryView::OnMButtonUp(UINT nFlags, CPoint /*point*/)
-{
-  if ( nFlags & MK_CONTROL ) 
-  {
-    // Button MB2 down Control : panning init  
-    // SetCursor(AfxGetApp()->LoadStandardCursor());   
-  }
-}
-
-void CGeometryView::OnRButtonDown(UINT nFlags, CPoint point) 
-{
-  if ( nFlags & MK_CONTROL )
-  {
-    // SetCursor(AfxGetApp()->LoadStandardCursor());
-    if (myHlrModeIsOn)
-    {
-      myView->SetComputedMode (Standard_False);
-    }
-    myView->StartRotation (point.x, point.y);
-  }
-  else // if ( Ctrl )
-  {
-    Popup (point.x, point.y);
-  }
-}
-
-void CGeometryView::OnRButtonUp(UINT /*nFlags*/, CPoint /*point*/) 
-{
-  SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
-  myView->SetComputedMode (myHlrModeIsOn);
-  SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
-}
-
-void CGeometryView::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 min 
-      myXmax = point.x; 
-      myYmax = point.y;        
-    }
-    else // if ( Ctrl )
-    {
-      switch (myCurrentMode)
-      {
-      case CurAction3d_Nothing :
-        DrawRectangle(myXmin,myYmin,myXmax,myYmax,Standard_False);
-        myXmax = point.x; 
-        myYmax = point.y;
-        if (nFlags & MK_SHIFT)         
-          ShiftDragEvent(myXmax,myYmax,0);
-        else
-          DragEvent(myXmax,myYmax,0);
-        DrawRectangle(myXmin,myYmin,myXmax,myYmax,Standard_True);
-        break;
-      case CurAction3d_DynamicZooming :
-        myView->Zoom(myXmax,myYmax,point.x,point.y); 
-        // save the current mouse coordinate in min \n";
-        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;
-      default :
-        Standard_Failure::Raise(" incompatible Current Mode ");
-        break;
-      }//  switch (myCurrentMode)
-    }// if ( nFlags & MK_CONTROL )  else 
-  } else //   if ( nFlags & MK_LBUTTON) 
-    //   ============================  MIDDLE BUTTON =======================
-    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;    
-
-      }
-    } else //  if ( nFlags & MK_MBUTTON)
-      //   ============================  RIGHT BUTTON =======================
-      if ( nFlags & MK_RBUTTON)
-      {
-        if ( nFlags & MK_CONTROL ) 
-        {
-          myView->Rotation(point.x,point.y);
-        }
-      }else //if ( nFlags & MK_RBUTTON)
-        //   ============================  NO BUTTON =======================
-      {  // No buttons 
-        myXmax = point.x; myYmax = point.y;    
-        if (nFlags & MK_SHIFT)
-          ShiftMoveEvent(point.x,point.y);
-        else
-          MoveEvent(point.x,point.y);
-      }
-}
-
-void CGeometryView::OnUpdateBUTTONHlrOff (CCmdUI* pCmdUI)
-{
-  pCmdUI->SetCheck (!myHlrModeIsOn);
-  pCmdUI->Enable   (myHlrModeIsOn);
-}
-
-void CGeometryView::OnUpdateBUTTONHlrOn (CCmdUI* pCmdUI)
-{
-  pCmdUI->SetCheck (myHlrModeIsOn);
-  pCmdUI->Enable   (!myHlrModeIsOn);
-}
-
-void CGeometryView::OnUpdateBUTTONPanGlo(CCmdUI* pCmdUI) 
-{
-  pCmdUI->SetCheck (myCurrentMode == CurAction3d_GlobalPanning);
-  pCmdUI->Enable   (myCurrentMode != CurAction3d_GlobalPanning);       
-
-}
-
-void CGeometryView::OnUpdateBUTTONPan(CCmdUI* pCmdUI) 
-{
-  pCmdUI->SetCheck (myCurrentMode == CurAction3d_DynamicPanning);
-  pCmdUI->Enable   (myCurrentMode != CurAction3d_DynamicPanning );     
-}
-
-void CGeometryView::OnUpdateBUTTONZoomProg(CCmdUI* pCmdUI) 
-{
-  pCmdUI->SetCheck (myCurrentMode == CurAction3d_DynamicZooming );
-  pCmdUI->Enable   (myCurrentMode != CurAction3d_DynamicZooming);      
-}
-
-void CGeometryView::OnUpdateBUTTONZoomWin(CCmdUI* pCmdUI) 
-{
-  pCmdUI->SetCheck (myCurrentMode == CurAction3d_WindowZooming);
-  pCmdUI->Enable   (myCurrentMode != CurAction3d_WindowZooming);       
-}
-
-void CGeometryView::OnUpdateBUTTONRot(CCmdUI* pCmdUI) 
-{
-  pCmdUI->SetCheck (myCurrentMode == CurAction3d_DynamicRotation);
-  pCmdUI->Enable   (myCurrentMode != CurAction3d_DynamicRotation);     
-}
-
-//==========================================================================================
-//==========================================================================================
-//==========================================================================================
-
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void CGeometryView::DragEvent(const Standard_Integer  x        ,
-                              const Standard_Integer  y        ,
-                              const Standard_Integer  TheState )
-{
-
-  // TheState == -1  button down
-  // TheState ==  0  move
-  // TheState ==  1  button up
-
-  static Standard_Integer theButtonDownX=0;
-  static Standard_Integer theButtonDownY=0;
-
-  if (TheState == -1)
-  {
-    theButtonDownX=x;
-    theButtonDownY=y;
-  }
-
-  if (TheState == 0)
-    GetDocument()->GetAISContext()->Select(theButtonDownX,theButtonDownY,x,y,myView);  
-} 
-
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void CGeometryView::InputEvent(const Standard_Integer /*x*/,
-                               const Standard_Integer /*y*/)
-{
-  GetDocument()->GetAISContext()->Select(); 
-}
-
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void CGeometryView::MoveEvent(const Standard_Integer x,
-                              const Standard_Integer y)
-{
-  GetDocument()->GetAISContext()->MoveTo(x,y,myView);
-}
-
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void CGeometryView::ShiftMoveEvent(const Standard_Integer  x       ,
-                                   const Standard_Integer  y       ) 
-{
-  GetDocument()->GetAISContext()->MoveTo(x,y,myView);
-}
-
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void CGeometryView::ShiftDragEvent(const Standard_Integer  x        ,
-                                   const Standard_Integer  y        ,
-                                   const Standard_Integer  TheState ) 
-{
-  static Standard_Integer theButtonDownX=0;
-  static Standard_Integer theButtonDownY=0;
-
-  if (TheState == -1)
-  {
-    theButtonDownX=x;
-    theButtonDownY=y;
-  }
-
-  if (TheState == 0)
-    GetDocument()->GetAISContext()->ShiftSelect(theButtonDownX,theButtonDownY,x,y,myView);  
-}
-
-
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void CGeometryView::ShiftInputEvent(const Standard_Integer /*x*/,
-                                    const Standard_Integer /*y*/)
-{
-  GetDocument()->GetAISContext()->ShiftSelect(); 
-}
-
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void  CGeometryView::Popup(const Standard_Integer  x,
-                           const Standard_Integer  y ) 
-{
-  Standard_Integer PopupMenuNumber=0;
-  GetDocument()->GetAISContext()->InitCurrent();
-  if (GetDocument()->GetAISContext()->MoreCurrent())
-    PopupMenuNumber=1;
-
-  CMenu menu;
-  VERIFY(menu.LoadMenu(IDR_Popup3D));
-  CMenu* pPopup = menu.GetSubMenu(PopupMenuNumber);
-  ASSERT(pPopup != NULL);
-
-  POINT winCoord = { x , y };
-  Handle(WNT_Window) aWNTWindow=
-    Handle(WNT_Window)::DownCast(myView->Window());
-  ClientToScreen ( &winCoord);
-  pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON , winCoord.x, winCoord.y , 
-    AfxGetMainWnd());
-}
-
-
index fad9846..c3b2529 100755 (executable)
@@ -51,42 +51,8 @@ public:
 protected:
   //{{AFX_MSG(CGeometryView)
   afx_msg void OnFileExportImage();
-  afx_msg void OnSize(UINT nType, int cx, int cy);
-  afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
-  afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
-  afx_msg void OnMButtonDown(UINT nFlags, CPoint point);
-  afx_msg void OnMButtonUp(UINT nFlags, CPoint point);
-  afx_msg void OnMouseMove(UINT nFlags, CPoint point);
-  afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
-  afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
-  afx_msg void OnUpdateBUTTONHlrOff(CCmdUI* pCmdUI);
-  afx_msg void OnUpdateBUTTONHlrOn(CCmdUI* pCmdUI);
-  afx_msg void OnUpdateBUTTONPanGlo(CCmdUI* pCmdUI);
-  afx_msg void OnUpdateBUTTONPan(CCmdUI* pCmdUI);
-  afx_msg void OnUpdateBUTTONZoomProg(CCmdUI* pCmdUI);
-  afx_msg void OnUpdateBUTTONZoomWin(CCmdUI* pCmdUI);
-  afx_msg void OnUpdateBUTTONRot(CCmdUI* pCmdUI);
   //}}AFX_MSG
   DECLARE_MESSAGE_MAP()
-
-private:
-  void DragEvent      (const Standard_Integer  x       ,
-                      const Standard_Integer  y       ,
-                      const Standard_Integer  TheState);
-  void InputEvent     (const Standard_Integer  x       ,
-                      const Standard_Integer  y       );  
-  void MoveEvent      (const Standard_Integer  x       ,
-                      const Standard_Integer  y       ); 
-  void ShiftMoveEvent (const Standard_Integer  x       ,
-                      const Standard_Integer  y       ); 
-  void ShiftDragEvent (const Standard_Integer  x       ,
-                      const Standard_Integer  y       ,
-                      const Standard_Integer  TheState); 
-  void ShiftInputEvent(const Standard_Integer  x       ,
-                      const Standard_Integer  y       ); 
-  void Popup          (const Standard_Integer  x       ,
-                      const Standard_Integer  y       ); 
-
 };
 
 #ifndef _DEBUG  // debug version in GeometryView.cpp
index 4920197..ffd3e33 100644 (file)
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ResourceCompile Include="..\..\..\src\Viewer3d.rc">
+    <ResourceCompile Include="..\..\..\res\Viewer3d.rc">
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\..\src\ModelClippingDlg.h" />
     <ClInclude Include="..\..\..\src\OCCDemo_Presentation.h" />
     <ClInclude Include="..\..\..\src\offsetdlg.h" />
-    <ClInclude Include="..\..\..\src\resource.h" />
+    <ClInclude Include="..\..\..\res\resource.h" />
     <ClInclude Include="..\..\..\src\scaledlg.h" />
     <ClInclude Include="..\..\..\src\ShadingModelDlg.h" />
     <ClInclude Include="..\..\..\src\State.h" />
     <ClInclude Include="..\..\..\src\ZCueingDlg.h" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="..\..\..\src\resource.hm" />
+    <None Include="..\..\..\res\resource.hm" />
     <None Include="..\..\..\res\AIS_TB.bmp" />
-    <None Include="..\..\..\src\AISToolbar.bmp" />
+    <None Include="..\..\..\res\AISToolbar.bmp" />
     <None Include="..\..\..\res\Toolbar.bmp" />
   </ItemGroup>
   <ItemGroup>
index c75f9d4..5174902 100644 (file)
@@ -68,7 +68,7 @@
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ResourceCompile Include="..\..\..\src\Viewer3d.rc">
+    <ResourceCompile Include="..\..\..\res\Viewer3d.rc">
       <Filter>Source Files</Filter>
     </ResourceCompile>
   </ItemGroup>
@@ -91,7 +91,7 @@
     <ClInclude Include="..\..\..\src\offsetdlg.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\resource.h">
+    <ClInclude Include="..\..\..\res\resource.h">
       <Filter>Header Files</Filter>
     </ClInclude>
     <ClInclude Include="..\..\..\src\scaledlg.h">
     </ClInclude>
   </ItemGroup>
   <ItemGroup>
-    <None Include="..\..\..\src\resource.hm">
+    <None Include="..\..\..\res\resource.hm">
       <Filter>Header Files</Filter>
     </None>
     <None Include="..\..\..\res\AIS_TB.bmp">
       <Filter>Resource Files</Filter>
     </None>
-    <None Include="..\..\..\src\AISToolbar.bmp">
+    <None Include="..\..\..\res\AISToolbar.bmp">
       <Filter>Resource Files</Filter>
     </None>
     <None Include="..\..\..\res\Toolbar.bmp">
index 9b7d904..074eb08 100644 (file)
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ResourceCompile Include="..\..\..\src\Viewer3d.rc">
+    <ResourceCompile Include="..\..\..\res\Viewer3d.rc">
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\..\src\ModelClippingDlg.h" />
     <ClInclude Include="..\..\..\src\OCCDemo_Presentation.h" />
     <ClInclude Include="..\..\..\src\offsetdlg.h" />
-    <ClInclude Include="..\..\..\src\resource.h" />
+    <ClInclude Include="..\..\..\res\resource.h" />
     <ClInclude Include="..\..\..\src\scaledlg.h" />
     <ClInclude Include="..\..\..\src\ShadingModelDlg.h" />
     <ClInclude Include="..\..\..\src\State.h" />
     <ClInclude Include="..\..\..\src\ZCueingDlg.h" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="..\..\..\src\resource.hm" />
+    <None Include="..\..\..\res\resource.hm" />
     <None Include="..\..\..\res\AIS_TB.bmp" />
-    <None Include="..\..\..\src\AISToolbar.bmp" />
+    <None Include="..\..\..\res\AISToolbar.bmp" />
     <None Include="..\..\..\res\Toolbar.bmp" />
   </ItemGroup>
   <ItemGroup>
index c75f9d4..5174902 100644 (file)
@@ -68,7 +68,7 @@
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ResourceCompile Include="..\..\..\src\Viewer3d.rc">
+    <ResourceCompile Include="..\..\..\res\Viewer3d.rc">
       <Filter>Source Files</Filter>
     </ResourceCompile>
   </ItemGroup>
@@ -91,7 +91,7 @@
     <ClInclude Include="..\..\..\src\offsetdlg.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\resource.h">
+    <ClInclude Include="..\..\..\res\resource.h">
       <Filter>Header Files</Filter>
     </ClInclude>
     <ClInclude Include="..\..\..\src\scaledlg.h">
     </ClInclude>
   </ItemGroup>
   <ItemGroup>
-    <None Include="..\..\..\src\resource.hm">
+    <None Include="..\..\..\res\resource.hm">
       <Filter>Header Files</Filter>
     </None>
     <None Include="..\..\..\res\AIS_TB.bmp">
       <Filter>Resource Files</Filter>
     </None>
-    <None Include="..\..\..\src\AISToolbar.bmp">
+    <None Include="..\..\..\res\AISToolbar.bmp">
       <Filter>Resource Files</Filter>
     </None>
     <None Include="..\..\..\res\Toolbar.bmp">
index 8d2203d..a23197d 100644 (file)
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ResourceCompile Include="..\..\..\src\Viewer3d.rc">
+    <ResourceCompile Include="..\..\..\res\Viewer3d.rc">
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\..\src\ModelClippingDlg.h" />
     <ClInclude Include="..\..\..\src\OCCDemo_Presentation.h" />
     <ClInclude Include="..\..\..\src\offsetdlg.h" />
-    <ClInclude Include="..\..\..\src\resource.h" />
+    <ClInclude Include="..\..\..\res\resource.h" />
     <ClInclude Include="..\..\..\src\scaledlg.h" />
     <ClInclude Include="..\..\..\src\ShadingModelDlg.h" />
     <ClInclude Include="..\..\..\src\State.h" />
     <ClInclude Include="..\..\..\src\ZCueingDlg.h" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="..\..\..\src\resource.hm" />
+    <None Include="..\..\..\res\resource.hm" />
     <None Include="..\..\..\res\AIS_TB.bmp" />
-    <None Include="..\..\..\src\AISToolbar.bmp" />
+    <None Include="..\..\..\res\AISToolbar.bmp" />
     <None Include="..\..\..\res\Toolbar.bmp" />
   </ItemGroup>
   <ItemGroup>
index c75f9d4..5174902 100644 (file)
@@ -68,7 +68,7 @@
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ResourceCompile Include="..\..\..\src\Viewer3d.rc">
+    <ResourceCompile Include="..\..\..\res\Viewer3d.rc">
       <Filter>Source Files</Filter>
     </ResourceCompile>
   </ItemGroup>
@@ -91,7 +91,7 @@
     <ClInclude Include="..\..\..\src\offsetdlg.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\resource.h">
+    <ClInclude Include="..\..\..\res\resource.h">
       <Filter>Header Files</Filter>
     </ClInclude>
     <ClInclude Include="..\..\..\src\scaledlg.h">
     </ClInclude>
   </ItemGroup>
   <ItemGroup>
-    <None Include="..\..\..\src\resource.hm">
+    <None Include="..\..\..\res\resource.hm">
       <Filter>Header Files</Filter>
     </None>
     <None Include="..\..\..\res\AIS_TB.bmp">
       <Filter>Resource Files</Filter>
     </None>
-    <None Include="..\..\..\src\AISToolbar.bmp">
+    <None Include="..\..\..\res\AISToolbar.bmp">
       <Filter>Resource Files</Filter>
     </None>
     <None Include="..\..\..\res\Toolbar.bmp">
index 8d9435d..41840ff 100644 (file)
                                </FileConfiguration>
                        </File>
                        <File
-                               RelativePath="..\..\..\src\Viewer3d.rc"
+                               RelativePath="..\..\..\res\Viewer3d.rc"
                                >
                                <FileConfiguration
                                        Name="Release|Win32"
                                >
                        </File>
                        <File
-                               RelativePath="..\..\..\src\resource.h"
+                               RelativePath="..\..\..\res\resource.h"
                                >
                        </File>
                        <File
-                               RelativePath="..\..\..\src\resource.hm"
+                               RelativePath="..\..\..\res\resource.hm"
                                >
                        </File>
                        <File
index 13a061e..da49546 100644 (file)
                                </FileConfiguration>
                        </File>
                        <File
-                               RelativePath="..\..\..\src\Viewer3d.rc"
+                               RelativePath="..\..\..\res\Viewer3d.rc"
                                >
                                <FileConfiguration
                                        Name="Release|Win32"
                                        <Tool
                                                Name="VCResourceCompilerTool"
                                                PreprocessorDefinitions=""
-                                               AdditionalIncludeDirectories="src"
+                                               AdditionalIncludeDirectories="res"
                                        />
                                </FileConfiguration>
                                <FileConfiguration
                                        <Tool
                                                Name="VCResourceCompilerTool"
                                                PreprocessorDefinitions=""
-                                               AdditionalIncludeDirectories="src"
+                                               AdditionalIncludeDirectories="res"
                                        />
                                </FileConfiguration>
                                <FileConfiguration
                                        <Tool
                                                Name="VCResourceCompilerTool"
                                                PreprocessorDefinitions=""
-                                               AdditionalIncludeDirectories="src"
+                                               AdditionalIncludeDirectories="res"
                                        />
                                </FileConfiguration>
                                <FileConfiguration
                                        <Tool
                                                Name="VCResourceCompilerTool"
                                                PreprocessorDefinitions=""
-                                               AdditionalIncludeDirectories="src"
+                                               AdditionalIncludeDirectories="res"
                                        />
                                </FileConfiguration>
                        </File>
                                >
                        </File>
                        <File
-                               RelativePath="..\..\..\src\resource.h"
+                               RelativePath="..\..\..\res\resource.h"
                                >
                        </File>
                        <File
-                               RelativePath="..\..\..\src\resource.hm"
+                               RelativePath="..\..\..\res\resource.hm"
                                >
                        </File>
                        <File
                                >
                        </File>
                        <File
-                               RelativePath="..\..\..\src\AISToolbar.bmp"
+                               RelativePath="..\..\..\res\AISToolbar.bmp"
                                >
                        </File>
                        <File
index 2ae585a..2ad25b9 100755 (executable)
@@ -1,7 +1,12 @@
-//Microsoft Developer Studio generated resource script.
+// Microsoft Visual C++ generated resource script.
 //
 #include "resource.h"
 
+// Generated Help ID header file
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "resource.hm"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+
 #define APSTUDIO_READONLY_SYMBOLS
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -27,43 +32,34 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 //
 
 IDD_SETOFFSETS DIALOGEX 442, 45, 187, 60
-STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | 
-    WS_CAPTION | WS_SYSMENU
+STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 EXSTYLE WS_EX_TOOLWINDOW
 CAPTION "Set offsets"
 FONT 8, "MS Sans Serif", 0, 0, 0x1
 BEGIN
-    CONTROL         "Slider2",IDC_SLIDER_OFFSETFACTOR,"msctls_trackbar32",
-                    TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,39,14,100,15
+    CONTROL         "Slider2",IDC_SLIDER_OFFSETFACTOR,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,39,14,100,15
     LTEXT           "Factor:",IDC_STATIC,13,17,23,15
     LTEXT           "Units:",IDC_STATIC,13,35,19,8
-    CONTROL         "Slider3",IDC_SLIDER_OFFSETUNITS,"msctls_trackbar32",
-                    TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,39,32,100,15
+    CONTROL         "Slider3",IDC_SLIDER_OFFSETUNITS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,39,32,100,15
     GROUPBOX        "Offset parameters",IDC_STATIC,7,6,173,47
-    EDITTEXT        IDC_EDIT_OFFSETFACTOR,148,14,22,14,ES_AUTOHSCROLL | 
-                    ES_NUMBER
-    EDITTEXT        IDC_EDIT_OFFSETUNITS,148,32,22,14,ES_AUTOHSCROLL | 
-                    ES_NUMBER
+    EDITTEXT        IDC_EDIT_OFFSETFACTOR,148,14,22,14,ES_AUTOHSCROLL | ES_NUMBER
+    EDITTEXT        IDC_EDIT_OFFSETUNITS,148,32,22,14,ES_AUTOHSCROLL | ES_NUMBER
 END
 
-IDD_TRIHEDRON DIALOG DISCARDABLE  0, 0, 138, 95
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+IDD_TRIHEDRON DIALOG  0, 0, 138, 95
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Triedron settings"
 FONT 8, "MS Sans Serif"
 BEGIN
     DEFPUSHBUTTON   "OK",IDOK,21,75,50,14
     PUSHBUTTON      "Cancel",IDCANCEL,73,75,50,14
-    COMBOBOX        IDC_COMBOTRIHEDRPOS,38,8,92,60,CBS_DROPDOWN | CBS_SORT | 
-                    WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_COMBOTRIHEDRCOLOR,38,29,92,78,CBS_DROPDOWN | 
-                    CBS_SORT | WS_VSCROLL | WS_TABSTOP
-    EDITTEXT        IDC_EDITTRIHEDRSCALE,38,51,33,12,ES_CENTER | 
-                    ES_AUTOHSCROLL
+    COMBOBOX        IDC_COMBOTRIHEDRPOS,38,8,92,60,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_COMBOTRIHEDRCOLOR,38,29,92,78,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    EDITTEXT        IDC_EDITTRIHEDRSCALE,38,51,33,12,ES_CENTER | ES_AUTOHSCROLL
     LTEXT           "Color:",IDC_STATIC,8,31,20,8
     LTEXT           "Position:",IDC_STATIC,8,10,28,8
     LTEXT           "Scale:",IDC_STATIC,8,53,24,10
-    CONTROL         "Spin1",IDC_SPINTRIHEDRSCALE,"msctls_updown32",
-                    UDS_AUTOBUDDY | UDS_ARROWKEYS,70,51,11,12
+    CONTROL         "Spin1",IDC_SPINTRIHEDRSCALE,"msctls_updown32",UDS_AUTOBUDDY | UDS_ARROWKEYS,70,51,11,12
 END
 
 
@@ -73,7 +69,7 @@ END
 //
 
 #ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO MOVEABLE PURE 
+GUIDELINES DESIGNINFO 
 BEGIN
     IDD_SETOFFSETS, DIALOG
     BEGIN
@@ -103,55 +99,45 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 // Dialog
 //
 
-IDD_ZCLIPPING DIALOG DISCARDABLE  0, 0, 180, 95
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
+IDD_ZCLIPPING DIALOG  0, 0, 180, 95
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION
 CAPTION "ZClipping"
 FONT 8, "MS Sans Serif"
 BEGIN
     DEFPUSHBUTTON   "OK",IDOK,13,68,50,14
     PUSHBUTTON      "Cancel",IDCANCEL,70,68,50,14
-    CONTROL         "Slider1",IDC_SLIDER_ZCLIPPINGDEPTH,"msctls_trackbar32",
-                    TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,6,97,15
+    CONTROL         "Slider1",IDC_SLIDER_ZCLIPPINGDEPTH,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,6,97,15
     LTEXT           "Depth:",IDC_STATIC,13,9,22,8
     GROUPBOX        "",IDC_STATIC,7,0,166,44
-    EDITTEXT        IDC_EDIT_ZCLIPPINGDEPTH,131,7,34,14,ES_AUTOHSCROLL | 
-                    ES_NUMBER
-    CONTROL         "Slider2",IDC_SLIDER_ZCLIPPINGWIDTH,"msctls_trackbar32",
-                    TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,25,97,15
+    EDITTEXT        IDC_EDIT_ZCLIPPINGDEPTH,131,7,34,14,ES_AUTOHSCROLL | ES_NUMBER
+    CONTROL         "Slider2",IDC_SLIDER_ZCLIPPINGWIDTH,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,25,97,15
     LTEXT           "Width:",IDC_STATIC,13,28,22,8
-    EDITTEXT        IDC_EDIT_ZCLIPPINGWIDTH,131,26,34,14,ES_AUTOHSCROLL | 
-                    ES_NUMBER
-    COMBOBOX        IDC_COMBO_ZCLIPPINGTYPE,39,47,80,55,CBS_DROPDOWNLIST | 
-                    CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    EDITTEXT        IDC_EDIT_ZCLIPPINGWIDTH,131,26,34,14,ES_AUTOHSCROLL | ES_NUMBER
+    COMBOBOX        IDC_COMBO_ZCLIPPINGTYPE,39,47,80,55,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
     LTEXT           "Type:",IDC_STATIC,13,49,19,8
     GROUPBOX        "",IDC_STATIC,7,59,166,29
 END
 
-IDD_ZCUEING DIALOG DISCARDABLE  0, 0, 180, 95
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
+IDD_ZCUEING DIALOG  0, 0, 180, 95
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION
 CAPTION "ZCueing"
 FONT 8, "MS Sans Serif"
 BEGIN
     DEFPUSHBUTTON   "OK",IDOK,13,68,50,14
     PUSHBUTTON      "Cancel",IDCANCEL,70,68,50,14
-    CONTROL         "Slider1",IDC_SLIDER_ZCUEINGDEPTH,"msctls_trackbar32",
-                    TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,6,97,15
+    CONTROL         "Slider1",IDC_SLIDER_ZCUEINGDEPTH,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,6,97,15
     LTEXT           "Depth:",-1,13,9,22,8
     GROUPBOX        "",-1,7,0,166,44
-    EDITTEXT        IDC_EDIT_ZCUEINGDEPTH,131,7,34,14,ES_AUTOHSCROLL | 
-                    ES_NUMBER
-    CONTROL         "Slider2",IDC_SLIDER_ZCUEINGWIDTH,"msctls_trackbar32",
-                    TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,25,97,15
+    EDITTEXT        IDC_EDIT_ZCUEINGDEPTH,131,7,34,14,ES_AUTOHSCROLL | ES_NUMBER
+    CONTROL         "Slider2",IDC_SLIDER_ZCUEINGWIDTH,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,25,97,15
     LTEXT           "Width:",-1,13,28,22,8
-    EDITTEXT        IDC_EDIT_ZCUEINGWIDTH,131,26,34,14,ES_AUTOHSCROLL | 
-                    ES_NUMBER
+    EDITTEXT        IDC_EDIT_ZCUEINGWIDTH,131,26,34,14,ES_AUTOHSCROLL | ES_NUMBER
     GROUPBOX        "",-1,7,59,166,29
-    CONTROL         "Cueing ON/OFF",IDC_CHECK_CUEINGONOFF,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,13,49,67,10
+    CONTROL         "Cueing ON/OFF",IDC_CHECK_CUEINGONOFF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,49,67,10
 END
 
-IDD_SHADINGMODEL DIALOG DISCARDABLE  0, 0, 60, 66
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+IDD_SHADINGMODEL DIALOG  0, 0, 60, 66
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "ShadingModel"
 FONT 8, "MS Sans Serif"
 BEGIN
@@ -160,24 +146,47 @@ BEGIN
     PUSHBUTTON      "GOURAUD",IDC_SHADINGMODEL_GOURAUD,7,43,46,16
 END
 
-IDD_MODELCLIPPING DIALOG DISCARDABLE  0, 0, 180, 74
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
+IDD_MODELCLIPPING DIALOG  0, 0, 180, 74
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION
 CAPTION "Model clipping"
 FONT 8, "MS Sans Serif"
 BEGIN
     DEFPUSHBUTTON   "OK",IDOK,13,47,50,14
     PUSHBUTTON      "Cancel",IDCANCEL,70,47,50,14
-    CONTROL         "Slider1",IDC_SLIDER_MODELCLIPPING_Z,"msctls_trackbar32",
-                    TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,21,6,97,15
+    CONTROL         "Slider1",IDC_SLIDER_MODELCLIPPING_Z,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,21,6,97,15
     LTEXT           "Z:",-1,12,10,8,8
     GROUPBOX        "",-1,7,0,166,25
-    EDITTEXT        IDC_EDIT_MODELCLIPPING_Z,118,7,34,14,ES_AUTOHSCROLL | 
-                    ES_NUMBER
+    EDITTEXT        IDC_EDIT_MODELCLIPPING_Z,118,7,34,14,ES_AUTOHSCROLL | ES_NUMBER
     GROUPBOX        "",-1,7,38,166,29
     CONTROL         "Model clipping ON/OFF",IDC_CHECK_MODELCLIPPINGONOFF,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,28,91,10
 END
 
+IDD_RADIUS DIALOGEX 0, 0, 151, 82
+STYLE DS_SETFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Radius"
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+    DEFPUSHBUTTON   "OK",IDOK,7,61,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,94,61,50,14
+    CONTROL         "Spin1",IDC_SPIN_RADIUS,"msctls_updown32",UDS_ARROWKEYS,98,43,11,14
+    EDITTEXT        IDC_EDIT_RADIUS,48,42,45,13,ES_AUTOHSCROLL | NOT WS_TABSTOP
+    CTEXT           "Radius Fillet",IDC_RadiusFillet,33,20,94,18,0,WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE,HIDC_RadiusFillet
+END
+
+IDD_ISOS DIALOG  0, 0, 161, 66
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Isos"
+FONT 8, "MS Sans Serif"
+BEGIN
+    DEFPUSHBUTTON   "OK",IDOK,7,44,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,104,44,50,14
+    LTEXT           "U Isos Number",IDC_ISOU,31,13,48,8
+    LTEXT           "V Isos Number",IDC_ISOV,31,28,47,8
+    EDITTEXT        IDC_EDIT_ISOU,93,7,40,14,ES_AUTOHSCROLL
+    EDITTEXT        IDC_EDIT_ISOV,93,24,40,12,ES_AUTOHSCROLL
+END
+
 
 #ifdef APSTUDIO_INVOKED
 /////////////////////////////////////////////////////////////////////////////
@@ -185,18 +194,18 @@ END
 // TEXTINCLUDE
 //
 
-1 TEXTINCLUDE MOVEABLE PURE 
+1 TEXTINCLUDE 
 BEGIN
     "resource.h\0"
 END
 
-2 TEXTINCLUDE MOVEABLE PURE 
+2 TEXTINCLUDE 
 BEGIN
     "#include ""afxres.h""\r\n"
     "#include ""..\\..\\Common\\res\\OCC_Resource.h""\0"
 END
 
-3 TEXTINCLUDE MOVEABLE PURE 
+3 TEXTINCLUDE 
 BEGIN
     "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
     "#define _AFX_NO_OLE_RESOURCES\r\n"
@@ -220,18 +229,20 @@ END
 // Bitmap
 //
 
-IDR_MAINFRAME           BITMAP  MOVEABLE PURE   "..//res//Toolbar.bmp"
-IDR_TB_AIS              BITMAP  MOVEABLE PURE   "..//res//AIS_TB.bmp"
+IDR_MAINFRAME           BITMAP                  "..//res//Toolbar.bmp"
+IDR_TB_AIS              BITMAP                  "..//res//AIS_TB.bmp"
 
 /////////////////////////////////////////////////////////////////////////////
 //
 // Toolbar
 //
 
-IDR_MAINFRAME TOOLBAR MOVEABLE PURE  20, 20
+IDR_MAINFRAME TOOLBAR  20, 20
 BEGIN
     BUTTON      ID_FILE_NEW
     SEPARATOR
+    BUTTON      ID_CIRCLE
+    BUTTON      ID_LINE
     BUTTON      ID_BOX
     BUTTON      ID_Cylinder
     BUTTON      ID_SPHERE
@@ -253,15 +264,32 @@ BEGIN
     BUTTON      ID_ZCUEING
     BUTTON      ID_SCALE
     SEPARATOR
+    BUTTON      ID_NBISOS
     BUTTON      ID_SHADINGMODEL
     BUTTON      ID_ANTIALIASINGONOFF
     SEPARATOR
     BUTTON      ID_MODELCLIPPING
     SEPARATOR
+    BUTTON      ID_VERTICES
+    BUTTON      ID_EDGES
+    BUTTON      ID_FACES
+    BUTTON      ID_NEUTRAL
+    SEPARATOR
+    BUTTON      ID_FILLET3D
+    SEPARATOR
+    BUTTON      ID_TEXTURE_ON
+    BUTTON      ID_BUTTONStart
+    BUTTON      ID_BUTTONPrev
+    BUTTON      ID_BUTTONRepeat
+    BUTTON      ID_BUTTONNext
+    BUTTON      ID_BUTTONEnd
+    SEPARATOR
+    BUTTON      ID_DUMP_VIEW
+    SEPARATOR
     BUTTON      ID_APP_ABOUT
 END
 
-IDR_TB_AIS TOOLBAR MOVEABLE PURE  20, 20
+IDR_TB_AIS TOOLBAR  20, 20
 BEGIN
     BUTTON      ID_OBJECT_WIREFRAME
     BUTTON      ID_OBJECT_SHADING
@@ -275,6 +303,7 @@ BEGIN
     BUTTON      ID_OBJECT_DISPLAYALL
     SEPARATOR
     BUTTON      ID_OBJECT_REMOVE
+    BUTTON      ID_OBJECT_DIM
 END
 
 
@@ -283,7 +312,7 @@ END
 // Menu
 //
 
-IDR_MAINFRAME MENU DISCARDABLE 
+IDR_MAINFRAME MENU 
 BEGIN
     POPUP "&File"
     BEGIN
@@ -302,7 +331,7 @@ BEGIN
     END
 END
 
-IDR_3DTYPE MENU DISCARDABLE 
+IDR_3DTYPE MENU 
 BEGIN
     POPUP "&File"
     BEGIN
@@ -321,9 +350,7 @@ BEGIN
         POPUP "&Trihedron"
         BEGIN
             MENUITEM "&Static Trihedron...",        ID_OPTIONS_TRIHEDRON_STATIC_TRIHEDRON
-
             MENUITEM "&Dynamic Trihedron",          ID_OPTIONS_TRIHEDRON_DYNAMIC_TRIHEDRON
-
         END
     END
     POPUP "&Window"
@@ -339,8 +366,52 @@ BEGIN
     END
 END
 
+IDR_Popup3D MENU 
+BEGIN
+    POPUP "BackGround"
+    BEGIN
+        MENUITEM "Background Color...",         ID_Modify_ChangeBackground
+    END
+    POPUP "Object(s)"
+    BEGIN
+        MENUITEM "Erase",                       ID_OBJECT_ERASE
+        MENUITEM "Shading",                     ID_OBJECT_SHADING
+        MENUITEM "Wireframe",                   ID_OBJECT_WIREFRAME
+        MENUITEM "Color...",                    ID_OBJECT_COLOR
+        MENUITEM "Material...",                 ID_OBJECT_MATERIAL
+        POPUP "Material"
+        BEGIN
+            MENUITEM "Aluminium",                   ID_OBJECT_MATERIAL_ALUMINIUM
+            MENUITEM "Brass",                       ID_OBJECT_MATERIAL_BRASS
+            MENUITEM "Bronze",                      ID_OBJECT_MATERIAL_BRONZE
+            MENUITEM "Chrome",                      ID_OBJECT_MATERIAL_CHROME
+            MENUITEM "Copper",                      ID_OBJECT_MATERIAL_COPPER
+            MENUITEM "Gold",                        ID_OBJECT_MATERIAL_GOLD
+            MENUITEM "Jade",                        ID_OBJECT_MATERIAL_JADE
+            MENUITEM "Metalized",                   ID_OBJECT_MATERIAL_METALIZED
+            MENUITEM "Neon GNC",                    ID_OBJECT_MATERIAL_NEON_GNC
+            MENUITEM "Neon PHC",                    ID_OBJECT_MATERIAL_NEON_PHC
+            MENUITEM "Obsidian",                    ID_OBJECT_MATERIAL_OBSIDIAN
+            MENUITEM "Pewter",                      ID_OBJECT_MATERIAL_PEWTER
+            MENUITEM "Plaster",                     ID_OBJECT_MATERIAL_PLASTER
+            MENUITEM "Plastic",                     ID_OBJECT_MATERIAL_PLASTIC
+            MENUITEM "Satin",                       ID_OBJECT_MATERIAL_SATIN
+            MENUITEM "Shiny plastic",               ID_OBJECT_MATERIAL_SHINY_PLASTIC
+            MENUITEM "Silver",                      ID_OBJECT_MATERIAL_SILVER
+            MENUITEM "Steel",                       ID_OBJECT_MATERIAL_STEEL
+            MENUITEM "Stone",                       ID_OBJECT_MATERIAL_STONE
+            MENUITEM SEPARATOR
+            MENUITEM "Default",                     ID_OBJECT_MATERIAL_DEFAULT
+        END
+        MENUITEM "Transparency...",             ID_OBJECT_TRANSPARENCY
+    END
+    POPUP "User cylinder"
+    BEGIN
+        MENUITEM "Change face color",           ID_USERCYLINDER_CHANGEFACECOLOR
+    END
+END
+
 
-#ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
 //
 // Version
@@ -363,13 +434,13 @@ BEGIN
     BEGIN
         BLOCK "040904b0"
         BEGIN
-            VALUE "FileDescription", "Viewer MFC Application\0"
-            VALUE "FileVersion", "1, 0, 0, 1\0"
-            VALUE "InternalName", "Viewer\0"
-            VALUE "LegalCopyright", "Copyright (C) 1997\0"
-            VALUE "OriginalFilename", "Viewer.EXE\0"
-            VALUE "ProductName", "SampleViewer3d Application\0"
-            VALUE "ProductVersion", "1, 0, 0, 1\0"
+            VALUE "FileDescription", "Viewer MFC Application"
+            VALUE "FileVersion", "1, 0, 0, 1"
+            VALUE "InternalName", "Viewer"
+            VALUE "LegalCopyright", "Copyright (C) 1997"
+            VALUE "OriginalFilename", "Viewer.EXE"
+            VALUE "ProductName", "SampleViewer3d Application"
+            VALUE "ProductVersion", "1, 0, 0, 1"
         END
     END
     BLOCK "VarFileInfo"
@@ -378,21 +449,19 @@ BEGIN
     END
 END
 
-#endif    // !_MAC
-
 
 /////////////////////////////////////////////////////////////////////////////
 //
 // String Table
 //
 
-STRINGTABLE DISCARDABLE 
+STRINGTABLE 
 BEGIN
     IDR_MAINFRAME           "Viewer3d"
     IDR_3DTYPE              "\nViewer3d\n\n\n\n.Document\n Document"
 END
 
-STRINGTABLE DISCARDABLE 
+STRINGTABLE 
 BEGIN
     ID_BOX                  "Create and display a box\nBox"
     ID_Cylinder             "Create and display a cylinder\nCylinder"
@@ -409,7 +478,7 @@ BEGIN
     ID_ANTIALIASINGONOFF    "Antialiasing ON/OFF\nAntialiasing"
 END
 
-STRINGTABLE DISCARDABLE 
+STRINGTABLE 
 BEGIN
     ID_CLEAR_LIGHTS         "Clear all the light sources\nClear lights"
     ID_MODELCLIPPING        "ModelClipping\nModelClipping"
@@ -423,6 +492,35 @@ BEGIN
     ID_SCALE                "Scale\nScale"
 END
 
+STRINGTABLE 
+BEGIN
+    ID_CIRCLE               "Clear all the light sources\nClear lights"
+    ID_LINE                 "Create and display a line with standard tools\nLine"
+    ID_VERTICES             "Set the selection mode to vertices\nVertices"
+    ID_EDGES                "Set the selection mode to edges\nEdges"
+    ID_FACES                "Set the selection modes to faces\nFaces"
+    ID_NEUTRAL              "Neutral point for selection\nNeutral point"
+    ID_FILLET3D             "Make a fillet between faces\nFillet"
+    ID_NBISOS               "Set global isos number\nIsos"
+    ID_BUTTONStart          "Press to go to the first sample\nFirst sample (Home)"
+    ID_BUTTONPrev           "Press to go to the previous sample\nPrevious sample (PgUp)"
+    ID_BUTTONRepeat         "Press to repeat the current sample\nRepeat sample (Space)"
+    ID_BUTTONNext           "Press to go to the next sample\nNext sample (PgDn)"
+    ID_BUTTONEnd            "Press to go to the last sample\nLast sample (End)"
+END
+
+STRINGTABLE 
+BEGIN
+    ID_DUMP_VIEW            "Save current frame into an image file\nExport view (F12)"
+    ID_TEXTURE_ON           "Run texture example\nRun texture example"
+END
+
+STRINGTABLE 
+BEGIN
+    ID_OBJECT_DIMENSIONS         "Add dimensions"
+    ID_LOCALCONTEXT_ADDDIMENSION "Add new dimension for selected objects"
+END
+
 #endif    // English (U.S.) resources
 /////////////////////////////////////////////////////////////////////////////
 
@@ -441,8 +539,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
 // Dialog
 //
 
-IDD_SCALE DIALOG DISCARDABLE  0, 0, 186, 103
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+IDD_SCALE DIALOG  0, 0, 186, 103
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Heterogeneous Scale"
 FONT 8, "MS Sans Serif"
 BEGIN
@@ -450,16 +548,13 @@ BEGIN
     PUSHBUTTON      "Cancel",IDCANCEL,70,78,50,14
     GROUPBOX        "",IDC_STATIC,7,69,166,29
     GROUPBOX        "",IDC_STATIC,7,0,166,65
-    CONTROL         "Slider1",IDC_SLIDER_SCALEX,"msctls_trackbar32",TBS_BOTH | 
-                    TBS_NOTICKS | WS_TABSTOP,34,6,97,15
+    CONTROL         "Slider1",IDC_SLIDER_SCALEX,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,6,97,15
     LTEXT           "X:",IDC_STATIC,13,9,8,8
     EDITTEXT        IDC_EDIT_SCALEX,131,7,34,14,ES_AUTOHSCROLL | ES_NUMBER
-    CONTROL         "Slider2",IDC_SLIDER_SCALEY,"msctls_trackbar32",TBS_BOTH | 
-                    TBS_NOTICKS | WS_TABSTOP,34,25,97,15
+    CONTROL         "Slider2",IDC_SLIDER_SCALEY,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,25,97,15
     LTEXT           "Y:",IDC_STATIC,13,28,8,8
     EDITTEXT        IDC_EDIT_SCALEY,131,26,34,14,ES_AUTOHSCROLL | ES_NUMBER
-    CONTROL         "Slider2",IDC_SLIDER_SCALEZ,"msctls_trackbar32",TBS_BOTH | 
-                    TBS_NOTICKS | WS_TABSTOP,34,45,97,15
+    CONTROL         "Slider2",IDC_SLIDER_SCALEZ,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,45,97,15
     LTEXT           "Z:",IDC_STATIC,13,48,8,8
     EDITTEXT        IDC_EDIT_SCALEZ,131,46,34,14,ES_AUTOHSCROLL | ES_NUMBER
 END
@@ -471,7 +566,7 @@ END
 //
 
 #ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO DISCARDABLE 
+GUIDELINES DESIGNINFO 
 BEGIN
     IDD_SCALE, DIALOG
     BEGIN
index a512cec..9a75ffa 100755 (executable)
@@ -1,10 +1,11 @@
 //{{NO_DEPENDENCIES}}
-// Microsoft Developer Studio generated include file.
+// Microsoft Visual C++ generated include file.
 // Used by Viewer3d.rc
 //
 #define IDD_SHADINGMODEL                131
 #define IDD_SETOFFSETS                  134
 #define IDD_SCALE                       139
+#define IDD_RADIUS                      144
 #define IDD_ZCLIPPING                   152
 #define IDD_ZCUEING                     153
 #define IDD_TRIHEDRON                   542
@@ -17,6 +18,7 @@
 #define ID_POSITIONAL_LIGHT             808
 #define ID_SPOT_LIGHT                   809
 #define ID_LIGHTOFF                     810
+#define ID_USERCYLINDER_CHANGEFACECOLOR 810
 #define ID_ZCLIPPING                    812
 #define ID_ZCUEING                      813
 #define ID_SHADINGMODEL                 814
 #define ID_OPTIONS_TRIHEDRON_STATIC_TRIHEDRON 829
 #define ID_OPTIONS_TRIHEDRON_DYNAMIC_TRIHEDRON 830
 #define ID_SCALE                        831
+#define ID_CIRCLE                       833
+#define ID_LINE                         834
+#define ID_VERTICES                     837
+#define ID_EDGES                        838
+#define ID_FACES                        839
+#define ID_NEUTRAL                      840
+#define ID_FILLET3D                     841
+#define ID_NBISOS                       842
+#define ID_BUTTONStart                  843
+#define ID_BUTTONPrev                   844
+#define ID_BUTTONRepeat                 845
+#define ID_BUTTONNext                   846
+#define ID_BUTTONEnd                    847
+#define ID_DUMP_VIEW                    848
+#define ID_TEXTURE_ON                   849
+#define IDC_SPIN_RADIUS                 1000
+#define IDC_EDIT_RADIUS                 1001
 #define IDC_SHADINGMODEL_COLOR          1002
+#define IDC_EDIT_ISOU                   1002
 #define IDC_SHADINGMODEL_MULTICOLOR     1003
 #define IDC_SLIDER_MODELCLIPPING_Z      1003
 #define IDC_SHADINGMODEL_FLAT           1004
+#define IDC_ISOU                        1004
 #define IDC_SHADINGMODEL_HIDDEN         1005
 #define IDC_EDIT_MODELCLIPPING_Z        1005
+#define IDC_ISOV                        1005
 #define IDC_SHADINGMODEL_GOURAUD        1006
+#define IDC_EDIT_ISOV                   1006
 #define IDC_CHECK_MODELCLIPPINGONOFF    1008
 #define IDC_SLIDER_OFFSETFACTOR         1010
 #define IDC_SLIDER_OFFSETUNITS          1011
 #define IDC_SLIDER_SCALEY               1029
 #define IDC_EDIT_SCALEX                 1030
 #define IDC_EDIT_SCALEY                 1031
+#define IDC_RadiusFillet                1031
 #define IDC_SLIDER_SCALEZ               1032
 #define IDC_EDIT_SCALEZ                 1033
 #define IDD_RESULTMESSAGEDLG            1500
 #define IDD_MODELCLIPPING               1501
+#define IDD_ISOS                        1502
 #define IDC_COMBO_ZCLIPPINGTYPE         1650
 #define IDC_CHECK_CUEINGONOFF           1651
 #define IDC_EDITTRIHEDRSCALE            1686
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        140
-#define _APS_NEXT_COMMAND_VALUE         832
+#define _APS_NEXT_COMMAND_VALUE         850
 #define _APS_NEXT_CONTROL_VALUE         1032
 #define _APS_NEXT_SYMED_VALUE           104
 #endif
index 9fbdcd8..bf805a9 100755 (executable)
@@ -2,7 +2,7 @@
 //
 
 #include "stdafx.h"
-#include "resource.h"
+#include "..\res\resource.h"
 #include "offsetdlg.h"
 #include "Viewer3dView.h"
 
index f15df71..652dfef 100755 (executable)
@@ -7,7 +7,7 @@
 // ScaleDlg.h : header file
 //
 
-#include "resource.h"
+#include "..\res\resource.h"
 #include "Viewer3dView.h"
 
 /////////////////////////////////////////////////////////////////////////////
index 6ddad56..48b6e87 100755 (executable)
@@ -7,7 +7,7 @@
 #pragma once
 #endif // _MSC_VER >= 1000
 
-#include "resource.h"
+#include "..\res\resource.h"
 
 /////////////////////////////////////////////////////////////////////////////
 // CShadingModelDlg dialog
index dbe7b83..b15dda5 100755 (executable)
@@ -67,7 +67,7 @@
 
 #include "State.h"
 
-#include <resource.h>
+#include <..\res\resource.h>
 
 //{{AFX_INSERT_LOCATION}}
 // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index 32492e8..6f76a04 100755 (executable)
@@ -13,7 +13,7 @@
 #include <Aspect.hxx>
 #include <Quantity_NameOfColor.hxx>
 
-#include "resource.h"
+#include "..\res\resource.h"
 /////////////////////////////////////////////////////////////////////////////
 // CTrihedronDlg dialog
 
diff --git a/samples/mfc/standard/04_Viewer3d/src/Viewer3d.rc b/samples/mfc/standard/04_Viewer3d/src/Viewer3d.rc
deleted file mode 100755 (executable)
index 01e4c83..0000000
+++ /dev/null
@@ -1,606 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-// Generated Help ID header file
-#define APSTUDIO_HIDDEN_SYMBOLS
-#include "resource.hm"
-#undef APSTUDIO_HIDDEN_SYMBOLS
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-#include "..\..\Common\res\OCC_Resource.h"
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// Russian resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
-#ifdef _WIN32
-LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
-#pragma code_page(1251)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_SETOFFSETS DIALOGEX 442, 45, 187, 60
-STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_TOOLWINDOW
-CAPTION "Set offsets"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
-    CONTROL         "Slider2",IDC_SLIDER_OFFSETFACTOR,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,39,14,100,15
-    LTEXT           "Factor:",IDC_STATIC,13,17,23,15
-    LTEXT           "Units:",IDC_STATIC,13,35,19,8
-    CONTROL         "Slider3",IDC_SLIDER_OFFSETUNITS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,39,32,100,15
-    GROUPBOX        "Offset parameters",IDC_STATIC,7,6,173,47
-    EDITTEXT        IDC_EDIT_OFFSETFACTOR,148,14,22,14,ES_AUTOHSCROLL | ES_NUMBER
-    EDITTEXT        IDC_EDIT_OFFSETUNITS,148,32,22,14,ES_AUTOHSCROLL | ES_NUMBER
-END
-
-IDD_TRIHEDRON DIALOG  0, 0, 138, 95
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Triedron settings"
-FONT 8, "MS Sans Serif"
-BEGIN
-    DEFPUSHBUTTON   "OK",IDOK,21,75,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,73,75,50,14
-    COMBOBOX        IDC_COMBOTRIHEDRPOS,38,8,92,60,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_COMBOTRIHEDRCOLOR,38,29,92,78,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
-    EDITTEXT        IDC_EDITTRIHEDRSCALE,38,51,33,12,ES_CENTER | ES_AUTOHSCROLL
-    LTEXT           "Color:",IDC_STATIC,8,31,20,8
-    LTEXT           "Position:",IDC_STATIC,8,10,28,8
-    LTEXT           "Scale:",IDC_STATIC,8,53,24,10
-    CONTROL         "Spin1",IDC_SPINTRIHEDRSCALE,"msctls_updown32",UDS_AUTOBUDDY | UDS_ARROWKEYS,70,51,11,12
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO 
-BEGIN
-    IDD_SETOFFSETS, DIALOG
-    BEGIN
-        LEFTMARGIN, 7
-        RIGHTMARGIN, 180
-        TOPMARGIN, 6
-        BOTTOMMARGIN, 53
-    END
-END
-#endif    // APSTUDIO_INVOKED
-
-#endif    // Russian resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_ZCLIPPING DIALOG  0, 0, 180, 95
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION
-CAPTION "ZClipping"
-FONT 8, "MS Sans Serif"
-BEGIN
-    DEFPUSHBUTTON   "OK",IDOK,13,68,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,70,68,50,14
-    CONTROL         "Slider1",IDC_SLIDER_ZCLIPPINGDEPTH,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,6,97,15
-    LTEXT           "Depth:",IDC_STATIC,13,9,22,8
-    GROUPBOX        "",IDC_STATIC,7,0,166,44
-    EDITTEXT        IDC_EDIT_ZCLIPPINGDEPTH,131,7,34,14,ES_AUTOHSCROLL | ES_NUMBER
-    CONTROL         "Slider2",IDC_SLIDER_ZCLIPPINGWIDTH,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,25,97,15
-    LTEXT           "Width:",IDC_STATIC,13,28,22,8
-    EDITTEXT        IDC_EDIT_ZCLIPPINGWIDTH,131,26,34,14,ES_AUTOHSCROLL | ES_NUMBER
-    COMBOBOX        IDC_COMBO_ZCLIPPINGTYPE,39,47,80,55,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Type:",IDC_STATIC,13,49,19,8
-    GROUPBOX        "",IDC_STATIC,7,59,166,29
-END
-
-IDD_ZCUEING DIALOG  0, 0, 180, 95
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION
-CAPTION "ZCueing"
-FONT 8, "MS Sans Serif"
-BEGIN
-    DEFPUSHBUTTON   "OK",IDOK,13,68,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,70,68,50,14
-    CONTROL         "Slider1",IDC_SLIDER_ZCUEINGDEPTH,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,6,97,15
-    LTEXT           "Depth:",-1,13,9,22,8
-    GROUPBOX        "",-1,7,0,166,44
-    EDITTEXT        IDC_EDIT_ZCUEINGDEPTH,131,7,34,14,ES_AUTOHSCROLL | ES_NUMBER
-    CONTROL         "Slider2",IDC_SLIDER_ZCUEINGWIDTH,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,25,97,15
-    LTEXT           "Width:",-1,13,28,22,8
-    EDITTEXT        IDC_EDIT_ZCUEINGWIDTH,131,26,34,14,ES_AUTOHSCROLL | ES_NUMBER
-    GROUPBOX        "",-1,7,59,166,29
-    CONTROL         "Cueing ON/OFF",IDC_CHECK_CUEINGONOFF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,49,67,10
-END
-
-IDD_SHADINGMODEL DIALOG 0, 0, 60, 86
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "ShadingModel"
-FONT 8, "MS Sans Serif"
-BEGIN
-    PUSHBUTTON      "COLOR",IDC_SHADINGMODEL_COLOR,7,7,46,16
-    PUSHBUTTON      "FLAT",IDC_SHADINGMODEL_FLAT,7,25,46,15
-    PUSHBUTTON      "GOURAUD",IDC_SHADINGMODEL_GOURAUD,7,43,46,16
-    PUSHBUTTON      "PHONG",IDC_SHADINGMODEL_PHONG,7,62,46,16
-END
-
-IDD_MODELCLIPPING DIALOG  0, 0, 180, 74
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION
-CAPTION "Model clipping"
-FONT 8, "MS Sans Serif"
-BEGIN
-    DEFPUSHBUTTON   "OK",IDOK,13,47,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,70,47,50,14
-    CONTROL         "Slider1",IDC_SLIDER_MODELCLIPPING_Z,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,21,6,97,15
-    LTEXT           "Z:",-1,12,10,8,8
-    GROUPBOX        "",-1,7,0,166,25
-    EDITTEXT        IDC_EDIT_MODELCLIPPING_Z,118,7,34,14,ES_AUTOHSCROLL | ES_NUMBER
-    GROUPBOX        "",-1,7,38,166,29
-    CONTROL         "Model clipping ON/OFF",IDC_CHECK_MODELCLIPPINGONOFF,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,28,91,10
-END
-
-IDD_RADIUS DIALOGEX 0, 0, 151, 82
-STYLE DS_SETFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Radius"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
-    DEFPUSHBUTTON   "OK",IDOK,7,61,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,94,61,50,14
-    CONTROL         "Spin1",IDC_SPIN_RADIUS,"msctls_updown32",UDS_ARROWKEYS,98,43,11,14
-    EDITTEXT        IDC_EDIT_RADIUS,48,42,45,13,ES_AUTOHSCROLL | NOT WS_TABSTOP
-    CTEXT           "Radius Fillet",IDC_RadiusFillet,33,20,94,18,0,WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE,HIDC_RadiusFillet
-END
-
-IDD_ISOS DIALOG  0, 0, 161, 66
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Isos"
-FONT 8, "MS Sans Serif"
-BEGIN
-    DEFPUSHBUTTON   "OK",IDOK,7,44,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,104,44,50,14
-    LTEXT           "U Isos Number",IDC_ISOU,31,13,48,8
-    LTEXT           "V Isos Number",IDC_ISOV,31,28,47,8
-    EDITTEXT        IDC_EDIT_ISOU,93,7,40,14,ES_AUTOHSCROLL
-    EDITTEXT        IDC_EDIT_ISOV,93,24,40,12,ES_AUTOHSCROLL
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE 
-BEGIN
-    "resource.h\0"
-END
-
-2 TEXTINCLUDE 
-BEGIN
-    "#include ""afxres.h""\r\n"
-    "#include ""..\\..\\Common\\res\\OCC_Resource.h""\0"
-END
-
-3 TEXTINCLUDE 
-BEGIN
-    "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
-    "#define _AFX_NO_OLE_RESOURCES\r\n"
-    "#define _AFX_NO_TRACKER_RESOURCES\r\n"
-    "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
-    "\r\n"
-    "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
-    "#ifdef _WIN32\r\n"
-    "LANGUAGE 9, 1\r\n"
-    "#pragma code_page(1252)\r\n"
-    "#endif\r\n"
-    "#include ""afxres.rc""         // Standard components\r\n"
-    "#endif\0"
-END
-
-#endif    // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDR_MAINFRAME           BITMAP                  "..//res//Toolbar.bmp"
-IDR_TB_AIS              BITMAP                  "..//res//AIS_TB.bmp"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Toolbar
-//
-
-IDR_MAINFRAME TOOLBAR  20, 20
-BEGIN
-    BUTTON      ID_FILE_NEW
-    SEPARATOR
-    BUTTON      ID_CIRCLE
-    BUTTON      ID_LINE
-    BUTTON      ID_BOX
-    BUTTON      ID_Cylinder
-    BUTTON      ID_SPHERE
-    SEPARATOR
-    BUTTON      ID_OVERLAPPED_BOX
-    BUTTON      ID_OVERLAPPED_CYLINDER
-    BUTTON      ID_OVERLAPPED_SPHERE
-    BUTTON      ID_POLYGON_OFFSETS
-    SEPARATOR
-    BUTTON      ID_ERASEALL
-    SEPARATOR
-    BUTTON      ID_SPOT_LIGHT
-    BUTTON      ID_POSITIONAL_LIGHT
-    BUTTON      ID_DIRECTIONAL_LIGHT
-    BUTTON      ID_AMBIENT_LIGHT
-    BUTTON      ID_CLEAR_LIGHTS
-    SEPARATOR
-    BUTTON      ID_ZCLIPPING
-    BUTTON      ID_ZCUEING
-    BUTTON      ID_SCALE
-    SEPARATOR
-    BUTTON      ID_NBISOS
-    BUTTON      ID_SHADINGMODEL
-    BUTTON      ID_ANTIALIASINGONOFF
-    SEPARATOR
-    BUTTON      ID_MODELCLIPPING
-    SEPARATOR
-    BUTTON      ID_VERTICES
-    BUTTON      ID_EDGES
-    BUTTON      ID_FACES
-    BUTTON      ID_NEUTRAL
-    SEPARATOR
-    BUTTON      ID_FILLET3D
-    SEPARATOR
-    BUTTON      ID_TEXTURE_ON
-    BUTTON      ID_BUTTONStart
-    BUTTON      ID_BUTTONPrev
-    BUTTON      ID_BUTTONRepeat
-    BUTTON      ID_BUTTONNext
-    BUTTON      ID_BUTTONEnd
-    SEPARATOR
-    BUTTON      ID_DUMP_VIEW
-    SEPARATOR
-    BUTTON      ID_APP_ABOUT
-END
-
-IDR_TB_AIS TOOLBAR  20, 20
-BEGIN
-    BUTTON      ID_OBJECT_WIREFRAME
-    BUTTON      ID_OBJECT_SHADING
-    BUTTON      ID_OBJECT_COLORED_MESH
-    SEPARATOR
-    BUTTON      ID_OBJECT_COLOR
-    BUTTON      ID_OBJECT_MATERIAL
-    BUTTON      ID_OBJECT_TRANSPARENCY
-    SEPARATOR
-    BUTTON      ID_OBJECT_ERASE
-    BUTTON      ID_OBJECT_DISPLAYALL
-    SEPARATOR
-    BUTTON      ID_OBJECT_REMOVE
-    BUTTON      ID_OBJECT_DIM
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDR_MAINFRAME MENU 
-BEGIN
-    POPUP "&File"
-    BEGIN
-        MENUITEM "&New\tCtrl+N",                ID_FILE_NEW
-        MENUITEM SEPARATOR
-        MENUITEM "E&xit",                       ID_APP_EXIT
-    END
-    POPUP "&View"
-    BEGIN
-        MENUITEM "&Toolbar",                    ID_VIEW_TOOLBAR
-        MENUITEM "&Status Bar",                 ID_VIEW_STATUS_BAR
-    END
-    POPUP "&Help"
-    BEGIN
-        MENUITEM "&About Viewer3d...",          ID_APP_ABOUT
-    END
-END
-
-IDR_3DTYPE MENU 
-BEGIN
-    POPUP "&File"
-    BEGIN
-        MENUITEM "&New\tCtrl+N",                ID_FILE_NEW
-        MENUITEM "&Close",                      ID_FILE_CLOSE
-        MENUITEM SEPARATOR
-        MENUITEM "E&xit",                       ID_APP_EXIT
-    END
-    POPUP "&View"
-    BEGIN
-        MENUITEM "&Toolbar",                    ID_VIEW_TOOLBAR
-        MENUITEM "&Status Bar",                 ID_VIEW_STATUS_BAR
-    END
-    POPUP "&Options"
-    BEGIN
-        POPUP "&Trihedron"
-        BEGIN
-            MENUITEM "&Static Trihedron...",        ID_OPTIONS_TRIHEDRON_STATIC_TRIHEDRON
-            MENUITEM "&Dynamic Trihedron",          ID_OPTIONS_TRIHEDRON_DYNAMIC_TRIHEDRON
-        END
-    END
-    POPUP "&Window"
-    BEGIN
-        MENUITEM "&New Window",                 ID_WINDOW_NEW
-        MENUITEM "&Cascade",                    ID_WINDOW_CASCADE
-        MENUITEM "&Tile",                       ID_WINDOW_TILE_HORZ
-        MENUITEM "&Arrange Icons",              ID_WINDOW_ARRANGE
-    END
-    POPUP "&Help"
-    BEGIN
-        MENUITEM "&About Viewer3d...",          ID_APP_ABOUT
-    END
-END
-
-IDR_Popup3D MENU 
-BEGIN
-    POPUP "BackGround"
-    BEGIN
-        MENUITEM "Background Color...",         ID_Modify_ChangeBackground
-    END
-    POPUP "Object(s)"
-    BEGIN
-        MENUITEM "Erase",                       ID_OBJECT_ERASE
-        MENUITEM "Shading",                     ID_OBJECT_SHADING
-        MENUITEM "Wireframe",                   ID_OBJECT_WIREFRAME
-        MENUITEM "Color...",                    ID_OBJECT_COLOR
-        MENUITEM "Material...",                 ID_OBJECT_MATERIAL
-        POPUP "Material"
-        BEGIN
-            MENUITEM "Aluminium",                   ID_OBJECT_MATERIAL_ALUMINIUM
-            MENUITEM "Brass",                       ID_OBJECT_MATERIAL_BRASS
-            MENUITEM "Bronze",                      ID_OBJECT_MATERIAL_BRONZE
-            MENUITEM "Chrome",                      ID_OBJECT_MATERIAL_CHROME
-            MENUITEM "Copper",                      ID_OBJECT_MATERIAL_COPPER
-            MENUITEM "Gold",                        ID_OBJECT_MATERIAL_GOLD
-            MENUITEM "Jade",                        ID_OBJECT_MATERIAL_JADE
-            MENUITEM "Metalized",                   ID_OBJECT_MATERIAL_METALIZED
-            MENUITEM "Neon GNC",                    ID_OBJECT_MATERIAL_NEON_GNC
-            MENUITEM "Neon PHC",                    ID_OBJECT_MATERIAL_NEON_PHC
-            MENUITEM "Obsidian",                    ID_OBJECT_MATERIAL_OBSIDIAN
-            MENUITEM "Pewter",                      ID_OBJECT_MATERIAL_PEWTER
-            MENUITEM "Plaster",                     ID_OBJECT_MATERIAL_PLASTER
-            MENUITEM "Plastic",                     ID_OBJECT_MATERIAL_PLASTIC
-            MENUITEM "Satin",                       ID_OBJECT_MATERIAL_SATIN
-            MENUITEM "Shiny plastic",               ID_OBJECT_MATERIAL_SHINY_PLASTIC
-            MENUITEM "Silver",                      ID_OBJECT_MATERIAL_SILVER
-            MENUITEM "Steel",                       ID_OBJECT_MATERIAL_STEEL
-            MENUITEM "Stone",                       ID_OBJECT_MATERIAL_STONE
-            MENUITEM SEPARATOR
-            MENUITEM "Default",                     ID_OBJECT_MATERIAL_DEFAULT
-        END
-        MENUITEM "Transparency...",             ID_OBJECT_TRANSPARENCY
-    END
-    POPUP "User cylinder"
-    BEGIN
-        MENUITEM "Change face color",           ID_USERCYLINDER_CHANGEFACECOLOR
-    END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,0,1
- PRODUCTVERSION 1,0,0,1
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-        BLOCK "040904b0"
-        BEGIN
-            VALUE "FileDescription", "Viewer MFC Application"
-            VALUE "FileVersion", "1, 0, 0, 1"
-            VALUE "InternalName", "Viewer"
-            VALUE "LegalCopyright", "Copyright (C) 1997"
-            VALUE "OriginalFilename", "Viewer.EXE"
-            VALUE "ProductName", "SampleViewer3d Application"
-            VALUE "ProductVersion", "1, 0, 0, 1"
-        END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-        VALUE "Translation", 0x409, 1200
-    END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE 
-BEGIN
-    IDR_MAINFRAME           "Viewer3d"
-    IDR_3DTYPE              "\nViewer3d\n\n\n\n.Document\n Document"
-END
-
-STRINGTABLE 
-BEGIN
-    ID_BOX                  "Create and display a box\nBox"
-    ID_Cylinder             "Create and display a cylinder\nCylinder"
-    ID_SPHERE               "Create and display a sphere\nSphere"
-    ID_ERASEALL             "Remove all\nRemove all"
-    ID_AMBIENT_LIGHT        "Create an ambient light source\nAmbient light"
-    ID_DIRECTIONAL_LIGHT    "Create an directional light source\nDirectional light"
-    ID_POSITIONAL_LIGHT     "Create an positional light source\nPositional light"
-    ID_SPOT_LIGHT           "Create an spot light source\nSpot light"
-    ID_LIGHTOFF             "Delete lights\nDelete lights"
-    ID_ZCLIPPING            "ZClipping\nZClipping"
-    ID_ZCUEING              "ZCueing\nZCueing"
-    ID_SHADINGMODEL         "Define shading model\nShadingModel"
-    ID_ANTIALIASINGONOFF    "Antialiasing ON/OFF\nAntialiasing"
-END
-
-STRINGTABLE 
-BEGIN
-    ID_CLEAR_LIGHTS         "Clear all the light sources\nClear lights"
-    ID_MODELCLIPPING        "ModelClipping\nModelClipping"
-    ID_OVERLAPPED_BOX       "Create and display two overlapped boxes\nOverlapped boxes"
-    ID_BUTTON819            "Create and display two overlapped spheres\nOverlapped spheres"
-    ID_OVERLAPPED_SPHERE    "Create and display two overlapped spheres\nOverlapped spheres"
-    ID_BUTTON821            "Create and display two overlapped boxes\nOverlapped boxes"
-    ID_OVERLAPPED_CYLINDER  "Create and display two overlapped cylinders\nOverlapped cylinders"
-    ID_POLYGON_OFFSETS      "Set/unset offsets\nSet/unset offsets"
-    ID_OBJECT_COLORED_MESH  "Puts cylinder in colored mesh\nColored mesh"
-    ID_SCALE                "Scale\nScale"
-END
-
-STRINGTABLE 
-BEGIN
-    ID_CIRCLE               "Clear all the light sources\nClear lights"
-    ID_LINE                 "Create and display a line with standard tools\nLine"
-    ID_VERTICES             "Set the selection mode to vertices\nVertices"
-    ID_EDGES                "Set the selection mode to edges\nEdges"
-    ID_FACES                "Set the selection modes to faces\nFaces"
-    ID_NEUTRAL              "Neutral point for selection\nNeutral point"
-    ID_FILLET3D             "Make a fillet between faces\nFillet"
-    ID_NBISOS               "Set global isos number\nIsos"
-    ID_BUTTONStart          "Press to go to the first sample\nFirst sample (Home)"
-    ID_BUTTONPrev           "Press to go to the previous sample\nPrevious sample (PgUp)"
-    ID_BUTTONRepeat         "Press to repeat the current sample\nRepeat sample (Space)"
-    ID_BUTTONNext           "Press to go to the next sample\nNext sample (PgDn)"
-    ID_BUTTONEnd            "Press to go to the last sample\nLast sample (End)"
-END
-
-STRINGTABLE 
-BEGIN
-    ID_DUMP_VIEW            "Save current frame into an image file\nExport view (F12)"
-    ID_TEXTURE_ON           "Run texture example\nRun texture example"
-END
-
-STRINGTABLE 
-BEGIN
-    ID_OBJECT_DIMENSIONS    "Add dimensions"
-    ID_LOCALCONTEXT_ADDDIMENSION "Add new dimension for selected objetcs"
-END
-
-#endif    // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.K.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_SCALE DIALOG  0, 0, 186, 103
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Heterogeneous Scale"
-FONT 8, "MS Sans Serif"
-BEGIN
-    DEFPUSHBUTTON   "OK",IDOK,13,78,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,70,78,50,14
-    GROUPBOX        "",IDC_STATIC,7,69,166,29
-    GROUPBOX        "",IDC_STATIC,7,0,166,65
-    CONTROL         "Slider1",IDC_SLIDER_SCALEX,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,6,97,15
-    LTEXT           "X:",IDC_STATIC,13,9,8,8
-    EDITTEXT        IDC_EDIT_SCALEX,131,7,34,14,ES_AUTOHSCROLL | ES_NUMBER
-    CONTROL         "Slider2",IDC_SLIDER_SCALEY,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,25,97,15
-    LTEXT           "Y:",IDC_STATIC,13,28,8,8
-    EDITTEXT        IDC_EDIT_SCALEY,131,26,34,14,ES_AUTOHSCROLL | ES_NUMBER
-    CONTROL         "Slider2",IDC_SLIDER_SCALEZ,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,34,45,97,15
-    LTEXT           "Z:",IDC_STATIC,13,48,8,8
-    EDITTEXT        IDC_EDIT_SCALEZ,131,46,34,14,ES_AUTOHSCROLL | ES_NUMBER
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO 
-BEGIN
-    IDD_SCALE, DIALOG
-    BEGIN
-        LEFTMARGIN, 7
-        RIGHTMARGIN, 179
-        TOPMARGIN, 7
-        BOTTOMMARGIN, 96
-    END
-END
-#endif    // APSTUDIO_INVOKED
-
-#endif    // English (U.K.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-#define _AFX_NO_SPLITTER_RESOURCES
-#define _AFX_NO_OLE_RESOURCES
-#define _AFX_NO_TRACKER_RESOURCES
-#define _AFX_NO_PROPERTY_RESOURCES
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE 9, 1
-#pragma code_page(1252)
-#endif
-#include "afxres.rc"         // Standard components
-#endif
-/////////////////////////////////////////////////////////////////////////////
-#endif    // not APSTUDIO_INVOKED
-
index 52698d2..3974ab1 100755 (executable)
 
 IMPLEMENT_DYNCREATE(CViewer3dDoc, CDocument)
 
-BEGIN_MESSAGE_MAP(CViewer3dDoc, OCC_3dBaseDoc)
-       //{{AFX_MSG_MAP(CViewer3dDoc)
-       ON_COMMAND(ID_BOX, OnBox)
-       ON_COMMAND(ID_Cylinder, OnCylinder)
-       ON_COMMAND(ID_SPHERE, OnSphere)
-       ON_COMMAND(ID_ERASEALL, OnRemoveAll)
-       ON_COMMAND(ID_NBISOS, OnNbisos)
-       ON_COMMAND(ID_FACES, OnFaces)
-       ON_COMMAND(ID_EDGES, OnEdges)
-       ON_COMMAND(ID_VERTICES, OnVertices)
-       ON_COMMAND(ID_NEUTRAL, OnNeutral)
-       ON_COMMAND(ID_USERCYLINDER_CHANGEFACECOLOR, OnUsercylinderChangefacecolor)
-       ON_COMMAND(ID_FILLET3D, OnFillet3d)
-       ON_COMMAND(ID_CIRCLE, OnCircle)
-       ON_COMMAND(ID_LINE, OnLine)
-       ON_COMMAND(ID_OVERLAPPED_BOX, OnOverlappedBox)
-       ON_COMMAND(ID_OVERLAPPED_CYLINDER, OnOverlappedCylinder)
-       ON_COMMAND(ID_OVERLAPPED_SPHERE, OnOverlappedSphere)
-       ON_COMMAND(ID_POLYGON_OFFSETS, OnPolygonOffsets)
-       ON_UPDATE_COMMAND_UI(ID_POLYGON_OFFSETS, OnUpdatePolygonOffsets)
-       ON_UPDATE_COMMAND_UI(ID_Cylinder, OnUpdateCylinder)
-       ON_UPDATE_COMMAND_UI(ID_SPHERE, OnUpdateSphere)
-       ON_UPDATE_COMMAND_UI(ID_BOX, OnUpdateBox)
-       ON_UPDATE_COMMAND_UI(ID_OVERLAPPED_CYLINDER, OnUpdateOverlappedCylinder)
-       ON_UPDATE_COMMAND_UI(ID_OVERLAPPED_SPHERE, OnUpdateOverlappedSphere)
-       ON_UPDATE_COMMAND_UI(ID_OVERLAPPED_BOX, OnUpdateOverlappedBox)
-       ON_COMMAND(ID_OBJECT_REMOVE, OnObjectRemove)
-       ON_COMMAND(ID_OBJECT_ERASE, OnObjectErase)
-       ON_COMMAND(ID_OBJECT_DISPLAYALL, OnObjectDisplayall)
-       ON_COMMAND(ID_OBJECT_COLORED_MESH, OnObjectColoredMesh)
-       ON_UPDATE_COMMAND_UI(ID_OBJECT_COLORED_MESH, OnUpdateObjectColoredMesh)
-       ON_UPDATE_COMMAND_UI(ID_OBJECT_SHADING, OnUpdateObjectShading)
-       ON_UPDATE_COMMAND_UI(ID_OBJECT_WIREFRAME, OnUpdateObjectWireframe)
-       ON_COMMAND(ID_OPTIONS_TRIHEDRON_DYNAMIC_TRIHEDRON, OnOptionsTrihedronDynamicTrihedron)
-       ON_UPDATE_COMMAND_UI(ID_OPTIONS_TRIHEDRON_DYNAMIC_TRIHEDRON, OnUpdateOptionsTrihedronDynamicTrihedron)
-       ON_UPDATE_COMMAND_UI(ID_OPTIONS_TRIHEDRON_STATIC_TRIHEDRON, OnUpdateOptionsTrihedronStaticTrihedron)
-       ON_COMMAND(ID_OBJECT_MATERIAL, OnObjectMaterial)
-       ON_COMMAND(ID_TEXTURE_ON, OnTextureOn)
-       ON_COMMAND(ID_BUTTONNext, OnBUTTONNext)
-       ON_COMMAND(ID_BUTTONStart, OnBUTTONStart)
-       ON_COMMAND(ID_BUTTONRepeat, OnBUTTONRepeat)
-       ON_COMMAND(ID_BUTTONPrev, OnBUTTONPrev)
-       ON_COMMAND(ID_BUTTONEnd, OnBUTTONEnd)
-       ON_UPDATE_COMMAND_UI(ID_BUTTONNext, OnUpdateBUTTONNext)
-       ON_UPDATE_COMMAND_UI(ID_BUTTONPrev, OnUpdateBUTTONPrev)
-       ON_UPDATE_COMMAND_UI(ID_BUTTONStart, OnUpdateBUTTONStart)
-       ON_UPDATE_COMMAND_UI(ID_BUTTONRepeat, OnUpdateBUTTONRepeat)
-       ON_UPDATE_COMMAND_UI(ID_BUTTONEnd, OnUpdateBUTTONEnd)
-       ON_COMMAND(ID_FILE_NEW, OnFileNew)
-       ON_COMMAND(ID_DUMP_VIEW, OnDumpView)
-       //}}AFX_MSG_MAP
+BEGIN_MESSAGE_MAP(CViewer3dDoc, OCC_3dDoc)
+  //{{AFX_MSG_MAP(CViewer3dDoc)
+  ON_COMMAND(ID_BOX, OnBox)
+  ON_COMMAND(ID_Cylinder, OnCylinder)
+  ON_COMMAND(ID_SPHERE, OnSphere)
+  ON_COMMAND(ID_ERASEALL, OnRemoveAll)
+  ON_COMMAND(ID_NBISOS, OnNbisos)
+  ON_COMMAND(ID_FACES, OnFaces)
+  ON_COMMAND(ID_EDGES, OnEdges)
+  ON_COMMAND(ID_VERTICES, OnVertices)
+  ON_COMMAND(ID_NEUTRAL, OnNeutral)
+  ON_COMMAND(ID_USERCYLINDER_CHANGEFACECOLOR, OnUsercylinderChangefacecolor)
+  ON_COMMAND(ID_FILLET3D, OnFillet3d)
+  ON_COMMAND(ID_CIRCLE, OnCircle)
+  ON_COMMAND(ID_LINE, OnLine)
+  ON_COMMAND(ID_OVERLAPPED_BOX, OnOverlappedBox)
+  ON_COMMAND(ID_OVERLAPPED_CYLINDER, OnOverlappedCylinder)
+  ON_COMMAND(ID_OVERLAPPED_SPHERE, OnOverlappedSphere)
+  ON_COMMAND(ID_POLYGON_OFFSETS, OnPolygonOffsets)
+  ON_UPDATE_COMMAND_UI(ID_POLYGON_OFFSETS, OnUpdatePolygonOffsets)
+  ON_UPDATE_COMMAND_UI(ID_Cylinder, OnUpdateCylinder)
+  ON_UPDATE_COMMAND_UI(ID_SPHERE, OnUpdateSphere)
+  ON_UPDATE_COMMAND_UI(ID_BOX, OnUpdateBox)
+  ON_UPDATE_COMMAND_UI(ID_OVERLAPPED_CYLINDER, OnUpdateOverlappedCylinder)
+  ON_UPDATE_COMMAND_UI(ID_OVERLAPPED_SPHERE, OnUpdateOverlappedSphere)
+  ON_UPDATE_COMMAND_UI(ID_OVERLAPPED_BOX, OnUpdateOverlappedBox)
+  ON_COMMAND(ID_OBJECT_REMOVE, OnObjectRemove)
+  ON_COMMAND(ID_OBJECT_ERASE, OnObjectErase)
+  ON_COMMAND(ID_OBJECT_DISPLAYALL, OnObjectDisplayall)
+  ON_COMMAND(ID_OBJECT_COLORED_MESH, OnObjectColoredMesh)
+  ON_UPDATE_COMMAND_UI(ID_OBJECT_COLORED_MESH, OnUpdateObjectColoredMesh)
+  ON_UPDATE_COMMAND_UI(ID_OBJECT_SHADING, OnUpdateObjectShading)
+  ON_UPDATE_COMMAND_UI(ID_OBJECT_WIREFRAME, OnUpdateObjectWireframe)
+  ON_COMMAND(ID_OPTIONS_TRIHEDRON_DYNAMIC_TRIHEDRON, OnOptionsTrihedronDynamicTrihedron)
+  ON_UPDATE_COMMAND_UI(ID_OPTIONS_TRIHEDRON_DYNAMIC_TRIHEDRON, OnUpdateOptionsTrihedronDynamicTrihedron)
+  ON_UPDATE_COMMAND_UI(ID_OPTIONS_TRIHEDRON_STATIC_TRIHEDRON, OnUpdateOptionsTrihedronStaticTrihedron)
+  ON_COMMAND(ID_OBJECT_MATERIAL, OnObjectMaterial)
+  ON_COMMAND(ID_TEXTURE_ON, OnTextureOn)
+  ON_COMMAND(ID_BUTTONNext, OnBUTTONNext)
+  ON_COMMAND(ID_BUTTONStart, OnBUTTONStart)
+  ON_COMMAND(ID_BUTTONRepeat, OnBUTTONRepeat)
+  ON_COMMAND(ID_BUTTONPrev, OnBUTTONPrev)
+  ON_COMMAND(ID_BUTTONEnd, OnBUTTONEnd)
+  ON_UPDATE_COMMAND_UI(ID_BUTTONNext, OnUpdateBUTTONNext)
+  ON_UPDATE_COMMAND_UI(ID_BUTTONPrev, OnUpdateBUTTONPrev)
+  ON_UPDATE_COMMAND_UI(ID_BUTTONStart, OnUpdateBUTTONStart)
+  ON_UPDATE_COMMAND_UI(ID_BUTTONRepeat, OnUpdateBUTTONRepeat)
+  ON_UPDATE_COMMAND_UI(ID_BUTTONEnd, OnUpdateBUTTONEnd)
+  ON_COMMAND(ID_FILE_NEW, OnFileNew)
+  ON_COMMAND(ID_DUMP_VIEW, OnDumpView)
+  //}}AFX_MSG_MAP
 END_MESSAGE_MAP()
 
 /////////////////////////////////////////////////////////////////////////////
@@ -79,34 +79,34 @@ END_MESSAGE_MAP()
 CViewer3dDoc::CViewer3dDoc()
 :OCC_3dDoc()
 {
-       myCylinder.Nullify();
-       mySphere.Nullify();
-       myBox.Nullify();
-       myOverlappedCylinder.Nullify();
-       myOverlappedSphere.Nullify();
-       myOverlappedBox.Nullify();
-       myOffsetDlg = NULL;
-       myStaticTrihedronAxisIsDisplayed = FALSE;
-       myState = -1;
+  myCylinder.Nullify();
+  mySphere.Nullify();
+  myBox.Nullify();
+  myOverlappedCylinder.Nullify();
+  myOverlappedSphere.Nullify();
+  myOverlappedBox.Nullify();
+  myOffsetDlg = NULL;
+  myStaticTrihedronAxisIsDisplayed = FALSE;
+  myState = -1;
 
-       isTextureSampleStarted = FALSE;
+  isTextureSampleStarted = FALSE;
 
-       myPresentation = OCCDemo_Presentation::Current;
-       myPresentation->SetDocument(this);
+  myPresentation = OCCDemo_Presentation::Current;
+  myPresentation->SetDocument(this);
 
 
-       myAISContext->DefaultDrawer()->ShadingAspect()->SetColor(Quantity_NOC_CHARTREUSE1); 
-       myAISContext->DefaultDrawer()->ShadingAspect()->SetMaterial(Graphic3d_NOM_SILVER);
+  myAISContext->DefaultDrawer()->ShadingAspect()->SetColor(Quantity_NOC_CHARTREUSE1); 
+  myAISContext->DefaultDrawer()->ShadingAspect()->SetMaterial(Graphic3d_NOM_SILVER);
 
-       strcpy_s(myDataDir, "Data");
-       strcpy_s(myLastPath, ".");
+  strcpy_s(myDataDir, "Data");
+  strcpy_s(myLastPath, ".");
 
-       /*
-       Handle(AIS_Trihedron) myTrihedron;
-       Handle(Geom_Axis2Placement) myTrihedronAxis=new Geom_Axis2Placement(gp::XOY());
-       myTrihedron=new AIS_Trihedron(myTrihedronAxis);
-       myAISContext->Display(myTrihedron);
-       */
+  /*
+  Handle(AIS_Trihedron) myTrihedron;
+  Handle(Geom_Axis2Placement) myTrihedronAxis=new Geom_Axis2Placement(gp::XOY());
+  myTrihedron=new AIS_Trihedron(myTrihedronAxis);
+  myAISContext->Display(myTrihedron);
+  */
 }
 
 CViewer3dDoc::~CViewer3dDoc()
@@ -119,12 +119,12 @@ CViewer3dDoc::~CViewer3dDoc()
 #ifdef _DEBUG
 void CViewer3dDoc::AssertValid() const
 {
-       CDocument::AssertValid();
+  CDocument::AssertValid();
 }
 
 void CViewer3dDoc::Dump(CDumpContext& dc) const
 {
-       CDocument::Dump(dc);
+  CDocument::Dump(dc);
 }
 #endif //_DEBUG
 
@@ -133,9 +133,9 @@ void CViewer3dDoc::Dump(CDumpContext& dc) const
 
 void CViewer3dDoc::UpdateResultMessageDlg (CString theTitle, const TCollection_AsciiString& theMessage)
 {
-    CString aText (theMessage.ToCString());
-    myCResultDialog.SetText (aText);
-    myCResultDialog.SetTitle(theTitle);
+  CString aText (theMessage.ToCString());
+  myCResultDialog.SetText (aText);
+  myCResultDialog.SetTitle(theTitle);
 }
 
 void CViewer3dDoc::UpdateResultMessageDlg(CString theTitle, CString theMessage)
@@ -144,366 +144,347 @@ void CViewer3dDoc::UpdateResultMessageDlg(CString theTitle, CString theMessage)
   myCResultDialog.SetTitle(theTitle);
 }
 
-void CViewer3dDoc::OnBox() 
+void CViewer3dDoc::OnBox()
 {
-       if(myBox.IsNull()){
-               BRepPrimAPI_MakeBox B(gp_Pnt(0,-400,-100), 200.,150.,100.);
+  if(myBox.IsNull())
+  {
+    BRepPrimAPI_MakeBox B(gp_Pnt(0,-400,-100), 200.,150.,100.);
 
 
-               myBox = new AIS_Shape(B.Shape());
+    myBox = new AIS_Shape(B.Shape());
 
-               myAISContext->SetMaterial(myBox,Graphic3d_NOM_PEWTER);    
-               myAISContext->SetDisplayMode(myBox,1);
+    myAISContext->SetMaterial(myBox,Graphic3d_NOM_PEWTER);
+    myAISContext->SetDisplayMode(myBox,1);
 
-               myAISContext->Display(myBox);   
-               TCollection_AsciiString Message("\
+    myAISContext->Display(myBox);
+    TCollection_AsciiString Message("\
 BRepPrimAPI_MakeBox Box1(gp_Pnt(0,-400,-100), 200.,150.,100.);\n\
-               ");
-               
-               UpdateResultMessageDlg("Create Box",Message);
+    ");
 
-       }
+    UpdateResultMessageDlg("Create Box",Message);
+  }
 }
 
-void CViewer3dDoc::OnCylinder() 
+void CViewer3dDoc::OnCylinder()
 {
-       if(myCylinder.IsNull()) {
-               gp_Ax2 CylAx2(gp_Pnt(0,0,-100), gp_Dir(gp_Vec(gp_Pnt(0,0,-100),gp_Pnt(0,0,100))));
-
-               //BRepPrimAPI_MakeCylinder C(CylAx2, 80.,200.);
-               
-               myCylinder = new User_Cylinder(CylAx2, 80.,200.);
-               
-//             myCylinder = new AIS_Shape(C.Shape());
-/*
-               myCylinder->SetTransparency(0.5);               
+  if(myCylinder.IsNull())
+  {
+    gp_Ax2 CylAx2(gp_Pnt(0,0,-100), gp_Dir(gp_Vec(gp_Pnt(0,0,-100),gp_Pnt(0,0,100))));
+    myCylinder = new User_Cylinder(CylAx2, 80.,200.);
 
-               myAISContext->SetColor(myCylinder,Quantity_NOC_WHITE); 
-               myAISContext->SetMaterial(myCylinder,Graphic3d_NOM_SHINY_PLASTIC);    
-*/
-               myAISContext->SetDisplayMode(myCylinder,1);
+    myAISContext->SetDisplayMode(myCylinder,1);
 
-               myAISContext->Display(myCylinder);
+    myAISContext->Display(myCylinder);
 
-               TCollection_AsciiString Message("\
+    TCollection_AsciiString Message("\
 gp_Ax2 CylAx2(gp_Pnt(0,0,-100), gp_Dir(gp_Vec(gp_Pnt(0,0,-100),gp_Pnt(0,0,100))));\n\
 C = new User_Cylinder(CylAx2, 80.,200.);;\n\
-               ");
-               
-               UpdateResultMessageDlg("Create Cylinder",Message);
+    ");
 
-       }
+    UpdateResultMessageDlg("Create Cylinder",Message);
+  }
 }
 
-void CViewer3dDoc::OnSphere() 
+void CViewer3dDoc::OnSphere()
 {
-       if(mySphere.IsNull()){
-               BRepPrimAPI_MakeSphere S(gp_Pnt(0,300,0), 100.);
+  if(mySphere.IsNull())
+  {
+    BRepPrimAPI_MakeSphere S(gp_Pnt(0,300,0), 100.);
+
+    mySphere = new AIS_Shape(S.Shape());
 
-               mySphere = new AIS_Shape(S.Shape());
-               
-               myAISContext->SetMaterial(mySphere,Graphic3d_NOM_BRONZE);    
-               myAISContext->SetDisplayMode(mySphere,1);
+    myAISContext->SetMaterial(mySphere,Graphic3d_NOM_BRONZE);
+    myAISContext->SetDisplayMode(mySphere,1);
 
-               myAISContext->Display(mySphere);
-               TCollection_AsciiString Message("\
+    myAISContext->Display(mySphere);
+    TCollection_AsciiString Message("\
 BRepPrimAPI_MakeSphere S(gp_Pnt(0,300,0), 100.);\n\
-               ");
-               UpdateResultMessageDlg("Create Sphere",Message);
-       }
+    ");
+    UpdateResultMessageDlg("Create Sphere",Message);
+  }
 }
 
-void CViewer3dDoc::OnRemoveAll() 
+void CViewer3dDoc::OnRemoveAll()
 
 {
-       AIS_ListOfInteractive aListOfObjects;
-       myAISContext->ObjectsInside(aListOfObjects,AIS_KOI_Shape);
+  AIS_ListOfInteractive aListOfObjects;
+  myAISContext->ObjectsInside(aListOfObjects,AIS_KOI_Shape);
 
-       AIS_ListIteratorOfListOfInteractive aListIterator;
-       for(aListIterator.Initialize(aListOfObjects);aListIterator.More();aListIterator.Next()){
-               myAISContext->Remove(aListIterator.Value());
-       }
+  AIS_ListIteratorOfListOfInteractive aListIterator;
+  for(aListIterator.Initialize(aListOfObjects);aListIterator.More();aListIterator.Next()){
+    myAISContext->Remove(aListIterator.Value());
+  }
 
-       myAISContext->Remove(myCylinder);
+  myAISContext->Remove(myCylinder);
 
 
-       myCylinder.Nullify();
-       mySphere.Nullify();
-       myBox.Nullify();
-       myOverlappedCylinder.Nullify();
-       myOverlappedSphere.Nullify();
-       myOverlappedBox.Nullify();
-       if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
-               myOffsetDlg->UpdateValues();
+  myCylinder.Nullify();
+  mySphere.Nullify();
+  myBox.Nullify();
+  myOverlappedCylinder.Nullify();
+  myOverlappedSphere.Nullify();
+  myOverlappedBox.Nullify();
+  if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
+    myOffsetDlg->UpdateValues();
 }
 
 void CViewer3dDoc::OnOverlappedBox() 
 {
-       OnBox();
-       if(myOverlappedBox.IsNull()){
-               BRepPrimAPI_MakeBox B(gp_Pnt(0,-400,-100), 200.,150.,100.);
+  OnBox();
+  if(myOverlappedBox.IsNull()){
+    BRepPrimAPI_MakeBox B(gp_Pnt(0,-400,-100), 200.,150.,100.);
 
-               BRepBuilderAPI_NurbsConvert aNurbsConvert(B.Shape());
-               TopoDS_Shape aBoxShape2 = aNurbsConvert.Shape();
+    BRepBuilderAPI_NurbsConvert aNurbsConvert(B.Shape());
+    TopoDS_Shape aBoxShape2 = aNurbsConvert.Shape();
 
 
-               myOverlappedBox = new AIS_Shape(aBoxShape2);
+    myOverlappedBox = new AIS_Shape(aBoxShape2);
 
-               myAISContext->SetMaterial(myOverlappedBox,Graphic3d_NOM_GOLD);    
-               myAISContext->SetDisplayMode(myOverlappedBox,1);
+    myAISContext->SetMaterial(myOverlappedBox,Graphic3d_NOM_GOLD);
+    myAISContext->SetDisplayMode(myOverlappedBox,1);
 
-               myAISContext->Display(myOverlappedBox); 
-               TCollection_AsciiString Message("\
+    myAISContext->Display(myOverlappedBox);
+    TCollection_AsciiString Message("\
 BRepPrimAPI_MakeBox Box1(gp_Pnt(0,-400,-100), 200.,150.,100.);\n\
 \n\
 BRepPrimAPI_MakeBox Box2(gp_Pnt(0,-400,-100), 200.,150.,100.);\n\
 BRepBuilderAPI_NurbsConvert aNurbsConvert(Box2.Shape());\n\
-               ");
-               UpdateResultMessageDlg("Create overlapped boxes",Message);
-               if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
-                       myOffsetDlg->UpdateValues();
-
-
-       }
+    ");
+    UpdateResultMessageDlg("Create overlapped boxes",Message);
+    if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
+      myOffsetDlg->UpdateValues();
+  }
 }
 
-void CViewer3dDoc::OnOverlappedCylinder() 
+void CViewer3dDoc::OnOverlappedCylinder()
 {
-       OnCylinder();
+  OnCylinder();
 
-       if(myOverlappedCylinder.IsNull()){
-               gp_Ax2 CylAx2(gp_Pnt(0,0,-100), gp_Dir(gp_Vec(gp_Pnt(0,0,-100),gp_Pnt(0,0,100))));
-               BRepPrimAPI_MakeCylinder C(CylAx2, 80.,200.);
+  if(myOverlappedCylinder.IsNull()){
+    gp_Ax2 CylAx2(gp_Pnt(0,0,-100), gp_Dir(gp_Vec(gp_Pnt(0,0,-100),gp_Pnt(0,0,100))));
+    BRepPrimAPI_MakeCylinder C(CylAx2, 80.,200.);
 
-               BRepBuilderAPI_NurbsConvert aNurbsConvert(C.Shape());
-               TopoDS_Shape aCylShape2 = aNurbsConvert.Shape();
+    BRepBuilderAPI_NurbsConvert aNurbsConvert(C.Shape());
+    TopoDS_Shape aCylShape2 = aNurbsConvert.Shape();
 
-               myOverlappedCylinder = new AIS_Shape(aCylShape2);
+    myOverlappedCylinder = new AIS_Shape(aCylShape2);
 
-       
-               myAISContext->SetMaterial(myOverlappedCylinder,Graphic3d_NOM_GOLD);    
-               myAISContext->SetDisplayMode(myOverlappedCylinder,1);
 
-               myAISContext->Display(myOverlappedCylinder);
+    myAISContext->SetMaterial(myOverlappedCylinder,Graphic3d_NOM_GOLD);    
+    myAISContext->SetDisplayMode(myOverlappedCylinder,1);
 
-               TCollection_AsciiString Message("\
+    myAISContext->Display(myOverlappedCylinder);
+
+    TCollection_AsciiString Message("\
 gp_Ax2 CylAx2(gp_Pnt(0,0,-100), gp_Dir(gp_Vec(gp_Pnt(0,0,-100),gp_Pnt(0,0,100))));\n\
 Cylinder1 = new User_Cylinder(CylAx2, 80.,200.);\n\
 \n\
 BRepPrimAPI_MakeCylinder Cylinder2(CylAx2, 80.,200.);\n\
 BRepBuilderAPI_NurbsConvert aNurbsConvert(Cylinder2.Shape());\n\
-               ");
-               UpdateResultMessageDlg("Create overlapped cylinders",Message);
-               if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
-                       myOffsetDlg->UpdateValues();
-
-       }
+    ");
+    UpdateResultMessageDlg("Create overlapped cylinders",Message);
+    if (myOffsetDlg && myOffsetDlg->IsWindowVisible())
+    {
+      myOffsetDlg->UpdateValues();
+    }
+  }
 }
 
-void CViewer3dDoc::OnOverlappedSphere() 
+void CViewer3dDoc::OnOverlappedSphere()
 {
-       OnSphere();
-       if(myOverlappedSphere.IsNull()){
-               BRepPrimAPI_MakeSphere S(gp_Pnt(0,300,0), 100.);
+  OnSphere();
+  if(myOverlappedSphere.IsNull()){
+    BRepPrimAPI_MakeSphere S(gp_Pnt(0,300,0), 100.);
 
-               BRepBuilderAPI_NurbsConvert aNurbsConvert(S.Shape());
-               TopoDS_Shape aSphereShape2 = aNurbsConvert.Shape();
+    BRepBuilderAPI_NurbsConvert aNurbsConvert(S.Shape());
+    TopoDS_Shape aSphereShape2 = aNurbsConvert.Shape();
 
-               myOverlappedSphere = new AIS_Shape(aSphereShape2);
+    myOverlappedSphere = new AIS_Shape(aSphereShape2);
 
-               myAISContext->SetMaterial(myOverlappedSphere,Graphic3d_NOM_GOLD);    
+    myAISContext->SetMaterial(myOverlappedSphere,Graphic3d_NOM_GOLD);    
 
-               myAISContext->SetDisplayMode(myOverlappedSphere,1);
+    myAISContext->SetDisplayMode(myOverlappedSphere,1);
 
-               myAISContext->Display(myOverlappedSphere);
+    myAISContext->Display(myOverlappedSphere);
 
-               TCollection_AsciiString Message("\
+    TCollection_AsciiString Message("\
 BRepPrimAPI_MakeSphere Sphere1(gp_Pnt(0,300,0), 100.);\n\
 \n\
 BRepPrimAPI_MakeSphere Sphere2(gp_Pnt(0,300,0), 100.);\n\
 BRepBuilderAPI_NurbsConvert aNurbsConvert(Sphere2.Shape());\n\
-               ");
-               UpdateResultMessageDlg("Create overlapped spheres",Message);
-               if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
-                       myOffsetDlg->UpdateValues();
-
-       }
+    ");
+    UpdateResultMessageDlg("Create overlapped spheres",Message);
+    if (myOffsetDlg && myOffsetDlg->IsWindowVisible())
+    {
+      myOffsetDlg->UpdateValues();
+    }
+  }
 }
 
-void CViewer3dDoc::OnPolygonOffsets() 
+void CViewer3dDoc::OnPolygonOffsets()
 {
-
-       myOffsetDlg = new COffsetDlg(this);
-       myOffsetDlg->Create(COffsetDlg::IDD,NULL);
-       myAISContext->UpdateCurrentViewer();
-
+  myOffsetDlg = new COffsetDlg(this);
+  myOffsetDlg->Create(COffsetDlg::IDD,NULL);
+  myAISContext->UpdateCurrentViewer();
 }
 
 void CViewer3dDoc::OnUpdatePolygonOffsets(CCmdUI* pCmdUI) 
 {
-       Standard_Integer aOffsetMode;
-       Standard_ShortReal aFactor;
-       Standard_ShortReal aCylUnits = 0;
-       Standard_ShortReal aSphereUnits = 0;
-       Standard_ShortReal aBoxUnits = 0;
-
-       BOOL IsOverlappedCylinderDisplayed = myAISContext->IsDisplayed(myOverlappedCylinder);
-       BOOL IsOverlappedSphereDisplayed = myAISContext->IsDisplayed(myOverlappedSphere);
-       BOOL IsOverlappedBoxDisplayed = myAISContext->IsDisplayed(myOverlappedBox);
-       BOOL IsAnyOverlappedObjectDisplayed = 
-               IsOverlappedCylinderDisplayed || IsOverlappedSphereDisplayed || IsOverlappedBoxDisplayed;
-       
-       if(!myOverlappedCylinder.IsNull() && IsOverlappedCylinderDisplayed){
-               myOverlappedCylinder->PolygonOffsets(aOffsetMode,aFactor,aCylUnits);
-       }
-       
-       if(!myOverlappedSphere.IsNull() && IsOverlappedSphereDisplayed){
-               myOverlappedSphere->PolygonOffsets(aOffsetMode,aFactor,aSphereUnits);
-       }
-
-       if(!myOverlappedBox.IsNull() && IsOverlappedBoxDisplayed){
-               myOverlappedBox->PolygonOffsets(aOffsetMode,aFactor,aBoxUnits);
-       }
-
-       if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
-               pCmdUI->SetCheck(TRUE);
-       else
-               pCmdUI->SetCheck(FALSE);
-       if (IsAnyOverlappedObjectDisplayed)
-               if(myOffsetDlg)
-                       pCmdUI->Enable(!myOffsetDlg->IsWindowVisible());  
-               else
-                       pCmdUI->Enable(TRUE);
-       else 
-                       pCmdUI->Enable(FALSE);
-       
-       
+  Standard_Integer aOffsetMode;
+  Standard_ShortReal aFactor;
+  Standard_ShortReal aCylUnits = 0;
+  Standard_ShortReal aSphereUnits = 0;
+  Standard_ShortReal aBoxUnits = 0;
+
+  BOOL IsOverlappedCylinderDisplayed = myAISContext->IsDisplayed(myOverlappedCylinder);
+  BOOL IsOverlappedSphereDisplayed = myAISContext->IsDisplayed(myOverlappedSphere);
+  BOOL IsOverlappedBoxDisplayed = myAISContext->IsDisplayed(myOverlappedBox);
+  BOOL IsAnyOverlappedObjectDisplayed = 
+    IsOverlappedCylinderDisplayed || IsOverlappedSphereDisplayed || IsOverlappedBoxDisplayed;
+
+  if(!myOverlappedCylinder.IsNull() && IsOverlappedCylinderDisplayed){
+    myOverlappedCylinder->PolygonOffsets(aOffsetMode,aFactor,aCylUnits);
+  }
+
+  if(!myOverlappedSphere.IsNull() && IsOverlappedSphereDisplayed){
+    myOverlappedSphere->PolygonOffsets(aOffsetMode,aFactor,aSphereUnits);
+  }
+
+  if(!myOverlappedBox.IsNull() && IsOverlappedBoxDisplayed){
+    myOverlappedBox->PolygonOffsets(aOffsetMode,aFactor,aBoxUnits);
+  }
+
+  if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
+    pCmdUI->SetCheck(TRUE);
+  else
+    pCmdUI->SetCheck(FALSE);
+  if (IsAnyOverlappedObjectDisplayed)
+    if(myOffsetDlg)
+      pCmdUI->Enable(!myOffsetDlg->IsWindowVisible());
+    else
+      pCmdUI->Enable(TRUE);
+  else
+    pCmdUI->Enable(FALSE);
 }
 
-void CViewer3dDoc::OnUpdateCylinder(CCmdUI* pCmdUI) 
+void CViewer3dDoc::OnUpdateCylinder(CCmdUI* pCmdUI)
 {
-       pCmdUI->Enable(myCylinder.IsNull()); 
-               
+  pCmdUI->Enable(myCylinder.IsNull());
 }
 
-void CViewer3dDoc::OnUpdateSphere(CCmdUI* pCmdUI) 
+void CViewer3dDoc::OnUpdateSphere(CCmdUI* pCmdUI)
 {
-       pCmdUI->Enable(mySphere.IsNull()); 
-               
+  pCmdUI->Enable(mySphere.IsNull()); 
 }
 
-void CViewer3dDoc::OnUpdateBox(CCmdUI* pCmdUI) 
+void CViewer3dDoc::OnUpdateBox(CCmdUI* pCmdUI)
 {
-       pCmdUI->Enable(myBox.IsNull()); 
-               
+  pCmdUI->Enable(myBox.IsNull()); 
 }
 
-void CViewer3dDoc::OnUpdateOverlappedCylinder(CCmdUI* pCmdUI) 
+void CViewer3dDoc::OnUpdateOverlappedCylinder(CCmdUI* pCmdUI)
 {
-       pCmdUI->Enable   (myOverlappedCylinder.IsNull()
-                                               || myCylinder.IsNull());
-               
+  pCmdUI->Enable   (myOverlappedCylinder.IsNull()
+    || myCylinder.IsNull());
+
 }
 
-void CViewer3dDoc::OnUpdateOverlappedSphere(CCmdUI* pCmdUI) 
+void CViewer3dDoc::OnUpdateOverlappedSphere(CCmdUI* pCmdUI)
 {
-       pCmdUI->Enable   (myOverlappedSphere.IsNull()
-                                               || mySphere.IsNull());
+  pCmdUI->Enable   (myOverlappedSphere.IsNull()
+    || mySphere.IsNull());
 }
 
-void CViewer3dDoc::OnUpdateOverlappedBox(CCmdUI* pCmdUI) 
+void CViewer3dDoc::OnUpdateOverlappedBox(CCmdUI* pCmdUI)
 {
-       pCmdUI->Enable   (myOverlappedBox.IsNull()
-                                               || myBox.IsNull());
+  pCmdUI->Enable   (myOverlappedBox.IsNull()
+    || myBox.IsNull());
 }
 
-void CViewer3dDoc::OnObjectRemove() 
-
+void CViewer3dDoc::OnObjectRemove()
 {
+  if(myAISContext->IsCurrent(myBox))
+    myBox.Nullify();
 
-       if(myAISContext->IsCurrent(myBox))
-               myBox.Nullify();
-
-       if(myAISContext->IsCurrent(myCylinder))
-               myCylinder.Nullify();
+  if(myAISContext->IsCurrent(myCylinder))
+    myCylinder.Nullify();
 
-       if(myAISContext->IsCurrent(mySphere))
-               mySphere.Nullify();
+  if(myAISContext->IsCurrent(mySphere))
+    mySphere.Nullify();
 
-       if(myAISContext->IsCurrent(myOverlappedBox))
-               myOverlappedBox.Nullify();
+  if(myAISContext->IsCurrent(myOverlappedBox))
+    myOverlappedBox.Nullify();
 
-       if(myAISContext->IsCurrent(myOverlappedCylinder))
-               myOverlappedCylinder.Nullify();
+  if(myAISContext->IsCurrent(myOverlappedCylinder))
+    myOverlappedCylinder.Nullify();
 
-       if(myAISContext->IsCurrent(myOverlappedSphere))
-               myOverlappedSphere.Nullify();
+  if(myAISContext->IsCurrent(myOverlappedSphere))
+    myOverlappedSphere.Nullify();
 
-       
-       for(myAISContext->InitCurrent();myAISContext->MoreCurrent();myAISContext->InitCurrent())
-               myAISContext->Remove(myAISContext->Current(),Standard_True);
 
-       if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
-               myOffsetDlg->UpdateValues();
+  for(myAISContext->InitCurrent();myAISContext->MoreCurrent();myAISContext->InitCurrent())
+    myAISContext->Remove(myAISContext->Current(),Standard_True);
 
+  if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
+    myOffsetDlg->UpdateValues();
 }
 
-void CViewer3dDoc::OnObjectErase() 
+void CViewer3dDoc::OnObjectErase()
 
 {
-       OCC_3dBaseDoc::OnObjectErase(); 
-       if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
-               myOffsetDlg->UpdateValues();
+  OCC_3dBaseDoc::OnObjectErase();
+  if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
+    myOffsetDlg->UpdateValues();
 }
 
-void CViewer3dDoc::OnObjectDisplayall() 
+void CViewer3dDoc::OnObjectDisplayall()
 
 {
-       OCC_3dBaseDoc::OnObjectDisplayall(); 
-       if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
-               myOffsetDlg->UpdateValues();
+  OCC_3dBaseDoc::OnObjectDisplayall();
+  if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
+    myOffsetDlg->UpdateValues();
 }
 
 Handle_User_Cylinder CViewer3dDoc::GetCylinder()
 {
-       return myCylinder;
+  return myCylinder;
 }
 
 
 Handle_AIS_Shape CViewer3dDoc::GetSphere()
 {
-       return mySphere;
+  return mySphere;
 }
 
 Handle_AIS_Shape CViewer3dDoc::GetBox()
 {
-       return myBox;
+  return myBox;
 }
 
 Handle_AIS_Shape CViewer3dDoc::GetOverlappedCylinder()
 {
-       return myOverlappedCylinder;
+  return myOverlappedCylinder;
 }
 
 
 Handle_AIS_Shape CViewer3dDoc::GetOverlappedSphere()
 {
-       return myOverlappedSphere;
+  return myOverlappedSphere;
 }
 
 Handle_AIS_Shape CViewer3dDoc::GetOverlappedBox()
 {
-       return myOverlappedBox;
+  return myOverlappedBox;
 }
 
-void CViewer3dDoc::DragEvent(const Standard_Integer  x        ,
-                                                 const Standard_Integer  y        ,
-                                                 const Standard_Integer  TheState ,
-                                  const Handle(V3d_View)& aView    )
+void CViewer3dDoc::DragEvent (const Standard_Integer theX,
+                              const Standard_Integer theY,
+                              const Standard_Integer theState,
+                              const Handle(V3d_View)& theView)
 {
-       OCC_3dBaseDoc::DragEvent(x,y, TheState,aView);
-       if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
-               myOffsetDlg->UpdateValues();
+  OCC_3dBaseDoc::DragEvent (theX, theY, theState, theView);
+  if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
+    myOffsetDlg->UpdateValues();
 }
 
 //-----------------------------------------------------------------------------------------
@@ -592,12 +573,12 @@ void CViewer3dDoc::InputEvent(const Standard_Integer /*x*/,
 //-----------------------------------------------------------------------------------------
 //
 //-----------------------------------------------------------------------------------------
-void CViewer3dDoc::ShiftDragEvent(const Standard_Integer  x        ,
-                                                                          const Standard_Integer  y        ,
-                                                                          const Standard_Integer  TheState ,
-                                       const Handle(V3d_View)& aView    ) 
+void CViewer3dDoc::ShiftDragEvent (const Standard_Integer theX,
+                                   const Standard_Integer  theY,
+                                   const Standard_Integer theState,
+                                   const Handle(V3d_View)& theView)
 {
-  OCC_3dBaseDoc::ShiftDragEvent(x,y,TheState,aView);
+  OCC_3dBaseDoc::ShiftDragEvent(theX, theY, theState, theView);
   if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
     myOffsetDlg->UpdateValues();
 }
@@ -606,17 +587,16 @@ void CViewer3dDoc::ShiftDragEvent(const Standard_Integer  x        ,
 //-----------------------------------------------------------------------------------------
 //
 //-----------------------------------------------------------------------------------------
-
-void CViewer3dDoc::ShiftInputEvent(const Standard_Integer  x       ,
-                                                                           const Standard_Integer  y       ,
-                                        const Handle(V3d_View)& aView   ) 
+void CViewer3dDoc::ShiftInputEvent (const Standard_Integer theX,
+                                    const Standard_Integer theY,
+                                    const Handle(V3d_View)& theView)
 {
-  OCC_3dBaseDoc::ShiftInputEvent(x,y,aView);
+  OCC_3dBaseDoc::ShiftInputEvent (theX, theY, theView);
   if(myOffsetDlg && myOffsetDlg->IsWindowVisible())
     myOffsetDlg->UpdateValues();
 }
 
-void CViewer3dDoc::OnObjectColoredMesh() 
+void CViewer3dDoc::OnObjectColoredMesh()
 {
   for(myAISContext->InitCurrent();myAISContext->MoreCurrent();myAISContext->NextCurrent())
     if (myAISContext->Current()->IsKind(STANDARD_TYPE(User_Cylinder)))
@@ -627,70 +607,69 @@ void CViewer3dDoc::OnObjectColoredMesh()
     }
 }
 
-void CViewer3dDoc::OnUpdateObjectColoredMesh(CCmdUI* pCmdUI) 
+void CViewer3dDoc::OnUpdateObjectColoredMesh(CCmdUI* pCmdUI)
 {
   bool CylinderIsCurrentAndDisplayed = false;
   for (myAISContext->InitCurrent();myAISContext->MoreCurrent ();myAISContext->NextCurrent ())
-       if(myAISContext->Current()->IsKind(STANDARD_TYPE(User_Cylinder)))
-               CylinderIsCurrentAndDisplayed=true;
-  pCmdUI->Enable (CylinderIsCurrentAndDisplayed);      
+    if(myAISContext->Current()->IsKind(STANDARD_TYPE(User_Cylinder)))
+      CylinderIsCurrentAndDisplayed=true;
+  pCmdUI->Enable (CylinderIsCurrentAndDisplayed);
 }
 
-void CViewer3dDoc::OnUpdateObjectWireframe(CCmdUI* pCmdUI) 
+void CViewer3dDoc::OnUpdateObjectWireframe(CCmdUI* pCmdUI)
 {
   bool OneOrMoreInShadingOrColoredMesh = false;
   for (myAISContext->InitCurrent();myAISContext->MoreCurrent ();myAISContext->NextCurrent ())
     if (myAISContext->IsDisplayed(myAISContext->Current(),1) || myAISContext->IsDisplayed(myAISContext->Current(),6)) 
-               OneOrMoreInShadingOrColoredMesh=true;
-       pCmdUI->Enable (OneOrMoreInShadingOrColoredMesh);       
+      OneOrMoreInShadingOrColoredMesh=true;
+  pCmdUI->Enable (OneOrMoreInShadingOrColoredMesh);
 }
 
 
-void CViewer3dDoc::OnUpdateObjectShading(CCmdUI* pCmdUI) 
+void CViewer3dDoc::OnUpdateObjectShading(CCmdUI* pCmdUI)
 {
   bool OneOrMoreInWireframeOrColoredMesh = false;
   for (myAISContext->InitCurrent();myAISContext->MoreCurrent ();myAISContext->NextCurrent ())
     if (myAISContext->IsDisplayed(myAISContext->Current(),0) || myAISContext->IsDisplayed(myAISContext->Current(),6))
-               OneOrMoreInWireframeOrColoredMesh=true;
-       pCmdUI->Enable (OneOrMoreInWireframeOrColoredMesh);     
+      OneOrMoreInWireframeOrColoredMesh=true;
+  pCmdUI->Enable (OneOrMoreInWireframeOrColoredMesh);
 }
 
-
-void CViewer3dDoc::OnOptionsTrihedronDynamicTrihedron() 
+void CViewer3dDoc::OnOptionsTrihedronDynamicTrihedron()
 {
-       if (myAISContext -> IsDisplayed(myTrihedron))
-       {
-               myAISContext->Remove(myTrihedron);
-       }               
-       else
-       {
-               Handle(Geom_Axis2Placement) myTrihedronAxis=new Geom_Axis2Placement(gp::XOY());
-               myTrihedron=new AIS_Trihedron(myTrihedronAxis);
-               myAISContext->SetTrihedronSize(200, Standard_True);
-               myAISContext->Display(myTrihedron);     
-       }               
+  if (myAISContext -> IsDisplayed(myTrihedron))
+  {
+    myAISContext->Remove(myTrihedron);
+  }
+  else
+  {
+    Handle(Geom_Axis2Placement) myTrihedronAxis=new Geom_Axis2Placement(gp::XOY());
+    myTrihedron=new AIS_Trihedron(myTrihedronAxis);
+    myAISContext->SetTrihedronSize(200, Standard_True);
+    myAISContext->Display(myTrihedron);
+  }
 }
 
-void CViewer3dDoc::OnUpdateOptionsTrihedronDynamicTrihedron(CCmdUI* pCmdUI) 
+void CViewer3dDoc::OnUpdateOptionsTrihedronDynamicTrihedron(CCmdUI* pCmdUI)
 {
-       if (myAISContext->IsDisplayed(myTrihedron))
-               pCmdUI->SetCheck(1);
-       else
-               pCmdUI->SetCheck(0);
+  if (myAISContext->IsDisplayed(myTrihedron))
+    pCmdUI->SetCheck(1);
+  else
+    pCmdUI->SetCheck(0);
 }
 
 void CViewer3dDoc::SetMyStaticTrihedronAxisIsDisplayed(BOOL IsDisplayed)
 {
-       myStaticTrihedronAxisIsDisplayed = IsDisplayed;
+  myStaticTrihedronAxisIsDisplayed = IsDisplayed;
 }
 
 void CViewer3dDoc::OnUpdateOptionsTrihedronStaticTrihedron(CCmdUI* pCmdUI) 
 {
-       if (myStaticTrihedronAxisIsDisplayed)
-               pCmdUI->SetCheck(1);
-       else
-               pCmdUI->SetCheck(0);
-       
+  if (myStaticTrihedronAxisIsDisplayed)
+    pCmdUI->SetCheck(1);
+  else
+    pCmdUI->SetCheck(0);
+
 }
 
 void  CViewer3dDoc::Popup (const Standard_Integer  x,
@@ -791,22 +770,19 @@ void CViewer3dDoc::OnFillet3d()
   myAISContext->InitSelected();
   if (myAISContext->MoreSelected()) 
   {
-    Handle(AIS_Shape) S = Handle(AIS_Shape)::DownCast (myAISContext->SelectedInteractive());
-
-    if (S.IsNull())
+    const Handle(AIS_Shape)& aSelInteractive = Handle(AIS_Shape)::DownCast (myAISContext->SelectedInteractive());
+    if (aSelInteractive.IsNull())
     {
       AfxMessageBox (L"It is necessary to activate the edges selection mode\n"
                      L"and select edges on an object before \nrunning this function");
       return;
     }
 
-    TopoDS_Shape Sh=S->Shape();
-
-    BRepFilletAPI_MakeFillet aFillet(Sh);
+    BRepFilletAPI_MakeFillet aFillet (aSelInteractive->Shape());
 
     for (myAISContext->InitSelected(); myAISContext->MoreSelected(); myAISContext->NextSelected())
     {
-      TopoDS_Shape aSelShape = myAISContext->SelectedShape();
+      const TopoDS_Shape& aSelShape = myAISContext->SelectedShape();
       if (aSelShape.ShapeType() != TopAbs_EDGE)
       {
         AfxMessageBox (L"It is necessary to activate the edges selection mode\n"
@@ -815,13 +791,16 @@ void CViewer3dDoc::OnFillet3d()
       }
     }
 
-    BoxRadius dlg(NULL,10.);
-    if (dlg.DoModal() == IDOK)
+    BoxRadius aDialog (NULL,10.);
+    if (aDialog.DoModal() == IDOK)
     {
       for (myAISContext->InitSelected(); myAISContext->MoreSelected(); myAISContext->NextSelected())
       {
-        TopoDS_Edge anEdge = TopoDS::Edge(myAISContext->SelectedShape());
-        aFillet.Add(dlg.m_radius,anEdge);
+        // Selected shape has its own location, and sub-shapes in the solid shape for fillet building
+        // don't have own locations. Fillet builder needs to know that input edge is just the same one as
+        // some sub-shape in our target solid shape, so no location is to be in input edge for fillet builder.
+        TopoDS_Shape aSelShape = myAISContext->SelectedShape().Located (TopLoc_Location());
+        aFillet.Add (aDialog.m_radius, TopoDS::Edge (aSelShape) );
       }
     }
     else
@@ -840,8 +819,8 @@ void CViewer3dDoc::OnFillet3d()
       return;
     }
 
-    S ->Set (aNewShape);
-    myAISContext->Redisplay (S);
+    aSelInteractive ->Set (aNewShape);
+    myAISContext->Redisplay (aSelInteractive);
   }
 
   myCResultDialog.SetTitle("Make a fillet");
index 76ad0e3..af369bb 100755 (executable)
@@ -25,127 +25,130 @@ class OCCDemo_Presentation;
 
 class CViewer3dDoc : public OCC_3dDoc
 {
-       DECLARE_DYNCREATE(CViewer3dDoc)
+  DECLARE_DYNCREATE(CViewer3dDoc)
+
 protected: // create from serialization only
-       CViewer3dDoc();
-       void InitViewButtons();
-       void DoSample();
+  CViewer3dDoc();
+  void InitViewButtons();
+  void DoSample();
 
 public:
-       void SetMyStaticTrihedronAxisIsDisplayed(BOOL IsDisplayed);
-       Handle_AIS_Shape GetBox();
-       Handle_AIS_Shape GetSphere();
-       Handle_User_Cylinder GetCylinder();
-       Handle_AIS_Shape GetOverlappedBox();
-       Handle_AIS_Shape GetOverlappedSphere();
-       Handle_AIS_Shape GetOverlappedCylinder();
-       void Start();
-       Standard_CString GetDataDir() {return myDataDir;}
-       static void Fit();
-
-       virtual ~CViewer3dDoc();
-       void UpdateResultMessageDlg (CString theTitle, const TCollection_AsciiString& theMessage);
+  void SetMyStaticTrihedronAxisIsDisplayed(BOOL IsDisplayed);
+  Handle_AIS_Shape GetBox();
+  Handle_AIS_Shape GetSphere();
+  Handle_User_Cylinder GetCylinder();
+  Handle_AIS_Shape GetOverlappedBox();
+  Handle_AIS_Shape GetOverlappedSphere();
+  Handle_AIS_Shape GetOverlappedCylinder();
+  void Start();
+  Standard_CString GetDataDir() {return myDataDir;}
+  static void Fit();
+
+  virtual ~CViewer3dDoc();
+  void UpdateResultMessageDlg (CString theTitle, const TCollection_AsciiString& theMessage);
   void UpdateResultMessageDlg (CString theTitle, CString theMessage);
-       virtual BOOL OnNewDocument();
-       virtual void Popup (const Standard_Integer  x       ,
-                                       const Standard_Integer  y       ,
-                        const Handle(V3d_View)& aView   );
-       
-       virtual void DragEvent (const Standard_Integer  x       ,
-                                               const Standard_Integer  y       ,
-                                               const Standard_Integer  TheState,
-                         const Handle(V3d_View)& aView   );
-    virtual void InputEvent     (const Standard_Integer  x       ,
-                                    const Standard_Integer  y       ,
-                         const Handle(V3d_View)& aView   );  
-    virtual void ShiftDragEvent (const Standard_Integer  x       ,
-                                        const Standard_Integer  y       ,
-                                        const Standard_Integer  TheState,
-                         const Handle(V3d_View)& aView   ); 
-    virtual void ShiftInputEvent(const Standard_Integer  x       ,
-                                        const Standard_Integer  y       ,
-                         const Handle(V3d_View)& aView   ); 
+  virtual BOOL OnNewDocument();
+  virtual void Popup (const Standard_Integer x,
+                      const Standard_Integer y,
+                      const Handle(V3d_View)& aView);
+
+  virtual void DragEvent (const Standard_Integer x,
+                          const Standard_Integer y,
+                          const Standard_Integer TheState,
+                          const Handle(V3d_View)& aView);
+
+  virtual void InputEvent (const Standard_Integer x,
+                           const Standard_Integer y,
+                           const Handle(V3d_View)& aView);
+
+  virtual void ShiftDragEvent (const Standard_Integer x,
+                               const Standard_Integer y,
+                               const Standard_Integer TheState,
+                               const Handle(V3d_View)& aView);
+
+  virtual void ShiftInputEvent (const Standard_Integer x,
+                                const Standard_Integer y,
+                                const Handle(V3d_View)& aView);
 
 #ifdef _DEBUG
-       virtual void AssertValid() const;
-       virtual void Dump(CDumpContext& dc) const;
+  virtual void AssertValid() const;
+  virtual void Dump(CDumpContext& dc) const;
 #endif
 
-// Generated message map functions
+  // Generated message map functions
 protected:
-       BOOL myStaticTrihedronAxisIsDisplayed;  
-       //{{AFX_MSG(CViewer3dDoc)
-       afx_msg void OnBox();
-       afx_msg void OnCylinder();
-       afx_msg void OnSphere();
-       afx_msg void OnRemoveAll();
-       afx_msg void OnNbisos();
-       afx_msg void OnFaces();
-       afx_msg void OnEdges();
-       afx_msg void OnVertices();
-       afx_msg void OnNeutral();
-       afx_msg void OnUsercylinderChangefacecolor();
-       afx_msg void OnFillet3d();
-       afx_msg void OnCircle();
-       afx_msg void OnLine();
-       afx_msg void OnOverlappedBox();
-       afx_msg void OnOverlappedCylinder();
-       afx_msg void OnOverlappedSphere();
-       afx_msg void OnPolygonOffsets();
-       afx_msg void OnUpdatePolygonOffsets(CCmdUI* pCmdUI);
-       afx_msg void OnUpdateCylinder(CCmdUI* pCmdUI);
-       afx_msg void OnUpdateSphere(CCmdUI* pCmdUI);
-       afx_msg void OnUpdateBox(CCmdUI* pCmdUI);
-       afx_msg void OnUpdateOverlappedCylinder(CCmdUI* pCmdUI);
-       afx_msg void OnUpdateOverlappedSphere(CCmdUI* pCmdUI);
-       afx_msg void OnUpdateOverlappedBox(CCmdUI* pCmdUI);
-       afx_msg void OnObjectRemove();
-       afx_msg void OnObjectErase();
-       afx_msg void OnObjectDisplayall();
-       afx_msg void OnObjectColoredMesh();
-       afx_msg void OnUpdateObjectColoredMesh(CCmdUI* pCmdUI);
-       afx_msg void OnUpdateObjectShading(CCmdUI* pCmdUI);
-       afx_msg void OnUpdateObjectWireframe(CCmdUI* pCmdUI);
-       afx_msg void OnOptionsTrihedronDynamicTrihedron();
-       afx_msg void OnUpdateOptionsTrihedronDynamicTrihedron(CCmdUI* pCmdUI);
-       afx_msg void OnUpdateOptionsTrihedronStaticTrihedron(CCmdUI* pCmdUI);
-       afx_msg void OnTextureOn();
-       afx_msg void OnBUTTONNext();
-       afx_msg void OnBUTTONStart();
-       afx_msg void OnBUTTONRepeat();
-       afx_msg void OnBUTTONPrev();
-       afx_msg void OnBUTTONEnd();
-       afx_msg void OnUpdateBUTTONNext(CCmdUI* pCmdUI);
-       afx_msg void OnUpdateBUTTONPrev(CCmdUI* pCmdUI);
-       afx_msg void OnUpdateBUTTONStart(CCmdUI* pCmdUI);
-       afx_msg void OnUpdateBUTTONRepeat(CCmdUI* pCmdUI);
-       afx_msg void OnUpdateBUTTONEnd(CCmdUI* pCmdUI);
-       afx_msg void OnFileNew();
-       afx_msg void OnBUTTONShowResult();
-       afx_msg void OnDumpView();
-       //}}AFX_MSG
-       DECLARE_MESSAGE_MAP()
-
-//Attributes
+  BOOL myStaticTrihedronAxisIsDisplayed;       
+  //{{AFX_MSG(CViewer3dDoc)
+  afx_msg void OnBox();
+  afx_msg void OnCylinder();
+  afx_msg void OnSphere();
+  afx_msg void OnRemoveAll();
+  afx_msg void OnNbisos();
+  afx_msg void OnFaces();
+  afx_msg void OnEdges();
+  afx_msg void OnVertices();
+  afx_msg void OnNeutral();
+  afx_msg void OnUsercylinderChangefacecolor();
+  afx_msg void OnFillet3d();
+  afx_msg void OnCircle();
+  afx_msg void OnLine();
+  afx_msg void OnOverlappedBox();
+  afx_msg void OnOverlappedCylinder();
+  afx_msg void OnOverlappedSphere();
+  afx_msg void OnPolygonOffsets();
+  afx_msg void OnUpdatePolygonOffsets(CCmdUI* pCmdUI);
+  afx_msg void OnUpdateCylinder(CCmdUI* pCmdUI);
+  afx_msg void OnUpdateSphere(CCmdUI* pCmdUI);
+  afx_msg void OnUpdateBox(CCmdUI* pCmdUI);
+  afx_msg void OnUpdateOverlappedCylinder(CCmdUI* pCmdUI);
+  afx_msg void OnUpdateOverlappedSphere(CCmdUI* pCmdUI);
+  afx_msg void OnUpdateOverlappedBox(CCmdUI* pCmdUI);
+  afx_msg void OnObjectRemove();
+  afx_msg void OnObjectErase();
+  afx_msg void OnObjectDisplayall();
+  afx_msg void OnObjectColoredMesh();
+  afx_msg void OnUpdateObjectColoredMesh(CCmdUI* pCmdUI);
+  afx_msg void OnUpdateObjectShading(CCmdUI* pCmdUI);
+  afx_msg void OnUpdateObjectWireframe(CCmdUI* pCmdUI);
+  afx_msg void OnOptionsTrihedronDynamicTrihedron();
+  afx_msg void OnUpdateOptionsTrihedronDynamicTrihedron(CCmdUI* pCmdUI);
+  afx_msg void OnUpdateOptionsTrihedronStaticTrihedron(CCmdUI* pCmdUI);
+  afx_msg void OnTextureOn();
+  afx_msg void OnBUTTONNext();
+  afx_msg void OnBUTTONStart();
+  afx_msg void OnBUTTONRepeat();
+  afx_msg void OnBUTTONPrev();
+  afx_msg void OnBUTTONEnd();
+  afx_msg void OnUpdateBUTTONNext(CCmdUI* pCmdUI);
+  afx_msg void OnUpdateBUTTONPrev(CCmdUI* pCmdUI);
+  afx_msg void OnUpdateBUTTONStart(CCmdUI* pCmdUI);
+  afx_msg void OnUpdateBUTTONRepeat(CCmdUI* pCmdUI);
+  afx_msg void OnUpdateBUTTONEnd(CCmdUI* pCmdUI);
+  afx_msg void OnFileNew();
+  afx_msg void OnBUTTONShowResult();
+  afx_msg void OnDumpView();
+  //}}AFX_MSG
+  DECLARE_MESSAGE_MAP()
+
+  //Attributes
 protected:
-       int myState;
+  int myState;
 
 private:
-       COffsetDlg* myOffsetDlg;
-
-       Handle_User_Cylinder myCylinder;
-       Handle_AIS_Shape mySphere;
-       Handle_AIS_Shape myBox;
-       Handle_AIS_Shape myOverlappedCylinder;
-       Handle_AIS_Shape myOverlappedSphere;
-       Handle_AIS_Shape myOverlappedBox;
-       Handle_AIS_Trihedron myTrihedron;
-
-       OCCDemo_Presentation *myPresentation;
-       char myDataDir[5]; // for "Data\0"
-       char myLastPath[MAX_PATH]; // directory of lastly saved file in DumpView()
-       bool isTextureSampleStarted;
+  COffsetDlg* myOffsetDlg;
+
+  Handle_User_Cylinder myCylinder;
+  Handle_AIS_Shape mySphere;
+  Handle_AIS_Shape myBox;
+  Handle_AIS_Shape myOverlappedCylinder;
+  Handle_AIS_Shape myOverlappedSphere;
+  Handle_AIS_Shape myOverlappedBox;
+  Handle_AIS_Trihedron myTrihedron;
+
+  OCCDemo_Presentation *myPresentation;
+  char myDataDir[5];         // for "Data\0"
+  char myLastPath[MAX_PATH]; // directory of lastly saved file in DumpView()
+  bool isTextureSampleStarted;
 };
 
 /////////////////////////////////////////////////////////////////////////////
index 548862e..1a019cf 100755 (executable)
@@ -655,8 +655,9 @@ void CViewer3dView::OnMouseMove(UINT nFlags, CPoint point)
         switch (myCurrentMode)
         {
          case CurAction3d_Nothing :
-                  myXmax = point.x;      myYmax = point.y;
+
                   DrawRectangle(myXmin,myYmin,myXmax,myYmax,Standard_False);
+           myXmax = point.x;      myYmax = point.y;
            if (nFlags & MK_SHIFT)              
                     GetDocument()->ShiftDragEvent(myXmax,myYmax,0,myView);
            else
diff --git a/samples/mfc/standard/04_Viewer3d/src/resource.h b/samples/mfc/standard/04_Viewer3d/src/resource.h
deleted file mode 100755 (executable)
index fac2093..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by Viewer3d.rc
-//
-#define IDD_SHADINGMODEL                131
-#define IDD_SETOFFSETS                  134
-#define IDD_SCALE                       139
-#define IDD_RADIUS                      144
-#define IDD_ZCLIPPING                   152
-#define IDD_ZCUEING                     153
-#define IDD_TRIHEDRON                   542
-#define ID_BOX                          802
-#define ID_Cylinder                     803
-#define ID_SPHERE                       804
-#define ID_ERASEALL                     805
-#define ID_AMBIENT_LIGHT                806
-#define ID_DIRECTIONAL_LIGHT            807
-#define ID_POSITIONAL_LIGHT             808
-#define ID_SPOT_LIGHT                   809
-#define ID_LIGHTOFF                     810
-#define ID_USERCYLINDER_CHANGEFACECOLOR 810
-#define ID_ZCLIPPING                    812
-#define ID_ZCUEING                      813
-#define ID_SHADINGMODEL                 814
-#define ID_ANTIALIASINGONOFF            815
-#define ID_CLEAR_LIGHTS                 816
-#define ID_MODELCLIPPING                817
-#define ID_OVERLAPPED_BOX               818
-#define ID_BUTTON819                    819
-#define ID_OVERLAPPED_SPHERE            820
-#define ID_BUTTON821                    821
-#define ID_OVERLAPPED_CYLINDER          822
-#define ID_POLYGON_OFFSETS              823
-#define ID_OBJECT_COLORED_MESH          827
-#define ID_OPTIONS_TRIHEDRON_STATIC_TRIHEDRON 829
-#define ID_OPTIONS_TRIHEDRON_DYNAMIC_TRIHEDRON 830
-#define ID_SCALE                        831
-#define ID_CIRCLE                       833
-#define ID_LINE                         834
-#define ID_VERTICES                     837
-#define ID_EDGES                        838
-#define ID_FACES                        839
-#define ID_NEUTRAL                      840
-#define ID_FILLET3D                     841
-#define ID_NBISOS                       842
-#define ID_BUTTONStart                  843
-#define ID_BUTTONPrev                   844
-#define ID_BUTTONRepeat                 845
-#define ID_BUTTONNext                   846
-#define ID_BUTTONEnd                    847
-#define ID_DUMP_VIEW                    848
-#define ID_TEXTURE_ON                   849
-#define IDC_SPIN_RADIUS                 1000
-#define IDC_EDIT_RADIUS                 1001
-#define IDC_SHADINGMODEL_COLOR          1002
-#define IDC_EDIT_ISOU                   1002
-#define IDC_SHADINGMODEL_MULTICOLOR     1003
-#define IDC_SLIDER_MODELCLIPPING_Z      1003
-#define IDC_SHADINGMODEL_FLAT           1004
-#define IDC_ISOU                        1004
-#define IDC_SHADINGMODEL_HIDDEN         1005
-#define IDC_EDIT_MODELCLIPPING_Z        1005
-#define IDC_ISOV                        1005
-#define IDC_SHADINGMODEL_GOURAUD        1006
-#define IDC_EDIT_ISOV                   1006
-#define IDC_SHADINGMODEL_PHONG          1007
-#define IDC_CHECK_MODELCLIPPINGONOFF    1008
-#define IDC_SLIDER_OFFSETFACTOR         1010
-#define IDC_SLIDER_OFFSETUNITS          1011
-#define IDC_EDIT_OFFSETFACTOR           1012
-#define IDC_EDIT_OFFSETUNITS            1013
-#define IDC_COMBO_OFFSETTYPE            1023
-#define IDC_SLIDER_SCALEX               1028
-#define IDC_SLIDER_SCALEY               1029
-#define IDC_EDIT_SCALEX                 1030
-#define IDC_EDIT_SCALEY                 1031
-#define IDC_RadiusFillet                1031
-#define IDC_SLIDER_SCALEZ               1032
-#define IDC_EDIT_SCALEZ                 1033
-#define IDD_RESULTMESSAGEDLG            1500
-#define IDD_MODELCLIPPING               1501
-#define IDD_ISOS                        1502
-#define IDC_COMBO_ZCLIPPINGTYPE         1650
-#define IDC_CHECK_CUEINGONOFF           1651
-#define IDC_EDITTRIHEDRSCALE            1686
-#define IDC_SPINTRIHEDRSCALE            1737
-#define IDC_COMBOTRIHEDRPOS             1739
-#define IDC_COMBOTRIHEDRCOLOR           1740
-#define IDC_SLIDER_ZCLIPPINGDEPTH       2004
-#define IDC_SLIDER_ZCLIPPINGWIDTH       2005
-#define IDC_EDIT_ZCLIPPINGDEPTH         2006
-#define IDC_EDIT_ZCLIPPINGWIDTH         2007
-#define IDC_SLIDER_ZCUEINGDEPTH         2009
-#define IDC_SLIDER_ZCUEINGWIDTH         2010
-#define IDC_EDIT_ZCUEINGDEPTH           2011
-#define IDC_EDIT_ZCUEINGWIDTH           2012
-
-// Next default values for new objects
-// 
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_3D_CONTROLS                     1
-#define _APS_NEXT_RESOURCE_VALUE        140
-#define _APS_NEXT_COMMAND_VALUE         850
-#define _APS_NEXT_CONTROL_VALUE         1032
-#define _APS_NEXT_SYMED_VALUE           104
-#endif
-#endif
index 7f50af3..e19a1fd 100755 (executable)
@@ -22,9 +22,9 @@ static char THIS_FILE[] = __FILE__;
 /////////////////////////////////////////////////////////////////////////////
 // CImportExportDoc
 
-IMPLEMENT_DYNCREATE(CImportExportDoc, CDocument)
+IMPLEMENT_DYNCREATE(CImportExportDoc, OCC_3dDoc)
 
-BEGIN_MESSAGE_MAP(CImportExportDoc, OCC_3dBaseDoc)
+BEGIN_MESSAGE_MAP(CImportExportDoc, OCC_3dDoc)
        //{{AFX_MSG_MAP(CImportExportDoc)
        ON_COMMAND(ID_FILE_IMPORT_BREP, OnFileImportBrep)
        ON_COMMAND(ID_FILE_IMPORT_CSFDB, OnFileImportCSFDB)
@@ -48,23 +48,8 @@ END_MESSAGE_MAP()
 // CImportExportDoc construction/destruction
 
 CImportExportDoc::CImportExportDoc()
+: OCC_3dDoc (false)
 {
-       /*
-       Handle(Graphic3d_WNTGraphicDevice) theGraphicDevice = 
-               ((CImportExportApp*)AfxGetApp())->GetGraphicDevice();
-
-    TCollection_ExtendedString a3DName("Visu3D");
-       myViewer = new V3d_Viewer(theGraphicDevice,a3DName.ToExtString(),"", 1000.0, 
-                              V3d_XposYnegZpos, Quantity_NOC_GRAY30,
-                              V3d_ZBUFFER,V3d_GOURAUD,V3d_WAIT, 
-                              Standard_True, Standard_False);
-
-       myViewer->SetDefaultLights();
-       myViewer->SetLightOn();
-
-       myAISContext =new AIS_InteractiveContext(myViewer);
-
-       */
 /*
     // TRIHEDRON
        Handle(AIS_Trihedron) aTrihedron;
index 151e9f9..a2d9850 100755 (executable)
 #endif // _MSC_VER >= 1000
 
 #include <ColoredShapes.h>
-#include <OCC_3dBaseDoc.h>
+#include <OCC_3dDoc.h>
 
-class CImportExportDoc : public OCC_3dBaseDoc{
+class CImportExportDoc : public OCC_3dDoc
+{
        DECLARE_DYNCREATE(CImportExportDoc)
 public:
        CImportExportDoc();
index fe9f254..c9096d0 100755 (executable)
@@ -1100,40 +1100,39 @@ m_App->SaveAs(myOcafDoc,(TCollection_ExtendedString) TPath); \n\
        myCResultDialog.SetText(text);
 }
 
-BOOL COcafDoc::OnOpenDocument(LPCTSTR lpszPathName) 
+BOOL COcafDoc::OnOpenDocument(LPCTSTR lpszPathName)
 {
-       if (!CDocument::OnOpenDocument(lpszPathName))
-               return FALSE;
-       
-       Handle(TOcaf_Application) m_App= ((COcafApp*)AfxGetApp())->GetApp();
+  if (!CDocument::OnOpenDocument(lpszPathName))
+  {
+    return FALSE;
+  }
 
-       CWaitCursor aWaitCursor;
-       PathName=lpszPathName;
+  Handle(TOcaf_Application) m_App= ((COcafApp*)AfxGetApp())->GetApp();
 
-       Standard_CString SPath = (Standard_CString) lpszPathName;
-       TCollection_ExtendedString TPath(SPath);
-       PathName=lpszPathName;
+  CWaitCursor aWaitCursor;
+  PathName = lpszPathName;
 
-  // open the document in the current application
+  const wchar_t* aPathName = lpszPathName;
+  TCollection_ExtendedString anOccPathName ((Standard_ExtString)aPathName);
+
+  // Open the document in the current application
   //PCDM_ReaderStatus RS = m_App->Open(TPath,myOcafDoc);
-  m_App->Open(TPath,myOcafDoc);
+  m_App->Open(anOccPathName, myOcafDoc);
   //CDF_RetrievableStatus RS = m_App->Open(TPath,myOcafDoc);
 
-       //connect the document CAF (myDoc) with the AISContext (myAISContext)
-  //TPrsStd_AISViewer::Has(myOcafDoc->Main());
-       TPrsStd_AISViewer::New(myOcafDoc->Main(),myViewer);
-       myOcafDoc->SetUndoLimit(10);
+  // Connect the document CAF (myDoc) with the AISContext (myAISContext)
+  TPrsStd_AISViewer::New (myOcafDoc->Main(), myViewer);
+  myOcafDoc->SetUndoLimit (10);
 
-       Handle(AIS_InteractiveContext) CTX;
-       TPrsStd_AISViewer::Find(myOcafDoc->Main(),CTX);
-       CTX->SetDisplayMode(AIS_Shaded);
+  Handle(AIS_InteractiveContext) aContext;
+  TPrsStd_AISViewer::Find (myOcafDoc->Main(), aContext);
+  aContext->SetDisplayMode (AIS_Shaded);
+  myAISContext = aContext;
 
-       myAISContext = CTX;
+  // Display the presentations (which was not stored in the document)
+  DisplayPrs();
 
-       // Display the presentations (which was not stored in the document)
-       DisplayPrs();
-       
-       TCollection_AsciiString Message = TCollection_AsciiString("\
+  TCollection_AsciiString Message = TCollection_AsciiString("\
 //  Retrieve a document \n\
  \n\
  Handle(TOcaf_Application) m_App= ((COcafApp*)AfxGetApp())->GetApp(); \n\
@@ -1149,11 +1148,11 @@ myOcafDoc->SetUndoLimit(10); \n\
  \n\
 \n");
 
-       myCResultDialog.SetTitle("Open a document");
-       CString text(Message.ToCString());
-       myCResultDialog.SetText(text);
+  myCResultDialog.SetTitle ("Open a document");
+  CString text (Message.ToCString());
+  myCResultDialog.SetText (text);
 
-       return TRUE;
+  return TRUE;
 
 }
 
index 21e4c41..619fb55 100755 (executable)
@@ -250,7 +250,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION
 CAPTION "Choose Shapes and Projector"
 FONT 8, "MS Sans Serif", 0, 0, 0x1
 BEGIN
-    CONTROL         "2",IDC_DUMMYBUTTON,"Button",BS_OWNERDRAW | WS_DISABLED | WS_TABSTOP,110,60,100,80,WS_EX_TRANSPARENT
+    CONTROL         "2",IDC_HlrDlgView,"Button",BS_OWNERDRAW | WS_DISABLED | WS_TABSTOP,110,60,100,80,WS_EX_TRANSPARENT
     CONTROL         "Default",IDC_DisplayDefault,"Button",BS_AUTORADIOBUTTON | WS_GROUP,17,0,70,10
     CONTROL         "sharp Edges",IDC_VsharpEdges,"Button",BS_AUTORADIOBUTTON,20,20,70,10
     CONTROL         "smooth Edges",IDC_VsmoothEdges,"Button",BS_AUTORADIOBUTTON,20,30,70,10
index 1dc47a3..ed2c12f 100755 (executable)
 #define ID_Update2D                     1522
 #define IDC_HlrModeIsOn                 1523
 #define IDC_TopView                     1529
-#define IDC_DUMMYBUTTON                 1530
+#define IDC_HlrDlgView                  1530
 #define IDC_BottomView                  1531
 #define IDC_LeftView                    1532
 #define IDC_RightView                   1533
index 59d83d6..eaddf0a 100755 (executable)
@@ -165,6 +165,7 @@ void CHLRDoc::OnBUTTONHLRDialog()
     myCSelectionDialogIsCreated = true;
   }
   myCSelectionDialog->ShowWindow(SW_RESTORE);
+  myCSelectionDialog->UpdateWindow();
 }
 
 void CHLRDoc::OnFileImportBrep() 
index aaa4864..d7c8476 100755 (executable)
@@ -32,8 +32,7 @@ IMPLEMENT_DYNCREATE(CHLRView2D, OCC_2dView)
 
 BEGIN_MESSAGE_MAP(CHLRView2D, OCC_2dView)
   //{{AFX_MSG_MAP(CHLRView2D)
-  // NOTE - the ClassWizard will add and remove mapping macros here.
-  //    DO NOT EDIT what you see in these blocks of generated code!
+  ON_WM_MOUSEMOVE()
   //}}AFX_MSG_MAP
 END_MESSAGE_MAP()
 
@@ -119,7 +118,6 @@ void CHLRView2D::MultiDragEvent2D(const Standard_Integer /*x*/,
 {
 }
 
-
 //-----------------------------------------------------------------------------------------
 //
 //-----------------------------------------------------------------------------------------
@@ -128,6 +126,84 @@ void CHLRView2D::MultiInputEvent2D(const Standard_Integer /*x*/,
 {
 }
 
+//-----------------------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------------------
+void CHLRView2D::OnMouseMove(UINT nFlags, CPoint point)
+{
+  if ( (nFlags & MK_LBUTTON) &! (nFlags & MK_RBUTTON) ) // Left + Right is specific
+  {
+    if ( nFlags & CASCADESHORTCUTKEY )
+    {
+      // move with MB1 and CASCADESHORTCUTKEY : on the dynamic zooming
+      // Do the zoom in function of mouse's coordinates
+      myV2dView->Zoom(myXmax,myYmax,point.x,point.y);
+      myXmax = point.x;
+      myYmax = point.y;
+    }
+    else // if ( CASCADESHORTCUTKEY )
+    {
+      switch (myCurrentMode)
+      {
+      case CurAction2d_Nothing :
+        myXmax = point.x;
+        myYmax = point.y;
+        DragEvent2D(myXmax,myYmax,0);
+        break;
+      case CurAction2d_DynamicZooming :
+        myV2dView->Zoom(myXmax,myYmax,point.x,point.y);
+        myXmax=point.x;
+        myYmax=point.y;
+        break;
+      case CurAction2d_WindowZooming :
+        myXmax = point.x;
+        myYmax = point.y;
+        break;
+      case CurAction2d_DynamicPanning :
+        myV2dView->Pan(point.x-myXmax,myYmax-point.y); // Realize the panning
+        myXmax = point.x;
+        myYmax = point.y;
+        break;
+      case CurAction2d_GlobalPanning :
+        break;
+      default :
+        Standard_Failure::Raise(" incompatible Current Mode ");
+        break;
+      }
+    }
+  } else if ( nFlags & MK_MBUTTON)
+  {
+    if ( nFlags & CASCADESHORTCUTKEY )
+    {
+      myV2dView->Pan (point.x-myXmax,myYmax-point.y);
+      myXmax = point.x;
+      myYmax = point.y;
+    }
+  } else if ( (nFlags & MK_RBUTTON) &! (nFlags & MK_LBUTTON) )
+  {
+  }
+  else if ( (nFlags & MK_RBUTTON) && (nFlags & MK_LBUTTON) )
+  {
+    if ( nFlags & CASCADESHORTCUTKEY ) 
+    {
+      myV2dView->Pan(point.x-myXmax,myYmax-point.y); // Realize the panning
+      myXmax = point.x; myYmax = point.y;      
+    }
+  }
+  else
+  {  // No buttons
+    myXmax = point.x;
+    myYmax = point.y;
+    if (nFlags & MULTISELECTIONKEY)
+    {
+      MultiMoveEvent2D(point.x,point.y);
+    }
+    else
+    {
+      MoveEvent2D(point.x,point.y);
+    }
+  }
+}
 
 #ifdef _DEBUG
 void CHLRView2D::AssertValid() const
index e3c03eb..19a7b29 100755 (executable)
@@ -21,6 +21,10 @@ protected: // create from serialization only
   CHLRView2D();
   DECLARE_DYNCREATE(CHLRView2D)
 
+  // Override MouseMove event to exclude rectangle selection emulation as
+  // no selection is supported in DragEvent2D for this view.
+  afx_msg void OnMouseMove(UINT nFlags, CPoint point);
+  DECLARE_MESSAGE_MAP()
 
   // Overrides
   // ClassWizard generated virtual function overrides
@@ -51,17 +55,6 @@ public:
   virtual void AssertValid() const;
   virtual void Dump(CDumpContext& dc) const;
 #endif
-
-protected:
-
-// Generated message map functions
-protected:
-  //{{AFX_MSG(CHLRView2D)
-  // NOTE - the ClassWizard will add and remove member functions here.
-  //    DO NOT EDIT what you see in these blocks of generated code !
-  //}}AFX_MSG
-  DECLARE_MESSAGE_MAP()
-
 };
 /////////////////////////////////////////////////////////////////////////////
 
index 27ece99..9c3d477 100644 (file)
@@ -104,10 +104,10 @@ BOOL CSelectionDialog::OnInitDialog()
   // get the View Window position to managed mouse move
   CRect BoxRect,ViewRect;
   GetWindowRect (BoxRect);
-  CWnd * TheViewerWindow = GetDlgItem (IDC_DUMMYBUTTON);
+  CWnd * TheViewerWindow = GetDlgItem (IDC_HlrDlgView);
   TheViewerWindow->GetWindowRect (ViewRect);
   myPosMinX = ViewRect.TopLeft().x - BoxRect.TopLeft().x;
-  myPosMaxX = ViewRect.Width()+myPosMinX;
+  myPosMaxX = ViewRect.Width() + myPosMinX;
   myPosMinY = ViewRect.TopLeft().y - BoxRect.TopLeft().y;
   myPosMaxY = myPosMinY + ViewRect.Height();
 
@@ -121,10 +121,12 @@ BOOL CSelectionDialog::OnInitDialog()
 
 void CSelectionDialog::OnDisplay (bool isFit)
 {
-  GetDlgItem(IDC_DUMMYBUTTON)->SetRedraw (true);
+  // 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 = 
+    Handle(Graphic3d_GraphicDriver) aGraphicDriver =
       ((CHLRApp*)AfxGetApp())->GetGraphicDriver();
 
     myActiveViewer = new V3d_Viewer (aGraphicDriver, (short *) "Visu3D");
@@ -132,7 +134,7 @@ void CSelectionDialog::OnDisplay (bool isFit)
     myActiveViewer->SetLightOn();
     myActiveView = myActiveViewer->CreateView();
 
-    Handle(WNT_Window) aWNTWindow = new WNT_Window (GetDlgItem (IDC_DUMMYBUTTON)->GetSafeHwnd(),
+    Handle(WNT_Window) aWNTWindow = new WNT_Window (GetDlgItem (IDC_HlrDlgView)->GetSafeHwnd(),
                                                     Quantity_NOC_GRAY);
     myActiveView->SetComputedMode (m_HlrModeIsOn);
     myActiveView->SetWindow(aWNTWindow);
@@ -144,6 +146,7 @@ void CSelectionDialog::OnDisplay (bool isFit)
     myTrihedron = new AIS_Trihedron (aTrihedronAxis);
 
     myInteractiveContext->Display (myTrihedron);
+    myIsDisplayed = Standard_True;
   }
   if(isFit)
   {
@@ -152,8 +155,7 @@ void CSelectionDialog::OnDisplay (bool isFit)
   }
 
   myActiveView->Redraw();
-  myIsDisplayed = Standard_True;
-  GetDlgItem (IDC_DUMMYBUTTON)->SetRedraw (false);
+  //GetDlgItem (IDC_HlrDlgView)->SetRedraw (false);
 }
 
 
@@ -551,6 +553,5 @@ void CSelectionDialog::OnOK()
 
 void CSelectionDialog::OnPaint() 
 {
-  CPaintDC dc(this); // device context for painting
   OnDisplay(false);
 }
index 9767f58..321506f 100644 (file)
@@ -142,15 +142,16 @@ void CAngleParamsVerticesPage::OnBnClickedVertex3Btn()
   anAspect->TextAspect()->SetHeight (aDimDlg->GetFontHeight());
   anAspect->MakeTextShaded (aDimDlg->IsText3dShaded());
   anAspect->SetCommonColor (aDimDlg->GetDimensionColor());
-  anAngleDim->DimensionAspect()->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed());
+  anAspect->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed());
   if (aDimDlg->IsUnitsDisplayed())
   {
     anAngleDim->SetDisplayUnits (aDimDlg->GetUnits());
     if ((anAngleDim->GetDisplayUnits().IsEqual (TCollection_AsciiString ("deg"))))
     {
-      anAngleDim->DimensionAspect()->MakeUnitsDisplayed (Standard_False);
+      // No units - for degree is special symbol that is enabled by default
+      anAspect->MakeUnitsDisplayed (Standard_False);
     }
-    else
+    else // radians - no special symbol
     {
       anAngleDim->SetDisplaySpecialSymbol (AIS_DSS_No);
     }
index 748a478..317132c 100644 (file)
@@ -15,6 +15,7 @@
 #include <TColStd_ListIteratorOfListOfInteger.hxx>
 #include <TColStd_ListOfInteger.hxx>
 #include <AIS_LocalContext.hxx>
+#include <AIS_Selection.hxx>
 #include <Quantity_Color.hxx>
 
 BEGIN_MESSAGE_MAP(CDimensionDlg, CDialog)
@@ -762,3 +763,11 @@ void CDimensionDlg::OnClose()
   }
   CDialog::OnClose();
 }
+
+TopoDS_Shape CDimensionDlg::SelectedShape()
+{
+  Handle(Standard_Transient) aSelection = AIS_Selection::CurrentSelection()->Value();
+  Handle(SelectMgr_EntityOwner) anOwner = *((Handle(SelectMgr_EntityOwner)*)&aSelection);
+  Handle(StdSelect_BRepOwner) aBrepOwner = Handle(StdSelect_BRepOwner)::DownCast(anOwner);
+  return aBrepOwner->Shape().Located (aBrepOwner->Location() * aBrepOwner->Shape().Location());
+}
index 2e01419..c948ae4 100755 (executable)
@@ -37,6 +37,13 @@ public:
   const TCollection_AsciiString GetUnits() const;
   const Quantity_Color GetDimensionColor() const;
 
+public:
+
+  // Workaround: AIS_LocalContext::SelectedShape() doesn't take into account local location of selected TopoDS shape,
+  // and operates with selected interactive object transformation only.
+  static TopoDS_Shape SelectedShape();
+
+public:
   // Dialog Data
   enum { IDD = IDD_Dimension };
   // Initialization of dialog
index a29426c..41ff0b1 100644 (file)
@@ -60,6 +60,7 @@ CButton* CLengthParamsEdgePage::GetButton()
   return (CButton*)GetDlgItem (IDC_ChooseEdgeBtn);
 }
 
+#include <AIS_Selection.hxx>
 //=======================================================================
 //function : OnBnClickedChooseEdgeBtn
 //purpose  :
@@ -75,28 +76,32 @@ void CLengthParamsEdgePage::OnBnClickedChooseEdgeBtn()
     return;
   }
 
-  TopoDS_Edge anEdge = TopoDS::Edge(myAISContext->LocalContext()->SelectedShape());
+  // Workaround for AIS_LocalContext::SelectedShape()
+  //TopoDS_Shape aSelShape = myAISContext->LocalContext()->SelectedShape();
+  TopoDS_Shape aSelShape = CDimensionDlg::SelectedShape();
+  const TopoDS_Edge& anEdge = TopoDS::Edge (aSelShape);
+
   myAISContext->LocalContext()->ClearSelected();
   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(AIS_LengthDimension) aLenDim = new AIS_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());
index 6865b04..430e9fa 100644 (file)
@@ -78,7 +78,10 @@ void CLengthParamsEdgesPage::OnBnClickedEdge1Btn()
     return;
   }
 
-  myFirstEdge = TopoDS::Edge (myAISContext->LocalContext()->SelectedShape());
+  // Workaround for AIS_LocalContext::SelectedShape()
+  myFirstEdge = TopoDS::Edge (CDimensionDlg::SelectedShape());
+  //myFirstEdge =  TopoDS::Edge (myAISContext->LocalContext()->SelectedShape());
+
   myAISContext->LocalContext()->ClearSelected();
 }
 
@@ -97,7 +100,10 @@ void CLengthParamsEdgesPage::OnBnClickedEdge2Btn()
     return;
   }
 
-  mySecondEdge = TopoDS::Edge (myAISContext->LocalContext()->SelectedShape());
+  // Workaround for AIS_LocalContext::SelectedShape()
+  mySecondEdge = TopoDS::Edge (CDimensionDlg::SelectedShape());
+  //mySecondEdge = TopoDS::Edge (myAISContext->LocalContext()->SelectedShape());
+
   myAISContext->LocalContext()->ClearSelected();
 
   // Build plane through three points
@@ -122,6 +128,7 @@ void CLengthParamsEdgesPage::OnBnClickedEdge2Btn()
   anAspect->TextAspect()->SetHeight (aDimDlg->GetFontHeight());
   anAspect->MakeTextShaded (aDimDlg->IsText3dShaded());
   anAspect->SetCommonColor (aDimDlg->GetDimensionColor());
+  anAspect->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed());
   if (myIsAngleDimension)
   {
     // Build an angle dimension between two non-parallel edges
@@ -148,10 +155,9 @@ void CLengthParamsEdgesPage::OnBnClickedEdge2Btn()
   {
     Handle(AIS_LengthDimension) aLenDim = new AIS_LengthDimension (myFirstEdge, mySecondEdge, aPlane->Pln());
     aLenDim->SetDimensionAspect (anAspect);
-    aLenDim->DimensionAspect()->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed());
+    aLenDim->SetFlyout (aDimDlg->GetFlyout());
     if (aDimDlg->IsUnitsDisplayed())
     {
-      aLenDim->SetFlyout (aDimDlg->GetFlyout());
       aLenDim->SetDisplayUnits (aDimDlg->GetUnits());
     }
 
index 2cea959..4aeae3b 100644 (file)
@@ -117,7 +117,7 @@ void CLengthParamsVerticesPage::OnBnClickedVertex2Btn()
   anAspect->MakeText3d (aDimDlg->GetTextType());
   anAspect->TextAspect()->SetHeight (aDimDlg->GetFontHeight());
   anAspect->MakeTextShaded (aDimDlg->IsText3dShaded());
-  aLenDim->DimensionAspect()->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed());
+  anAspect->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed());
   if (aDimDlg->IsUnitsDisplayed())
   {
     aLenDim->SetDisplayUnits (aDimDlg->GetUnits ());
index eff9424..a788792 100755 (executable)
@@ -13,7 +13,9 @@
 #include "ResultDialog.h"
 #include <WNT_Window.hxx>
 
-class AFX_EXT_CLASS OCC_2dDoc : public OCC_BaseDoc 
+// Mouse and clipboard event tracker for OCC_2dView
+// NO 3D operation are supported (like rotation)
+class AFX_EXT_CLASS OCC_2dDoc : public OCC_BaseDoc
 {
   DECLARE_DYNCREATE(OCC_2dDoc)
 
@@ -22,19 +24,24 @@ public:
   OCC_2dDoc();
   ~OCC_2dDoc();
 
-// Operations
-public:
-
-  Handle_V3d_Viewer GetViewer2D () { return myViewer; };
+public: // New operations
 
   void FitAll2DViews(Standard_Boolean theUpdateViewer = Standard_False);
 
+public: // getters
+
+  Handle_V3d_Viewer GetViewer2D () { return myViewer; };
+
   Handle(AIS_InteractiveContext)& GetInteractiveContext() { return myAISContext; };
 
+public: // Operations to override
+
+   // Mouse move event tracking for 2D view : no rotation is supported in 2D view.
   virtual void MoveEvent(const Standard_Integer theMouseX,
                          const Standard_Integer theMouseY,
                          const Handle(V3d_View)& theView);
 
+  // Shift move event tracking for 2D view : no rotation is supported in 2D view.
   virtual void ShiftMoveEvent(const Standard_Integer theMouseX,
                               const Standard_Integer theMouseY,
                               const Handle(V3d_View)& theViewView);
index 9a2c8ad..407ac62 100755 (executable)
@@ -38,8 +38,6 @@ BEGIN_MESSAGE_MAP(OCC_3dBaseDoc, OCC_BaseDoc)
   ON_UPDATE_COMMAND_UI(ID_OBJECT_DISPLAYALL, OnUpdateObjectDisplayall)
   ON_COMMAND(ID_OBJECT_REMOVE, OnObjectRemove)
   ON_UPDATE_COMMAND_UI(ID_OBJECT_REMOVE, OnUpdateObjectRemove)
-  ON_COMMAND(ID_OBJECT_DIM, OnObjectAddDimensions)
-  ON_UPDATE_COMMAND_UI(ID_OBJECT_DIM, OnUpdateObjectAddDimensions)
 
   //}}AFX_MSG_MAP
   ON_COMMAND_EX_RANGE(ID_OBJECT_MATERIAL_BRASS,ID_OBJECT_MATERIAL_DEFAULT, OnObjectMaterialRange)
@@ -52,20 +50,16 @@ END_MESSAGE_MAP()
 //////////////////////////////////////////////////////////////////////
 
 OCC_3dBaseDoc::OCC_3dBaseDoc()
-:myPopupMenuNumber(0),
- myDimensionDlg()
+:myPopupMenuNumber(0)
 {
   AfxInitRichEdit();
 
-  Handle(Graphic3d_GraphicDriver) aGraphicDriver = 
-    ((OCC_App*)AfxGetApp())->GetGraphicDriver();
+  Handle(Graphic3d_GraphicDriver) aGraphicDriver = ((OCC_App*)AfxGetApp())->GetGraphicDriver();
 
   myViewer = new V3d_Viewer (aGraphicDriver, Standard_ExtString("Visu3D") );
   myViewer->SetDefaultLights();
   myViewer->SetLightOn();
   myAISContext = new AIS_InteractiveContext (myViewer);
-  myDimensionDlg.SetContext (myAISContext);
-  myDimensionDlg.Create(CDimensionDlg::IDD, NULL);
 }
 
 OCC_3dBaseDoc::~OCC_3dBaseDoc()
@@ -87,20 +81,27 @@ void OCC_3dBaseDoc::DragEvent (const Standard_Integer theMouseX,
   static Standard_Integer aStartDragX = 0;
   static Standard_Integer aStartDragY = 0;
 
-  if (theState == -1)
+  switch (theState)
   {
-    // button down
-    aStartDragX = theMouseX;
-    aStartDragY = theMouseY;
-  }
-
-  if (theState == 1)
-  {
-    // button up
-    myAISContext->Select (aStartDragX, aStartDragY,
-                          theMouseX, theMouseY,
-                          theView);
-  }
+  case -1:
+    {
+      aStartDragX = theMouseX;
+      aStartDragY = theMouseY;
+      break;
+    }
+  case 0:
+    {
+      myAISContext->UpdateCurrentViewer();
+      break;
+    }
+  case 1:
+    {
+      myAISContext->Select (aStartDragX, aStartDragY,
+                            theMouseX, theMouseY,
+                            theView);
+      break;
+    }
+  };
 }
 
 //-----------------------------------------------------------------------------------------
@@ -423,18 +424,3 @@ void OCC_3dBaseDoc::SetMaterial(Graphic3d_NameOfMaterial Material)
     myAISContext->SetMaterial (myAISContext->Current(),
     (Graphic3d_NameOfMaterial)(Material));
 }
-
-void OCC_3dBaseDoc::OnObjectAddDimensions() 
-{
-  //Add dimentions dialog is opened here
-  myDimensionDlg.ShowWindow(SW_SHOW);
-  myDimensionDlg.UpdateStandardMode ();
-}
-
-void OCC_3dBaseDoc::OnUpdateObjectAddDimensions(CCmdUI* /*pCmdUI*/) 
-{
-  // Check if local context is opened
-  //pCmdUI->Enable (myAISContext->HasOpenedContext());
-}
-
-
index cd93b28..e590141 100755 (executable)
@@ -15,9 +15,6 @@
 
 class AFX_EXT_CLASS OCC_3dBaseDoc : public OCC_BaseDoc
 {
-protected:
-  CDimensionDlg myDimensionDlg;
-  int myPopupMenuNumber;
 public:
 
   OCC_3dBaseDoc();
@@ -83,11 +80,13 @@ protected:
   afx_msg void OnUpdateObjectDisplayall(CCmdUI* pCmdUI);
   afx_msg void OnObjectRemove();
   afx_msg void OnUpdateObjectRemove(CCmdUI* pCmdUI);
-  afx_msg void OnObjectAddDimensions();
-  afx_msg void OnUpdateObjectAddDimensions(CCmdUI* pCmdUI);
 
   //}}AFX_MSG
   DECLARE_MESSAGE_MAP()
+
+protected:
+
+  int myPopupMenuNumber;
 };
 
 #endif // !defined(AFX_OCC_3dBaseDoc_H__02CE7BD9_39BE_11D7_8611_0060B0EE281E__INCLUDED_)
index 1a2f4d4..b93b368 100755 (executable)
@@ -5,27 +5,36 @@
 #include <stdafx.h>
 #include "OCC_3dDoc.h"
 
+BEGIN_MESSAGE_MAP(OCC_3dDoc, OCC_3dBaseDoc)
+  ON_COMMAND(ID_OBJECT_DIM, OnObjectAddDimensions)
+END_MESSAGE_MAP()
+
 //////////////////////////////////////////////////////////////////////
 // Construction/Destruction
 //////////////////////////////////////////////////////////////////////
 
-OCC_3dDoc::OCC_3dDoc()
+OCC_3dDoc::OCC_3dDoc (bool theIsResultDialog)
+: myDimensionDlg()
 {
+  if (theIsResultDialog)
+  {
+    myCResultDialog.Create(CResultDialog::IDD,NULL);
+
+    RECT dlgrect;
+    myCResultDialog.GetWindowRect(&dlgrect);
+    LONG width = dlgrect.right-dlgrect.left;
+    LONG height = dlgrect.bottom-dlgrect.top;
+
+    RECT MainWndRect;
+    AfxGetApp()->m_pMainWnd->GetWindowRect(&MainWndRect);
+    LONG left = MainWndRect.left+3;
+    LONG top = MainWndRect.top + 112;
 
-       myCResultDialog.Create(CResultDialog::IDD,NULL);
-       
-       RECT dlgrect;
-       myCResultDialog.GetWindowRect(&dlgrect);
-       LONG width = dlgrect.right-dlgrect.left;
-       LONG height = dlgrect.bottom-dlgrect.top;
-       
-       RECT MainWndRect;
-       AfxGetApp()->m_pMainWnd->GetWindowRect(&MainWndRect);
-       LONG left = MainWndRect.left+3;
-       LONG top = MainWndRect.top + 112;
-       
-       myCResultDialog.MoveWindow(left,top,width,height);
+    myCResultDialog.MoveWindow(left,top,width,height);
+  }
 
+  myDimensionDlg.SetContext (myAISContext);
+  myDimensionDlg.Create(CDimensionDlg::IDD, NULL);
 }
 
 OCC_3dDoc::~OCC_3dDoc()
@@ -36,7 +45,6 @@ OCC_3dDoc::~OCC_3dDoc()
 void OCC_3dDoc::PocessTextInDialog (CString theTitle,
                                     CString theMessage)
 {
-//    aMessage+= "-------------------------------- END ----------------------------------------\n";
   myCResultDialog.SetTitle (theTitle);
   myCResultDialog.SetText  (theMessage);
   SetTitle (theTitle);
@@ -73,3 +81,10 @@ void OCC_3dDoc::SetDialogTitle(TCollection_AsciiString theTitle)
 {
     myCResultDialog.SetTitle(theTitle.ToCString());
 }
+
+void OCC_3dDoc::OnObjectAddDimensions() 
+{
+  //Add dimentions dialog is opened here
+  myDimensionDlg.ShowWindow(SW_SHOW);
+  myDimensionDlg.UpdateStandardMode ();
+}
index 84c6c52..2c29340 100755 (executable)
 #include "ResultDialog.h"
 #include <Standard_Macro.hxx>
 
-class AFX_EXT_CLASS OCC_3dDoc : public OCC_3dBaseDoc  
+// Event tracker for 3D views with support of advanced message dialog operations
+// and dimensions dialog
+class AFX_EXT_CLASS OCC_3dDoc : public OCC_3dBaseDoc
 {
 public:
-       void SetDialogTitle(TCollection_AsciiString theTitle);
-       CString GetDialogText();
-       OCC_3dDoc();
-       virtual ~OCC_3dDoc();
 
-       void PocessTextInDialog (CString theTitle, CString theMessage);
-       void PocessTextInDialog (CString theTitle, const TCollection_AsciiString& theMessage)
-        {
-          CString aMessage (theMessage.ToCString());
-          PocessTextInDialog (theTitle, aMessage);
-        }
-       void ClearDialog();
-       void AddTextInDialog(TCollection_AsciiString& aMessage);
+  OCC_3dDoc (bool theIsResultDialog = true);
+  virtual ~OCC_3dDoc();
 
+public: // Dialog operations
+
+  void SetDialogTitle(TCollection_AsciiString theTitle);
+  CString GetDialogText();
+
+  void PocessTextInDialog (CString theTitle, CString theMessage);
+  void PocessTextInDialog (CString theTitle, const TCollection_AsciiString& theMessage)
+  {
+    CString aMessage (theMessage.ToCString());
+    PocessTextInDialog (theTitle, aMessage);
+  }
+
+  void ClearDialog();
+  void AddTextInDialog(TCollection_AsciiString& aMessage);
 
 protected:
-       CResultDialog myCResultDialog;
+
+  afx_msg void OnObjectAddDimensions();
+  DECLARE_MESSAGE_MAP()
+
+protected:
+
+  CResultDialog myCResultDialog;
+  CDimensionDlg myDimensionDlg;
 };
 
 #endif // !defined(AFX_OCC_3DDOC_H__1F4065AD_39C4_11D7_8611_0060B0EE281E__INCLUDED_)
index 101de8c..a8e1093 100755 (executable)
@@ -345,7 +345,6 @@ void OCC_3dView::OnLButtonUp(UINT nFlags, CPoint point)
       }
       break;
     case CurAction3d_DynamicZooming :
-      // SetCursor(AfxGetApp()->LoadStandardCursor());         
       myCurrentMode = CurAction3d_Nothing;
       break;
     case CurAction3d_WindowZooming :
@@ -445,9 +444,11 @@ void OCC_3dView::OnMouseMove(UINT nFlags, CPoint point)
       switch (myCurrentMode)
       {
       case CurAction3d_Nothing :
-        myXmax = point.x;  myYmax = point.y;
         DrawRectangle(myXmin,myYmin,myXmax,myYmax,Standard_False);
-        if (nFlags & MK_SHIFT)         
+        myXmax = point.x;
+        myYmax = point.y;
+
+        if (nFlags & MK_SHIFT)
           GetDocument()->ShiftDragEvent(myXmax,myYmax,0,myView);
         else
           GetDocument()->DragEvent(myXmax,myYmax,0,myView);
index 1728d3b..dd0360f 100644 (file)
@@ -136,7 +136,7 @@ BOOL CAboutDlgStd::OnInitDialog(){
 
   CWnd* aReadmeEdit = GetDlgItem(IDC_README);
   CFile aFile;
-  CString aHelpFilePath = CString (((OCC_App*)AfxGetApp())->GetInitDataDir()) + "\\README.txt";
+  CString aHelpFilePath = CString (((OCC_App*)AfxGetApp())->GetInitDataDir()) + L"\\README.txt";
   if(aFile.Open (aHelpFilePath, CFile::modeRead))
   {
     aReadmeEdit->ShowWindow(TRUE);
@@ -145,9 +145,8 @@ BOOL CAboutDlgStd::OnInitDialog(){
     aFile.Read(buffer,aFileLength);
     ReadmeText = buffer;
     delete[] buffer;
-    ReadmeText.SetAt (aFileLength, '\0');
     ReadmeText.Replace (L"\n", L"\r\n");
-    UpdateData(FALSE);
+    UpdateData (FALSE);
   }
   else
   {
index c22e582..d934801 100644 (file)
@@ -51,7 +51,10 @@ void CParamsFacesPage::OnBnClickedFacesbtn1()
     return;
   }
 
-  myFirstFace = TopoDS::Face (myAISContext->LocalContext()->SelectedShape());
+  // Workaround for AIS_LocalContext::SelectedShape()
+  myFirstFace = TopoDS::Face (CDimensionDlg::SelectedShape());
+  //myFirstFace = TopoDS::Face (myAISContext->LocalContext()->SelectedShape());
+
   myAISContext->LocalContext()->ClearSelected();
 }
 
@@ -66,7 +69,9 @@ void CParamsFacesPage::OnBnClickedFacesbtn2()
     return;
   }
 
-  mySecondFace = TopoDS::Face (myAISContext->LocalContext()->SelectedShape());
+  // Workaround for AIS_LocalContext::SelectedShape()
+  mySecondFace = TopoDS::Face (CDimensionDlg::SelectedShape());
+  //mySecondFace = TopoDS::Face (myAISContext->LocalContext()->SelectedShape());
   myAISContext->LocalContext()->ClearSelected();
 
   CDimensionDlg *aDimDlg = (CDimensionDlg*)(GetParentOwner());
@@ -79,12 +84,13 @@ void CParamsFacesPage::OnBnClickedFacesbtn2()
   anAspect->TextAspect()->SetHeight (aDimDlg->GetFontHeight());
   anAspect->MakeTextShaded (aDimDlg->IsText3dShaded());
   anAspect->SetCommonColor (aDimDlg->GetDimensionColor());
+  anAspect->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed());
   if (myIsAngleDimension)
   {
     // Build an angle dimension between two non-parallel edges
     Handle(AIS_AngleDimension) anAngleDim = new AIS_AngleDimension (myFirstFace, mySecondFace);
     anAngleDim->SetDimensionAspect (anAspect);
-    anAngleDim->DimensionAspect()->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed());
+
     if (aDimDlg->IsUnitsDisplayed())
     {
       anAngleDim->SetDisplayUnits (aDimDlg->GetUnits ());
@@ -105,7 +111,7 @@ void CParamsFacesPage::OnBnClickedFacesbtn2()
   {
     Handle(AIS_LengthDimension) aLenDim = new AIS_LengthDimension (myFirstFace, mySecondFace);
     aLenDim->SetDimensionAspect (anAspect);
-    aLenDim->DimensionAspect()->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed());
+
     if (aLenDim->DimensionAspect()->IsUnitsDisplayed())
     {
       aLenDim->SetFlyout (aDimDlg->GetFlyout());
index d8b03f1..002d23f 100644 (file)
@@ -69,7 +69,10 @@ void CRadiusParamsPage::OnBnClickedObjectBtn()
   Standard_Boolean isAttachPoint = Standard_False;
   Standard_Real aFirstPar = 0, aLastPar = 0;
 
-  TopoDS_Shape aSelShape = myAISContext->LocalContext()->SelectedShape();
+   // Workaround for AIS_LocalContext::SelectedShape()
+  TopoDS_Shape aSelShape = CDimensionDlg::SelectedShape();
+  //TopoDS_Shape aSelShape = myAISContext->LocalContext()->SelectedShape();
+
   if (aSelShape.ShapeType() != TopAbs_EDGE &&
       aSelShape.ShapeType() != TopAbs_FACE &&
       aSelShape.ShapeType() != TopAbs_WIRE)
@@ -113,7 +116,7 @@ void CRadiusParamsPage::OnBnClickedObjectBtn()
   anAspect->TextAspect()->SetHeight (aDimDlg->GetFontHeight());
   anAspect->MakeTextShaded (aDimDlg->IsText3dShaded());
   anAspect->SetCommonColor (aDimDlg->GetDimensionColor());
-  aDim->DimensionAspect()->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed());
+  anAspect->MakeUnitsDisplayed (aDimDlg->IsUnitsDisplayed());
   if (aDimDlg->IsUnitsDisplayed())
   {
     aDim->SetDisplayUnits (aDimDlg->GetUnits());
index 7a61b51..3667b0a 100755 (executable)
@@ -683,7 +683,7 @@ END
 STRINGTABLE 
 BEGIN
     ID_OBJECT_DIMENSIONS    "Add dimensions"
-    ID_LOCALCONTEXT_ADDDIMENSION "Add new dimension for selected objetcs"
+    ID_LOCALCONTEXT_ADDDIMENSION "Add new dimension for selected objects"
 END
 
 STRINGTABLE