SpatiaLite 4.3.0a
Data Structures | Defines | Typedefs | Functions

src/headers/spatialite/gg_dxf.h File Reference

Geometry handling functions: DXF files. More...

Go to the source code of this file.

Data Structures

struct  gaia_dxf_extra_attr
 wrapper for DXF Extra Attribute object More...
struct  gaia_dxf_insert
 wrapper for DXF Insert object More...
struct  gaia_dxf_text
 wrapper for DXF Text object More...
struct  gaia_dxf_point
 wrapper for DXF Point object More...
struct  gaia_dxf_circle
 wrapper for DXF Circle object More...
struct  gaia_dxf_arc
 wrapper for DXF Arc object More...
struct  gaia_dxf_hole
 wrapper for DXF Polygon interior hole object More...
struct  gaia_dxf_polyline
 wrapper for DXF Polyline object could be a Linestring or a Polygon depending on the is_closed flag More...
struct  gaia_dxf_hatch_segm
 wrapper for DXF Pattern Segment object More...
struct  gaia_dxf_boundary_path
 wrapper for DXF Boundary Path object More...
struct  gaia_dxf_hatch
 wrapper for DXF Pattern Hatch object More...
struct  gaia_dxf_block
 wrapper for DXF Block object More...
struct  gaia_dxf_layer
 wrapper for DXF Layer object More...
struct  gaia_dxf_parser
 wrapper for DXF Parser object More...
struct  gaia_dxf_write
 wrapper for DXF Write object More...

Defines

#define GAIA_DXF_IMPORT_BY_LAYER   1
 import distinct layers
#define GAIA_DXF_IMPORT_MIXED   2
 import layers mixed altogether by type
#define GAIA_DXF_AUTO_2D_3D   3
 auto-selects 2D or 3D
#define GAIA_DXF_FORCE_2D   4
 always force 2D
#define GAIA_DXF_FORCE_3D   5
 always force 3D
#define GAIA_DXF_RING_NONE   6
 don't apply any special Ring handling
#define GAIA_DXF_RING_LINKED   7
 apply special "linked rings" handling
#define GAIA_DXF_RING_UNLINKED   8
 apply special "unlinked rings" handling
#define GAIA_DXF_V12   1000
 DXF version [Writer].

Typedefs

typedef struct gaia_dxf_extra_attr gaiaDxfExtraAttr
 wrapper for DXF Extra Attribute object
typedef gaiaDxfExtraAttrgaiaDxfExtraAttrPtr
 Typedef for DXF Extra Attribute object.
typedef struct gaia_dxf_insert gaiaDxfInsert
 wrapper for DXF Insert object
typedef gaiaDxfInsertgaiaDxfInsertPtr
 Typedef for DXF Insert object.
typedef struct gaia_dxf_text gaiaDxfText
 wrapper for DXF Text object
typedef gaiaDxfTextgaiaDxfTextPtr
 Typedef for DXF Text object.
typedef struct gaia_dxf_point gaiaDxfPoint
 wrapper for DXF Point object
typedef gaiaDxfPointgaiaDxfPointPtr
 Typedef for DXF Point object.
typedef struct gaia_dxf_circle gaiaDxfCircle
 wrapper for DXF Circle object
typedef gaiaDxfCirclegaiaDxfCirclePtr
 Typedef for DXF Circle object.
typedef struct gaia_dxf_arc gaiaDxfArc
 wrapper for DXF Arc object
typedef gaiaDxfArcgaiaDxfArcPtr
 Typedef for DXF Arc object.
typedef struct gaia_dxf_hole gaiaDxfHole
 wrapper for DXF Polygon interior hole object
typedef gaiaDxfHolegaiaDxfHolePtr
 Typedef for DXF Point object.
typedef struct gaia_dxf_polyline gaiaDxfPolyline
 wrapper for DXF Polyline object could be a Linestring or a Polygon depending on the is_closed flag
typedef gaiaDxfPolylinegaiaDxfPolylinePtr
 Typedef for DXF Polyline object.
typedef struct gaia_dxf_hatch_segm gaiaDxfHatchSegm
 wrapper for DXF Pattern Segment object
typedef gaiaDxfHatchSegmgaiaDxfHatchSegmPtr
 Typedef for DXF Hatch Segment object.
