summaryrefslogtreecommitdiff
path: root/goodies/source/filter.vcl/idxf/dxfentrd.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'goodies/source/filter.vcl/idxf/dxfentrd.cxx')
-rw-r--r--goodies/source/filter.vcl/idxf/dxfentrd.cxx874
1 files changed, 0 insertions, 874 deletions
diff --git a/goodies/source/filter.vcl/idxf/dxfentrd.cxx b/goodies/source/filter.vcl/idxf/dxfentrd.cxx
deleted file mode 100644
index f7a957bfa811..000000000000
--- a/goodies/source/filter.vcl/idxf/dxfentrd.cxx
+++ /dev/null
@@ -1,874 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: dxfentrd.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_goodies.hxx"
-
-#include <string.h>
-#include <dxfentrd.hxx>
-
-//--------------------------DXFBasicEntity--------------------------------------
-
-DXFBasicEntity::DXFBasicEntity(DXFEntityType eThisType)
-{
- eType=eThisType;
- pSucc=NULL;
- strncpy(sLayer,"0", 2 );
- strncpy(sLineType,"BYLAYER", 8 );
- fElevation=0;
- fThickness=0;
- nColor=256;
- nSpace=0;
- aExtrusion.fx=0.0;
- aExtrusion.fy=0.0;
- aExtrusion.fz=1.0;
-}
-
-void DXFBasicEntity::Read(DXFGroupReader & rDGR)
-{
- while (rDGR.Read()!=0) EvaluateGroup(rDGR);
-}
-
-void DXFBasicEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG())
- {
- case 8: strncpy( sLayer, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- case 6: strncpy( sLineType, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- case 38: fElevation=rDGR.GetF(); break;
- case 39: fThickness=rDGR.GetF(); break;
- case 62: nColor=rDGR.GetI(); break;
- case 67: nSpace=rDGR.GetI(); break;
- case 210: aExtrusion.fx=rDGR.GetF(); break;
- case 220: aExtrusion.fy=rDGR.GetF(); break;
- case 230: aExtrusion.fz=rDGR.GetF(); break;
- }
-}
-
-DXFBasicEntity::~DXFBasicEntity()
-{
-}
-
-//--------------------------DXFLineEntity---------------------------------------
-
-DXFLineEntity::DXFLineEntity() : DXFBasicEntity(DXF_LINE)
-{
-}
-
-void DXFLineEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 10: aP0.fx=rDGR.GetF(); break;
- case 20: aP0.fy=rDGR.GetF(); break;
- case 30: aP0.fz=rDGR.GetF(); break;
- case 11: aP1.fx=rDGR.GetF(); break;
- case 21: aP1.fy=rDGR.GetF(); break;
- case 31: aP1.fz=rDGR.GetF(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//--------------------------DXFPointEntity--------------------------------------
-
-DXFPointEntity::DXFPointEntity() : DXFBasicEntity(DXF_POINT)
-{
-}
-
-void DXFPointEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 10: aP0.fx=rDGR.GetF(); break;
- case 20: aP0.fy=rDGR.GetF(); break;
- case 30: aP0.fz=rDGR.GetF(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//--------------------------DXFCircleEntity-------------------------------------
-
-DXFCircleEntity::DXFCircleEntity() : DXFBasicEntity(DXF_CIRCLE)
-{
- fRadius=1.0;
-}
-
-void DXFCircleEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 10: aP0.fx=rDGR.GetF(); break;
- case 20: aP0.fy=rDGR.GetF(); break;
- case 30: aP0.fz=rDGR.GetF(); break;
- case 40: fRadius=rDGR.GetF(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//--------------------------DXFArcEntity----------------------------------------
-
-DXFArcEntity::DXFArcEntity() : DXFBasicEntity(DXF_ARC)
-{
- fRadius=1.0;
- fStart=0;
- fEnd=360.0;
-}
-
-void DXFArcEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 10: aP0.fx=rDGR.GetF(); break;
- case 20: aP0.fy=rDGR.GetF(); break;
- case 30: aP0.fz=rDGR.GetF(); break;
- case 40: fRadius=rDGR.GetF(); break;
- case 50: fStart=rDGR.GetF(); break;
- case 51: fEnd=rDGR.GetF(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//--------------------------DXFTraceEntity--------------------------------------
-
-DXFTraceEntity::DXFTraceEntity() : DXFBasicEntity(DXF_TRACE)
-{
-}
-
-void DXFTraceEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 10: aP0.fx=rDGR.GetF(); break;
- case 20: aP0.fy=rDGR.GetF(); break;
- case 30: aP0.fz=rDGR.GetF(); break;
- case 11: aP1.fx=rDGR.GetF(); break;
- case 21: aP1.fy=rDGR.GetF(); break;
- case 31: aP1.fz=rDGR.GetF(); break;
- case 12: aP2.fx=rDGR.GetF(); break;
- case 22: aP2.fy=rDGR.GetF(); break;
- case 32: aP2.fz=rDGR.GetF(); break;
- case 13: aP3.fx=rDGR.GetF(); break;
- case 23: aP3.fy=rDGR.GetF(); break;
- case 33: aP3.fz=rDGR.GetF(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//--------------------------DXFSolidEntity--------------------------------------
-
-DXFSolidEntity::DXFSolidEntity() : DXFBasicEntity(DXF_SOLID)
-{
-}
-
-void DXFSolidEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 10: aP0.fx=rDGR.GetF(); break;
- case 20: aP0.fy=rDGR.GetF(); break;
- case 30: aP0.fz=rDGR.GetF(); break;
- case 11: aP1.fx=rDGR.GetF(); break;
- case 21: aP1.fy=rDGR.GetF(); break;
- case 31: aP1.fz=rDGR.GetF(); break;
- case 12: aP2.fx=rDGR.GetF(); break;
- case 22: aP2.fy=rDGR.GetF(); break;
- case 32: aP2.fz=rDGR.GetF(); break;
- case 13: aP3.fx=rDGR.GetF(); break;
- case 23: aP3.fy=rDGR.GetF(); break;
- case 33: aP3.fz=rDGR.GetF(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//--------------------------DXFTextEntity---------------------------------------
-
-DXFTextEntity::DXFTextEntity() : DXFBasicEntity(DXF_TEXT)
-{
- fHeight=1.0;
- sText[0]=0;
- fRotAngle=0.0;
- fXScale=1.0;
- fOblAngle=0.0;
- strncpy( sStyle, "STANDARD", 9 );
- nGenFlags=0;
- nHorzJust=0;
- nVertJust=0;
-}
-
-void DXFTextEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 10: aP0.fx=rDGR.GetF(); break;
- case 20: aP0.fy=rDGR.GetF(); break;
- case 30: aP0.fz=rDGR.GetF(); break;
- case 40: fHeight=rDGR.GetF(); break;
- case 1: strncpy( sText, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- case 50: fRotAngle=rDGR.GetF(); break;
- case 41: fXScale=rDGR.GetF(); break;
- case 42: fOblAngle=rDGR.GetF(); break;
- case 7: strncpy( sStyle, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- case 71: nGenFlags=rDGR.GetI(); break;
- case 72: nHorzJust=rDGR.GetI(); break;
- case 73: nVertJust=rDGR.GetI(); break;
- case 11: aAlign.fx=rDGR.GetF(); break;
- case 21: aAlign.fy=rDGR.GetF(); break;
- case 31: aAlign.fz=rDGR.GetF(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//--------------------------DXFShapeEntity--------------------------------------
-
-DXFShapeEntity::DXFShapeEntity() : DXFBasicEntity(DXF_SHAPE)
-{
- fSize=1.0;
- sName[0]=0;
- fRotAngle=0;
- fXScale=1.0;
- fOblAngle=0;
-}
-
-void DXFShapeEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 10: aP0.fx=rDGR.GetF(); break;
- case 20: aP0.fy=rDGR.GetF(); break;
- case 30: aP0.fz=rDGR.GetF(); break;
- case 40: fSize=rDGR.GetF(); break;
- case 2: strncpy( sName, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- case 50: fRotAngle=rDGR.GetF(); break;
- case 41: fXScale=rDGR.GetF(); break;
- case 51: fOblAngle=rDGR.GetF(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//--------------------------DXFInsertEntity-------------------------------------
-
-DXFInsertEntity::DXFInsertEntity() : DXFBasicEntity(DXF_INSERT)
-{
- nAttrFlag=0;
- sName[0]=0;
- fXScale=1.0;
- fYScale=1.0;
- fZScale=1.0;
- fRotAngle=0.0;
- nColCount=1;
- nRowCount=1;
- fColSpace=0.0;
- fRowSpace=0.0;
-}
-
-void DXFInsertEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 66: nAttrFlag=rDGR.GetI(); break;
- case 2: strncpy( sName, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- case 10: aP0.fx=rDGR.GetF(); break;
- case 20: aP0.fy=rDGR.GetF(); break;
- case 30: aP0.fz=rDGR.GetF(); break;
- case 41: fXScale=rDGR.GetF(); break;
- case 42: fYScale=rDGR.GetF(); break;
- case 43: fZScale=rDGR.GetF(); break;
- case 50: fRotAngle=rDGR.GetF(); break;
- case 70: nColCount=rDGR.GetI(); break;
- case 71: nRowCount=rDGR.GetI(); break;
- case 44: fColSpace=rDGR.GetF(); break;
- case 45: fRowSpace=rDGR.GetF(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//--------------------------DXFAttDefEntity-------------------------------------
-
-DXFAttDefEntity::DXFAttDefEntity() : DXFBasicEntity(DXF_ATTDEF)
-{
- fHeight=1.0;
- sDefVal[0]=0;
- sPrompt[0]=0;
- sTagStr[0]=0;
- nAttrFlags=0;
- nFieldLen=0;
- fRotAngle=0.0;
- fXScale=1.0;
- fOblAngle=0.0;
- strncpy( sStyle, "STANDARD", 9 );
- nGenFlags=0;
- nHorzJust=0;
- nVertJust=0;
-}
-
-void DXFAttDefEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 10: aP0.fx=rDGR.GetF(); break;
- case 20: aP0.fy=rDGR.GetF(); break;
- case 30: aP0.fz=rDGR.GetF(); break;
- case 40: fHeight=rDGR.GetF(); break;
- case 1: strncpy( sDefVal, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- case 3: strncpy( sPrompt, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- case 2: strncpy( sTagStr, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- case 70: nAttrFlags=rDGR.GetI(); break;
- case 73: nFieldLen=rDGR.GetI(); break;
- case 50: fRotAngle=rDGR.GetF(); break;
- case 41: fXScale=rDGR.GetF(); break;
- case 51: fOblAngle=rDGR.GetF(); break;
- case 7: strncpy( sStyle, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- case 71: nGenFlags=rDGR.GetI(); break;
- case 72: nHorzJust=rDGR.GetI(); break;
- case 74: nVertJust=rDGR.GetI(); break;
- case 11: aAlign.fx=rDGR.GetF(); break;
- case 21: aAlign.fy=rDGR.GetF(); break;
- case 31: aAlign.fz=rDGR.GetF(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//--------------------------DXFAttribEntity-------------------------------------
-
-DXFAttribEntity::DXFAttribEntity() : DXFBasicEntity(DXF_ATTRIB)
-{
- fHeight=1.0;
- sText[0]=0;
- sTagStr[0]=0;
- nAttrFlags=0;
- nFieldLen=0;
- fRotAngle=0.0;
- fXScale=1.0;
- fOblAngle=0.0;
- strncpy( sStyle, "STANDARD", 9 );
- nGenFlags=0;
- nHorzJust=0;
- nVertJust=0;
-}
-
-void DXFAttribEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 10: aP0.fx=rDGR.GetF(); break;
- case 20: aP0.fy=rDGR.GetF(); break;
- case 30: aP0.fz=rDGR.GetF(); break;
- case 40: fHeight=rDGR.GetF(); break;
- case 1: strncpy( sText, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- case 2: strncpy( sTagStr, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- case 70: nAttrFlags=rDGR.GetI(); break;
- case 73: nFieldLen=rDGR.GetI(); break;
- case 50: fRotAngle=rDGR.GetF(); break;
- case 41: fXScale=rDGR.GetF(); break;
- case 51: fOblAngle=rDGR.GetF(); break;
- case 7: strncpy( sStyle, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- case 71: nGenFlags=rDGR.GetI(); break;
- case 72: nHorzJust=rDGR.GetI(); break;
- case 74: nVertJust=rDGR.GetI(); break;
- case 11: aAlign.fx=rDGR.GetF(); break;
- case 21: aAlign.fy=rDGR.GetF(); break;
- case 31: aAlign.fz=rDGR.GetF(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//--------------------------DXFPolyLine-----------------------------------------
-
-DXFPolyLineEntity::DXFPolyLineEntity() : DXFBasicEntity(DXF_POLYLINE)
-{
- fElevation=0.0;
- nFlags=0;
- fSWidth=0.0;
- fEWidth=0.0;
- nMeshMCount=0;
- nMeshNCount=0;
- nMDensity=0;
- nNDensity=0;
- nCSSType=0;
-}
-
-void DXFPolyLineEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 30: fElevation=rDGR.GetF(); break;
- case 70: nFlags=rDGR.GetI(); break;
- case 40: fSWidth=rDGR.GetF(); break;
- case 41: fEWidth=rDGR.GetF(); break;
- case 71: nMeshMCount=rDGR.GetI(); break;
- case 72: nMeshNCount=rDGR.GetI(); break;
- case 73: nMDensity=rDGR.GetI(); break;
- case 74: nNDensity=rDGR.GetI(); break;
- case 75: nCSSType=rDGR.GetI(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//--------------------------DXFLWPolyLine---------------------------------------
-
-DXFLWPolyLineEntity::DXFLWPolyLineEntity() :
- DXFBasicEntity( DXF_LWPOLYLINE ),
- nIndex( 0 ),
- nCount( 0 ),
- nFlags( 0 ),
- fConstantWidth( 0.0 ),
- fStartWidth( 0.0 ),
- fEndWidth( 0.0 ),
- pP( NULL )
-{
-}
-
-void DXFLWPolyLineEntity::EvaluateGroup( DXFGroupReader & rDGR )
-{
- switch ( rDGR.GetG() )
- {
- case 90 :
- {
- nCount = rDGR.GetI();
- if ( nCount )
- pP = new DXFVector[ nCount ];
- }
- break;
- case 70: nFlags = rDGR.GetI(); break;
- case 43: fConstantWidth = rDGR.GetF(); break;
- case 40: fStartWidth = rDGR.GetF(); break;
- case 41: fEndWidth = rDGR.GetF(); break;
- case 10:
- {
- if ( pP && ( nIndex < nCount ) )
- pP[ nIndex ].fx = rDGR.GetF();
- }
- break;
- case 20:
- {
- if ( pP && ( nIndex < nCount ) )
- pP[ nIndex++ ].fy = rDGR.GetF();
- }
- break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-DXFLWPolyLineEntity::~DXFLWPolyLineEntity()
-{
- delete[] pP;
-}
-
-//--------------------------DXFHatchEntity-------------------------------------
-
-DXFEdgeTypeLine::DXFEdgeTypeLine() :
- DXFEdgeType( 1 )
-{
-
-}
-DXFEdgeTypeLine::~DXFEdgeTypeLine()
-{
-
-}
-sal_Bool DXFEdgeTypeLine::EvaluateGroup( DXFGroupReader & rDGR )
-{
- sal_Bool bExecutingGroupCode = sal_True;
- switch ( rDGR.GetG() )
- {
- case 10 : aStartPoint.fx = rDGR.GetF(); break;
- case 20 : aStartPoint.fy = rDGR.GetF(); break;
- case 11 : aEndPoint.fx = rDGR.GetF(); break;
- case 21 : aEndPoint.fy = rDGR.GetF(); break;
- default : bExecutingGroupCode = sal_False; break;
- }
- return bExecutingGroupCode;
-}
-
-DXFEdgeTypeCircularArc::DXFEdgeTypeCircularArc() :
- DXFEdgeType( 2 ),
- fRadius( 0.0 ),
- fStartAngle( 0.0 ),
- fEndAngle( 0.0 ),
- nIsCounterClockwiseFlag( 0 )
-{
-}
-DXFEdgeTypeCircularArc::~DXFEdgeTypeCircularArc()
-{
-}
-sal_Bool DXFEdgeTypeCircularArc::EvaluateGroup( DXFGroupReader & rDGR )
-{
- sal_Bool bExecutingGroupCode = sal_True;
- switch ( rDGR.GetG() )
- {
- case 10 : aCenter.fx = rDGR.GetF(); break;
- case 20 : aCenter.fy = rDGR.GetF(); break;
- case 40 : fRadius = rDGR.GetF(); break;
- case 50 : fStartAngle = rDGR.GetF(); break;
- case 51 : fEndAngle = rDGR.GetF(); break;
- case 73 : nIsCounterClockwiseFlag = rDGR.GetI(); break;
- default : bExecutingGroupCode = sal_False; break;
- }
- return bExecutingGroupCode;
-}
-
-DXFEdgeTypeEllipticalArc::DXFEdgeTypeEllipticalArc() :
- DXFEdgeType( 3 ),
- fLength( 0.0 ),
- fStartAngle( 0.0 ),
- fEndAngle( 0.0 ),
- nIsCounterClockwiseFlag( 0 )
-{
-}
-DXFEdgeTypeEllipticalArc::~DXFEdgeTypeEllipticalArc()
-{
-
-}
-sal_Bool DXFEdgeTypeEllipticalArc::EvaluateGroup( DXFGroupReader & rDGR )
-{
- sal_Bool bExecutingGroupCode = sal_True;
- switch( rDGR.GetG() )
- {
- case 10 : aCenter.fx = rDGR.GetF(); break;
- case 20 : aCenter.fy = rDGR.GetF(); break;
- case 11 : aEndPoint.fx = rDGR.GetF(); break;
- case 21 : aEndPoint.fy = rDGR.GetF(); break;
- case 40 : fLength = rDGR.GetF(); break;
- case 50 : fStartAngle = rDGR.GetF(); break;
- case 51 : fEndAngle = rDGR.GetF(); break;
- case 73 : nIsCounterClockwiseFlag = rDGR.GetI(); break;
- default : bExecutingGroupCode = sal_False; break;
- }
- return bExecutingGroupCode;
-}
-
-DXFEdgeTypeSpline::DXFEdgeTypeSpline() :
- DXFEdgeType( 4 ),
- nDegree( 0 ),
- nRational( 0 ),
- nPeriodic( 0 ),
- nKnotCount( 0 ),
- nControlCount( 0 )
-{
-}
-DXFEdgeTypeSpline::~DXFEdgeTypeSpline()
-{
-
-}
-sal_Bool DXFEdgeTypeSpline::EvaluateGroup( DXFGroupReader & rDGR )
-{
- sal_Bool bExecutingGroupCode = sal_True;
- switch ( rDGR.GetG() )
- {
- case 94 : nDegree = rDGR.GetI(); break;
- case 73 : nRational = rDGR.GetI(); break;
- case 74 : nPeriodic = rDGR.GetI(); break;
- case 95 : nKnotCount = rDGR.GetI(); break;
- case 96 : nControlCount = rDGR.GetI(); break;
- default : bExecutingGroupCode = sal_False; break;
- }
- return bExecutingGroupCode;
-}
-
-DXFBoundaryPathData::DXFBoundaryPathData() :
- nFlags( 0 ),
- nHasBulgeFlag( 0 ),
- nIsClosedFlag( 0 ),
- nPointCount( 0 ),
- fBulge( 0.0 ),
- nSourceBoundaryObjects( 0 ),
- nEdgeCount( 0 ),
- bIsPolyLine( sal_True ),
- nPointIndex( 0 ),
- pP( NULL )
-{
-}
-
-DXFBoundaryPathData::~DXFBoundaryPathData()
-{
- sal_uInt32 i = 0;
- for ( i = 0; i < aEdges.size(); i++ )
- delete aEdges[ i ];
- delete[] pP;
-}
-
-sal_Bool DXFBoundaryPathData::EvaluateGroup( DXFGroupReader & rDGR )
-{
- sal_Bool bExecutingGroupCode = sal_True;
- if ( bIsPolyLine )
- {
- switch( rDGR.GetG() )
- {
- case 92 :
- {
- nFlags = rDGR.GetI();
- if ( ( nFlags & 2 ) == 0 )
- bIsPolyLine = sal_False;
- }
- break;
- case 93 :
- {
- nPointCount = rDGR.GetI();
- if ( nPointCount )
- pP = new DXFVector[ nPointCount ];
- }
- break;
- case 72 : nHasBulgeFlag = rDGR.GetI(); break;
- case 73 : nIsClosedFlag = rDGR.GetI(); break;
- case 97 : nSourceBoundaryObjects = rDGR.GetI(); break;
- case 42 : fBulge = rDGR.GetF(); break;
- case 10:
- {
- if ( pP && ( nPointIndex < nPointCount ) )
- pP[ nPointIndex ].fx = rDGR.GetF();
- }
- break;
- case 20:
- {
- if ( pP && ( nPointIndex < nPointCount ) )
- pP[ nPointIndex++ ].fy = rDGR.GetF();
- }
- break;
-
- default : bExecutingGroupCode = sal_False; break;
- }
- }
- else
- {
- if ( rDGR.GetG() == 93 )
- nEdgeCount = rDGR.GetI();
- else if ( rDGR.GetG() == 72 )
- {
- sal_Int32 nEdgeType = rDGR.GetI();
- switch( nEdgeType )
- {
- case 1 : aEdges.push_back( new DXFEdgeTypeLine() ); break;
- case 2 : aEdges.push_back( new DXFEdgeTypeCircularArc() ); break;
- case 3 : aEdges.push_back( new DXFEdgeTypeEllipticalArc() ); break;
- case 4 : aEdges.push_back( new DXFEdgeTypeSpline() ); break;
- }
- }
- else if ( aEdges.size() )
- aEdges[ aEdges.size() - 1 ]->EvaluateGroup( rDGR );
- else
- bExecutingGroupCode = sal_False;
- }
- return bExecutingGroupCode;
-}
-
-DXFHatchEntity::DXFHatchEntity() :
- DXFBasicEntity( DXF_HATCH ),
- bIsInBoundaryPathContext( sal_False ),
- nCurrentBoundaryPathIndex( -1 ),
- nFlags( 0 ),
- nAssociativityFlag( 0 ),
- nBoundaryPathCount( 0 ),
- nHatchStyle( 0 ),
- nHatchPatternType( 0 ),
- fHatchPatternAngle( 0.0 ),
- fHatchPatternScale( 1.0 ),
- nHatchDoubleFlag( 0 ),
- nHatchPatternDefinitionLines( 0 ),
- fPixelSize( 1.0 ),
- nNumberOfSeedPoints( 0 ),
- pBoundaryPathData( NULL )
-{
-}
-
-void DXFHatchEntity::EvaluateGroup( DXFGroupReader & rDGR )
-{
- switch ( rDGR.GetG() )
- {
-// case 10 : aElevationPoint.fx = rDGR.GetF(); break;
-// case 20 : aElevationPoint.fy = rDGR.GetF(); break;
-// case 30 : aElevationPoint.fz = rDGR.GetF(); break;
- case 70 : nFlags = rDGR.GetI(); break;
- case 71 : nAssociativityFlag = rDGR.GetI(); break;
- case 91 :
- {
- bIsInBoundaryPathContext = sal_True;
- nBoundaryPathCount = rDGR.GetI();
- if ( nBoundaryPathCount )
- pBoundaryPathData = new DXFBoundaryPathData[ nBoundaryPathCount ];
- }
- break;
- case 75 :
- {
- nHatchStyle = rDGR.GetI();
- bIsInBoundaryPathContext = sal_False;
- }
- break;
- case 76 : nHatchPatternType = rDGR.GetI(); break;
- case 52 : fHatchPatternAngle = rDGR.GetF(); break;
- case 41 : fHatchPatternScale = rDGR.GetF(); break;
- case 77 : nHatchDoubleFlag = rDGR.GetI(); break;
- case 78 : nHatchPatternDefinitionLines = rDGR.GetI(); break;
- case 47 : fPixelSize = rDGR.GetF(); break;
- case 98 : nNumberOfSeedPoints = rDGR.GetI(); break;
-
- //!! passthrough !!
- case 92 : nCurrentBoundaryPathIndex++;
- default:
- {
- sal_Bool bExecutingGroupCode = sal_False;
- if ( bIsInBoundaryPathContext )
- {
- if ( ( nCurrentBoundaryPathIndex >= 0 ) &&
- ( nCurrentBoundaryPathIndex < nBoundaryPathCount ) )
- bExecutingGroupCode = pBoundaryPathData[ nCurrentBoundaryPathIndex ].EvaluateGroup( rDGR );
- }
- if ( bExecutingGroupCode == sal_False )
- DXFBasicEntity::EvaluateGroup(rDGR);
- }
- break;
- }
-}
-
-DXFHatchEntity::~DXFHatchEntity()
-{
- delete[] pBoundaryPathData;
-}
-
-//--------------------------DXFVertexEntity-------------------------------------
-
-DXFVertexEntity::DXFVertexEntity() : DXFBasicEntity(DXF_VERTEX)
-{
- fSWidth=-1.0;
- fEWidth=-1.0;
- fBulge=0.0;
- nFlags=0;
- fCFTDir=0.0;
-
-}
-
-void DXFVertexEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 10: aP0.fx=rDGR.GetF(); break;
- case 20: aP0.fy=rDGR.GetF(); break;
- case 30: aP0.fz=rDGR.GetF(); break;
- case 40: fSWidth=rDGR.GetF(); break;
- case 41: fEWidth=rDGR.GetF(); break;
- case 42: fBulge=rDGR.GetF(); break;
- case 70: nFlags=rDGR.GetI(); break;
- case 50: fCFTDir=rDGR.GetF(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//--------------------------DXFSeqEndEntity-------------------------------------
-
-DXFSeqEndEntity::DXFSeqEndEntity() : DXFBasicEntity(DXF_SEQEND)
-{
-}
-
-//--------------------------DXF3DFace-------------------------------------------
-
-DXF3DFaceEntity::DXF3DFaceEntity() : DXFBasicEntity(DXF_3DFACE)
-{
- nIEFlags=0;
-}
-
-void DXF3DFaceEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 10: aP0.fx=rDGR.GetF(); break;
- case 20: aP0.fy=rDGR.GetF(); break;
- case 30: aP0.fz=rDGR.GetF(); break;
- case 11: aP1.fx=rDGR.GetF(); break;
- case 21: aP1.fy=rDGR.GetF(); break;
- case 31: aP1.fz=rDGR.GetF(); break;
- case 12: aP2.fx=rDGR.GetF(); break;
- case 22: aP2.fy=rDGR.GetF(); break;
- case 32: aP2.fz=rDGR.GetF(); break;
- case 13: aP3.fx=rDGR.GetF(); break;
- case 23: aP3.fy=rDGR.GetF(); break;
- case 33: aP3.fz=rDGR.GetF(); break;
- case 70: nIEFlags=rDGR.GetI(); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-
-//--------------------------DXFDimensionEntity----------------------------------
-
-DXFDimensionEntity::DXFDimensionEntity() : DXFBasicEntity(DXF_DIMENSION)
-{
- sPseudoBlock[0]=0;
-}
-
-void DXFDimensionEntity::EvaluateGroup(DXFGroupReader & rDGR)
-{
- switch (rDGR.GetG()) {
- case 2: strncpy( sPseudoBlock, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
- default: DXFBasicEntity::EvaluateGroup(rDGR);
- }
-}
-
-//---------------------------- DXFEntites --------------------------------------
-
-void DXFEntities::Read(DXFGroupReader & rDGR)
-{
- DXFBasicEntity * pE, * * ppSucc;
-
- ppSucc=&pFirst;
- while (*ppSucc!=NULL) ppSucc=&((*ppSucc)->pSucc);
-
- while (rDGR.GetG()!=0) rDGR.Read();
-
- while (strcmp(rDGR.GetS(),"ENDBLK")!=0 &&
- strcmp(rDGR.GetS(),"ENDSEC")!=0 &&
- strcmp(rDGR.GetS(),"EOF")!=0 )
- {
-
- if (strcmp(rDGR.GetS(),"LINE" )==0) pE=new DXFLineEntity;
- else if (strcmp(rDGR.GetS(),"POINT" )==0) pE=new DXFPointEntity;
- else if (strcmp(rDGR.GetS(),"CIRCLE" )==0) pE=new DXFCircleEntity;
- else if (strcmp(rDGR.GetS(),"ARC" )==0) pE=new DXFArcEntity;
- else if (strcmp(rDGR.GetS(),"TRACE" )==0) pE=new DXFTraceEntity;
- else if (strcmp(rDGR.GetS(),"SOLID" )==0) pE=new DXFSolidEntity;
- else if (strcmp(rDGR.GetS(),"TEXT" )==0) pE=new DXFTextEntity;
- else if (strcmp(rDGR.GetS(),"SHAPE" )==0) pE=new DXFShapeEntity;
- else if (strcmp(rDGR.GetS(),"INSERT" )==0) pE=new DXFInsertEntity;
- else if (strcmp(rDGR.GetS(),"ATTDEF" )==0) pE=new DXFAttDefEntity;
- else if (strcmp(rDGR.GetS(),"ATTRIB" )==0) pE=new DXFAttribEntity;
- else if (strcmp(rDGR.GetS(),"POLYLINE" )==0) pE=new DXFPolyLineEntity;
- else if (strcmp(rDGR.GetS(),"LWPOLYLINE")==0) pE=new DXFLWPolyLineEntity;
- else if (strcmp(rDGR.GetS(),"VERTEX" )==0) pE=new DXFVertexEntity;
- else if (strcmp(rDGR.GetS(),"SEQEND" )==0) pE=new DXFSeqEndEntity;
- else if (strcmp(rDGR.GetS(),"3DFACE" )==0) pE=new DXF3DFaceEntity;
- else if (strcmp(rDGR.GetS(),"DIMENSION" )==0) pE=new DXFDimensionEntity;
- else if (strcmp(rDGR.GetS(),"HATCH" )==0) pE=new DXFHatchEntity;
- else
- {
- do {
- rDGR.Read();
- } while (rDGR.GetG()!=0);
- continue;
- }
- *ppSucc=pE;
- ppSucc=&(pE->pSucc);
- pE->Read(rDGR);
- }
-}
-
-void DXFEntities::Clear()
-{
- DXFBasicEntity * ptmp;
-
- while (pFirst!=NULL) {
- ptmp=pFirst;
- pFirst=ptmp->pSucc;
- delete ptmp;
- }
-}
-