pcb 4.1.1
An interactive printed circuit board layout editor.

mtspace.h

Go to the documentation of this file.
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 */