typedef struct
gaia_dxf_boundary_path 
gaiaDxfBoundaryPath
 wrapper for DXF Boundary Path object
typedef gaiaDxfBoundaryPathgaiaDxfBoundaryPathPtr
 Typedef for DXF Boundary Path object.
typedef struct gaia_dxf_hatch gaiaDxfHatch
 wrapper for DXF Pattern Hatch object
typedef gaiaDxfHatchgaiaDxfHatchPtr
 Typedef for DXF Hatch object.
typedef struct gaia_dxf_block gaiaDxfBlock
 wrapper for DXF Block object
typedef gaiaDxfBlockgaiaDxfBlockPtr
 Typedef for DXF Block object.
typedef struct gaia_dxf_layer gaiaDxfLayer
 wrapper for DXF Layer object
typedef gaiaDxfLayergaiaDxfLayerPtr
 Typedef for DXF Layer object.
typedef struct gaia_dxf_parser gaiaDxfParser
 wrapper for DXF Parser object
typedef gaiaDxfParsergaiaDxfParserPtr
 Typedef for DXF Layer object.
typedef struct gaia_dxf_write gaiaDxfWriter
 wrapper for DXF Write object
typedef gaiaDxfWritergaiaDxfWriterPtr
 Typedef for DXF Writer object.

Functions

GAIAGEO_DECLARE gaiaDxfParserPtr gaiaCreateDxfParser (int srid, int force_dims, const char *prefix, const char *selected_layer, int special_rings)
 Creates a DXF Parser object.
GAIAGEO_DECLARE void gaiaDestroyDxfParser (gaiaDxfParserPtr parser)
 Destroying a DXF Parser object.
GAIAGEO_DECLARE int gaiaParseDxfFile (gaiaDxfParserPtr parser, const char *dxf_path)
 Parsing a DXF file.
GAIAGEO_DECLARE int gaiaParseDxfFile_r (const void *p_cache, gaiaDxfParserPtr parser, const char *dxf_path)
 Parsing a DXF file.
GAIAGEO_DECLARE int gaiaLoadFromDxfParser (sqlite3 *db_handle, gaiaDxfParserPtr parser, int mode, int append)
 Populating a DB so to permanently store all Geometries from a DXF Parser.
GAIAGEO_DECLARE int gaiaDxfWriterInit (gaiaDxfWriterPtr dxf, FILE *out, int precision, int version)
 Initializing a DXF Writer Object.
GAIAGEO_DECLARE int gaiaDxfWriteHeader (gaiaDxfWriterPtr dxf, double minx, double miny, double minz, double maxx, double maxy, double maxz)
 Writing the DXF Header.
GAIAGEO_DECLARE int gaiaDxfWriteFooter (gaiaDxfWriterPtr dxf)
 Writing a DXF Entities Section Header.
GAIAGEO_DECLARE int gaiaDxfWriteTables (gaiaDxfWriterPtr dxf)
 Writing the DXF Tables Section Header.
GAIAGEO_DECLARE int gaiaDxfWriteLayer (gaiaDxfWriterPtr dxf, const char *layer_name)
 Writing a DXF Table/Layer definition.
GAIAGEO_DECLARE int gaiaDxfWriteEntities (gaiaDxfWriterPtr dxf)
 Writing a DXF Entities Section Header.
GAIAGEO_DECLARE int gaiaDxfWriteEndSection (gaiaDxfWriterPtr dxf)
 Writing a DXF Entities Section Header.
GAIAGEO_DECLARE int gaiaDxfWritePoint (gaiaDxfWriterPtr dxf, const char *layer_name, double x, double y, double z)
 Writing a DXF Point Entity.
GAIAGEO_DECLARE int gaiaDxfWriteText (gaiaDxfWriterPtr dxf, const char *layer_name, double x, double y, double z, const char *label, double text_height, double angle)
 Writing a DXF Text Entity.
GAIAGEO_DECLARE int gaiaDxfWriteLine (gaiaDxfWriterPtr dxf, const char *layer_name, gaiaLinestringPtr line)
 Writing a DXF Polyline (opened) Entity.
GAIAGEO_DECLARE int gaiaDxfWriteRing (gaiaDxfWriterPtr dxf, const char *layer_name, gaiaRingPtr ring)
 Writing a DXF Polyline (closed) Entity.
