Applied patch [ 1355355 ] Replace GPLed code in penguin sample and add features
(with Unicode and scope mods) By Sandro Sigala git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36174 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
79
samples/opengl/penguin/dxfrenderer.h
Normal file
79
samples/opengl/penguin/dxfrenderer.h
Normal file
@@ -0,0 +1,79 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: dxfrenderer.h
|
||||
// Purpose: DXF reader and renderer
|
||||
// Author: Sandro Sigala
|
||||
// Modified by:
|
||||
// Created: 2005-11-10
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Sandro Sigala
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _DXFRENDERER_H_
|
||||
#define _DXFRENDERER_H_
|
||||
|
||||
struct DXFVector
|
||||
{
|
||||
DXFVector() { x = y = z = 0.0f; }
|
||||
DXFVector(float _x, float _y, float _z) { x = _x; y = _y; z = _z; }
|
||||
float x, y, z;
|
||||
};
|
||||
|
||||
struct DXFEntity
|
||||
{
|
||||
enum Type { Line, Face } type;
|
||||
int colour;
|
||||
};
|
||||
|
||||
struct DXFLine: public DXFEntity
|
||||
{
|
||||
DXFLine() { type = Line; }
|
||||
DXFVector v0;
|
||||
DXFVector v1;
|
||||
};
|
||||
|
||||
struct DXFFace: public DXFEntity
|
||||
{
|
||||
DXFFace() { type = Face; }
|
||||
void CalculateNormal();
|
||||
DXFVector v0;
|
||||
DXFVector v1;
|
||||
DXFVector v2;
|
||||
DXFVector v3;
|
||||
DXFVector n; // normal
|
||||
};
|
||||
|
||||
struct DXFLayer
|
||||
{
|
||||
DXFLayer() { colour = -1; }
|
||||
wxString name;
|
||||
int colour;
|
||||
};
|
||||
|
||||
WX_DECLARE_LIST(DXFEntity, DXFEntityList);
|
||||
WX_DECLARE_LIST(DXFLayer, DXFLayerList);
|
||||
|
||||
class DXFRenderer
|
||||
{
|
||||
public:
|
||||
DXFRenderer();
|
||||
~DXFRenderer();
|
||||
|
||||
void Clear();
|
||||
bool Load(wxInputStream& stream);
|
||||
bool IsOk() const { return m_loaded; }
|
||||
void Render() const;
|
||||
|
||||
private:
|
||||
bool ParseHeader(wxInputStream& stream);
|
||||
bool ParseTables(wxInputStream& stream);
|
||||
bool ParseEntities(wxInputStream& stream);
|
||||
int GetLayerColour(const wxString& layer) const;
|
||||
void NormalizeEntities();
|
||||
|
||||
bool m_loaded;
|
||||
DXFLayerList m_layers;
|
||||
DXFEntityList m_entities;
|
||||
};
|
||||
|
||||
#endif // !_DXFRENDERER_H_
|
Reference in New Issue
Block a user