xref: /AOO41X/main/filter/source/graphicfilter/idxf/dxftblrd.hxx (revision 22e87013b212da8c80c93e291ad90de8f36964c2)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _DXFTBLRD_HXX
25 #define _DXFTBLRD_HXX
26 
27 #include <dxfgrprd.hxx>
28 #include <dxfvec.hxx>
29 
30 
31 //----------------------------------------------------------------------------
32 //------------------ Linien-Typ ----------------------------------------------
33 //----------------------------------------------------------------------------
34 
35 #define DXF_MAX_DASH_COUNT 32
36 
37 class DXFLType {
38 
39 public:
40 
41     DXFLType * pSucc;
42 
43     char sName[DXF_MAX_STRING_LEN+1];        //  2
44     long nFlags;                             // 70
45     char sDescription[DXF_MAX_STRING_LEN+1]; //  3
46     long nDashCount;                         // 73
47     double fPatternLength;                   // 40
48     double fDash[DXF_MAX_DASH_COUNT];        // 49,49,...
49 
50     DXFLType();
51     void Read(DXFGroupReader & rDGR);
52 };
53 
54 
55 //----------------------------------------------------------------------------
56 //------------------ Layer ---------------------------------------------------
57 //----------------------------------------------------------------------------
58 
59 class DXFLayer {
60 
61 public:
62 
63     DXFLayer * pSucc;
64 
65     char sName[DXF_MAX_STRING_LEN+1];     //  2
66     long nFlags;                          // 70
67     long nColor;                          // 62
68     char sLineType[DXF_MAX_STRING_LEN+1]; //  6
69 
70     DXFLayer();
71     void Read(DXFGroupReader & rDGR);
72 };
73 
74 
75 //----------------------------------------------------------------------------
76 //------------------ Style ---------------------------------------------------
77 //----------------------------------------------------------------------------
78 
79 class DXFStyle {
80 
81 public:
82 
83     DXFStyle * pSucc;
84 
85     char sName[DXF_MAX_STRING_LEN+1];         //  2
86     long nFlags;                              // 70
87     double fHeight;                           // 40
88     double fWidthFak;                         // 41
89     double fOblAngle;                         // 50
90     long nTextGenFlags;                       // 71
91     double fLastHeightUsed;                   // 42
92     char sPrimFontFile[DXF_MAX_STRING_LEN+1]; //  3
93     char sBigFontFile[DXF_MAX_STRING_LEN+1];  //  4
94 
95     DXFStyle();
96     void Read(DXFGroupReader & rDGR);
97 };
98 
99 
100 //----------------------------------------------------------------------------
101 //------------------ VPort ---------------------------------------------------
102 //----------------------------------------------------------------------------
103 
104 class DXFVPort {
105 
106 public:
107 
108     DXFVPort * pSucc;
109 
110     char sName[DXF_MAX_STRING_LEN+1]; //  2
111     long nFlags;                      // 70
112     double fMinX;                     // 10
113     double fMinY;                     // 20
114     double fMaxX;                     // 11
115     double fMaxY;                     // 21
116     double fCenterX;                  // 12
117     double fCenterY;                  // 22
118     double fSnapBaseX;                // 13
119     double fSnapBaseY;                // 23
120     double fSnapSapcingX;             // 14
121     double fSnapSpacingY;             // 24
122     double fGridX;                    // 15
123     double fGridY;                    // 25
124     DXFVector aDirection;             // 16,26,36
125     DXFVector aTarget;                // 17,27,37
126     double fHeight;                   // 40
127     double fAspectRatio;              // 41
128     double fLensLength;               // 42
129     double fFrontClipPlane;           // 43
130     double fBackClipPlane;            // 44
131     double fTwistAngle;               // 51
132     long nStatus;                     // 68
133     long nID;                         // 69
134     long nMode;                       // 71
135     long nCircleZoomPercent;          // 72
136     long nFastZoom;                   // 73
137     long nUCSICON;                    // 74
138     long nSnap;                       // 75
139     long nGrid;                       // 76
140     long nSnapStyle;                  // 77
141     long nSnapIsopair;                // 78
142 
143     DXFVPort();
144     void Read(DXFGroupReader & rDGR);
145 };
146 
147 
148 //----------------------------------------------------------------------------
149 //------------------ Tabellen ------------------------------------------------
150 //----------------------------------------------------------------------------
151 
152 class DXFTables {
153 
154 public:
155 
156     DXFLType * pLTypes; // Liste der Linientypen
157     DXFLayer * pLayers; // Liste der Layers
158     DXFStyle * pStyles; // Liste der Styles
159     DXFVPort * pVPorts; // Liste der Viewports
160 
161     DXFTables();
162     ~DXFTables();
163 
164     void Read(DXFGroupReader & rDGR);
165         // Liest die Tabellen ein bis zu einem ENDSEC oder EOF
166         // (unbekannte Dinge/Tabellen werden uebersprungen)
167 
168     void Clear();
169 
170     // Suche nach Tabelleneintraegen:
171     DXFLType * SearchLType(const char * pName) const;
172     DXFLayer * SearchLayer(const char * pName) const;
173     DXFVPort * SearchVPort(const char * pName) const;
174 
175 };
176 
177 #endif
178 
179 
180