Click here to Skip to main content
13,834,384 members
Click here to Skip to main content
Articles » Multimedia » OpenGL » General » Downloads


133 bookmarked
Posted 16 Jan 2001

Achieving PostScript and Wmf outputs for OpenGL

, 9 Jun 2003
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
// 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

// Attributes

	// 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

// Overrides
	// ClassWizard generated virtual function overrides
	virtual BOOL OnNewDocument();
	virtual void Serialize(CArchive& ar);
	virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
	virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);

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


// Generated message map functions
	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);


// 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.


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


About the Author

Pierre Alliez
France France
No Biography provided

You may also be interested in...

Permalink | Advertise | Privacy | Cookies | Terms of Use | Mobile
Web03 | 2.8.190114.1 | Last Updated 10 Jun 2003
Article Copyright 2001 by Pierre Alliez
Everything else Copyright © CodeProject, 1999-2019
Layout: fixed | fluid