mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			179 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			179 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/******************************************************************************
 | 
						|
**  libDXFrw - Library to read/write DXF files (ascii & binary)              **
 | 
						|
**                                                                           **
 | 
						|
**  Copyright (C) 2011-2015 José F. Soriano, rallazz@gmail.com               **
 | 
						|
**                                                                           **
 | 
						|
**  This library is free software, licensed under the terms of the GNU       **
 | 
						|
**  General Public License as published by the Free Software Foundation,     **
 | 
						|
**  either version 2 of the License, or (at your option) any later version.  **
 | 
						|
**  You should have received a copy of the GNU General Public License        **
 | 
						|
**  along with this program.  If not, see <http://www.gnu.org/licenses/>.    **
 | 
						|
******************************************************************************/
 | 
						|
 | 
						|
#ifndef DRW_INTERFACE_H
 | 
						|
#define DRW_INTERFACE_H
 | 
						|
 | 
						|
#include <cstring>
 | 
						|
 | 
						|
#include "drw_entities.h"
 | 
						|
#include "drw_objects.h"
 | 
						|
#include "drw_header.h"
 | 
						|
 | 
						|
/**
 | 
						|
 * Abstract class (interface) for comunicate dxfReader with the application.
 | 
						|
 * Inherit your class which takes care of the entities in the
 | 
						|
 * processed DXF file from this interface.
 | 
						|
 *
 | 
						|
 * @author Rallaz
 | 
						|
 */
 | 
						|
