libDXF 0.0.1
A library with DXF related functions written in C.
|
00001 00039 #ifndef LIBDXF_SRC_TABLE_H 00040 #define LIBDXF_SRC_TABLE_H 00041 00042 00043 #include "global.h" 00044 00045 00046 #ifdef __cplusplus 00047 extern "C" { 00048 #endif 00049 00050 00061 typedef struct 00062 dxf_table_cell 00063 { 00064 char *text_string; 00076 char *optional_text_string[DXF_MAX_PARAM]; 00082 char *text_style_name; 00086 int color_bg; 00090 int color_fg; 00094 int border_color_right; 00098 int border_color_bottom; 00102 int border_color_left; 00106 int border_color_top; 00110 int override_flag; 00116 double text_height; 00120 double block_scale; 00125 double block_rotation; 00129 int alignment; 00133 int type; 00140 int flag; 00144 int merged; 00148 int autofit; 00153 double border_width; 00157 double border_height; 00161 int override; 00165 int virtual_edge; 00182 int number_of_block_attdefs; 00186 double border_lineweight_right; 00190 double border_lineweight_bottom; 00194 double border_lineweight_left; 00198 double border_lineweight_top; 00202 int color_fill_override; 00206 int border_visibility_override_right; 00210 int border_visibility_override_bottom; 00215 int border_visibility_override_left; 00219 int border_visibility_override_top; 00223 char *attdef_text_string; 00228 char *attdef_soft_pointer[DXF_MAX_PARAM]; 00234 char *block_table_record_hard_pointer; 00239 char *field_object_pointer; 00246 struct DxfTableCell *next; 00249 } DxfTableCell; 00250 00251 00262 typedef struct 00263 dxf_table 00264 { 00265 int id_code; 00270 char *linetype; 00274 char *layer; 00278 double elevation; 00285 double thickness; 00289 double linetype_scale; 00292 int16_t visibility; 00299 int color; 00306 int paperspace; 00311 int graphics_data_size; 00317 char *binary_graphics_data[DXF_MAX_PARAM]; 00322 char *dictionary_owner_soft; 00326 char *dictionary_owner_hard; 00330 /* Specific members for a DXF table. */ 00331 char *block_name; 00335 char *table_text_style_name; 00340 double x0; 00343 double y0; 00346 double z0; 00349 double x1; 00352 double y1; 00355 double z1; 00358 double horizontal_cell_margin; 00362 double vertical_cell_margin; 00366 int table_cell_color_bg; 00372 int table_cell_color_fg; 00378 int table_cell_border_color_horizontal; 00382 int table_cell_border_color_bottom; 00386 int table_cell_border_color_vertical; 00390 int table_cell_border_color_right; 00394 int flow_direction; 00398 int32_t table_value_flag; 00401 int number_of_rows; 00406 int number_of_columns; 00411 int override_flag; 00414 int border_color_override_flag; 00417 int border_lineweight_override_flag; 00420 int border_visibility_override_flag; 00423 double table_text_height; 00428 double row_height[DXF_MAX_PARAM]; 00432 double column_height[DXF_MAX_PARAM]; 00436 int table_cell_alignment; 00441 double table_cell_border_lineweight_right; 00443 int table_data_version; 00449 int suppress_table_title; 00455 int suppress_header_row; 00459 int table_cell_color_fill_override; 00469 char *tablestyle_object_pointer; 00472 char *owning_block_pointer; 00475 struct DxfTableCell *cells; 00478 struct DxfTable *next; 00481 } DxfTable; 00482 00483 00484 DxfTableCell *dxf_table_cell_new (); 00485 DxfTable *dxf_table_new (); 00486 DxfTableCell *dxf_table_cell_init (DxfTableCell *cell); 00487 DxfTable *dxf_table_init (DxfTable *table); 00488 DxfTable *dxf_table_read (DxfFile *fp, DxfTable *table); 00489 int dxf_table_cell_write (DxfFile *fp, DxfTableCell *cell); 00490 int dxf_table_write (DxfFile *fp, DxfTable *table); 00491 int dxf_table_cell_free (DxfTableCell *cell); 00492 int dxf_table_free (DxfTable *table); 00493 void dxf_table_cell_free_chain (DxfTableCell *cells); 00494 void dxf_table_free_chain (DxfTable *tables); 00495 00496 00497 #ifdef __cplusplus 00498 } 00499 #endif 00500 00501 00502 #endif /* LIBDXF_SRC_TABLE_H */ 00503 00504 00505 /* EOF */