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