class DRW_Interface
 | 
						|
{
 | 
						|
  public:
 | 
						|
    DRW_Interface()
 | 
						|
    {
 | 
						|
    }
 | 
						|
    virtual ~DRW_Interface()
 | 
						|
    {
 | 
						|
    }
 | 
						|
 | 
						|
    //! Called when header is parsed.
 | 
						|
    virtual void addHeader( const DRW_Header *data ) = 0;
 | 
						|
 | 
						|
    //! Called for every line Type.
 | 
						|
    virtual void addLType( const DRW_LType &data ) = 0;
 | 
						|
    //! Called for every layer.
 | 
						|
    virtual void addLayer( const DRW_Layer &data ) = 0;
 | 
						|
    //! Called for every dim style.
 | 
						|
    virtual void addDimStyle( const DRW_Dimstyle &data ) = 0;
 | 
						|
    //! Called for every VPORT table.
 | 
						|
    virtual void addVport( const DRW_Vport &data ) = 0;
 | 
						|
    //! Called for every text style.
 | 
						|
    virtual void addTextStyle( const DRW_Textstyle &data ) = 0;
 | 
						|
    //! Called for every AppId entry.
 | 
						|
    virtual void addAppId( const DRW_AppId &data ) = 0;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Called for every block. Note: all entities added after this
 | 
						|
     * command go into this block until endBlock() is called.
 | 
						|
     *
 | 
						|
     * \see endBlock()
 | 
						|
     */
 | 
						|
    virtual void addBlock( const DRW_Block &data ) = 0;
 | 
						|
 | 
						|
    /**
 | 
						|
     * In DWG called when the following entities corresponding to a
 | 
						|
     * block different from the current. Note: all entities added after this
 | 
						|
     * command go into this block until setBlock() is called already.
 | 
						|
     *
 | 
						|
     * int handle are the value of DRW_Block::handleBlock added with addBlock()
 | 
						|
     */
 | 
						|
    virtual void setBlock( int handle ) = 0;
 | 
						|
 | 
						|
    //! Called to end the current block
 | 
						|
    virtual void endBlock() = 0;
 | 
						|
 | 
						|
    //! Called for every point
 | 
						|
    virtual void addPoint( const DRW_Point &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every line
 | 
						|
    virtual void addLine( const DRW_Line &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every ray
 | 
						|
    virtual void addRay( const DRW_Ray &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every xline
 | 
						|
    virtual void addXline( const DRW_Xline &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every arc
 | 
						|
    virtual void addArc( const DRW_Arc &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every circle
 | 
						|
    virtual void addCircle( const DRW_Circle &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every ellipse
 | 
						|
    virtual void addEllipse( const DRW_Ellipse &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every lwpolyline
 | 
						|
    virtual void addLWPolyline( const DRW_LWPolyline &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every polyline start
 | 
						|
    virtual void addPolyline( const DRW_Polyline &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every spline
 | 
						|
    virtual void addSpline( const DRW_Spline *data ) = 0;
 | 
						|
 | 
						|
    //! Called for every spline knot value
 | 
						|
    virtual void addKnot( const DRW_Entity &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every insert.
 | 
						|
    virtual void addInsert( const DRW_Insert &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every trace start
 | 
						|
    virtual void addTrace( const DRW_Trace &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every 3dface start
 | 
						|
    virtual void add3dFace( const DRW_3Dface &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every solid start
 | 
						|
    virtual void addSolid( const DRW_Solid &data ) = 0;
 | 
						|
 | 
						|
 | 
						|
    //! Called for every Multi Text entity.
 | 
						|
    virtual void addMText( const DRW_MText &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every Text entity.
 | 
						|
    virtual void addText( const DRW_Text &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every aligned dimension entity.
 | 
						|
    virtual void addDimAlign( const DRW_DimAligned *data ) = 0;
 | 
						|
 | 
						|
    //! Called for every linear or rotated dimension entity.
 | 
						|
    virtual void addDimLinear( const DRW_DimLinear *data ) = 0;
 | 
						|
 | 
						|
    //! Called for every radial dimension entity.
 | 
						|
    virtual void addDimRadial( const DRW_DimRadial *data ) = 0;
 | 
						|
 | 
						|
    //! Called for every diametric dimension entity.
 | 
						|
    virtual void addDimDiametric( const DRW_DimDiametric *data ) = 0;
 | 
						|
 | 
						|
    //! Called for every angular dimension (2 lines version) entity.
 | 
						|
    virtual void addDimAngular( const DRW_DimAngular *data ) = 0;
 | 
						|
 | 
						|
    //! Called for every angular dimension (3 points version) entity.
 | 
						|
    virtual void addDimAngular3P( const DRW_DimAngular3p *data ) = 0;
 | 
						|
 | 
						|
    //! Called for every ordinate dimension entity.
 | 
						|
    virtual void addDimOrdinate( const DRW_DimOrdinate *data ) = 0;
 | 
						|
 | 
						|
    //! Called for every leader start.
 | 
						|
    virtual void addLeader( const DRW_Leader *data ) = 0;
 | 
						|
 | 
						|
    //! Called for every hatch entity.
 | 
						|
    virtual void addHatch( const DRW_Hatch *data ) = 0;
 | 
						|
 | 
						|
    //! Called for every viewport entity.
 | 
						|
    virtual void addViewport( const DRW_Viewport &data ) = 0;
 | 
						|
 | 
						|
    //! Called for every image entity.
 | 
						|
    virtual void addImage( const DRW_Image *data ) = 0;
 | 
						|
 | 
						|
    //! Called for every image definition.
 | 
						|
    virtual void linkImage( const DRW_ImageDef *data ) = 0;
 | 
						|
 | 
						|
    //! Called for every comment in the DXF file (code 999).
 | 
						|
    virtual void addComment( const char *comment ) = 0;
 | 
						|
 | 
						|
    virtual void writeHeader( DRW_Header &data ) = 0;
 | 
						|
    virtual void writeBlocks() = 0;
 | 
						|
    virtual void writeBlockRecords() = 0;
 | 
						|
    virtual void writeEntities() = 0;
 | 
						|
    virtual void writeLTypes() = 0;
 | 
						|
    virtual void writeLayers() = 0;
 | 
						|
    virtual void writeTextstyles() = 0;
 | 
						|
    virtual void writeVports() = 0;
 | 
						|
    virtual void writeDimstyles() = 0;
 | 
						|
    virtual void writeAppId() = 0;
 | 
						|
};
 | 
						|
 | 
						|
#endif
 |