libDXF 0.0.1
A library with DXF related functions written in C.
|
00001 00049 #ifndef LIBDXF_SRC_SOLID_H 00050 #define LIBDXF_SRC_SOLID_H 00051 00052 00053 #include "global.h" 00054 #include "point.h" 00055 #include "binary_graphics_data.h" 00056 00057 00058 #ifdef __cplusplus 00059 extern "C" { 00060 #endif 00061 00062 00069 typedef struct 00070 dxf_solid_struct 00071 { 00072 /* Members common for all DXF drawable entities. */ 00073 int id_code; 00078 char *linetype; 00082 char *layer; 00086 double elevation; 00092 double thickness; 00096 double linetype_scale; 00100 int16_t visibility; 00108 int color; 00115 int paperspace; 00121 int graphics_data_size; 00130 int16_t shadow_mode; 00140 DxfBinaryGraphicsData *binary_graphics_data; 00146 char *dictionary_owner_soft; 00150 char *material; 00155 char *dictionary_owner_hard; 00159 int16_t lineweight; 00164 char *plot_style_name; 00168 long color_value; 00180 char *color_name; 00188 long transparency; 00196 /* Specific members for a DXF solid. */ 00197 DxfPoint *p0; 00200 double x0; 00203 double y0; 00206 double z0; 00209 DxfPoint *p1; 00212 double x1; 00215 double y1; 00218 double z1; 00221 DxfPoint *p2; 00224 double x2; 00227 double y2; 00230 double z2; 00233 DxfPoint *p3; 00236 double x3; 00239 double y3; 00242 double z3; 00245 double extr_x0; 00249 double extr_y0; 00253 double extr_z0; 00257 struct DxfSolid *next; 00261 } DxfSolid; 00262 00263 00264 DxfSolid *dxf_solid_new (); 00265 DxfSolid *dxf_solid_init (DxfSolid *solid); 00266 DxfSolid *dxf_solid_read (DxfFile *fp, DxfSolid *solid); 00267 int dxf_solid_write (DxfFile *fp, DxfSolid *solid); 00268 int dxf_solid_free (DxfSolid *solid); 00269 void dxf_solid_free_chain (DxfSolid *solids); 00270 int dxf_solid_get_id_code (DxfSolid *solid); 00271 DxfSolid *dxf_solid_set_id_code (DxfSolid *solid, int id_code); 00272 char *dxf_solid_get_linetype (DxfSolid *solid); 00273 DxfSolid *dxf_solid_set_linetype (DxfSolid *solid, char *linetype); 00274 char *dxf_solid_get_layer (DxfSolid *solid); 00275 DxfSolid *dxf_solid_set_layer (DxfSolid *solid, char *layer); 00276 double dxf_solid_get_elevation (DxfSolid *solid); 00277 DxfSolid *dxf_solid_set_elevation (DxfSolid *solid, double elevation); 00278 double dxf_solid_get_thickness (DxfSolid *solid); 00279 DxfSolid *dxf_solid_set_thickness (DxfSolid *solid, double thickness); 00280 double dxf_solid_get_linetype_scale (DxfSolid *solid); 00281 DxfSolid *dxf_solid_set_linetype_scale (DxfSolid *solid, double linetype_scale); 00282 int16_t dxf_solid_get_visibility (DxfSolid *solid); 00283 DxfSolid *dxf_solid_set_visibility (DxfSolid *solid, int16_t visibility); 00284 int dxf_solid_get_color (DxfSolid *solid); 00285 DxfSolid *dxf_solid_set_color (DxfSolid *solid, int color); 00286 int dxf_solid_get_paperspace (DxfSolid *solid); 00287 DxfSolid *dxf_solid_set_paperspace (DxfSolid *solid, int paperspace); 00288 int dxf_solid_get_graphics_data_size (DxfSolid *solid); 00289 DxfSolid *dxf_solid_set_graphics_data_size (DxfSolid *solid, int graphics_data_size); 00290 int16_t dxf_solid_get_shadow_mode (DxfSolid *solid); 00291 DxfSolid *dxf_solid_set_shadow_mode (DxfSolid *solid, int16_t shadow_mode); 00292 DxfBinaryGraphicsData *dxf_solid_get_binary_graphics_data (DxfSolid *solid); 00293 DxfSolid *dxf_solid_set_binary_graphics_data (DxfSolid *solid, DxfBinaryGraphicsData *data); 00294 char *dxf_solid_get_dictionary_owner_soft (DxfSolid *solid); 00295 DxfSolid *dxf_solid_set_dictionary_owner_soft (DxfSolid *solid, char *dictionary_owner_soft); 00296 char *dxf_solid_get_material (DxfSolid *solid); 00297 DxfSolid *dxf_solid_set_material (DxfSolid *solid, char *material); 00298 char *dxf_solid_get_dictionary_owner_hard (DxfSolid *solid); 00299 DxfSolid *dxf_solid_set_dictionary_owner_hard (DxfSolid *solid, char *dictionary_owner_hard); 00300 int16_t dxf_solid_get_lineweight (DxfSolid *solid); 00301 DxfSolid *dxf_solid_set_lineweight (DxfSolid *solid, int16_t lineweight); 00302 char *dxf_solid_get_plot_style_name (DxfSolid *solid); 00303 DxfSolid *dxf_solid_set_plot_style_name (DxfSolid *solid, char *plot_style_name); 00304 long dxf_solid_get_color_value (DxfSolid *solid); 00305 DxfSolid *dxf_solid_set_color_value (DxfSolid *solid, long color_value); 00306 char *dxf_solid_get_color_name (DxfSolid *solid); 00307 DxfSolid *dxf_solid_set_color_name (DxfSolid *solid, char *color_name); 00308 long dxf_solid_get_transparency (DxfSolid *solid); 00309 DxfSolid *dxf_solid_set_transparency (DxfSolid *solid, long transparency); 00310 DxfPoint *dxf_solid_get_p0 (DxfSolid *solid); 00311 DxfSolid *dxf_solid_set_p0 (DxfSolid *solid, DxfPoint *p0); 00312 double dxf_solid_get_x0 (DxfSolid *solid); 00313 DxfSolid *dxf_solid_set_x0 (DxfSolid *solid, double x0); 00314 double dxf_solid_get_y0 (DxfSolid *solid); 00315 DxfSolid *dxf_solid_set_y0 (DxfSolid *solid, double y0); 00316 double dxf_solid_get_z0 (DxfSolid *solid); 00317 DxfSolid *dxf_solid_set_z0 (DxfSolid *solid, double z0); 00318 DxfPoint *dxf_solid_get_p1 (DxfSolid *solid); 00319 DxfSolid *dxf_solid_set_p1 (DxfSolid *solid, DxfPoint *p1); 00320 double dxf_solid_get_x1 (DxfSolid *solid); 00321 DxfSolid *dxf_solid_set_x1 (DxfSolid *solid, double x1); 00322 double dxf_solid_get_y1 (DxfSolid *solid); 00323 DxfSolid *dxf_solid_set_y1 (DxfSolid *solid, double y1); 00324 double dxf_solid_get_z1 (DxfSolid *solid); 00325 DxfSolid *dxf_solid_set_z1 (DxfSolid *solid, double z1); 00326 DxfPoint *dxf_solid_get_p2 (DxfSolid *solid); 00327 DxfSolid *dxf_solid_set_p2 (DxfSolid *solid, DxfPoint *p2); 00328 double dxf_solid_get_x2 (DxfSolid *solid); 00329 DxfSolid *dxf_solid_set_x2 (DxfSolid *solid, double x2); 00330 double dxf_solid_get_y2 (DxfSolid *solid); 00331 DxfSolid *dxf_solid_set_y2 (DxfSolid *solid, double y2); 00332 double dxf_solid_get_z2 (DxfSolid *solid); 00333 DxfSolid *dxf_solid_set_z2 (DxfSolid *solid, double z2); 00334 DxfPoint *dxf_solid_get_p3 (DxfSolid *solid); 00335 DxfSolid *dxf_solid_set_p3 (DxfSolid *solid, DxfPoint *p3); 00336 double dxf_solid_get_x3 (DxfSolid *solid); 00337 DxfSolid *dxf_solid_set_x3 (DxfSolid *solid, double x3); 00338 double dxf_solid_get_y3 (DxfSolid *solid); 00339 DxfSolid *dxf_solid_set_y3 (DxfSolid *solid, double y3); 00340 double dxf_solid_get_z3 (DxfSolid *solid); 00341 DxfSolid *dxf_solid_set_z3 (DxfSolid *solid, double z3); 00342 DxfPoint *dxf_solid_get_extrusion_vector_as_point (DxfSolid *solid); 00343 DxfSolid *dxf_solid_set_extrusion_vector_from_point (DxfSolid *solid, DxfPoint *point); 00344 DxfSolid *dxf_solid_set_extrusion_vector (DxfSolid *solid, double extr_x0, double extr_y0, double extr_z0); 00345 double dxf_solid_get_extr_x0 (DxfSolid *solid); 00346 DxfSolid *dxf_solid_set_extr_x0 (DxfSolid *solid, double extr_x0); 00347 double dxf_solid_get_extr_y0 (DxfSolid *solid); 00348 DxfSolid *dxf_solid_set_extr_y0 (DxfSolid *solid, double extr_y0); 00349 double dxf_solid_get_extr_z0 (DxfSolid *solid); 00350 DxfSolid *dxf_solid_set_extr_z0 (DxfSolid *solid, double extr_z0); 00351 DxfSolid *dxf_solid_get_next (DxfSolid *solid); 00352 DxfSolid *dxf_solid_set_next (DxfSolid *solid, DxfSolid *next); 00353 DxfSolid *dxf_solid_get_last (DxfSolid *solid); 00354 00355 00356 #ifdef __cplusplus 00357 } 00358 #endif 00359 00360 00361 #endif /* LIBDXF_SRC_SOLID_H */ 00362 00363 00364 /* EOF */