]> git.saurik.com Git - wxWidgets.git/blame - samples/opengl/penguin/dxfrenderer.h
Fix various documentation warnings throughout core and base.
[wxWidgets.git] / samples / opengl / penguin / dxfrenderer.h
CommitLineData
4b764db3
JS
1/////////////////////////////////////////////////////////////////////////////
2// Name: dxfrenderer.h
3// Purpose: DXF reader and renderer
4// Author: Sandro Sigala
5// Modified by:
6// Created: 2005-11-10
4b764db3
JS
7// Copyright: (c) Sandro Sigala
8// Licence: wxWindows licence
9/////////////////////////////////////////////////////////////////////////////
10
11#ifndef _DXFRENDERER_H_
12#define _DXFRENDERER_H_
13
14struct DXFVector
15{
16 DXFVector() { x = y = z = 0.0f; }
17 DXFVector(float _x, float _y, float _z) { x = _x; y = _y; z = _z; }
18 float x, y, z;
19};
20
21struct DXFEntity
22{
23 enum Type { Line, Face } type;
24 int colour;
25};
26
27struct DXFLine: public DXFEntity
28{
29 DXFLine() { type = Line; }
30 DXFVector v0;
31 DXFVector v1;
32};
33
34struct DXFFace: public DXFEntity
35{
36 DXFFace() { type = Face; }
37 void CalculateNormal();
38 DXFVector v0;
39 DXFVector v1;
40 DXFVector v2;
41 DXFVector v3;
42 DXFVector n; // normal
43};
44
45struct DXFLayer
46{
47 DXFLayer() { colour = -1; }
48 wxString name;
49 int colour;
50};
51
52WX_DECLARE_LIST(DXFEntity, DXFEntityList);
53WX_DECLARE_LIST(DXFLayer, DXFLayerList);
54
55class DXFRenderer
56{
57public:
58 DXFRenderer();
59 ~DXFRenderer();
60
61 void Clear();
62 bool Load(wxInputStream& stream);
63 bool IsOk() const { return m_loaded; }
64 void Render() const;
65
66private:
67 bool ParseHeader(wxInputStream& stream);
68 bool ParseTables(wxInputStream& stream);
69 bool ParseEntities(wxInputStream& stream);
70 int GetLayerColour(const wxString& layer) const;
71 void NormalizeEntities();
72
73 bool m_loaded;
74 DXFLayerList m_layers;
75 DXFEntityList m_entities;
76};
77
78#endif // !_DXFRENDERER_H_