libDXF 0.0.1
A library with DXF related functions written in C.

3dline.h

Go to the documentation of this file.
00001 
00044 #ifndef LIBDXF_SRC_3DLINE_H
00045 #define LIBDXF_SRC_3DLINE_H
00046 
00047 
00048 #include "global.h"
00049 #include "point.h"
00050 #include "binary_graphics_data.h"
00051 
00052 
00053 #ifdef __cplusplus
00054 extern "C" {
00055 #endif
00056 
00057 
00061 typedef struct
00062 dxf_3dline_struct
00063 {
00064         /* Members common for all DXF drawable entities. */
00065         int id_code;
00070         char *linetype;
00074         char *layer;
00078         double elevation;
00085         double thickness;
00089         double linetype_scale;
00093         int16_t visibility;
00101         int color;
00108         int paperspace;
00114         int graphics_data_size;
00123         int16_t shadow_mode;
00133         DxfBinaryGraphicsData *binary_graphics_data;
00139         char *dictionary_owner_soft;
00143         char *material;
00148         char *dictionary_owner_hard;
00152         int16_t lineweight;
00157         char *plot_style_name;
00161         long color_value;
00173         char *color_name;
00181         long transparency;
00189         /* Specific members for a DXF line. */
00190         DxfPoint *p0;
00193         DxfPoint *p1;
00196         double extr_x0;
00200         double extr_y0;
00204         double extr_z0;
00208         struct Dxf3dline *next;
00211 } Dxf3dline;
00212 
00213 
00214 Dxf3dline *dxf_3dline_new ();
00215 Dxf3dline *dxf_3dline_init (Dxf3dline *line);
00216 Dxf3dline *dxf_3dline_read (DxfFile *fp, Dxf3dline *line);
00217 int dxf_3dline_write (DxfFile *fp, Dxf3dline *line);
00218 int dxf_3dline_free (Dxf3dline *line);
00219 void dxf_3dline_free_chain (Dxf3dline *lines);
00220 int dxf_3dline_get_id_code (Dxf3dline *line);
00221 Dxf3dline *dxf_3dline_set_id_code (Dxf3dline *line, int id_code);
00222 char *dxf_3dline_get_linetype (Dxf3dline *line);
00223 Dxf3dline *dxf_3dline_set_linetype (Dxf3dline *line, char *linetype);
00224 char *dxf_3dline_get_layer (Dxf3dline *line);
00225 Dxf3dline *dxf_3dline_set_layer (Dxf3dline *line, char *layer);
00226 double dxf_3dline_get_elevation (Dxf3dline *line);
00227 Dxf3dline *dxf_3dline_set_elevation (Dxf3dline *line, double elevation);
00228 double dxf_3dline_get_thickness (Dxf3dline *line);
00229 Dxf3dline *dxf_3dline_set_thickness (Dxf3dline *line, double thickness);
00230 double dxf_3dline_get_linetype_scale (Dxf3dline *line);
00231 Dxf3dline *dxf_3dline_set_linetype_scale (Dxf3dline *line, double linetype_scale);
00232 int16_t dxf_3dline_get_visibility (Dxf3dline *line);
00233 Dxf3dline *dxf_3dline_set_visibility (Dxf3dline *line, int16_t visibility);
00234 int dxf_3dline_get_color (Dxf3dline *line);
00235 Dxf3dline *dxf_3dline_set_color (Dxf3dline *line, int color);
00236 int dxf_3dline_get_paperspace (Dxf3dline *line);
00237 Dxf3dline *dxf_3dline_set_paperspace (Dxf3dline *line, int paperspace);
00238 int dxf_3dline_get_graphics_data_size (Dxf3dline *line);
00239 Dxf3dline *dxf_3dline_set_graphics_data_size (Dxf3dline *line, int graphics_data_size);
00240 int16_t dxf_3dline_get_shadow_mode (Dxf3dline *line);
00241 Dxf3dline *dxf_3dline_set_shadow_mode (Dxf3dline *line, int16_t shadow_mode);
00242 DxfBinaryGraphicsData *dxf_3dline_get_binary_graphics_data (Dxf3dline *line);
00243 Dxf3dline *dxf_3dline_set_binary_graphics_data (Dxf3dline *line, DxfBinaryGraphicsData *data);
00244 char *dxf_3dline_get_dictionary_owner_soft (Dxf3dline *line);
00245 Dxf3dline *dxf_3dline_set_dictionary_owner_soft (Dxf3dline *line, char *dictionary_owner_soft);
00246 char *dxf_3dline_get_material (Dxf3dline *line);
00247 Dxf3dline *dxf_3dline_set_material (Dxf3dline *line, char *material);
00248 char *dxf_3dline_get_dictionary_owner_hard (Dxf3dline *line);
00249 Dxf3dline *dxf_3dline_set_dictionary_owner_hard (Dxf3dline *line, char *dictionary_owner_hard);
00250 int16_t dxf_3dline_get_lineweight (Dxf3dline *line);
00251 Dxf3dline *dxf_3dline_set_lineweight (Dxf3dline *line, int16_t lineweight);
00252 char *dxf_3dline_get_plot_style_name (Dxf3dline *line);
00253 Dxf3dline *dxf_3dline_set_plot_style_name (Dxf3dline *line, char *plot_style_name);
00254 long dxf_3dline_get_color_value (Dxf3dline *line);
00255 Dxf3dline *dxf_3dline_set_color_value (Dxf3dline *line, long color_value);
00256 char *dxf_3dline_get_color_name (Dxf3dline *line);
00257 Dxf3dline *dxf_3dline_set_color_name (Dxf3dline *line, char *color_name);
00258 long dxf_3dline_get_transparency (Dxf3dline *line);
00259 Dxf3dline *dxf_3dline_set_transparency (Dxf3dline *line, long transparency);
00260 DxfPoint *dxf_3dline_get_p0 (Dxf3dline *line);
00261 Dxf3dline *dxf_3dline_set_p0 (Dxf3dline *line, DxfPoint *p0);
00262 double dxf_3dline_get_x0 (Dxf3dline *line);
00263 Dxf3dline *dxf_3dline_set_x0 (Dxf3dline *line, double x0);
00264 double dxf_3dline_get_y0 (Dxf3dline *line);
00265 Dxf3dline *dxf_3dline_set_y0 (Dxf3dline *line, double y0);
00266 double dxf_3dline_get_z0 (Dxf3dline *line);
00267 Dxf3dline *dxf_3dline_set_z0 (Dxf3dline *line, double z0);
00268 DxfPoint *dxf_3dline_get_p1 (Dxf3dline *line);
00269 Dxf3dline *dxf_3dline_set_p1 (Dxf3dline *line, DxfPoint *p1);
00270 double dxf_3dline_get_x1 (Dxf3dline *line);
00271 Dxf3dline *dxf_3dline_set_x1 (Dxf3dline *line, double x1);
00272 double dxf_3dline_get_y1 (Dxf3dline *line);
00273 Dxf3dline *dxf_3dline_set_y1 (Dxf3dline *line, double y1);
00274 double dxf_3dline_get_z1 (Dxf3dline *line);
00275 Dxf3dline *dxf_3dline_set_z1 (Dxf3dline *line, double z1);
00276 double dxf_3dline_get_extr_x0 (Dxf3dline *line);
00277 Dxf3dline *dxf_3dline_set_extr_x0 (Dxf3dline *line, double extr_x0);
00278 double dxf_3dline_get_extr_y0 (Dxf3dline *line);
00279 Dxf3dline *dxf_3dline_set_extr_y0 (Dxf3dline *line, double extr_y0);
00280 double dxf_3dline_get_extr_z0 (Dxf3dline *line);
00281 Dxf3dline *dxf_3dline_set_extr_z0 (Dxf3dline *line, double extr_z0);
00282 DxfPoint *dxf_3dline_get_extrusion_vector_as_point (Dxf3dline *line);
00283 Dxf3dline *dxf_3dline_set_extrusion_vector_from_point (Dxf3dline *line, DxfPoint *point);
00284 Dxf3dline *dxf_3dline_set_extrusion_vector (Dxf3dline *line, double extr_x0, double extr_y0, double extr_z0);
00285 DxfPoint *dxf_3dline_get_mid_point (Dxf3dline *line, int id_code, int inheritance);
00286 double dxf_3dline_get_length (Dxf3dline *line);
00287 Dxf3dline *dxf_3dline_create_from_points (DxfPoint *p0, DxfPoint *p1, int id_code, int inheritance);
00288 Dxf3dline *dxf_3dline_get_next (Dxf3dline *line);
00289 Dxf3dline *dxf_3dline_set_next (Dxf3dline *line, Dxf3dline *next);
00290 Dxf3dline *dxf_3dline_get_last (Dxf3dline *line);
00291 
00292 
00293 #ifdef __cplusplus
00294 }
00295 #endif
00296 
00297 
00298 #endif /* LIBDXF_SRC_3DLINE_H */
00299 
00300 
00301 /* EOF */