GAIAGEO_DECLARE int gaiaDxfWriteGeometry (gaiaDxfWriterPtr dxf, const char *layer_name, const char *label, double text_height, double text_rotation, gaiaGeomCollPtr geometry)
 Writing a DXF generic Entity.
GAIAGEO_DECLARE int gaiaExportDxf (gaiaDxfWriterPtr dxf, sqlite3 *db_handle, const char *sql, const char *layer_col_name, const char *geom_col_name, const char *label_col_name, const char *text_height_col_name, const char *text_rotation_col_name, gaiaGeomCollPtr geom_filter)
 Exporting a complex DXF file.

Detailed Description

Geometry handling functions: DXF files.


Typedef Documentation

Typedef for DXF Arc object.

See also:
gaiaDxfArc

Typedef for DXF Block object.

See also:
gaiaDxfBlock

Typedef for DXF Boundary Path object.

See also:
gaiaDxfBoundaryPath

Typedef for DXF Circle object.

See also:
gaiaDxfCircle

Typedef for DXF Extra Attribute object.

See also:
gaiaDxfExtraAttr

Typedef for DXF Hatch object.

See also:
gaiaDxfHatch

Typedef for DXF Hatch Segment object.

See also:
gaiaDxfHatch

Typedef for DXF Point object.

See also:
gaiaDxfHole

Typedef for DXF Insert object.

See also:
gaiaDxfText

Typedef for DXF Layer object.

See also:
gaiaDxfLayer

Typedef for DXF Layer object.

See also:
gaiaDxfParser

Typedef for DXF Point object.

See also:
gaiaDxfPoint

Typedef for DXF Polyline object.

See also:
gaiaDxfPolyline

Typedef for DXF Text object.

See also:
gaiaDxfText

Function Documentation

GAIAGEO_DECLARE gaiaDxfParserPtr gaiaCreateDxfParser ( int  srid,
int  force_dims,
const char *  prefix,
const char *  selected_layer,
int  special_rings 
)

Creates a DXF Parser object.

Parameters:
sridthe SRID value to be used for all Geometries
force_dimsshould be one of GAIA_DXF_AUTO_2D_3D, GAIA_DXF_FORCE_2D or GAIA_DXF_FORCE_3D
prefixan optional prefix to be used for DB target tables (could be NULL)
selected_layersif set, only the DXF Layer of corresponding name will be imported (could be NULL)
special_ringsrings handling: should be one of GAIA_DXF_RING_NONE, GAIA_DXF_RING_LINKED of GAIA_DXF_RING_UNLINKED
Returns:
the pointer to a DXF Parser object
See also:
gaiaDestroyDxfParser, gaiaParseDxfFile, gaiaLoadFromDxfParser
Note:
the DXF Parser object corresponds to dynamically allocated memory: so you are responsible to destroy this object before or later by invoking gaiaDestroyDxfParser().
GAIAGEO_DECLARE void gaiaDestroyDxfParser ( gaiaDxfParserPtr  parser)

Destroying a DXF Parser object.

Parameters:
parserpointer to DXF Parser object
See also:
gaiaCreateDxfParser
Note:
the pointer to the DXF Parser object to be finalized is expected to be the one returned by a previous call to gaiaCreateDxfParser.
GAIAGEO_DECLARE int gaiaDxfWriteEndSection ( gaiaDxfWriterPtr  dxf)

Writing a DXF Entities Section Header.

Parameters:
dxfpointer to a properly initialized gaiaDxfWriter object
Returns:
0 on failure, any other value on success
See also:
gaiaDxfWriteTables, gaiaDxfWriteEntities
GAIAGEO_DECLARE int gaiaDxfWriteEntities ( gaiaDxfWriterPtr  dxf)

Writing a DXF Entities Section Header.

Parameters:
dxfpointer to a properly initialized gaiaDxfWriter object
Returns:
0 on failure, any other value on success
See also:
gaiaDxfWriteHeader, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteRing, gaiaDxfWriteGeometry
GAIAGEO_DECLARE int gaiaDxfWriteFooter ( gaiaDxfWriterPtr  dxf)

Writing a DXF Entities Section Header.

