1*22e87013SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*22e87013SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*22e87013SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*22e87013SAndrew Rist * distributed with this work for additional information 6*22e87013SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*22e87013SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*22e87013SAndrew Rist * "License"); you may not use this file except in compliance 9*22e87013SAndrew Rist * with the License. You may obtain a copy of the License at 10*22e87013SAndrew Rist * 11*22e87013SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*22e87013SAndrew Rist * 13*22e87013SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*22e87013SAndrew Rist * software distributed under the License is distributed on an 15*22e87013SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*22e87013SAndrew Rist * KIND, either express or implied. See the License for the 17*22e87013SAndrew Rist * specific language governing permissions and limitations 18*22e87013SAndrew Rist * under the License. 19*22e87013SAndrew Rist * 20*22e87013SAndrew Rist *************************************************************/ 21*22e87013SAndrew Rist 22*22e87013SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef _DXFBLKRD_HXX 25cdf0e10cSrcweir #define _DXFBLKRD_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <dxfentrd.hxx> 28cdf0e10cSrcweir 29cdf0e10cSrcweir //---------------------------------------------------------------------------- 30cdf0e10cSrcweir //---------------- Ein Block (= Menge von Entities) -------------------------- 31cdf0e10cSrcweir //---------------------------------------------------------------------------- 32cdf0e10cSrcweir 33cdf0e10cSrcweir class DXFBlock : public DXFEntities { 34cdf0e10cSrcweir 35cdf0e10cSrcweir public: 36cdf0e10cSrcweir 37cdf0e10cSrcweir DXFBlock * pSucc; 38cdf0e10cSrcweir // Zeiger auf naechsten Block in der Liste DXFBlocks::pFirst 39cdf0e10cSrcweir 40cdf0e10cSrcweir // Eigenschaften des Blocks, durch Gruppencodes kommentiert: 41cdf0e10cSrcweir char sName[DXF_MAX_STRING_LEN+1]; // 2 42cdf0e10cSrcweir char sAlsoName[DXF_MAX_STRING_LEN+1]; // 3 43cdf0e10cSrcweir long nFlags; // 70 44cdf0e10cSrcweir DXFVector aBasePoint; // 10,20,30 45cdf0e10cSrcweir char sXRef[DXF_MAX_STRING_LEN+1]; // 1 46cdf0e10cSrcweir 47cdf0e10cSrcweir DXFBlock(); 48cdf0e10cSrcweir ~DXFBlock(); 49cdf0e10cSrcweir 50cdf0e10cSrcweir void Read(DXFGroupReader & rDGR); 51cdf0e10cSrcweir // Liest den Block (einschliesslich der Entities) per rGDR 52cdf0e10cSrcweir // aus einer DXF-Datei bis zu einem ENDBLK, ENDSEC oder EOF. 53cdf0e10cSrcweir }; 54cdf0e10cSrcweir 55cdf0e10cSrcweir 56cdf0e10cSrcweir //---------------------------------------------------------------------------- 57cdf0e10cSrcweir //---------------- Eine Menge von Bloecken ----------------------------------- 58cdf0e10cSrcweir //---------------------------------------------------------------------------- 59cdf0e10cSrcweir 60cdf0e10cSrcweir class DXFBlocks { 61cdf0e10cSrcweir 62cdf0e10cSrcweir public: 63cdf0e10cSrcweir 64cdf0e10cSrcweir DXFBlock * pFirst; 65cdf0e10cSrcweir // Liste der Bloecke, READ ONLY! 66cdf0e10cSrcweir 67cdf0e10cSrcweir DXFBlocks(); 68cdf0e10cSrcweir ~DXFBlocks(); 69cdf0e10cSrcweir 70cdf0e10cSrcweir void Read(DXFGroupReader & rDGR); 71cdf0e10cSrcweir // Liesst alle Bloecke per rDGR bis zu einem ENDSEC oder EOF. 72cdf0e10cSrcweir 73cdf0e10cSrcweir DXFBlock * Search(const char * sName) const; 74cdf0e10cSrcweir // Sucht einen Block mit dem Namen, liefert NULL bei Misserfolg. 75cdf0e10cSrcweir 76cdf0e10cSrcweir void Clear(); 77cdf0e10cSrcweir // Loescht alle Bloecke; 78cdf0e10cSrcweir 79cdf0e10cSrcweir }; 80cdf0e10cSrcweir 81cdf0e10cSrcweir #endif 82cdf0e10cSrcweir 83cdf0e10cSrcweir 84