pcb 4.1.1
An interactive printed circuit board layout editor.
|
00001 00045 #ifndef PCB_MTSPACE_H 00046 #define PCB_MTSPACE_H 00047 00048 #include "global.h" 00049 #include "vector.h" /* for vector_t in mtspace_query_rect prototype */ 00050 00051 typedef struct mtspace mtspace_t; 00052 typedef enum 00053 { FIXED, ODD, EVEN } mtspace_type_t; 00054 typedef struct vetting vetting_t; 00055 00056 mtspace_t *mtspace_create (void); 00057 void mtspace_destroy (mtspace_t ** mtspacep); 00058 00059 /* -- mutation -- */ 00060 00061 void mtspace_add (mtspace_t * mtspace, 00062 const BoxType * box, mtspace_type_t which, Coord 00063 keepaway); 00064 void mtspace_remove (mtspace_t * mtspace, 00065 const BoxType * box, mtspace_type_t which, 00066 Coord keepaway); 00067 00068 00069 vetting_t *mtspace_query_rect (mtspace_t * mtspace, const BoxType * region, 00070 Coord radius, Coord keepaway, 00071 vetting_t * work, 00072 vector_t * free_space_vec, 00073 vector_t * lo_conflict_space_vec, 00074 vector_t * hi_conflict_space_vec, 00075 bool is_odd, bool with_conflicts, 00076 CheapPointType *desired); 00077 00078 void mtsFreeWork (vetting_t **); 00079 int mtsBoxCount (vetting_t *); 00080 00081 #endif /* ! PCB_MTSPACE_H */