Glade Reference


lpp (formerly dbLpp)

A lpp object forms a layer-purpose pair. It manages objects in a tree structure for fast spatial searching.

 

lpp::lpp(cellView *cv)

Constructs a lpp object with master cellView cv.

lpp::lpp(int32_t size, cellView *cv)

Constructs a lpp object with master cellView cv, with expected size of size.

 

lpp::layerName(const char *name)

Sets the layer name of the lpp.

 

const char * lpp::layerName()

Gets the lpp's layer name.

 

lpp::purpose(const char *name)

Sets the purpose name of the lpp.

 

const char * lpp::purpose()

Gets the lpp's purpose name.

 

lpp::layerNum(int16_t layerNum)

Sets the layer number of the lpp.

 

int16_t lpp::layerNum()

Gets the lpp's layer number.

 

int32_t lpp::numShapes()

Gets the number of shapes in this lpp.

 

cellView * lpp::cv()

Get the cellView for this lpp.

 

Rect lpp::bBox()

Get the bounding box of all shapes in this lpp.

 

lpp::bBox(Rect box)

Set the bounding box of the lpp.

 

lpp::optimiseTree()

Optimise the lpp. Must be carried out after adding objects.

 

lpp::updateTree(dbObj *obj)

Update the lpp for an object

 

int32_t size = lpp::size()

Gets the size (number of items) of the lpp

 

dbObjList<dbObj> * lpp::getOverlaps (Rect searchRect, int32_t filterSize=0)

Search the lpp for shapes overlapping the search rectangle searchRect. If filterSize is non-zero, only shapes with a width and height greater than filterSize are reported.Note this function creates a new list, and therefore it is better to use the following two functions:

 

list = lpp::getOverlaps_py (Rect searchRect, int32_t filterSize=0)

As above, but returns a Python list.

 

lpp::getOverlaps (dbObjList<dbObj> *list, Rect searchRect, int32_t filterSize=0)

As getOverlaps, but shapes are appended to the existing list.

 

Iterator

An iterator to allow traversing the objects in the lpp using Python.

 

iter objIterator(lpp *lp)

Initialises the dbObj iterator iter for the lpp lp. For example:

          iter = objIterator(lpp)
          while not iter.end() :
            obj = iter.value()
            type = obj.objType()
            print("object type = ", type)
            iter.next()
      

dbObj * iter.value()

Returns the current iterator value.

 

iter.next()

Advances the iterator to the next dbObj.

 

<

bool iter.end()

Returns false if there are more objects, else returns true if there are no more.

 

 

Contents|Index

Copyright © Peardrop Design 2023.