Parameters:
dxfpointer to a properly initialized gaiaDxfWriter object
Returns:
0 on failure, any other value on success
See also:
gaiaDxfWriteHeader
GAIAGEO_DECLARE int gaiaDxfWriteGeometry ( gaiaDxfWriterPtr  dxf,
const char *  layer_name,
const char *  label,
double  text_height,
double  text_rotation,
gaiaGeomCollPtr  geometry 
)

Writing a DXF generic Entity.

Parameters:
dxfpointer to a properly initialized gaiaDxfWriter object
layer_namename of the corresponding layer
linepointer to the internal Ring to be exported into the DXF
labeltext string containing the label value (could be NULL)
text_heightonly for Text Labels: ingnored in any other case.
text_rotationonly for Text Labels: ingnored in any other case.
Returns:
0 on failure, any other value on success
See also:
gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteRing
GAIAGEO_DECLARE int gaiaDxfWriteHeader ( gaiaDxfWriterPtr  dxf,
double  minx,
double  miny,
double  minz,
double  maxx,
double  maxy,
double  maxz 
)

Writing the DXF Header.

Parameters:
dxfpointer to a properly initialized gaiaDxfWriter object
minxthe minimum X coordinate contained within the DXF
minxthe minimum Y coordinate contained within the DXF
minxthe minimum Z coordinate contained within the DXF
minxthe maximum X coordinate contained within the DXF
minxthe maximum Y coordinate contained within the DXF
minxthe maximum Z coordinate contained within the DXF
Returns:
0 on failure, any other value on success
See also:
gaiaDxfWriterInit, gaiaDxfWriteFooter, gaiaDxfWriteTables, gaiaDxfWriteEntities
GAIAGEO_DECLARE int gaiaDxfWriteLayer ( gaiaDxfWriterPtr  dxf,
const char *  layer_name 
)

Writing a DXF Table/Layer definition.

Parameters:
dxfpointer to a properly initialized gaiaDxfWriter object
layer_namename of the layer
Returns:
0 on failure, any other value on success
See also:
gaiaDxfWriteTables, gaiaDxfWriteEndSection
GAIAGEO_DECLARE int gaiaDxfWriteLine ( gaiaDxfWriterPtr  dxf,
const char *  layer_name,
gaiaLinestringPtr  line 
)

Writing a DXF Polyline (opened) Entity.

Parameters:
dxfpointer to a properly initialized gaiaDxfWriter object
layer_namename of the corresponding layer
linepointer to the internal Linestring to be exported into the DXF
Returns:
0 on failure, any other value on success
See also:
gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteText, gaiaDxfWriteRing, gaiaDxfWriteGeometry
GAIAGEO_DECLARE int gaiaDxfWritePoint ( gaiaDxfWriterPtr  dxf,
const char *  layer_name,
double  x,
double  y,
double  z 
)

Writing a DXF Point Entity.

Parameters:
dxfpointer to a properly initialized gaiaDxfWriter object
layer_namename of the corresponding layer
xX coordinate value
yY coordinate value
zZ coordinate value
Returns:
0 on failure, any other value on success
See also:
gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteRing, gaiaDxfWriteGeometry
GAIAGEO_DECLARE int gaiaDxfWriteRing ( gaiaDxfWriterPtr  dxf,
const char *  layer_name,
gaiaRingPtr  ring 
)

Writing a DXF Polyline (closed) Entity.

Parameters:
dxfpointer to a properly initialized gaiaDxfWriter object
layer_namename of the corresponding layer
linepointer to the internal Ring to be exported into the DXF
Returns:
0 on failure, any other value on success
See also:
gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteGeometry
GAIAGEO_DECLARE int gaiaDxfWriterInit ( gaiaDxfWriterPtr  dxf,
FILE *  out,
int  precision,
int  version 
)

Initializing a DXF Writer Object.

Parameters:
writerpointer to the gaiaDxfWriter object to be initialized
outfile handle to DXF output file
precisionnumber of decimal digits for any coordinate
versioncurrently always expected to be GAIA_DXF_V12
Returns:
0 on failure, any other value on success
See also:
gaiaDxfWriteHeader, gaiaExportDxf
GAIAGEO_DECLARE int gaiaDxfWriteTables ( gaiaDxfWriterPtr  dxf)

Writing the DXF Tables Section Header.

