QCAD
Open Source 2D CAD
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DL_Writer Class Reference

Defines interface for writing low level DXF constructs to a file. More...

#include <dl_writer.h>

Inheritance diagram for DL_Writer:
DL_WriterA

List of all members.

Public Member Functions

void color (int col=256) const
void comment (const char *text) const
 Comment.
void coord (int gc, double x, double y, double z=0) const
void coordTriplet (int gc, const double *value) const
 DL_Writer (DL_Codes::version version)
virtual void dxfBool (int gc, bool value) const
 Can be overwritten by the implementing class to write a bool value to the file.
void dxfEOF () const
 End of the DXF file.
virtual void dxfHex (int gc, int value) const =0
 Must be overwritten by the implementing class to write an int value (hex) to the file.
virtual void dxfInt (int gc, int value) const =0
 Must be overwritten by the implementing class to write an int value to the file.
virtual void dxfReal (int gc, double value) const =0
 Must be overwritten by the implementing class to write a real value to the file.
virtual void dxfString (int gc, const char *value) const =0
 Must be overwritten by the implementing class to write a string to the file.
virtual void dxfString (int gc, const std::string &value) const =0
 Must be overwritten by the implementing class to write a string to the file.
void entity (const char *entTypeName) const
 Entity.
void entityAttributes (const DL_Attributes &attrib) const
 Attributes of an entity.
unsigned long getModelSpaceHandle ()
unsigned long getNextHandle () const
unsigned long getPaperSpace0Handle ()
unsigned long getPaperSpaceHandle ()
unsigned long handle (int gc=5) const
 Writes a unique handle and returns it.
unsigned long incHandle () const
 Increases handle, so that the handle returned remains available.
void linetype (const char *lt) const
void linetypeScale (double scale) const
void lineWeight (int lw) const
void resetHandle () const
void section (const char *name) const
 Generic section for section 'name'.
void sectionBlockEntry (unsigned long int h=0) const
 Block (must be in the section BLOCKS).
void sectionBlockEntryEnd (unsigned long int h=0) const
 End of Block (must be in the section BLOCKS).
void sectionBlocks () const
 Section BLOCKS.
void sectionClasses () const
 Section CLASSES.
void sectionEnd () const
 End of a section.
void sectionEntities () const
 Section ENTITIES.
void sectionHeader () const
 Section HEADER.
void sectionObjects () const
 Section OBJECTS.
void sectionTables () const
 Section TABLES.
void setModelSpaceHandle (unsigned long h)
 Sets the handle of the model space.
void setPaperSpace0Handle (unsigned long h)
 Sets the handle of the paper space 0.
void setPaperSpaceHandle (unsigned long h)
 Sets the handle of the paper space.
void subClass (const char *sub) const
 Subclass.
void table (const char *name, int num, int h=0) const
 Generic table for table 'name' with 'num' entries:
void tableAppid (int num) const
 Table for application id.
void tableAppidEntry (unsigned long int h=0) const
 Appid (must be in the TABLES section APPID).
void tableEnd () const
 End of a table.
void tableLayerEntry (unsigned long int h=0) const
 Layer (must be in the TABLES section LAYER).
void tableLayers (int num) const
 Table for layers.
void tableLinetypeEntry (unsigned long int h=0) const
 Line type (must be in the TABLES section LTYPE).
void tableLinetypes (int num) const
 Table for line types.
void tableStyle (int num) const
 Table for text style.
virtual ~DL_Writer ()

Protected Attributes

unsigned long m_handle
unsigned long modelSpaceHandle
unsigned long paperSpace0Handle
unsigned long paperSpaceHandle
DL_Codes::version version
 DXF version to be created.

Detailed Description

Defines interface for writing low level DXF constructs to a file.

Implementation is defined in derived classes that write to binary or ASCII files.

Implements functions that write higher level constructs in terms of the low level ones.

Todo:
Add error checking for string/entry length.

Constructor & Destructor Documentation

DL_Writer::DL_Writer ( DL_Codes::version  version)
inline
Parameters:
versionDXF version. Defaults to DL_VERSION_2002.
virtual DL_Writer::~DL_Writer ( )
inlinevirtual

Member Function Documentation

void DL_Writer::color ( int  col = 256) const
inline
void DL_Writer::comment ( const char *  text) const
inline

Comment.

        999
        text
       
void DL_Writer::coord ( int  gc,
double  x,
double  y,
double  z = 0 
) const
inline
void DL_Writer::coordTriplet ( int  gc,
const double *  value 
) const
inline
virtual void DL_Writer::dxfBool ( int  gc,
bool  value 
) const
inlinevirtual

Can be overwritten by the implementing class to write a bool value to the file.

Parameters:
gcGroup code.
valueThe bool value.
void DL_Writer::dxfEOF ( ) const
inline

End of the DXF file.

         0
        EOF
       
virtual void DL_Writer::dxfHex ( int  gc,
int  value 
) const
pure virtual

Must be overwritten by the implementing class to write an int value (hex) to the file.

Parameters:
gcGroup code.
valueThe int value.

Implemented in DL_WriterA.

virtual void DL_Writer::dxfInt ( int  gc,
int  value 
) const
pure virtual

Must be overwritten by the implementing class to write an int value to the file.

Parameters:
gcGroup code.
valueThe int value.

Implemented in DL_WriterA.

virtual void DL_Writer::dxfReal ( int  gc,
double  value 
) const
pure virtual

Must be overwritten by the implementing class to write a real value to the file.

Parameters:
gcGroup code.
valueThe real value.

