#88407# ignoring some kind of group codes

This commit is contained in:
Sven Jacobi 2001-06-19 07:55:17 +00:00
parent a638777c03
commit db1953f5b0
2 changed files with 47 additions and 9 deletions

View file

@ -2,9 +2,9 @@
*
* $RCSfile: dxfgrprd.cxx,v $
*
* $Revision: 1.1.1.1 $
* $Revision: 1.2 $
*
* last change: $Author: hr $ $Date: 2000-09-18 16:30:15 $
* last change: $Author: sj $ $Date: 2001-06-19 08:54:58 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@ -152,6 +152,7 @@ DXFGroupReader::DXFGroupReader(SvStream & rIStream,
rIS.Seek(0);
for (i=0; i<10; i++) S0_9[i][0]=0;
S100[ 0 ] = S102[ 0 ] = 0;
for (i=0; i<50; i++) F10_59[i]=0.0;
for (i=0; i<20; i++) I60_79[i]=0;
for (i=0; i< 8; i++) F140_147[i]=0.0;
@ -179,6 +180,13 @@ USHORT DXFGroupReader::Read()
if (nG< 10) ReadS(S0_9[nG]);
else if (nG< 60) F10_59[nG-10]=ReadF();
else if (nG< 80) I60_79[nG-60]=ReadI();
else if (nG==100) ReadS(S100);
else if (nG==102) ReadS(S102);
else if (nG==105)
{
char aTmp[ DXF_MAX_STRING_LEN + 1 ];
ReadS( aTmp ); // hex string
}
else if (nG< 140) goto LErr;
else if (nG< 148) F140_147[nG-140]=ReadF();
else if (nG< 170) goto LErr;
@ -186,6 +194,19 @@ USHORT DXFGroupReader::Read()
else if (nG< 180) ReadI();
else if (nG< 210) goto LErr;
else if (nG< 240) F210_239[nG-210]=ReadF();
else if (nG==330)
{
char aTmp[ DXF_MAX_STRING_LEN + 1 ];
ReadS( aTmp ); // hex string
}
else if (nG< 340)
ReadI();
else if (nG==340)
ReadI();
else if (nG==350)
ReadI();
else if (nG==360)
ReadI();
else if (nG< 999) goto LErr;
else if (nG<1010) ReadS(S999_1009[nG-999]);
else if (nG<1060) F1010_1059[nG-1010]=ReadF();
@ -248,7 +269,12 @@ double DXFGroupReader::GetF(USHORT nG)
const char * DXFGroupReader::GetS(USHORT nG)
{
if (nG<10) return S0_9[nG];
else {
else if ( nG == 100 )
return S100;
else if ( nG == 102 )
return S102;
else
{
nG-=999;
if (nG<11) return S999_1009[nG];
else return NULL;
@ -291,11 +317,21 @@ void DXFGroupReader::SetF(USHORT nG, double fF)
void DXFGroupReader::SetS(USHORT nG, const char * sS)
{
if (nG<10) strcpy(S0_9[nG],sS);
else {
nG-=999;
if (nG<11) strcpy(S999_1009[nG],sS);
char* pPtr = NULL;
if ( nG < 10 )
pPtr = S0_9[ nG ];
else if ( nG == 100 )
pPtr = S100;
else if ( nG == 102 )
pPtr = S102;
else
{
nG -= 999;
if ( nG < 11 )
pPtr = S999_1009[ nG ];
}
if ( pPtr )
strcpy( pPtr, sS );
}

View file

@ -2,9 +2,9 @@
*
* $RCSfile: dxfgrprd.hxx,v $
*
* $Revision: 1.1.1.1 $
* $Revision: 1.2 $
*
* last change: $Author: hr $ $Date: 2000-09-18 16:30:15 $
* last change: $Author: sj $ $Date: 2001-06-19 08:55:17 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@ -147,6 +147,8 @@ private:
char S0_9 [10][DXF_MAX_STRING_LEN+1]; // Strings Gruppencodes 0..9
double F10_59 [50]; // Floats Gruppencodes 10..59
long I60_79 [20]; // Integers Gruppencodes 60..79
char S100 [DXF_MAX_STRING_LEN+1];
char S102 [DXF_MAX_STRING_LEN+1];
double F140_147 [ 8]; // Floats Gruppencodes 140..147
long I170_175 [ 6]; // Integers Gruppencodes 170..175
double F210_239 [30]; // Floats Gruppencodes 210..239