Parameters:
dxfpointer to a properly initialized gaiaDxfWriter object
Returns:
0 on failure, any other value on success
See also:
gaiaDxfWriteHeader, gaiaDxfWriteEndSection
GAIAGEO_DECLARE int gaiaDxfWriteText ( gaiaDxfWriterPtr  dxf,
const char *  layer_name,
double  x,
double  y,
double  z,
const char *  label,
double  text_height,
double  angle 
)

Writing a DXF Text Entity.

Parameters:
dxfpointer to a properly initialized gaiaDxfWriter object
layer_namename of the corresponding layer
xX coordinate value
yY coordinate value
zZ coordinate value
labeltext string containing the label value
text_heightheight of the text in map units
angletext rotation angle
Returns:
0 on failure, any other value on success
See also:
gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteLine, gaiaDxfWriteRing, gaiaDxfWriteGeometry
GAIAGEO_DECLARE int gaiaExportDxf ( gaiaDxfWriterPtr  dxf,
sqlite3 *  db_handle,
const char *  sql,
const char *  layer_col_name,
const char *  geom_col_name,
const char *  label_col_name,
const char *  text_height_col_name,
const char *  text_rotation_col_name,
gaiaGeomCollPtr  geom_filter 
)

Exporting a complex DXF file.

Parameters:
dxfpointer to a properly initialized gaiaDxfWriter object
db_hanldehandle to the current DB connection
sqla text string defining the SQL query to be used for extracting all geometries/entities to be exported into the output DXF
layer_col_namename of the SQL resultset column containing the Layer name
geom_col_namename of the SQL resultset column containing Geometries
label_col_namename of the SQL resultset column containing Label values (could be NULL)
text_height_col_namename of the SQL resultset column containing Text Height values (could be NULL)
text_rotation_col_namename of the SQL resultset column containing Text Rotation values (could be NULL)
geom_filteran optional arbitrary Geometry to be used as a Spatial Filter (could be NULL)
Returns:
0 on failure; the total count of exported entities on success
See also:
gaiaDxfWriterInit
GAIAGEO_DECLARE int gaiaLoadFromDxfParser ( sqlite3 *  db_handle,
gaiaDxfParserPtr  parser,
int  mode,
int  append 
)

Populating a DB so to permanently store all Geometries from a DXF Parser.

Parameters:
db_handlehandle to a valid DB connection
parserpointer to DXF Parser object
modeshould be one of GAIA_DXF_IMPORT_BY_LAYER or GAIA_DXF_IMPORT_MIXED
appendboolean flag: if set and some required DB table already exists will attempt to append further rows into the existing table. otherwise an error will be returned.
Returns:
0 on failure, any other value on success
See also:
gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaParseDxfFile
Note:
the pointer to the DXF Parser object is expected to be the one returned by a previous call to gaiaCreateDxfParser and previously used for a succesfull call to gaiaParseDxfFile
GAIAGEO_DECLARE int gaiaParseDxfFile ( gaiaDxfParserPtr  parser,
const char *  dxf_path 
)

Parsing a DXF file.

Parameters:
parserpointer to DXF Parser object
dxf_pathpathname of the DXF external file to be parsed
Returns:
0 on failure, any other value on success
See also:
gaiaParseDxfFile_r, gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaLoadFromDxfParser
Note:
the pointer to the DXF Parser object is expected to be the one returned by a previous call to gaiaCreateDxfParser. A DXF Parser object can be used only a single time to parse a DXF file.
not reentrant and thread unsafe.
GAIAGEO_DECLARE int gaiaParseDxfFile_r ( const void *  p_cache,
gaiaDxfParserPtr  parser,
const char *  dxf_path 
)

Parsing a DXF file.

Parameters:
p_cachea memory pointer returned by spatialite_alloc_connection()
parserpointer to DXF Parser object
dxf_pathpathname of the DXF external file to be parsed
Returns:
0 on failure, any other value on success
See also:
gaiaParseDxfFile, gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaLoadFromDxfParser
Note:
the pointer to the DXF Parser object is expected to be the one returned by a previous call to gaiaCreateDxfParser. A DXF Parser object can be used only a single time to parse a DXF file.
reentrant and thread-safe.
 All Data Structures Files Functions Variables Typedefs Defines