mydxfheader.hpp
Go to the documentation of this file.
00001 00005 /* Copyright (c) 2010,2012 Taneli Kalvas. All rights reserved. 00006 * 00007 * You can redistribute this software and/or modify it under the terms 00008 * of the GNU General Public License as published by the Free Software 00009 * Foundation; either version 2 of the License, or (at your option) 00010 * any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, but 00013 * WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with this library (file "COPYING" included in the package); 00019 * if not, write to the Free Software Foundation, Inc., 51 Franklin 00020 * Street, Fifth Floor, Boston, MA 02110-1301 USA 00021 * 00022 * If you have questions about your rights to use or distribute this 00023 * software, please contact Berkeley Lab's Technology Transfer 00024 * Department at TTD@lbl.gov. Other questions, comments and bug 00025 * reports should be sent directly to the author via email at 00026 * taneli.kalvas@jyu.fi. 00027 * 00028 * NOTICE. This software was developed under partial funding from the 00029 * U.S. Department of Energy. As such, the U.S. Government has been 00030 * granted for itself and others acting on its behalf a paid-up, 00031 * nonexclusive, irrevocable, worldwide license in the Software to 00032 * reproduce, prepare derivative works, and perform publicly and 00033 * display publicly. Beginning five (5) years after the date 00034 * permission to assert copyright is obtained from the U.S. Department 00035 * of Energy, and subject to any subsequent five (5) year renewals, 00036 * the U.S. Government is granted for itself and others acting on its 00037 * behalf a paid-up, nonexclusive, irrevocable, worldwide license in 00038 * the Software to reproduce, prepare derivative works, distribute 00039 * copies to the public, perform publicly and display publicly, and to 00040 * permit others to do so. 00041 */ 00042 00043 #ifndef MY_DXF_HEADER_HPP 00044 #define MY_DXF_HEADER_HPP 1 00045 00046 00047 #include <stdint.h> 00048 #include "vec3d.hpp" 00049 #include "mydxffile.hpp" 00050 00051 00058 class MyDXFHeader 00059 { 00060 00061 00062 00063 public: 00064 00065 std::string acadver; /* 1 */ 00066 double angbase; /* 50 */ 00067 int16_t angdir; /* 70 */ 00068 00069 00070 std::string handseed; /* 5 */ 00071 double dimasz; /* 40 */ 00072 double dimgap; /* 40 */ 00073 double dimexo; /* 40 */ 00074 double dimexe; /* 40 */ 00075 double dimtxt; /* 40 */ 00076 int16_t insunits; /* 70 */ 00077 Vec3D plimmax; /* 10, 20 */ 00078 Vec3D plimmin; /* 10, 20 */ 00079 00080 00081 int16_t orthomode; /* 70, on if nonzero */ 00082 00083 00084 std::string pucsbase; /* 2, Name of the UCS that defines the origin and orientation 00085 * of orthographic UCS settings (paper space only) */ 00086 std::string pucsname; /* 2, Current paper space UCS name */ 00087 Vec3D pucsorg; /* 10, 20, 30, Current paper space UCS origin */ 00088 Vec3D pucsorgback; /* 10, 20, 30, Point which becomes the new UCS origin after changing 00089 * paper space UCS to BACK when PUCSBASE is set to WORLD */ 00090 Vec3D pucsorgbottom; /* 10, 20, 30, Point which becomes the new UCS origin after changing 00091 * paper space UCS to BOTTOM when PUCSBASE is set to WORLD */ 00092 Vec3D pucsorgfront; /* 10, 20, 30, Point which becomes the new UCS origin after changing 00093 * paper space UCS to FRONT when PUCSBASE is set to WORLD */ 00094 Vec3D pucsorgleft; /* 10, 20, 30, Point which becomes the new UCS origin after changing 00095 * paper space UCS to LEFT when PUCSBASE is set to WORLD */ 00096 Vec3D pucsorgright; /* 10, 20, 30, Point which becomes the new UCS origin after changing 00097 * paper space UCS to RIGHT when PUCSBASE is set to WORLD */ 00098 Vec3D pucsorgtop; /* 10, 20, 30, Point which becomes the new UCS origin after changing 00099 * paper space UCS to TOP when PUCSBASE is set to WORLD */ 00100 std::string pucsorthoref; /* 2, If paper space UCS is orthographic (PUCSORTHOVIEW not 00101 * equal to 0), this is the name of the UCS that the orthographic 00102 * UCS is relative to. If blank, UCS is relative to WORLD */ 00103 int16_t pucsorthoview; /* 70, Orthographic view type of paper space UCS: 00104 * 0 = UCS is not orthographic; 00105 * 1 = Top; 2 = Bottom; 00106 * 3 = Front; 4 = Back; 00107 * 5 = Left; 6 = Right */ 00108 Vec3D pucsxdir; /* 10, 20, 30, Current paper space UCS X axis */ 00109 Vec3D pucsydir; /* 10, 20, 30, Current paper space UCS Y axis */ 00110 00111 00112 std::string ucsbase; /* 2, Name of the UCS that defines the origin and orientation 00113 * of orthographic UCS settings */ 00114 std::string ucsname; /* 2, Name of current UCS */ 00115 Vec3D ucsorg; /* 10, 20, 30, Origin of current UCS (in WCS) */ 00116 Vec3D ucsorgback; /* 10, 20, 30, Point which becomes the new UCS origin after changing 00117 * model space UCS to BACK when UCSBASE is set to WORLD */ 00118 Vec3D ucsorgbottom; /* 10, 20, 30, Point which becomes the new UCS origin after changing 00119 * model space UCS to BOTTOM when UCSBASE is set to WORLD */ 00120 Vec3D ucsorgfront; /* 10, 20, 30, Point which becomes the new UCS origin after changing 00121 * model space UCS to FRONT when UCSBASE is set to WORLD */ 00122 Vec3D ucsorgleft; /* 10, 20, 30, Point which becomes the new UCS origin after changing 00123 * model space UCS to LEFT when UCSBASE is set to WORLD */ 00124 Vec3D ucsorgright; /* 10, 20, 30, Point which becomes the new UCS origin after changing 00125 * model space UCS to RIGHT when UCSBASE is set to WORLD */ 00126 Vec3D ucsorgtop; /* 10, 20, 30, Point which becomes the new UCS origin after changing 00127 * model space UCS to TOP when UCSBASE is set to WORLD */ 00128 std::string ucsorthoref; /* 2, If model space UCS is orthographic (UCSORTHOVIEW not 00129 * equal to 0), this is the name of the UCS that the orthographic 00130 * UCS is relative to. If blank, UCS is relative to WORLD */ 00131 int16_t ucsorthoview; /* 70, Orthographic view type of model space UCS: 00132 * 0 = UCS is not orthographic; 00133 * 1 = Top; 2 = Bottom; 00134 * 3 = Front; 4 = Back; 00135 * 5 = Left; 6 = Right */ 00136 Vec3D ucsxdir; /* 10, 20, 30, Direction of the current UCS X axis (in WCS) */ 00137 Vec3D ucsydir; /* 10, 20, 30, Direction of the current UCS Y axis (in WCS) */ 00138 00139 00140 int16_t worldview; /* 70, 1 = Set UCS to WCS during DVIEW/VPOINT 00141 * 0 = Don't change UCS */ 00142 00143 MyDXFHeader( class MyDXFFile *dxf ); 00144 ~MyDXFHeader(); 00145 00148 void write( class MyDXFFile *dxf, std::ofstream &_ostr ); 00149 00152 void debug_print( std::ostream &os ) const; 00153 }; 00154 00155 00156 00157 00158 00159 #endif 00160 00161 00162