1 /* dxfReader for OpenSceneGraph  Copyright (C) 2005 by GraphArchitecture ( grapharchitecture.com )
2  * Programmed by Paul de Repentigny <pdr@grapharchitecture.com>
3  *
4  * OpenSceneGraph is (C) 2004 Robert Osfield
5  *
6  * This library is provided as-is, without support of any kind.
7  *
8  * Read DXF docs or OSG docs for any related questions.
9  *
10  * You may contact the author if you have suggestions/corrections/enhancements.
11  */
12 
13 #ifndef DXF_FILE
14 #define DXF_FILE 1
15 
16 #include <osg/Group>
17 
18 #include <iostream>
19 #include <string>
20 
21 #include "dxfSectionBase.h"
22 #include "dxfReader.h"
23 #include "dxfSection.h"
24 #include "scene.h"
25 #include "codeValue.h"
26 
27 class dxfFile {
28 public:
dxfFile(std::string fileName)29     dxfFile(std::string fileName) :
30                 _fileName(fileName),
31                 _isNewSection(false)
32     {}
33     bool            parseFile();
34     osg::Group*        dxf2osg();
35     dxfBlock*        findBlock(std::string name);
36     VariableList    getVariable(std::string var);
37 
38 protected:
39 
40     short assign(codeValue& cv);
41     std::string                 _fileName;
42     bool                        _isNewSection;
43     osg::ref_ptr<dxfReader>     _reader;
44     osg::ref_ptr<dxfSection>    _current;
45     osg::ref_ptr<dxfHeader>     _header;
46     osg::ref_ptr<dxfTables>     _tables;
47     osg::ref_ptr<dxfBlocks>     _blocks;
48     osg::ref_ptr<dxfEntities>   _entities;
49     osg::ref_ptr<dxfSection>    _unknown;
50     osg::ref_ptr<scene>         _scene;
51 };
52 
53 
54 #endif
55