Click here to Skip to main content
11,476,994 members (73,695 online)
Click here to Skip to main content
Articles » Multimedia » OpenGL » General » Downloads
Add your own
alternative version

Achieving PostScript and Wmf outputs for OpenGL

, 9 Jun 2003 280.8K 9K 126
This article explains how to generate resolution independent versions of 3D meshes rendered by OpenGL/MFC programs, i.e. how to export the rendering results to vectorial formats such as encapsulated postscript (EPS) and Windows enhanced metafile (EMF) formats. The main goal consists of being able to
gl_export.zip
Src
Mesh.dsp
Mesh.dsw
Mesh.plg
Mesh.aps
Mesh.clw
Lib3D
res
Mesh.ico
MeshDoc.ico
Toolbar.bmp
Mesh.ncb
Mesh.opt
Bin
knot2.wrl
mnt.wrl
mannequin.wrl
venus.wrl
knot1.wrl
nefertiti.wrl
geosphere.wrl
metafile.emf
Mesh.exe
samples_eps.zip
nefertiti_flat.eps
nefertiti_line_light.eps
nefertiti_line.eps
nefertiti_line_color.eps
nefertiti_smooth_light.eps
nefertiti_line_smooth_light.eps
nefertiti_vertex_color.eps
sample_ppt.zip
sample.ppt
// MeshDoc.h : interface of the CMeshDoc class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_MESHDOC_H__50ED6A30_C0C1_11D2_B4C7_006067306B48__INCLUDED_)
#define AFX_MESHDOC_H__50ED6A30_C0C1_11D2_B4C7_006067306B48__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000


#include "Lib3d/Base3d.h"

class CMeshDoc : public CDocument
{
protected: // create from serialization only
	CMeshDoc();
	DECLARE_DYNCREATE(CMeshDoc)

// Attributes
public:

	// The scene
	CSceneGraph3d m_SceneGraph;

	// Options
	BOOL m_AddWireframe;
	BOOL m_Smooth;
	float m_PolygonOffset;
	BOOL m_Light;
	GLenum m_Mode;
	BOOL m_Culling;

	void RenderScene();

	// Misc
	CView *GetView(); 

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CMeshDoc)
	public:
	virtual BOOL OnNewDocument();
	virtual void Serialize(CArchive& ar);
	virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
	virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CMeshDoc();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	//{{AFX_MSG(CMeshDoc)
	afx_msg void OnGlAddWireframe();
	afx_msg void OnUpdateGlAddWireframe(CCmdUI* pCmdUI);
	afx_msg void OnGlSmooth();
	afx_msg void OnUpdateGlSmooth(CCmdUI* pCmdUI);
	afx_msg void OnMeshLoop();
	afx_msg void OnUpdateMeshLoop(CCmdUI* pCmdUI);
	afx_msg void OnGlLight();
	afx_msg void OnGlLine();
	afx_msg void OnUpdateGlLine(CCmdUI* pCmdUI);
	afx_msg void OnUpdateGlLight(CCmdUI* pCmdUI);
	afx_msg void OnGlVertex();
	afx_msg void OnUpdateGlVertex(CCmdUI* pCmdUI);
	afx_msg void OnGlFace();
	afx_msg void OnUpdateGlFace(CCmdUI* pCmdUI);
	afx_msg void OnMeshColorHeight();
	afx_msg void OnEditWmf();
	afx_msg void OnUpdateEditWmf(CCmdUI* pCmdUI);
	afx_msg void OnGlCulling();
	afx_msg void OnUpdateGlCulling(CCmdUI* pCmdUI);
	afx_msg void OnMeshColorChoose();
	afx_msg void OnUpdateMeshColorChoose(CCmdUI* pCmdUI);
	afx_msg void OnUpdateMeshColorHeight(CCmdUI* pCmdUI);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_MESHDOC_H__50ED6A30_C0C1_11D2_B4C7_006067306B48__INCLUDED_)

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

Pierre Alliez

France France
No Biography provided

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.150520.1 | Last Updated 10 Jun 2003
Article Copyright 2001 by Pierre Alliez
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid