Compilation errors were corrected.
#pragma once
#endif // _MSC_VER >= 1000
+#include "OCC_BaseDoc.h"
#include "ResultDialog.h"
class Handle_AIS_Point;
-class CGeometryDoc : public CDocument
+class CGeometryDoc : public OCC_BaseDoc
{
public:
void Put2DOnTop(bool isMax = true);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
-
-private:
- Handle_V3d_Viewer myViewer;
- Handle_V3d_Viewer myViewerCollector;
- Handle_AIS_InteractiveContext myAISContext;
-public :
- Handle_AIS_InteractiveContext& GetAISContext(){ return myAISContext; };
- Handle_V3d_Viewer GetViewer() { return myViewer; };
- Handle_V3d_Viewer GetViewerCollector() { return myViewerCollector; };
-
-
private:
Handle_V3d_Viewer myViewer2D;
Handle_AIS_InteractiveContext myAISContext2D;
-public :
+
+public:
int Current;
void Minimize3D();
void Minimize2D();
- Handle_V3d_Viewer GetViewer2D() { return myViewer2D; };
- Handle_AIS_InteractiveContext& GetISessionContext(){ return myAISContext2D; };
+ Handle_V3d_Viewer GetViewer2D() { return myViewer2D; };
+ Handle_AIS_InteractiveContext& GetISessionContext() { return myAISContext2D; };
BOOL FitMode;
public :
void CGeometryView::OnFileExportImage()
{
- CFileDialog aDlg (FALSE, "*.BMP", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
- "BMP Files (*.BMP)|*.bmp|"
- "GIF Files (*.GIF)|*.gif|"
- "PNG Files (*.PNG)|*.png|"
- "JPEG Files (*.JPG)|*.jpg|"
- "PPM Files (*.PPM)|*.ppm|"
- "TIFF Files (*.TIFF)|*.tiff|"
- "TGA Files (*.TGA)|*.tga|"
- "EXR Files (*.EXR)|*.exr||", NULL);
- if (aDlg.DoModal() != IDOK)
- {
- return;
- }
-
- SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
- myView->Dump (aDlg.GetPathName());
- SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
+ GetDocument()->ExportView (myView);
}
void CGeometryView::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
void CViewer2dDoc::OnBUTTONTestImage()
{
- CFileDialog dlg(TRUE,
- NULL,
- NULL,
- OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
- "image Files (*.bmp , *.gif , *.jpeg, *.bmp, *.ppm, *.exr, *.tga, *.tiff, *.pgf, *.pdf)"
- "|*.bmp; *.gif; *.jpeg; *.bmp; *.ppm; *.exr; *.tga; *.tiff; *.pgf; *.pdf;"
- "| all files (*.*)|*.*;||",
- NULL );
-
- CString initdir(((OCC_App*) AfxGetApp())->GetInitDataDir());
- initdir += "\\Data";
-
- dlg.m_ofn.lpstrInitialDir = initdir;
- if(dlg.DoModal() == IDOK)
+ CFileDialog anOpenImageDlg (TRUE,
+ NULL,
+ NULL,
+ OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
+ SupportedImageFormats() + "| all files (*.*)|*.*;||",
+ NULL);
+
+ CString anInitDir (((OCC_App*) AfxGetApp())->GetInitDataDir());
+ anInitDir += "\\Data";
+
+ anOpenImageDlg.m_ofn.lpstrInitialDir = anInitDir;
+ if(anOpenImageDlg.DoModal() == IDOK)
{
- SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
- CString filename = dlg.GetPathName();
- TCollection_AsciiString aFileName(filename);
+ SetCursor(AfxGetApp()->LoadStandardCursor (IDC_WAIT));
+ CString aFilePath = anOpenImageDlg.GetPathName();
+ TCollection_AsciiString aFileName (aFilePath);
//erase viewer
if(myAISContext->HasOpenedContext())
myAISContext->CloseAllContexts();
myAISContext->EraseAll();
- Handle(Sample2D_Image) anImage = new Sample2D_Image(aFileName);
- anImage->SetCoord(40,50) ;
- anImage->SetScale(1.0);
- myAISContext->Display(anImage, Standard_False);
- myAISContext->SetDisplayMode(anImage,3,Standard_False);
- FitAll2DViews(Standard_True);
+ Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
+ anImage->SetCoord (40,50) ;
+ anImage->SetScale (1.0);
+ myAISContext->Display (anImage, Standard_False);
+ myAISContext->SetDisplayMode (anImage,3,Standard_False);
+ FitAll2DViews (Standard_True);
}
}
void CViewer2dDoc::OnBUTTONMultipleImage()
{
- CFileDialog dlg(TRUE,
- NULL,
- NULL,
- OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
- "image Files (*.bmp , *.gif , *.jpeg, *.bmp, *.ppm, *.exr, *.tga, *.tiff, *.pgf, *.pdf)"
- "|*.bmp; *.gif; *.jpeg; *.bmp; *.ppm; *.exr; *.tga; *.tiff; *.pgf; *.pdf;"
- "| all files (*.*)|*.*;||",
- NULL );
+ CFileDialog anOpenImageDlg (TRUE,
+ NULL,
+ NULL,
+ OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
+ SupportedImageFormats() + "| all files (*.*)|*.*;||",
+ NULL);
- CString initdir(((OCC_App*) AfxGetApp())->GetInitDataDir());
- initdir += "\\Data";
+ CString anInitDir (((OCC_App*) AfxGetApp())->GetInitDataDir());
+ anInitDir += "\\Data";
- dlg.m_ofn.lpstrInitialDir = initdir;
-
+ anOpenImageDlg.m_ofn.lpstrInitialDir = anInitDir;
- if (dlg.DoModal() == IDOK)
+ if (anOpenImageDlg.DoModal() == IDOK)
{
- SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
- CString filename = dlg.GetPathName();
- TCollection_AsciiString aFileName(filename);
+ SetCursor(AfxGetApp()->LoadStandardCursor (IDC_WAIT));
+ CString aFilePath = anOpenImageDlg.GetPathName();
+ TCollection_AsciiString aFileName (aFilePath);
+
//erase viewer
if(myAISContext->HasOpenedContext())
myAISContext->CloseAllContexts();
myAISContext->EraseAll();
+
//create images
{ // 1
- Handle(Sample2D_Image) anImage = new Sample2D_Image(aFileName);
- anImage->SetCoord(40,50) ;
- anImage->SetScale(0.5);
- myAISContext->Display(anImage, Standard_False);
- myAISContext->SetDisplayMode(anImage,3,Standard_False);
+ Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
+ anImage->SetCoord (40, 50);
+ anImage->SetScale (0.5);
+ myAISContext->Display (anImage, Standard_False);
+ myAISContext->SetDisplayMode (anImage, 3, Standard_False);
}
{ // 2
- Handle(Sample2D_Image) anImage = new Sample2D_Image(aFileName);
-
- anImage->SetCoord(100,50) ;
- anImage->SetScale(0.9);
- myAISContext->Display(anImage,Standard_False);
- myAISContext->SetDisplayMode(anImage,3,Standard_False);
+ Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
+ anImage->SetCoord (100, 50);
+ anImage->SetScale (0.9);
+ myAISContext->Display (anImage, Standard_False);
+ myAISContext->SetDisplayMode (anImage, 3, Standard_False);
}
{ // 3
- Handle(Sample2D_Image) anImage = new Sample2D_Image(aFileName);
- anImage->SetCoord(40,40) ;
- anImage->SetScale(0.3);
- myAISContext->Display(anImage, Standard_False);
- myAISContext->SetDisplayMode(anImage,3,Standard_False);
+ Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
+ anImage->SetCoord (40, 40);
+ anImage->SetScale (0.3);
+ myAISContext->Display (anImage, Standard_False);
+ myAISContext->SetDisplayMode (anImage, 3, Standard_False);
}
{ // 4
- Handle(Sample2D_Image) anImage = new Sample2D_Image(aFileName);
- anImage->SetCoord(50,40) ;
- myAISContext->Display(anImage, Standard_False);
- myAISContext->SetDisplayMode(anImage,3,Standard_False);
+ Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
+ anImage->SetCoord (50, 40);
+ myAISContext->Display (anImage, Standard_False);
+ myAISContext->SetDisplayMode (anImage, 3, Standard_False);
}
{ // 5
- Handle(Sample2D_Image) anImage = new Sample2D_Image(aFileName);
- anImage->SetCoord(80,45) ;
- anImage->SetScale(2);
- myAISContext->Display(anImage, Standard_False);
- myAISContext->SetDisplayMode(anImage,3,Standard_False);
+ Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
+ anImage->SetCoord (80, 45);
+ anImage->SetScale (2);
+ myAISContext->Display (anImage, Standard_False);
+ myAISContext->SetDisplayMode (anImage, 3, Standard_False);
}
{ // 6
- Handle(Sample2D_Image) anImage = new Sample2D_Image(aFileName);
- anImage->SetCoord(20,-20) ;
- myAISContext->Display(anImage, Standard_False);
- myAISContext->SetDisplayMode(anImage,3,Standard_False);
+ Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
+ anImage->SetCoord (20, -20);
+ myAISContext->Display (anImage, Standard_False);
+ myAISContext->SetDisplayMode (anImage, 3, Standard_False);
}
{ // 7
- Handle(Sample2D_Image) anImage = new Sample2D_Image(aFileName);
- anImage->SetCoord(0,0) ;
- anImage->SetScale(0.5);
- myAISContext->Display(anImage, Standard_False);
- myAISContext->SetDisplayMode(anImage,3,Standard_False);
+ Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
+ anImage->SetCoord (0, 0);
+ anImage->SetScale (0.5);
+ myAISContext->Display (anImage, Standard_False);
+ myAISContext->SetDisplayMode (anImage, 3, Standard_False);
}
- FitAll2DViews(Standard_True); // Update Viewer
+ FitAll2DViews (Standard_True); // Update Viewer
}
}
if (m_ModelClippingONOFF)
{
// register and activate clipping plane
- if (!myView->GetClipPlanes().Contains (myClippingPlane))
+ Standard_Boolean toAddPlane = Standard_True;
+ Graphic3d_SequenceOfHClipPlane::Iterator aPlaneIt (myView->GetClipPlanes());
+ for (; aPlaneIt.More(); aPlaneIt.Next())
+ {
+ if (aPlaneIt.Value() == myClippingPlane)
+ {
+ toAddPlane = Standard_False;
+ break;
+ }
+ }
+
+ if (toAddPlane)
{
myView->AddClipPlane (myClippingPlane);
}
if (m_ModelClippingONOFF)
{
// register and activate clipping plane
- if (!myView->GetClipPlanes().Contains (myClippingPlane))
+ Standard_Boolean toAddPlane = Standard_True;
+ Graphic3d_SequenceOfHClipPlane::Iterator aPlaneIt (myView->GetClipPlanes());
+ for (; aPlaneIt.More(); aPlaneIt.Next())
+ {
+ if (aPlaneIt.Value() == myClippingPlane)
+ {
+ toAddPlane = Standard_False;
+ break;
+ }
+ }
+
+ if (toAddPlane)
{
myView->AddClipPlane (myClippingPlane);
}
STRINGTABLE
BEGIN
- ID_DUMP_VIEW "Save current frame into a GIF file\nExport view to GIF (F12)"
+ ID_DUMP_VIEW "Save current frame into an image file\nExport view (F12)"
ID_TEXTURE_ON "Run texture example\nRun texture example"
END
pCmdUI->Enable (isTextureSampleStarted);
}
-void CViewer3dDoc::OnDumpView()
-{
- CFileDialog aDlg (false, "gif", "OCCView.gif", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
- "GIF Files (*.GIF)|*.gif|"
- "BMP Files (*.BMP)|*.bmp|"
- "PNG Files (*.PNG)|*.png|"
- "JPEG Files (*.JPG)|*.jpg|"
- "PPM Files (*.PPM)|*.ppm|"
- "TIFF Files (*.TIFF)|*.tiff|"
- "TGA Files (*.TGA)|*.tga|"
- "EXR Files (*.EXR)|*.exr||", NULL);
- if (aDlg.DoModal() != IDOK)
- {
- return;
- }
-
+void CViewer3dDoc::OnDumpView()
+{
for (POSITION aPos = GetFirstViewPosition(); aPos != NULL;)
{
CViewer3dView* pView = (CViewer3dView* )GetNextView (aPos);
pView->UpdateWindow();
}
+
myViewer->InitActiveViews();
Handle(V3d_View) aView = myViewer->ActiveView();
- aView->Dump (aDlg.GetPathName());
+ ExportView (aView);
}
void CViewer3dDoc::Start()
ID_BUTTONStart "Press to go to the first sample\nFirst sample (Home)"
ID_BUTTONNext "Press to go to the next sample\nNext sample (PgDn)"
ID_BUTTONEnd "Press to go to the last sample\nLast sample (End)"
- ID_DUMP_VIEW "Save current frame into a GIF file\nExport view to GIF (F12)"
+ ID_DUMP_VIEW "Save current frame into an image file\nExport view (F12)"
END
#endif // English (U.S.) resources
pCmdUI->Enable (!myPresentation->AtFirstSample());
}
-void CTriangulationDoc::OnDumpView()
+void CTriangulationDoc::OnDumpView()
{
- CFileDialog aDlg (false, "gif", "OCCView.gif", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
- "GIF Files (*.GIF)|*.gif|"
- "BMP Files (*.BMP)|*.bmp|"
- "PNG Files (*.PNG)|*.png|"
- "JPEG Files (*.JPEG)|*.jpeg|"
- "PPM Files (*.PPM)|*.ppm|"
- "TIFF Files (*.TIFF)|*.tiff|"
- "TGA Files (*.TGA)|*.tga|"
- "EXR Files (*.EXR)|*.exr||", NULL);
- if (aDlg.DoModal() != IDOK)
- {
- return;
- }
-
for (POSITION aPos = GetFirstViewPosition(); aPos != NULL;)
{
OCC_3dView* pView = (OCC_3dView* )GetNextView (aPos);
pView->UpdateWindow();
}
+
myViewer->InitActiveViews();
Handle(V3d_View) aView = myViewer->ActiveView();
- aView->Dump (aDlg.GetPathName());
+ ExportView (aView);
}
void CTriangulationDoc::Fit()
#pragma once
#endif // _MSC_VER >= 1000
-
+#include "OCC_BaseDoc.h"
#include "AIS_ConnectedInteractive.hxx"
#include "Geom_Transformation.hxx"
-class CAnimationDoc : public CDocument
+class CAnimationDoc : public OCC_BaseDoc
{
public:
- void DragEvent (const Standard_Integer x ,
- const Standard_Integer y ,
- const Standard_Integer TheState,
- const Handle(V3d_View)& aView );
- void InputEvent (const Standard_Integer x ,
- const Standard_Integer y ,
- const Handle(V3d_View)& aView );
- void MoveEvent (const Standard_Integer x ,
- const Standard_Integer y ,
- const Handle(V3d_View)& aView );
- void ShiftMoveEvent (const Standard_Integer x ,
- const Standard_Integer y ,
- const Handle(V3d_View)& aView );
- void ShiftDragEvent (const Standard_Integer x ,
- const Standard_Integer y ,
- const Standard_Integer TheState,
- const Handle(V3d_View)& aView );
- void ShiftInputEvent(const Standard_Integer x ,
- const Standard_Integer y ,
- const Handle(V3d_View)& aView );
- void Popup (const Standard_Integer x ,
- const Standard_Integer y ,
- const Handle(V3d_View)& aView );
+ void DragEvent (const Standard_Integer x,
+ const Standard_Integer y,
+ const Standard_Integer TheState,
+ const Handle(V3d_View)& aView);
-protected: // create from serialization only
- CAnimationDoc();
- DECLARE_DYNCREATE(CAnimationDoc)
+ void InputEvent (const Standard_Integer x,
+ const Standard_Integer y,
+ const Handle(V3d_View)& aView);
-// Attributes
-public:
+ void MoveEvent (const Standard_Integer x,
+ const Standard_Integer y,
+ const Handle(V3d_View)& aView);
-// Operations
-public:
+ void ShiftMoveEvent (const Standard_Integer x,
+ const Standard_Integer y,
+ const Handle(V3d_View)& aView);
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CAnimationDoc)
- public:
- //}}AFX_VIRTUAL
+ void ShiftDragEvent (const Standard_Integer x,
+ const Standard_Integer y,
+ const Standard_Integer TheState,
+ const Handle(V3d_View)& aView);
+
+ void ShiftInputEvent (const Standard_Integer x,
+ const Standard_Integer y,
+ const Handle(V3d_View)& aView);
+
+ void Popup (const Standard_Integer x,
+ const Standard_Integer y,
+ const Handle(V3d_View)& aView);
+
+protected: // create from serialization only
+ CAnimationDoc();
+ DECLARE_DYNCREATE(CAnimationDoc)
// Implementation
public:
- virtual ~CAnimationDoc();
+ virtual ~CAnimationDoc();
#ifdef _DEBUG
- virtual void AssertValid() const;
- virtual void Dump(CDumpContext& dc) const;
+ virtual void AssertValid() const;
+ virtual void Dump(CDumpContext& dc) const;
#endif
-protected:
-
// Generated message map functions
protected:
- //{{AFX_MSG(CAnimationDoc)
- afx_msg void OnShading();
- afx_msg void OnThread();
- afx_msg void OnFileLoadgrid();
- afx_msg void OnUpdateWalkWalkthru(CCmdUI* pCmdUI);
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-public :
+ //{{AFX_MSG(CAnimationDoc)
+ afx_msg void OnShading();
+ afx_msg void OnThread();
+ afx_msg void OnFileLoadgrid();
+ afx_msg void OnUpdateWalkWalkthru(CCmdUI* pCmdUI);
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+private:
+ Handle_AIS_Shape myAisCrankArm ;
+ Handle_AIS_Shape myAisCylinderHead ;
+ Handle_AIS_Shape myAisPropeller ;
+ Handle_AIS_Shape myAisPiston ;
+ Handle_AIS_Shape myAisEngineBlock ;
+ Standard_Real myDeviation;
+ Standard_Integer myAngle;
-private:
- Handle_V3d_Viewer myViewer;
- Handle_AIS_InteractiveContext myAISContext;
-public :
- Handle_AIS_InteractiveContext& GetAISContext(){ return myAISContext; };
- Handle_V3d_Viewer GetViewer() { return myViewer; };
-
-
-
-private :
- Handle_AIS_Shape myAisCrankArm ;
- Handle_AIS_Shape myAisCylinderHead ;
- Handle_AIS_Shape myAisPropeller ;
- Handle_AIS_Shape myAisPiston ;
- Handle_AIS_Shape myAisEngineBlock ;
-
- Standard_Real myDeviation;
- Standard_Integer myAngle;
-
-public :
- void OnMyTimer();
- Standard_Integer myCount;
- Standard_Integer thread;
- double m_Xmin, m_Ymin, m_Zmin, m_Xmax, m_Ymax, m_Zmax;
- BOOL m_bIsGridLoaded;
+public:
+ void OnMyTimer();
+ Standard_Integer myCount;
+ Standard_Integer thread;
+ double m_Xmin, m_Ymin, m_Zmin, m_Xmax, m_Ymax, m_Zmax;
+ BOOL m_bIsGridLoaded;
};
/////////////////////////////////////////////////////////////////////////////
// CAnimationView3D message handlers
void CAnimationView3D::OnFileExportImage()
{
- CFileDialog aDlg (FALSE, "*.BMP", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
- "BMP Files (*.BMP)|*.bmp|"
- "GIF Files (*.GIF)|*.gif|"
- "PNG Files (*.PNG)|*.png|"
- "JPEG Files (*.JPEG)|*.jpeg|"
- "PPM Files (*.PPM)|*.ppm|"
- "TIFF Files (*.TIFF)|*.tiff|"
- "TGA Files (*.TGA)|*.tga|"
- "EXR Files (*.EXR)|*.exr||",
- NULL);
- if (aDlg.DoModal() != IDOK)
- {
- return;
- }
-
- SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
- myView->Dump (aDlg.GetPathName());
- SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
+ GetDocument()->ExportView (myView);
}
void CAnimationView3D::OnSize(UINT /*nType*/, int cx, int cy)
ID_BUTTONStart "Press to go to the first sample\nFirst sample (Home)"
ID_BUTTONNext "Press to go to the next sample\nNext sample (PgDn)"
ID_BUTTONShowResult "Press to toggle show of source code on/off\nSource code (F11)"
- ID_DUMP_VIEW "Save current frame into a GIF file\nExport view to GIF (F12)"
+ ID_DUMP_VIEW "Save current frame into an image file\nExport view (F12)"
ID_BUTTONEnd "Press to go to the last sample\nLast sample (End)"
ID_BUTTONPrev "Press to go to the previous sample\nPrevious sample (PgUp)"
ID_BUTTONRepeat "Press to repeat the current sample\nRepeat sample (Space)"
void COCCDemoDoc::OnDumpView()
{
- CFileDialog aDlg (false, "gif", "OCCView.gif", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
- "GIF Files (*.GIF)|*.gif|"
- "BMP Files (*.BMP)|*.bmp|"
- "PNG Files (*.PNG)|*.png|"
- "JPEG Files (*.JPEG)|*.jpeg|"
- "PPM Files (*.PPM)|*.ppm|"
- "TIFF Files (*.TIFF)|*.tiff|"
- "TGA Files (*.TGA)|*.tga|"
- "EXR Files (*.EXR)|*.exr||", NULL);
- if (aDlg.DoModal() != IDOK)
- {
- return;
- }
-
for (POSITION aPos = GetFirstViewPosition(); aPos != NULL;)
{
COCCDemoView* pView = (COCCDemoView* )GetNextView (aPos);
pView->UpdateWindow();
}
+
myViewer->InitActiveViews();
Handle(V3d_View) aView = myViewer->ActiveView();
- aView->Dump (aDlg.GetPathName());
+ ExportView (aView);
}
void COCCDemoDoc::Fit()
#pragma once
#endif // _MSC_VER > 1000
+#include <OCC_BaseDoc.h>
#include "ResultDialog.h"
class OCCDemo_Presentation;
-class COCCDemoDoc : public CDocument
+class COCCDemoDoc : public OCC_BaseDoc
{
public:
- Handle_V3d_Viewer GetViewer() const { return myViewer; };
- Handle_AIS_InteractiveContext GetAISContext() const { return myAISContext; };
CResultDialog* GetResultDialog () {return &myCResultDialog;}
Standard_CString GetDataDir() {return myDataDir;}
DECLARE_MESSAGE_MAP()
private:
- Handle_V3d_Viewer myViewer;
- Handle_AIS_InteractiveContext myAISContext;
OCCDemo_Presentation *myPresentation;
CResultDialog myCResultDialog;
BOOL myShowResult;
void OCC_2dView::OnFileExportImage()
{
- LPCTSTR filter;
- filter = _T("EXR Files (*.EXR)|*.exr|TGA Files (*.TGA)|*.tga|TIFF Files (*.TIFF)|*.tiff|"
- "PPM Files (*.PPM)|*.ppm|JPEG Files(*.JPEG)|*.jpeg|PNG Files (*.PNG)|*.png|"
- "GIF Files (*.GIF)|*.gif|BMP Files (*.BMP)|*.bmp|PS Files (*.PS)|*.ps|"
- "EPS Files (*.EPS)|*.eps|TEX Files (*.TEX)|*.tex|PDF Files (*.PDF)|*.pdf"
- "|SVG Files (*.SVG)|*.svg|PGF Files (*.PGF)|*.pgf|EMF Files (*.EMF)|*.emf||");
- CFileDialog dlg(FALSE,_T("*.BMP"),NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
- filter,
- NULL );
-
-
-if (dlg.DoModal() == IDOK)
-{
- SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
- CString aFileName = dlg.GetPathName();
- CString ext = dlg.GetFileExt();
- if (!(ext.CompareNoCase("ps")) || !(ext.CompareNoCase("emf"))
- || !(ext.CompareNoCase("pdf")) || !(ext.CompareNoCase("eps"))
- || !(ext.CompareNoCase("tex")) || !(ext.CompareNoCase("svg"))
- || !(ext.CompareNoCase("pgf")))
- {
- Graphic3d_ExportFormat exFormat;
- if (!(ext.CompareNoCase("ps"))) exFormat = Graphic3d_EF_PostScript;
- else exFormat = Graphic3d_EF_EnhPostScript;
- myV2dView->View()->Export( aFileName, exFormat );
- return;
- }
- myV2dView->Dump(aFileName);
- SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
-}
+ GetDocument()->ExportView (myV2dView);
}
/////////////////////////////////////////////////////////////////////////////
#include "DimensionDlg.h"
#include <Standard_Macro.hxx>
-class AFX_EXT_CLASS OCC_3dBaseDoc : public OCC_BaseDoc
+class AFX_EXT_CLASS OCC_3dBaseDoc : public OCC_BaseDoc
{
protected:
CDimensionDlg myDimensionDlg;
// OCC_3dView message handlers
void OCC_3dView::OnFileExportImage()
{
- LPCTSTR filter;
- filter = _T("EXR Files (*.EXR)|*.exr|TGA Files (*.TGA)|*.tga|TIFF Files (*.TIFF)|*.tiff|"
- "PPM Files (*.PPM)|*.ppm|JPEG Files(*.JPEG)|*.jpeg|PNG Files (*.PNG)|*.png|"
- "GIF Files (*.GIF)|*.gif|BMP Files (*.BMP)|*.bmp|PS Files (*.PS)|*.ps|"
- "EPS Files (*.EPS)|*.eps|TEX Files (*.TEX)|*.tex|PDF Files (*.PDF)|*.pdf"
- "|SVG Files (*.SVG)|*.svg|PGF Files (*.PGF)|*.pgf|EMF Files (*.EMF)|*.emf||");
- CFileDialog dlg(FALSE,_T("*.BMP"),NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
- filter,
- NULL );
-
- if (dlg.DoModal() == IDOK)
- {
- CString aFileName = dlg.GetPathName();
- CString ext = dlg.GetFileExt();
- if (!(ext.CompareNoCase("ps")) || !(ext.CompareNoCase("emf"))
- || !(ext.CompareNoCase("pdf")) || !(ext.CompareNoCase("eps"))
- || !(ext.CompareNoCase("tex")) || !(ext.CompareNoCase("svg"))
- || !(ext.CompareNoCase("pgf")))
- {
- Graphic3d_ExportFormat exFormat;
- if (!(ext.CompareNoCase("ps"))) exFormat = Graphic3d_EF_PostScript;
- else exFormat = Graphic3d_EF_EnhPostScript;
- myView->View()->Export( aFileName, exFormat );
- return;
- }
- myView->Dump(aFileName);
- }
+ GetDocument()->ExportView (myView);
}
void OCC_3dView::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
#include <stdafx.h>
#include "OCC_BaseDoc.h"
+const CString OCC_BaseDoc::SupportedImageFormats() const
+{
+ return ("BMP Files (*.BMP)|*.bmp|GIF Files (*.GIF)|*.gif|TIFF Files (*.TIFF)|*.tiff|"
+ "PPM Files (*.PPM)|*.ppm|JPEG Files(*.JPEG)|*.jpeg|PNG Files (*.PNG)|*.png|"
+ "EXR Files (*.EXR)|*.exr|TGA Files (*.TGA)|*.tga|PS Files (*.PS)|*.ps|"
+ "EPS Files (*.EPS)|*.eps|TEX Files (*.TEX)|*.tex|PDF Files (*.PDF)|*.pdf"
+ "|SVG Files (*.SVG)|*.svg|PGF Files (*.PGF)|*.pgf");
+}
+
+void OCC_BaseDoc::ExportView (const Handle(V3d_View)& theView) const
+{
+ CFileDialog anExportDlg (FALSE,_T("*.BMP"),NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
+ SupportedImageFormats() + "||", NULL );
+
+ if (anExportDlg.DoModal() == IDOK)
+ {
+ // Set waiting cursor
+ SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
+
+ CString aFileName = anExportDlg.GetPathName();
+ CString aFileExt = anExportDlg.GetFileExt();
+
+ // For vector formats use V3d_View::Export() method
+ if (!(aFileExt.CompareNoCase ("ps")) || !(aFileExt.CompareNoCase ("pdf"))
+ || !(aFileExt.CompareNoCase ("eps")) || !(aFileExt.CompareNoCase ("tex"))
+ || !(aFileExt.CompareNoCase ("svg")) || !(aFileExt.CompareNoCase ("pgf")))
+ {
+ Graphic3d_ExportFormat anExportFormat;
+
+ if (!(aFileExt.CompareNoCase ("ps"))) anExportFormat = Graphic3d_EF_PostScript;
+ else if (!(aFileExt.CompareNoCase ("eps"))) anExportFormat = Graphic3d_EF_EnhPostScript;
+ else if (!(aFileExt.CompareNoCase ("pdf"))) anExportFormat = Graphic3d_EF_PDF;
+ else if (!(aFileExt.CompareNoCase ("tex"))) anExportFormat = Graphic3d_EF_TEX;
+ else if (!(aFileExt.CompareNoCase ("svg"))) anExportFormat = Graphic3d_EF_SVG;
+ else anExportFormat = Graphic3d_EF_PGF;
+
+ theView->View()->Export (aFileName, anExportFormat);
+ }
+ else
+ {
+ // For pixel formats use V3d_View:Dump() method
+ theView->Dump (aFileName);
+ }
+
+ // Restore cursor
+ SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
+ }
+}
+
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
#pragma once
#endif // _MSC_VER > 1000
-#include <stdafx.h>
-
-class OCC_BaseDoc : public CDocument
+#include <AIS_InteractiveContext.hxx>
+#include <V3d_Viewer.hxx>
+
+// Base class for all documents in the sample.
+// Declares base functionlaity and interface for the sample documents.
+// Common properties:
+// - interactive context
+// - 3d viewer
+// Common methods:
+// - base events
+// - export into one of supported export formats.
+class AFX_EXT_CLASS OCC_BaseDoc : public CDocument
{
public:
Handle(AIS_InteractiveContext)& GetAISContext() { return myAISContext; }
- Handle(V3d_Viewer) GetViewer() { return myViewer; }
+ Handle(V3d_Viewer) GetViewer() { return myViewer; }
+
+ // Returns string with supported export pixel and vector images formats.
+ const CString SupportedImageFormats() const;
+
+ // Exports the given view into of the supported formats.
+ void ExportView (const Handle(V3d_View)& theView) const;
//Events
virtual void DragEvent (const Standard_Integer /*theMouseX*/,