libDXF 0.0.1
A library with DXF related functions written in C.
|
00001 00043 #ifndef LIBDXF_SRC_SPATIAL_FILTER_H 00044 #define LIBDXF_SRC_SPATIAL_FILTER_H 00045 00046 00047 #include "global.h" 00048 #include "point.h" 00049 00050 00051 #ifdef __cplusplus 00052 extern "C" { 00053 #endif 00054 00055 00059 typedef struct 00060 dxf_spatial_filter_struct 00061 { 00062 /* Members common for all DXF objects. */ 00063 int id_code; 00068 char *dictionary_owner_soft; 00071 char *dictionary_owner_hard; 00074 /* Specific members for a DXF spatial_filter. */ 00075 DxfPoint *p0; 00079 double x0[DXF_MAX_PARAM]; 00083 double y0[DXF_MAX_PARAM]; 00087 DxfPoint *p1; 00091 double x1; 00095 double y1; 00099 double z1; 00103 double inverse_block_transformation[12]; 00113 double block_transformation[12]; 00118 double front_clipping_plane_distance; 00121 double back_clipping_plane_distance; 00124 int number_of_points; 00130 int clip_boundary_display_flag; 00137 int front_clipping_plane_flag; 00144 int back_clipping_plane_flag; 00151 double extr_x0; 00155 double extr_y0; 00159 double extr_z0; 00163 struct DxfSpatialFilter *next; 00166 } DxfSpatialFilter; 00167 00168 00169 DxfSpatialFilter *dxf_spatial_filter_new (); 00170 DxfSpatialFilter *dxf_spatial_filter_init (DxfSpatialFilter *spatial_filter); 00171 DxfSpatialFilter *dxf_spatial_filter_read (DxfFile *fp, DxfSpatialFilter *spatial_filter); 00172 int dxf_spatial_filter_write (DxfFile *fp, DxfSpatialFilter *spatial_filter); 00173 int dxf_spatial_filter_free (DxfSpatialFilter *spatial_filter); 00174 void dxf_spatial_filter_free_chain (DxfSpatialFilter *spatial_filters); 00175 int dxf_spatial_filter_get_id_code (DxfSpatialFilter *spatial_filter); 00176 DxfSpatialFilter *dxf_spatial_filter_set_id_code (DxfSpatialFilter *spatial_filter, int id_code); 00177 char *dxf_spatial_filter_get_dictionary_owner_soft (DxfSpatialFilter *spatial_filter); 00178 DxfSpatialFilter *dxf_spatial_filter_set_dictionary_owner_soft (DxfSpatialFilter *spatial_filter, char *dictionary_owner_soft); 00179 char *dxf_spatial_filter_get_dictionary_owner_hard (DxfSpatialFilter *spatial_filter); 00180 DxfSpatialFilter *dxf_spatial_filter_set_dictionary_owner_hard (DxfSpatialFilter *spatial_filter, char *dictionary_owner_hard); 00181 DxfPoint *dxf_spatial_filter_get_p0 (DxfSpatialFilter *spatial_filter); 00182 DxfSpatialFilter *dxf_spatial_filter_set_p0 (DxfSpatialFilter *spatial_filter, DxfPoint *p0); 00183 double dxf_spatial_filter_get_x0 (DxfSpatialFilter *spatial_filter); 00184 DxfSpatialFilter *dxf_spatial_filter_set_x0 (DxfSpatialFilter *spatial_filter, double x0); 00185 double dxf_spatial_filter_get_y0 (DxfSpatialFilter *spatial_filter); 00186 DxfSpatialFilter *dxf_spatial_filter_set_y0 (DxfSpatialFilter *spatial_filter, double y0); 00187 DxfPoint *dxf_spatial_filter_get_p0_next (DxfPoint *p0); 00188 DxfPoint *dxf_spatial_filter_set_p0_next (DxfPoint *p0, DxfPoint *next); 00189 DxfPoint *dxf_spatial_filter_get_p1 (DxfSpatialFilter *spatial_filter); 00190 DxfSpatialFilter *dxf_spatial_filter_set_p1 (DxfSpatialFilter *spatial_filter, DxfPoint *p1); 00191 double dxf_spatial_filter_get_x1 (DxfSpatialFilter *spatial_filter); 00192 DxfSpatialFilter *dxf_spatial_filter_set_x1 (DxfSpatialFilter *spatial_filter, double x1); 00193 double dxf_spatial_filter_get_y1 (DxfSpatialFilter *spatial_filter); 00194 DxfSpatialFilter *dxf_spatial_filter_set_y1 (DxfSpatialFilter *spatial_filter, double y1); 00195 double dxf_spatial_filter_get_z1 (DxfSpatialFilter *spatial_filter); 00196 DxfSpatialFilter *dxf_spatial_filter_set_z1 (DxfSpatialFilter *spatial_filter, double z1); 00197 double dxf_spatial_filter_get_front_clipping_plane_distance (DxfSpatialFilter *spatial_filter); 00198 DxfSpatialFilter *dxf_spatial_filter_set_front_clipping_plane_distance (DxfSpatialFilter *spatial_filter, double front_clipping_plane_distance); 00199 double dxf_spatial_filter_get_back_clipping_plane_distance (DxfSpatialFilter *spatial_filter); 00200 DxfSpatialFilter *dxf_spatial_filter_set_back_clipping_plane_distance (DxfSpatialFilter *spatial_filter, double back_clipping_plane_distance); 00201 int dxf_spatial_filter_get_number_of_points (DxfSpatialFilter *spatial_filter); 00202 DxfSpatialFilter *dxf_spatial_filter_set_number_of_points (DxfSpatialFilter *spatial_filter, int number_of_points); 00203 int dxf_spatial_filter_get_clip_boundary_display_flag (DxfSpatialFilter *spatial_filter); 00204 DxfSpatialFilter *dxf_spatial_filter_set_clip_boundary_display_flag (DxfSpatialFilter *spatial_filter, int clip_boundary_display_flag); 00205 int dxf_spatial_filter_get_front_clipping_plane_flag (DxfSpatialFilter *spatial_filter); 00206 DxfSpatialFilter *dxf_spatial_filter_set_front_clipping_plane_flag (DxfSpatialFilter *spatial_filter, int front_clipping_plane_flag); 00207 int dxf_spatial_filter_get_back_clipping_plane_flag (DxfSpatialFilter *spatial_filter); 00208 DxfSpatialFilter *dxf_spatial_filter_set_back_clipping_plane_flag (DxfSpatialFilter *spatial_filter, int back_clipping_plane_flag); 00209 DxfPoint *dxf_spatial_filter_get_extrusion_vector_as_point (DxfSpatialFilter *spatial_filter); 00210 double dxf_spatial_filter_get_extr_x0 (DxfSpatialFilter *spatial_filter); 00211 DxfSpatialFilter *dxf_spatial_filter_set_extr_x0 (DxfSpatialFilter *spatial_filter, double extr_x0); 00212 double dxf_spatial_filter_get_extr_y0 (DxfSpatialFilter *spatial_filter); 00213 DxfSpatialFilter *dxf_spatial_filter_set_extr_y0 (DxfSpatialFilter *spatial_filter, double extr_y0); 00214 double dxf_spatial_filter_get_extr_z0 (DxfSpatialFilter *spatial_filter); 00215 DxfSpatialFilter *dxf_spatial_filter_set_extr_z0 (DxfSpatialFilter *spatial_filter, double extr_z0); 00216 DxfSpatialFilter *dxf_spatial_filter_get_next (DxfSpatialFilter *spatial_filter); 00217 DxfSpatialFilter *dxf_spatial_filter_set_next (DxfSpatialFilter *spatial_filter, DxfSpatialFilter *next); 00218 DxfSpatialFilter *dxf_spatial_filter_get_last (DxfSpatialFilter *spatial_filter); 00219 00220 00221 #ifdef __cplusplus 00222 } 00223 #endif 00224 00225 00226 #endif /* LIBDXF_SRC_SPATIAL_FILTER_H */ 00227 00228 00229 /* EOF */