SpatiaLite  5.1.0
gg_dxf.h
Go to the documentation of this file.
1 /*
2  gg_dxf.h -- Gaia common support for DXF files
3 
4  version 5.1.0, 2023 August 4
5 
6  Author: Sandro Furieri a.furieri@lqt.it
7 
8  ------------------------------------------------------------------------------
9 
10  Version: MPL 1.1/GPL 2.0/LGPL 2.1
11 
12  The contents of this file are subject to the Mozilla Public License Version
13  1.1 (the "License"); you may not use this file except in compliance with
14  the License. You may obtain a copy of the License at
15  http://www.mozilla.org/MPL/
16 
17 Software distributed under the License is distributed on an "AS IS" basis,
18 WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
19 for the specific language governing rights and limitations under the
20 License.
21 
22 The Original Code is the SpatiaLite library
23 
24 The Initial Developer of the Original Code is Alessandro Furieri
25 
26 Portions created by the Initial Developer are Copyright (C) 2008-2023
27 the Initial Developer. All Rights Reserved.
28 
29 Contributor(s):
30 
31 Alternatively, the contents of this file may be used under the terms of
32 either the GNU General Public License Version 2 or later (the "GPL"), or
33 the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
34 in which case the provisions of the GPL or the LGPL are applicable instead
35 of those above. If you wish to allow use of your version of this file only
36 under the terms of either the GPL or the LGPL, and not to allow others to
37 use your version of this file under the terms of the MPL, indicate your
38 decision by deleting the provisions above and replace them with the notice
39 and other provisions required by the GPL or the LGPL. If you do not delete
40 the provisions above, a recipient may use your version of this file under
41 the terms of any one of the MPL, the GPL or the LGPL.
42 
43 */
44 
45 
52 #ifndef _GG_DXF_H
53 #ifndef DOXYGEN_SHOULD_SKIP_THIS
54 #define _GG_DXF_H
55 #endif
56 
57 #ifdef __cplusplus
58 extern "C"
59 {
60 #endif
61 
62 /* constant values for DXF */
63 
65 #define GAIA_DXF_IMPORT_BY_LAYER 1
67 #define GAIA_DXF_IMPORT_MIXED 2
69 #define GAIA_DXF_AUTO_2D_3D 3
71 #define GAIA_DXF_FORCE_2D 4
73 #define GAIA_DXF_FORCE_3D 5
75 #define GAIA_DXF_RING_NONE 6
77 #define GAIA_DXF_RING_LINKED 7
79 #define GAIA_DXF_RING_UNLINKED 8
80 
81 
83 #define GAIA_DXF_V12 1000
84 
85 /* data structs */
86 
87 
91  typedef struct gaia_dxf_extra_attr
92  {
94  char *key;
96  char *value;
106 
110  typedef struct gaia_dxf_insert
111  {
113  char *block_id;
115  double x;
117  double y;
119  double z;
121  double scale_x;
123  double scale_y;
125  double scale_z;
127  double angle;
129  int hasText;
131  int hasPoint;
133  int hasLine;
135  int hasPolyg;
137  int hasHatch;
139  int is3Dtext;
143  int is3Dline;
159 
163  typedef struct gaia_dxf_text
164  {
166  char *label;
168  double x;
170  double y;
172  double z;
174  double angle;
188 
192  typedef struct gaia_dxf_point
193  {
195  double x;
197  double y;
199  double z;
213 
217  typedef struct gaia_dxf_circle
218  {
220  double cx;
222  double cy;
224  double cz;
226  double radius;
234 
238  typedef struct gaia_dxf_arc
239  {
241  double cx;
243  double cy;
245  double cz;
247  double radius;
249  double start;
251  double stop;
259 
263  typedef struct gaia_dxf_hole
264  {
266  int points;
268  double *x;
270  double *y;
272  double *z;
282 
287  typedef struct gaia_dxf_polyline
288  {
292  int points;
294  double *x;
296  double *y;
298  double *z;
319  typedef struct gaia_dxf_hatch_segm
320  {
322  double x0;
324  double y0;
326  double x1;
328  double y1;
338 
342  typedef struct gaia_dxf_boundary_path
343  {
357 
361  typedef struct gaia_dxf_hatch
362  {
364  double spacing;
366  double angle;
368  double base_x;
370  double base_y;
372  double offset_x;
374  double offset_y;
394 
398  typedef struct gaia_dxf_block
399  {
403  char *layer_name;
405  char *block_id;
427  int is3Dtext;
431  int is3Dline;
443 
447  typedef struct gaia_dxf_layer
448  {
450  char *layer_name;
492  int is3Dtext;
496  int is3Dline;
532 
536  typedef struct gaia_dxf_parser
537  {
539  char *filename;
551  int srid;
553  const char *selected_layer;
555  const char *prefix;
561  int line_no;
565  int op_code;
567  int section;
569  int tables;
571  int blocks;
573  int entities;
575  int is_layer;
577  int is_block;
579  int is_text;
581  int is_point;
587  int is_line;
591  int is_arc;
595  int is_hatch;
601  int eof;
603  int error;
627  char *extra_key;
629  char *extra_value;
645 
649  typedef struct gaia_dxf_write
650  {
652  FILE *out;
656  int version;
658  int count;
660  int error;
666 
667 
668 /* function prototypes */
669 
670 
692  GAIAGEO_DECLARE gaiaDxfParserPtr gaiaCreateDxfParser (int srid,
693  int force_dims,
694  const char *prefix,
695  const char
696  *selected_layer,
697  int special_rings);
698 
709  GAIAGEO_DECLARE void gaiaDestroyDxfParser (gaiaDxfParserPtr parser);
710 
727  GAIAGEO_DECLARE int gaiaParseDxfFile (gaiaDxfParserPtr parser,
728  const char *dxf_path);
729 
747  GAIAGEO_DECLARE int gaiaParseDxfFile_r (const void *p_cache,
748  gaiaDxfParserPtr parser,
749  const char *dxf_path);
750 
769  GAIAGEO_DECLARE int gaiaLoadFromDxfParser (sqlite3 * db_handle,
770  gaiaDxfParserPtr parser,
771  int mode, int append);
772 
785  GAIAGEO_DECLARE int gaiaDxfWriterInit (gaiaDxfWriterPtr dxf,
786  FILE * out, int precision,
787  int version);
788 
804  GAIAGEO_DECLARE int
805  gaiaDxfWriteHeader (gaiaDxfWriterPtr dxf, double minx, double miny,
806  double minz, double maxx, double maxy, double maxz);
807 
817  GAIAGEO_DECLARE int gaiaDxfWriteFooter (gaiaDxfWriterPtr dxf);
818 
828  GAIAGEO_DECLARE int gaiaDxfWriteTables (gaiaDxfWriterPtr dxf);
829 
840  GAIAGEO_DECLARE int gaiaDxfWriteLayer (gaiaDxfWriterPtr dxf,
841  const char *layer_name);
842 
853  GAIAGEO_DECLARE int gaiaDxfWriteEntities (gaiaDxfWriterPtr dxf);
854 
864  GAIAGEO_DECLARE int gaiaDxfWriteEndSection (gaiaDxfWriterPtr dxf);
865 
880  GAIAGEO_DECLARE int gaiaDxfWritePoint (gaiaDxfWriterPtr dxf,
881  const char *layer_name, double x,
882  double y, double z);
883 
901  GAIAGEO_DECLARE int gaiaDxfWriteText (gaiaDxfWriterPtr dxf,
902  const char *layer_name, double x,
903  double y, double z,
904  const char *label,
905  double text_height, double angle);
906 
919  GAIAGEO_DECLARE int
920  gaiaDxfWriteLine (gaiaDxfWriterPtr dxf, const char *layer_name,
921  gaiaLinestringPtr line);
922 
935  GAIAGEO_DECLARE int
936  gaiaDxfWriteRing (gaiaDxfWriterPtr dxf, const char *layer_name,
937  gaiaRingPtr ring);
938 
954  GAIAGEO_DECLARE int
955  gaiaDxfWriteGeometry (gaiaDxfWriterPtr dxf, const char *layer_name,
956  const char *label, double text_height,
957  double text_rotation, gaiaGeomCollPtr geometry);
958 
981  GAIAGEO_DECLARE int
982  gaiaExportDxf (gaiaDxfWriterPtr dxf, sqlite3 * db_handle,
983  const char *sql, const char *layer_col_name,
984  const char *geom_col_name, const char *label_col_name,
985  const char *text_height_col_name,
986  const char *text_rotation_col_name,
987  gaiaGeomCollPtr geom_filter);
988 
989 #ifdef __cplusplus
990 }
991 #endif
992 
993 #endif /* _GG_DXF_H */
gaiaDxfCircle * gaiaDxfCirclePtr
Typedef for DXF Circle object.
Definition: gg_dxf.h:233
GAIAGEO_DECLARE int gaiaDxfWriteFooter(gaiaDxfWriterPtr dxf)
Writing a DXF Entities Section Header.
struct gaia_dxf_block gaiaDxfBlock
wrapper for DXF Block object
GAIAGEO_DECLARE int gaiaDxfWriteRing(gaiaDxfWriterPtr dxf, const char *layer_name, gaiaRingPtr ring)
Writing a DXF Polyline (closed) Entity.
gaiaDxfHatch * gaiaDxfHatchPtr
Typedef for DXF Hatch object.
Definition: gg_dxf.h:393
GAIAGEO_DECLARE int gaiaDxfWriteTables(gaiaDxfWriterPtr dxf)
Writing the DXF Tables Section Header.
gaiaDxfHatchSegm * gaiaDxfHatchSegmPtr
Typedef for DXF Hatch Segment object.
Definition: gg_dxf.h:337
gaiaDxfPolyline * gaiaDxfPolylinePtr
Typedef for DXF Polyline object.
Definition: gg_dxf.h:315
struct gaia_dxf_insert gaiaDxfInsert
wrapper for DXF Insert object
gaiaDxfBlock * gaiaDxfBlockPtr
Typedef for DXF Block object.
Definition: gg_dxf.h:442
struct gaia_dxf_boundary_path gaiaDxfBoundaryPath
wrapper for DXF Boundary Path object
struct gaia_dxf_hole gaiaDxfHole
wrapper for DXF Polygon interior hole object
gaiaDxfArc * gaiaDxfArcPtr
Typedef for DXF Arc object.
Definition: gg_dxf.h:258
GAIAGEO_DECLARE int gaiaDxfWriteLine(gaiaDxfWriterPtr dxf, const char *layer_name, gaiaLinestringPtr line)
Writing a DXF Polyline (opened) Entity.
gaiaDxfParser * gaiaDxfParserPtr
Typedef for DXF Layer object.
Definition: gg_dxf.h:644
GAIAGEO_DECLARE int gaiaDxfWriterInit(gaiaDxfWriterPtr dxf, FILE *out, int precision, int version)
Initializing a DXF Writer Object.
struct gaia_dxf_arc gaiaDxfArc
wrapper for DXF Arc object
gaiaDxfLayer * gaiaDxfLayerPtr
Typedef for DXF Layer object.
Definition: gg_dxf.h:531
GAIAGEO_DECLARE int gaiaDxfWriteHeader(gaiaDxfWriterPtr dxf, double minx, double miny, double minz, double maxx, double maxy, double maxz)
Writing the DXF Header.
struct gaia_dxf_point gaiaDxfPoint
wrapper for DXF Point object
GAIAGEO_DECLARE int gaiaDxfWriteEntities(gaiaDxfWriterPtr dxf)
Writing a DXF Entities Section Header.
struct gaia_dxf_polyline gaiaDxfPolyline
wrapper for DXF Polyline object could be a Linestring or a Polygon depending on the is_closed flag
gaiaDxfPoint * gaiaDxfPointPtr
Typedef for DXF Point object.
Definition: gg_dxf.h:212
struct gaia_dxf_extra_attr gaiaDxfExtraAttr
wrapper for DXF Extra Attribute object
struct gaia_dxf_hatch gaiaDxfHatch
wrapper for DXF Pattern Hatch object
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.
gaiaDxfInsert * gaiaDxfInsertPtr
Typedef for DXF Insert object.
Definition: gg_dxf.h:158
GAIAGEO_DECLARE int gaiaDxfWritePoint(gaiaDxfWriterPtr dxf, const char *layer_name, double x, double y, double z)
Writing a DXF Point 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.
struct gaia_dxf_hatch_segm gaiaDxfHatchSegm
wrapper for DXF Pattern Segment object
GAIAGEO_DECLARE int gaiaParseDxfFile(gaiaDxfParserPtr parser, const char *dxf_path)
Parsing a DXF file.
gaiaDxfBoundaryPath * gaiaDxfBoundaryPathPtr
Typedef for DXF Boundary Path object.
Definition: gg_dxf.h:356
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 int gaiaParseDxfFile_r(const void *p_cache, gaiaDxfParserPtr parser, const char *dxf_path)
Parsing a DXF file.
GAIAGEO_DECLARE void gaiaDestroyDxfParser(gaiaDxfParserPtr parser)
Destroying a DXF Parser object.
gaiaDxfExtraAttr * gaiaDxfExtraAttrPtr
Typedef for DXF Extra Attribute object.
Definition: gg_dxf.h:105
struct gaia_dxf_parser gaiaDxfParser
wrapper for DXF Parser object
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.
struct gaia_dxf_text gaiaDxfText
wrapper for DXF Text object
struct gaia_dxf_write gaiaDxfWriter
wrapper for DXF Write object
struct gaia_dxf_circle gaiaDxfCircle
wrapper for DXF Circle object
struct gaia_dxf_layer gaiaDxfLayer
wrapper for DXF Layer object
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 gaiaDxfWriteEndSection(gaiaDxfWriterPtr dxf)
Writing a DXF Entities Section Header.
GAIAGEO_DECLARE int gaiaDxfWriteLayer(gaiaDxfWriterPtr dxf, const char *layer_name)
Writing a DXF Table/Layer definition.
gaiaDxfHole * gaiaDxfHolePtr
Typedef for DXF Point object.
Definition: gg_dxf.h:281
gaiaDxfText * gaiaDxfTextPtr
Typedef for DXF Text object.
Definition: gg_dxf.h:187
gaiaDxfWriter * gaiaDxfWriterPtr
Typedef for DXF Writer object.
Definition: gg_dxf.h:665
Container for OGC GEOMETRYCOLLECTION Geometry.
Definition: gg_structs.h:227
Container for OGC LINESTRING Geometry.
Definition: gg_structs.h:129
Container for OGC RING Geometry.
Definition: gg_structs.h:159
wrapper for DXF Arc object
Definition: gg_dxf.h:239
double start
start angle
Definition: gg_dxf.h:249
double cz
Center Z coordinate.
Definition: gg_dxf.h:245
double cy
Center Y coordinate.
Definition: gg_dxf.h:243
double cx
Center X coordinate.
Definition: gg_dxf.h:241
double stop
stop angle
Definition: gg_dxf.h:251
double radius
radius
Definition: gg_dxf.h:247
wrapper for DXF Block object
Definition: gg_dxf.h:399
int is3Dpoint
boolean flag: contains 3d Point objects
Definition: gg_dxf.h:429
int hasInsert
Boolean flag: this block is referenced by some Insert.
Definition: gg_dxf.h:401
gaiaDxfPolylinePtr first_polyg
pointer to first DXF Polyline (Polygon) object [linked list]
Definition: gg_dxf.h:419
gaiaDxfPolylinePtr first_line
pointer to first DXF Polyline (Linestring) object [linked list]
Definition: gg_dxf.h:415
char * block_id
pointer to Block ID string
Definition: gg_dxf.h:405
gaiaDxfHatchPtr last_hatch
pointer to last DXF Hatch object [linked list]
Definition: gg_dxf.h:425
gaiaDxfPointPtr first_point
pointer to first DXF Point object [linked list]
Definition: gg_dxf.h:411
gaiaDxfPolylinePtr last_polyg
pointer to last DXF Polyline (Polygon) object [linked list]
Definition: gg_dxf.h:421
struct gaia_dxf_block * next
pointer to next item [linked list]
Definition: gg_dxf.h:435
gaiaDxfTextPtr first_text
pointer to first DXF Text object [linked list]
Definition: gg_dxf.h:407
gaiaDxfTextPtr last_text
pointer to last DXF Text object [linked list]
Definition: gg_dxf.h:409
char * layer_name
pointer to Layer Name string
Definition: gg_dxf.h:403
gaiaDxfPointPtr last_point
pointer to last DXF Point object [linked list]
Definition: gg_dxf.h:413
gaiaDxfPolylinePtr last_line
pointer to last DXF Polyline (Linestring) object [linked list]
Definition: gg_dxf.h:417
int is3Dtext
boolean flag: contains 3d Text objects
Definition: gg_dxf.h:427
gaiaDxfHatchPtr first_hatch
pointer to first DXF Hatch object [linked list]
Definition: gg_dxf.h:423
int is3Dpolyg
boolean flag: contains 3d Polyline (Polygon) objects
Definition: gg_dxf.h:433
int is3Dline
boolean flag: contains 3d Polyline (Linestring) objects
Definition: gg_dxf.h:431
wrapper for DXF Boundary Path object
Definition: gg_dxf.h:343
struct gaia_dxf_boundary_path * next
pointer to next item [linked list]
Definition: gg_dxf.h:349
gaiaDxfHatchSegmPtr last
pointer to last segment
Definition: gg_dxf.h:347
gaiaDxfHatchSegmPtr first
pointer to first segment
Definition: gg_dxf.h:345
wrapper for DXF Circle object
Definition: gg_dxf.h:218
double cz
Center Z coordinate.
Definition: gg_dxf.h:224
double cy
Center Y coordinate.
Definition: gg_dxf.h:222
double radius
radius
Definition: gg_dxf.h:226
double cx
Center X coordinate.
Definition: gg_dxf.h:220
wrapper for DXF Extra Attribute object
Definition: gg_dxf.h:92
char * value
pointer to Extra Attribute Value string
Definition: gg_dxf.h:96
char * key
pointer to Extra Attribute Key value
Definition: gg_dxf.h:94
struct gaia_dxf_extra_attr * next
pointer to next item [linked list]
Definition: gg_dxf.h:98
wrapper for DXF Pattern Segment object
Definition: gg_dxf.h:320
struct gaia_dxf_hatch_segm * next
pointer to next item [linked list]
Definition: gg_dxf.h:330
double y0
start Y
Definition: gg_dxf.h:324
double x0
start X
Definition: gg_dxf.h:322
double x1
end X
Definition: gg_dxf.h:326
double y1
end Y
Definition: gg_dxf.h:328
wrapper for DXF Pattern Hatch object
Definition: gg_dxf.h:362
double offset_x
hatch line offset X
Definition: gg_dxf.h:372
double angle
hatch line angle
Definition: gg_dxf.h:366
double base_x
hatch line base X
Definition: gg_dxf.h:368
double offset_y
hatch line offset Y
Definition: gg_dxf.h:374
gaiaDxfBoundaryPathPtr first
pointer to first Boundary
Definition: gg_dxf.h:376
gaiaDxfHatchSegmPtr first_out
pointer to first Pattern segment
Definition: gg_dxf.h:382
gaiaDxfBoundaryPathPtr last
pointer to last Boundary
Definition: gg_dxf.h:378
struct gaia_dxf_hatch * next
pointer to next item [linked list]
Definition: gg_dxf.h:386
gaiaDxfHatchSegmPtr last_out
pointer to last Pattern segment
Definition: gg_dxf.h:384
double base_y
hatch line base Y
Definition: gg_dxf.h:370
double spacing
hatch pattern spacing
Definition: gg_dxf.h:364
gaiaGeomCollPtr boundary
pointer to Boundary geometry
Definition: gg_dxf.h:380
wrapper for DXF Polygon interior hole object
Definition: gg_dxf.h:264
struct gaia_dxf_hole * next
pointer to next item [linked list]
Definition: gg_dxf.h:274
int points
total count of points
Definition: gg_dxf.h:266
double * x
array of X coordinates
Definition: gg_dxf.h:268
double * y
array of Y coordinates
Definition: gg_dxf.h:270
double * z
array of Z coordinates
Definition: gg_dxf.h:272
wrapper for DXF Insert object
Definition: gg_dxf.h:111
int hasPolyg
boolean flag: contains Polyline (Polygon) objects
Definition: gg_dxf.h:135
int is3Dline
boolean flag: contains 3d Polyline (Linestring) objects
Definition: gg_dxf.h:143
int hasText
boolean flag: contains Text objects
Definition: gg_dxf.h:129
int is3Dpoint
boolean flag: contains 3d Point objects
Definition: gg_dxf.h:141
double y
Y coordinate.
Definition: gg_dxf.h:117
double x
X coordinate.
Definition: gg_dxf.h:115
int is3Dtext
boolean flag: contains 3d Text objects
Definition: gg_dxf.h:139
double scale_x
X scale factor.
Definition: gg_dxf.h:121
gaiaDxfExtraAttrPtr last
pointer to last Extra Attribute [linked list]
Definition: gg_dxf.h:149
gaiaDxfExtraAttrPtr first
pointer to first Extra Attribute [linked list]
Definition: gg_dxf.h:147
double scale_z
Z scale factor.
Definition: gg_dxf.h:125
double z
Z coordinate.
Definition: gg_dxf.h:119
double scale_y
Y scale factor.
Definition: gg_dxf.h:123
char * block_id
pointer to Block ID string
Definition: gg_dxf.h:113
int is3Dpolyg
boolean flag: contains 3d Polyline (Polygon) objects
Definition: gg_dxf.h:145
struct gaia_dxf_insert * next
pointer to next item [linked list]
Definition: gg_dxf.h:151
int hasPoint
boolean flag: contains Point objects
Definition: gg_dxf.h:131
int hasLine
boolean flag: contains Polyline (Linestring) objects
Definition: gg_dxf.h:133
double angle
rotation angle
Definition: gg_dxf.h:127
int hasHatch
boolean flag: contains Hatch objects
Definition: gg_dxf.h:137
wrapper for DXF Layer object
Definition: gg_dxf.h:448
int hasExtraInsPoint
boolean flag: contains Insert Text Extra Attributes
Definition: gg_dxf.h:518
int hasExtraInsLine
boolean flag: contains Insert Polyline (Linestring) Extra Attributes
Definition: gg_dxf.h:520
gaiaDxfPolylinePtr first_polyg
pointer to first DXF Polyline (Polygon) object [linked list]
Definition: gg_dxf.h:464
char * layer_name
pointer to Layer Name string
Definition: gg_dxf.h:450
gaiaDxfPointPtr last_point
pointer to lasst DXF Point object [linked list]
Definition: gg_dxf.h:458
gaiaDxfInsertPtr last_ins_polyg
pointer to last DXF Insert Polyline (Polygon) object [linked list]
Definition: gg_dxf.h:486
gaiaDxfPolylinePtr first_line
pointer to first DXF Polyline (Linestring) object [linked list]
Definition: gg_dxf.h:460
int is3Dpoint
boolean flag: contains 3d Point objects
Definition: gg_dxf.h:494
int is3Dline
boolean flag: contains 3d Polyline (Linestring) objects
Definition: gg_dxf.h:496
gaiaDxfInsertPtr last_ins_line
pointer to last DXF Insert Polyline (Linestring) object [linked list]
Definition: gg_dxf.h:482
gaiaDxfInsertPtr last_ins_text
pointer to last DXF Insert Text object [linked list]
Definition: gg_dxf.h:474
gaiaDxfInsertPtr first_ins_line
pointer to first DXF Insert Polyline (Linestring) object [linked list]
Definition: gg_dxf.h:480
gaiaDxfInsertPtr first_ins_polyg
pointer to first DXF Insert Polyline (Polygon) object [linked list]
Definition: gg_dxf.h:484
gaiaDxfPolylinePtr last_line
pointer to last DXF Polyline (Linestring) object [linked list]
Definition: gg_dxf.h:462
gaiaDxfTextPtr first_text
pointer to first DXF Text object [linked list]
Definition: gg_dxf.h:452
int is3DinsPolyg
boolean flag: contains 3d Insert Polyline (Polygon) objects
Definition: gg_dxf.h:506
int is3DinsPoint
boolean flag: contains 3d Insert Point objects
Definition: gg_dxf.h:502
gaiaDxfInsertPtr last_ins_point
pointer to last DXF Insert Point object [linked list]
Definition: gg_dxf.h:478
int is3DinsText
boolean flag: contains 3d Insert Text objects
Definition: gg_dxf.h:500
int is3Dpolyg
boolean flag: contains 3d Polyline (Polygon) objects
Definition: gg_dxf.h:498
struct gaia_dxf_layer * next
pointer to next item [linked list]
Definition: gg_dxf.h:524
gaiaDxfInsertPtr first_ins_text
pointer to first DXF Insert Text object [linked list]
Definition: gg_dxf.h:472
int hasExtraText
boolean flag: contains Text Extra Attributes
Definition: gg_dxf.h:508
int hasExtraLine
boolean flag: contains Polyline (Linestring) Extra Attributes
Definition: gg_dxf.h:512
int hasExtraPoint
boolean flag: contains Point Extra Attributes
Definition: gg_dxf.h:510
gaiaDxfHatchPtr first_hatch
pointer to first DXF Hatch object [linked list]
Definition: gg_dxf.h:468
gaiaDxfPointPtr first_point
pointer to first DXF Point object [linked list]
Definition: gg_dxf.h:456
gaiaDxfInsertPtr first_ins_hatch
pointer to first DXF Insert Hatch object [linked list]
Definition: gg_dxf.h:488
int is3DinsLine
boolean flag: contains 3d Insert Polyline (Linestring) objects
Definition: gg_dxf.h:504
int is3Dtext
boolean flag: contains 3d Text objects
Definition: gg_dxf.h:492
gaiaDxfPolylinePtr last_polyg
pointer to last DXF Polyline (Polygon) object [linked list]
Definition: gg_dxf.h:466
gaiaDxfTextPtr last_text
pointer to last DXF Text object [linked list]
Definition: gg_dxf.h:454
gaiaDxfHatchPtr last_hatch
pointer to last DXF Hatch object [linked list]
Definition: gg_dxf.h:470
int hasExtraInsText
boolean flag: contains Insert Text Extra Attributes
Definition: gg_dxf.h:516
gaiaDxfInsertPtr last_ins_hatch
pointer to last DXF Insert Hatch object [linked list]
Definition: gg_dxf.h:490
gaiaDxfInsertPtr first_ins_point
pointer to first DXF Insert Point object [linked list]
Definition: gg_dxf.h:476
int hasExtraPolyg
boolean flag: contains Polyline (Polygon) Extra Attributes
Definition: gg_dxf.h:514
int hasExtraInsPolyg
boolean flag: contains Insert Polyline (Polygon) Extra Attributes
Definition: gg_dxf.h:522
wrapper for DXF Parser object
Definition: gg_dxf.h:537
gaiaDxfExtraAttrPtr last_ext
internal parser variable
Definition: gg_dxf.h:633
gaiaDxfHatchPtr curr_hatch
internal parser variable
Definition: gg_dxf.h:635
int is_circle
internal parser variable
Definition: gg_dxf.h:589
gaiaDxfBlockPtr first_block
OUT: pointer to first DXF Block object [linked list].
Definition: gg_dxf.h:545
int is_vertex
internal parser variable
Definition: gg_dxf.h:593
gaiaDxfExtraAttrPtr first_ext
internal parser variable
Definition: gg_dxf.h:631
int is_arc
internal parser variable
Definition: gg_dxf.h:591
int is_polyline
internal parser variable
Definition: gg_dxf.h:583
gaiaDxfInsert curr_insert
internal parser variable
Definition: gg_dxf.h:609
int is_closed_polyline
internal parser variable
Definition: gg_dxf.h:621
gaiaDxfLayerPtr first_layer
OUT: pointer to first DXF Layer object [linked list].
Definition: gg_dxf.h:541
gaiaDxfArc curr_arc
internal parser variable
Definition: gg_dxf.h:619
int force_dims
IN: parser option - dimension handlig.
Definition: gg_dxf.h:549
const char * prefix
IN: parser option - pointer to prefix string for DB tables.
Definition: gg_dxf.h:555
int is_text
internal parser variable
Definition: gg_dxf.h:579
int section
internal parser variable
Definition: gg_dxf.h:567
gaiaDxfLayerPtr last_layer
OUT: pointer to last DXF Layer object [linked list].
Definition: gg_dxf.h:543
int is_block
internal parser variable
Definition: gg_dxf.h:577
int is_line
internal parser variable
Definition: gg_dxf.h:587
gaiaDxfText curr_text
internal parser variable
Definition: gg_dxf.h:607
char * curr_layer_name
internal parser variable
Definition: gg_dxf.h:605
int is_layer
internal parser variable
Definition: gg_dxf.h:575
int line_no
internal parser variable
Definition: gg_dxf.h:561
int srid
IN: parser option - the SRID.
Definition: gg_dxf.h:551
gaiaDxfPoint curr_point
internal parser variable
Definition: gg_dxf.h:613
const char * selected_layer
IN: parser option - pointer the single Layer Name string.
Definition: gg_dxf.h:553
int op_code
internal parser variable
Definition: gg_dxf.h:565
int is_point
internal parser variable
Definition: gg_dxf.h:581
int entities
internal parser variable
Definition: gg_dxf.h:573
int is_insert
internal parser variable
Definition: gg_dxf.h:599
int blocks
internal parser variable
Definition: gg_dxf.h:571
int is_hatch
internal parser variable
Definition: gg_dxf.h:595
char * extra_value
internal parser variable
Definition: gg_dxf.h:629
int error
internal parser variable
Definition: gg_dxf.h:603
char * filename
OUT: origin/input filename.
Definition: gg_dxf.h:539
int is_hatch_boundary
internal parser variable
Definition: gg_dxf.h:597
int linked_rings
IN: parser option - linked rings special handling.
Definition: gg_dxf.h:557
gaiaDxfPointPtr last_pt
internal parser variable
Definition: gg_dxf.h:625
gaiaDxfBlock curr_block
internal parser variable
Definition: gg_dxf.h:611
gaiaDxfPointPtr first_pt
internal parser variable
Definition: gg_dxf.h:623
int is_lwpolyline
internal parser variable
Definition: gg_dxf.h:585
int op_code_line
internal parser variable
Definition: gg_dxf.h:563
int tables
internal parser variable
Definition: gg_dxf.h:569
char * extra_key
internal parser variable
Definition: gg_dxf.h:627
int unlinked_rings
IN: parser option - unlinked rings special handling.
Definition: gg_dxf.h:559
int eof
internal parser variable
Definition: gg_dxf.h:601
gaiaDxfCircle curr_circle
internal parser variable
Definition: gg_dxf.h:617
gaiaDxfBlockPtr last_block
OUT: pointer to last DXF Block object [linked list].
Definition: gg_dxf.h:547
gaiaDxfPoint curr_end_point
internal parser variable
Definition: gg_dxf.h:615
int undeclared_layers
internal parser variable
Definition: gg_dxf.h:637
wrapper for DXF Point object
Definition: gg_dxf.h:193
double z
Z coordinate.
Definition: gg_dxf.h:199
struct gaia_dxf_point * next
pointer to next item [linked list]
Definition: gg_dxf.h:205
gaiaDxfExtraAttrPtr first
pointer to first Extra Attribute [linked list]
Definition: gg_dxf.h:201
gaiaDxfExtraAttrPtr last
pointer to last Extra Attribute [linked list]
Definition: gg_dxf.h:203
double x
X coordinate.
Definition: gg_dxf.h:195
double y
Y coordinate.
Definition: gg_dxf.h:197
wrapper for DXF Polyline object could be a Linestring or a Polygon depending on the is_closed flag
Definition: gg_dxf.h:288
gaiaDxfExtraAttrPtr last
pointer to last Extra Attribute [linked list]
Definition: gg_dxf.h:306
gaiaDxfHolePtr last_hole
pointer to last Polygon hole [linked list]
Definition: gg_dxf.h:302
gaiaDxfHolePtr first_hole
pointer to first Polygon hole [linked list]
Definition: gg_dxf.h:300
int points
total count of points
Definition: gg_dxf.h:292
int is_closed
open (Linestring) or closed (Polygon exterior ring)
Definition: gg_dxf.h:290
double * x
array of X coordinates
Definition: gg_dxf.h:294
struct gaia_dxf_polyline * next
pointer to next item [linked list]
Definition: gg_dxf.h:308
double * y
array of Y coordinates
Definition: gg_dxf.h:296
gaiaDxfExtraAttrPtr first
pointer to first Extra Attribute [linked list]
Definition: gg_dxf.h:304
double * z
array of Z coordinates
Definition: gg_dxf.h:298
wrapper for DXF Text object
Definition: gg_dxf.h:164
char * label
pointer to Label string
Definition: gg_dxf.h:166
gaiaDxfExtraAttrPtr first
pointer to first Extra Attribute [linked list]
Definition: gg_dxf.h:176
struct gaia_dxf_text * next
pointer to next item [linked list]
Definition: gg_dxf.h:180
double z
Z coordinate.
Definition: gg_dxf.h:172
double x
X coordinate.
Definition: gg_dxf.h:168
double y
Y coordinate.
Definition: gg_dxf.h:170
double angle
label rotation angle
Definition: gg_dxf.h:174
gaiaDxfExtraAttrPtr last
pointer to last Extra Attribute [linked list]
Definition: gg_dxf.h:178
wrapper for DXF Write object
Definition: gg_dxf.h:650
int count
OUT: count of exported geometries.
Definition: gg_dxf.h:658
int precision
IN: coord's precision (number of decimal digits)
Definition: gg_dxf.h:654
int version
IN: DXF version number.
Definition: gg_dxf.h:656
int error
OUT: error flag.
Definition: gg_dxf.h:660
FILE * out
IN: output DXF file handle.
Definition: gg_dxf.h:652