PCB Environment 2
Loading...
Searching...
No Matches
Connection Class Reference

Public Member Functions

Connectionclone (CloneEnv &) const
 Connection (Net *, const Point_25 &source, Pin *sourcePin, const Point_25 &target, Pin *targetPin)
 Connection (const Connection &, const Point_25 &source, const Point_25 &target)
void setId (int id)
int id () const
std::string name () const
bool hasNet () const
Netnet () const
const Point_25source () const
const Point_25target () const
PinsourcePin () const
PintargetPin () const
PinotherPin (const Pin *) const
ComponentsourceComponent () const
ComponenttargetComponent () const
Vector_2 vector2 () const
Segment_2 segment2 () const
void detachSourcePin ()
void detachTargetPin ()
void forceEndpointsToGrid (const UniformGrid25 &)
bool hasTracks () const
uint numTracks () const
const std::vector< Track * > & getTracks () const
TrackgetTrack (uint i) const
TrackgetTrackAt (const Point_25 &) const
TracknewTrack (const Point_25 &start)
TrackpopTrack (uint index)
void clearTracks ()
bool isRouted () const
bool _isRouted () const
void setRouted (bool b)
bool checkRouted ()
void forceRouted ()
bool isLocked () const
void setLocked (bool b)
void setTrack (Track *)
void setTrack (Track &&)
void setTrack (const Track &)
void appendTrack (Track *T)
void appendTrack (const Track &T)
void reverse ()
void makeDirectTrack45 (Real minSquaredLen, uint viaLocation, float bendLocation)
void makeDirectTrack (Real minSquaredLen, uint viaLocation)
bool updateForRemovedLayers (uint removedZMin, uint removedZMax)
std::vector< std::pair< Point_25, Point_25 > > getRatsNest () const
bool arePinsOnNet (const Net *) const
Real clearance () const
Real defaultWidth () const
Real defaultViaDiameter () const
Real defaultViaRadius () const
void setClearance (Real c)
void setDefaultWidth (float w)
void setDefaultViaDiameter (Real d)
bool canRouteOnLayer (uint n) const
uint32_t getLayerMask () const
void setLayerMask (uint32_t)
void setParametersFrom (const Connection &)
float referenceLen () const
void setReferenceLen (float v)
Bbox_2 tracksBbox () const
Bbox_2 bbox () const
Bbox_2 bboxAroundComps () const
Real squared_distance () const
Real distance () const
Real distance45 () const
bool isOrderedXMajor () const
uint numNecessaryVias () const
bool intersects (const Connection &) const
bool isRasterized_allOrNone () const
bool checkRasterization (const NavGrid &) const
void setColor (Color c)
Color getColor () const
std::string str () const
PyObject * getEndsPy () const
PyObject * getTracksPy (bool asNumpy) const
PyObject * getPy (uint depth, bool asNumpy) const

Static Public Member Functions

template<class Container>
static void sort_name (Container &)

Member Function Documentation

◆ appendTrack()

void Connection::appendTrack ( Track * T)

Append the track to this connection. WARNING: The pointer may no longer be valid after this call!

◆ arePinsOnNet()

bool Connection::arePinsOnNet ( const Net * ) const

sanity

◆ checkRasterization()

bool Connection::checkRasterization ( const NavGrid & ) const

Check whether the endpoints' grid points are marked as having tracks.

◆ forceRouted()

void Connection::forceRouted ( )

Force the connection's track's endpoints to the connection endpoints.

◆ getEndsPy()

PyObject * Connection::getEndsPy ( ) const

A tuple (source, target) where source and target are pin names or, if there is no pin, coordinates (x,y,z).

◆ getPy()

PyObject * Connection::getPy ( uint depth,
bool asNumpy ) const

see pcb.schema.json

◆ getRatsNest()

std::vector< std::pair< Point_25, Point_25 > > Connection::getRatsNest ( ) const

Returns a set of pairs of disconnected track endpoints such that each point occurs exactly once. Points are paired in order from lowest to highest pair distance over all possible pairings.

◆ getTracksPy()

PyObject * Connection::getTracksPy ( bool asNumpy) const

A list of tracks as per Track::getPy(asNumpy).

◆ intersects()

bool Connection::intersects ( const Connection & ) const

Returns whether this connection's tracks come within the maximum of the default clearances of each other. If a connection has no tracks, the rat's nest line (this->segment2()) is used instead.

◆ isOrderedXMajor()

bool Connection::isOrderedXMajor ( ) const

source.x <= target.x etc.

◆ isRasterized_allOrNone()

bool Connection::isRasterized_allOrNone ( ) const

Check whether the connection's tracks are marked as rasterized.

Exceptions
std::runtime_errorIf the tracks' status is inconsistent.

◆ makeDirectTrack45()

void Connection::makeDirectTrack45 ( Real minSquaredLen,
uint viaLocation,
float bendLocation )

Create the most direct track for this connection without considering obstacles. The connection will have up to 2 intermediate points (source –, / start, / end, – target).

Parameters
minSquaredLenDon't create segments shorter than this.
viaLocationThe index of the point where to put the via.
bendLocation0 to start with the 45° segment, 1 to start with the 0°/90° one, values in between for 3 segments.

◆ numNecessaryVias()

uint Connection::numNecessaryVias ( ) const

0 if the layers of the endpoints or pins overlap, 1 otherwise

◆ reverse()

void Connection::reverse ( )

Reverse the endpoints and the tracks.

◆ setColor()

void Connection::setColor ( Color c)
inline

use Color::TRANSPARENT to use net's color

◆ setTrack()

void Connection::setTrack ( Track * )

Replace all tracks with the one provided. The track is either added by reference, moved, or copied.

◆ updateForRemovedLayers()

bool Connection::updateForRemovedLayers ( uint removedZMin,
uint removedZMax )

Adjust the connection after removing a range of layers. Pins must be adjusted first! If and endpoint's layer is removed and there is no pin, this will return false and the connection will become invalid. Tracks with segments on the removed layers will be deleted entirely.


The documentation for this class was generated from the following file: