00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 #ifndef MY_DXF_TABLES_HPP
00044 #define MY_DXF_TABLES_HPP 1
00045
00046
00047 #include <vector>
00048 #include <string>
00049 #include <stdint.h>
00050 #include "mydxffile.hpp"
00051
00052
00055 class MyDXFEntry
00056 {
00057
00058 std::string _handle;
00059 std::string _handle_to_owner;
00060
00061 protected:
00062
00065 MyDXFEntry();
00066
00069 void process_group( class MyDXFFile *dxf );
00070
00073 void write_common( class MyDXFFile *dxf, std::ofstream &ostr );
00074
00077 void debug_print_common( std::ostream &os ) const;
00078
00079 public:
00080
00083 virtual ~MyDXFEntry() {};
00084
00087 virtual void write( class MyDXFFile *dxf, std::ofstream &ostr ) = 0;
00088
00091 virtual void debug_print( std::ostream &os ) const = 0;
00092
00093 friend std::ostream &operator<<( std::ostream &os, const MyDXFEntry &e );
00094 };
00095
00096
00097
00100 class MyDXFEntry_BlockRecord : public MyDXFEntry
00101 {
00102
00103 std::string _name;
00104 int16_t _units;
00105 int8_t _explodability;
00106 int8_t _scalability;
00107 std::string _handle_to_layout;
00108
00109 public:
00110
00113 MyDXFEntry_BlockRecord( class MyDXFFile *dxf );
00114
00117 virtual ~MyDXFEntry_BlockRecord();
00118
00121 virtual void write( class MyDXFFile *dxf, std::ofstream &ostr );
00122
00125 virtual void debug_print( std::ostream &os ) const;
00126 };
00127
00128
00129
00132 class MyDXFEntry_Layer : public MyDXFEntry
00133 {
00134
00135 std::string _name;
00136 std::string _linetype;
00137 int16_t _flags;
00138 int16_t _color;
00139 bool _plotting;
00140 int8_t _lineweight;
00141
00142 std::string _handle_to_plot_style_name;
00143 std::string _handle_to_material;
00144
00145 public:
00146
00149 MyDXFEntry_Layer( class MyDXFFile *dxf );
00150
00153 virtual ~MyDXFEntry_Layer();
00154
00157 virtual void write( class MyDXFFile *dxf, std::ofstream &ostr );
00158
00161 virtual void debug_print( std::ostream &os ) const;
00162 };
00163
00164
00165
00168 class MyDXFTable
00169 {
00170 std::string _name;
00171 std::string _handle;
00172 std::string _handle_to_owner;
00173
00174 std::vector<MyDXFEntry *> _entries;
00175
00176 public:
00177
00178 MyDXFTable( const std::string &name, class MyDXFFile *dxf );
00179 ~MyDXFTable();
00180
00183 void write( class MyDXFFile *dxf, std::ofstream &ostr );
00184
00185 void debug_print( std::ostream &os ) const;
00186 };
00187
00188
00189
00194 class MyDXFTables
00195 {
00196
00197 MyDXFTable *_blockrecord;
00198 MyDXFTable *_layer;
00199
00200 public:
00201
00202 MyDXFTables( class MyDXFFile *dxf );
00203 ~MyDXFTables();
00204
00207 void write( class MyDXFFile *dxf, std::ofstream &ostr );
00208
00211 void debug_print( std::ostream &os ) const;
00212 };
00213
00214
00215
00216
00217
00218 #endif
00219
00220
00221