VSeg class
A VSeg represents a wiring segment for place&route data. It is a 2 vertex vertical path. A VSeg is normally created by the cellView::dbCreateVSeg() function. A VSeg is derived from a dbObj, so it can have properties.
VSeg::setPoints(int32_t x1, int32_t y1, int32_t x2, int32_t y2)
Sets the vertices of the VSeg
int32_t VSeg::left()
Gets the leftmost X coordinate of a VSeg.
int32_t VSeg::right()
Gets the rightmost X coordinate of a VSeg.
int32_t VSeg::bottom()
Gets the lowest Y coordinate of a VSeg.
int32_t VSeg::top()
Gets the highest Y coordinate of a VSeg.
int32_t VSeg::width()
Gets the VSeg width.
VSeg::setStyle(int32_t s)
Sets the VSeg style, i.e. the type of the path end. The style can be one of: 0 - truncate, 1 - round, 2 - extend, 4 - varextend, 8 - octagonal. Python global variables TRUNCATE, ROUND, EXTEND, VAREXTEND, OCTAGONAL are defined to these values.
int32_t VSeg::getStyle()
Gets the VSeg style.
VSeg::setSpecial(bool val)
Sets the VSeg specialNet status
VSeg::isSpecial()
Returns true is the VSeg is a specialNet.
VSeg::setNet(net *n)
Sets the VSeg net.
VSeg::getNet()
Returns the VSeg net.
Rect VSeg::bBox()
Get the bounding box of this VSeg.
dbtype_t VSeg::objType()
Returns the object type of this VSeg as HSEG.
const char * VSeg::objName()
Returns the object name of this VSeg as "HSEG".
int32_t VSeg::nPoints()
Returns the number of points of the VSeg (2).
Point * VSeg::ptlist()
Returns the point list of this VSeg as a C array of Points.
float64_t VSeg::area()
Get the area of this VSeg.
int VSeg::.perimeter()
Get the perimeter of this VSeg.
Point VSeg::origin()
Returns the origin point of a VSeg
VSeg::setOrigin(const Point &p)
Sets the origin of a VSeg.
int32_t VSeg::extent()
Returns the extent, i.e. the length of the VSeg.
VSeg::setExtent(int32_t e)
Sets the extent of the VSeg.
Point VSeg::getFirstVertex()
Gets the first vertex of this VSeg
Point VSeg::getLastVertex()
Gets the last vertex of this VSeg.
bool VSeg::ptInPoly(const Point &p)
Returns true if the Point p is contained in the VSeg or on its edges.
VSeg::Move(cellView dest, Point delta, bool opt = true)
Move this VSeg by distance delta. If opt is true then the database is re-optimised for the new VSeg position. If there are a lot of objects to move it makes sense to turn this off and instead use the cellView update() function after moving them all.
dbObj * VSeg::Copy(cellView *dest, Point delta, int layerNum = -1)
Copy this VSeg to cellView dest, with offset delta. If layer is a positive integer the VSeg will be copied to the new layer number.
dbObj * VSeg::Flatten(cellView *dest, transform trans)
Flatten this VSeg into cellView dest with transformation trans.
int32_t VSeg::getNearestEdge(Point p, segment &edge, bool centreLine=true, bool outLine=true)
Gets the nearest segment edge to the VSeg from the Point p and returns the distance. If centreline is true, the centre line of the VSeg is considered. If outLine is true, the outline edges of the VSeg are considered.
int32_t VSeg::getNearestVertex(Point p, vertex> &vert)
Gets the nearest vertex vert to the VSeg from the Point p and returns the distance.
const char * VSeg::getNetName()
Returns the VSeg net name as a string.
bool VSeg::offGrid(int32_t grid)
Returns true if the VSeg is offgrid.