Implemented in DL_WriterA.

virtual void DL_Writer::dxfString ( int  gc,
const char *  value 
) const
pure virtual

Must be overwritten by the implementing class to write a string to the file.

Parameters:
gcGroup code.
valueThe string.

Implemented in DL_WriterA.

virtual void DL_Writer::dxfString ( int  gc,
const std::string &  value 
) const
pure virtual

Must be overwritten by the implementing class to write a string to the file.

Parameters:
gcGroup code.
valueThe string.

Implemented in DL_WriterA.

void DL_Writer::entity ( const char *  entTypeName) const
inline

Entity.

         0
        entTypeName
       
Returns:
Unique handle or 0.
void DL_Writer::entityAttributes ( const DL_Attributes attrib) const
inline

Attributes of an entity.

         8
        layer
        62
        color
        39
        width
         6
        linetype
       
unsigned long DL_Writer::getModelSpaceHandle ( )
inline
unsigned long DL_Writer::getNextHandle ( ) const
inline
Returns:
Next handle that will be written.
unsigned long DL_Writer::getPaperSpace0Handle ( )
inline
unsigned long DL_Writer::getPaperSpaceHandle ( )
inline
unsigned long DL_Writer::handle ( int  gc = 5) const
inline

Writes a unique handle and returns it.

unsigned long DL_Writer::incHandle ( ) const
inline

Increases handle, so that the handle returned remains available.

void DL_Writer::linetype ( const char *  lt) const
inline
void DL_Writer::linetypeScale ( double  scale) const
inline
void DL_Writer::lineWeight ( int  lw) const
inline
void DL_Writer::resetHandle ( ) const
inline
void DL_Writer::section ( const char *  name) const
inline

Generic section for section 'name'.

         0
        SECTION
         2
        name
       
void DL_Writer::sectionBlockEntry ( unsigned long int  h = 0) const
inline

Block (must be in the section BLOCKS).

         0
        BLOCK
       
void DL_Writer::sectionBlockEntryEnd ( unsigned long int  h = 0) const
inline

End of Block (must be in the section BLOCKS).

         0
        ENDBLK
       
void DL_Writer::sectionBlocks ( ) const
inline

Section BLOCKS.

         0
        SECTION
         2
        BLOCKS
       
void DL_Writer::sectionClasses ( ) const
inline

Section CLASSES.

         0
        SECTION
         2
        CLASSES
       
void DL_Writer::sectionEnd ( ) const
inline

End of a section.

         0
        ENDSEC
       
void DL_Writer::sectionEntities ( ) const
inline

Section ENTITIES.

         0
        SECTION
         2
        ENTITIES
       
void DL_Writer::sectionHeader ( ) const
inline

Section HEADER.

         0
        SECTION
         2
        HEADER
       
void DL_Writer::sectionObjects ( ) const
inline

Section OBJECTS.

         0
        SECTION
         2
        OBJECTS
       
void DL_Writer::sectionTables ( ) const
inline

Section TABLES.

         0
        SECTION
         2
        TABLES
       
void DL_Writer::setModelSpaceHandle ( unsigned long  h)
inline

Sets the handle of the model space.

Entities refer to this handle.

void DL_Writer::setPaperSpace0Handle ( unsigned long  h)
inline

Sets the handle of the paper space 0.

Some special blocks refer to this handle.

void DL_Writer::setPaperSpaceHandle ( unsigned long  h)
inline

Sets the handle of the paper space.

Some special blocks refer to this handle.

void DL_Writer::subClass ( const char *  sub) const
inline

Subclass.

void DL_Writer::table ( const char *  name,
int  num,
int  h = 0 
) const
inline

Generic table for table 'name' with 'num' entries:

         0
        TABLE
         2
        name
        70
         num
       
void DL_Writer::tableAppid ( int  num) const
inline

Table for application id.

Parameters:
numNumber of registered applications in total.
         0
        TABLE
         2
        APPID
         70
            num
       
void DL_Writer::tableAppidEntry ( unsigned long int  h = 0) const
inline

Appid (must be in the TABLES section APPID).

         0
        APPID
       
void DL_Writer::tableEnd ( ) const
inline

End of a table.

         0
        ENDTAB
       
void DL_Writer::tableLayerEntry ( unsigned long int  h = 0) const
inline

Layer (must be in the TABLES section LAYER).

         0
        LAYER
       
void DL_Writer::tableLayers ( int  num) const
inline

Table for layers.

Parameters:
numNumber of layers in total.
         0
        TABLE
         2
        LAYER
         70
            num
       
void DL_Writer::tableLinetypeEntry ( unsigned long int  h = 0) const
inline

Line type (must be in the TABLES section LTYPE).

         0
        LTYPE
       
void DL_Writer::tableLinetypes ( int  num) const
inline

Table for line types.

Parameters:
numNumber of line types in total.
         0
        TABLE
         2
        LTYPE
         70
            num
       
void DL_Writer::tableStyle ( int  num) const
inline

Table for text style.

Parameters:
numNumber of text styles.
         0
        TABLE
         2
        STYLE
         70
            num
       

Member Data Documentation

unsigned long DL_Writer::m_handle
mutableprotected
unsigned long DL_Writer::modelSpaceHandle
mutableprotected
unsigned long DL_Writer::paperSpace0Handle
mutableprotected
unsigned long DL_Writer::paperSpaceHandle
mutableprotected
DL_Codes::version DL_Writer::version
protected

DXF version to be created.


The documentation for this class was generated from the following file: