Index: trunk/doc/developer/import.html =================================================================== --- trunk/doc/developer/import.html (revision 15425) +++ trunk/doc/developer/import.html (revision 15426) @@ -9,25 +9,25 @@

Data structures

-The board is stored in PCBType *. Some import code, like the one +The board is stored in pcb_board_t *. Some import code, like the one that loads a design (an io plugin's ->parse_pcb function), gets the target in an argument. (Other, non-import code usually operate on the global variable that represents the current board: -PCBType *PCB.). +pcb_board_t *PCB.).

-In either case, PCBType's most important field is PCBDataType *data, +In either case, pcb_board_t's most important field is pcb_data_t *data, which holds lists and vectors to store all objects on the board. When the target is a buffer (e.g. io plugin's ->parse_element function), it's -a DataType *buf which also have a PCBDataType *data containing +a pcb_buffer_t *buf which also have a pcb_data_t *data containing the same data a board could.

-A PCBDataType struct in turn has three sets of important fields: +A pcb_data_t struct in turn has three sets of important fields:

-Each layer is a LayerType structure. A layer has the following fields: +Each layer is a pcb_layer_t structure. A layer has the following fields:

-Any code that needs to create objects should use the functions in create.[ch]. +Any code that needs to create objects should use the functions in obj_*.h. The functions that operate layer-independently usually get a destination as -PCBDataType, so they can operate both on boards and buffers. A typical -example is PinTypePtr CreateNewVia(DataTypePtr Data, ...) that returns +pcb_data_t, so they can operate both on boards and buffers. A typical +example is pcb_pstk_t *pcb_pstk_new(pcb_data_t *data, ...) that returns NULL or the pointer to the new via that is already added to the corresponding list -of Data and in the rtree. +of data and in the rtree.

-Layer object creation is done referencing the layer as LayerType *. A -typical example is LineTypePtr CreateDrawnLineOnLayer(LayerTypePtr Layer, ...) +Layer object creation is done referencing the layer as pcb_layer_t *. A +typical example is pcb_line_t *pcb_line_new(pcb_layer_t *layer...) which returns NULL on error or a pointer to the new line object created (inserted in the layer's line list, added to the rtree).

@@ -52,7 +52,7 @@
Figure 1. simplified map of object related data structures
-diamond: variable; rectangle: struct; round: struct field +diamond: variable; rectangle: struct; round: struct field; green: drawing primitive