Placed Connection. More...

#include <rgeoinfoconnection.h>

Inheritance diagram for RGeoInfoConnection:
[legend]
Collaboration diagram for RGeoInfoConnection:
[legend]

Public Member Functions

 RGeoInfoConnection (RLayout *layout, RConnection *con)
 
void UnComplete (void)
 
int Compare (const RGeoInfoConnection &c) const
 
RConnectionGetConnection (void) const
 
tCoord ComputeMinDist (RLayout *layout)
 
tCoord GetDist (RLayout *layout, RGeoInfo *info, const RPoint &pos=RPoint::Null)
 
bool IsIn (const RGeoInfo *info)
 
bool IsIn (const RObj2DConfigConnector *con)
 
bool IsIn (const RObj2DConfigPin *pin)
 
RCursor< RGeoInfoPinGetPins (void) const
 

Private Member Functions

bool MinObjPlaced (RLayout *layout)
 
- Private Member Functions inherited from RContainer< RGeoInfoPin, true, true >
 RContainer (size_t m, size_t i=0)
 
 RContainer (const RContainer< RGeoInfoPin, true, true > &src)
 
 RContainer (const RContainer< RGeoInfoPin, false, true > &src)
 
int Compare (const RContainer< RGeoInfoPin, true, true > &) const
 
size_t GetNb (void) const
 
size_t GetMaxPos (void) const
 
size_t GetMaxNb (void) const
 
size_t GetIncNb (void) const
 
bool VerifyIndex (size_t idx) const
 
void VerifyTab (size_t max=0)
 
void Clear (size_t m=0, size_t i=0, bool force=false)
 
void ReOrder (int sortOrder(const void *, const void *), size_t min, size_t max)
 
void ReOrder (int sortOrder(const void *, const void *))
 
void ReOrder (void)
 
void Exchange (size_t pos1, size_t pos2)
 
void Shift (size_t idx, bool reverse)
 
void Transfer (RContainer< RGeoInfoPin, a, o > &src)
 
RContaineroperator= (const RContainer< RGeoInfoPin, true, true > &src)
 
RContaineroperator= (const RContainer< RGeoInfoPin, false, true > &src)
 
void Copy (const RContainer< RGeoInfoPin, a, true > &src)
 
RContaineroperator+= (const RContainer< RGeoInfoPin, a, o > &src)
 
size_t GetIndex (const TUse &tag, bool &find, size_t min=0, size_t max=0) const
 
bool IsIn (const TUse &tag, bool sortkey, size_t min=0, size_t max=0) const
 
bool IsIn (const TUse &tag, size_t min=0, size_t max=0) const
 
const RGeoInfoPinoperator[] (size_t idx) const
 
RGeoInfoPinoperator[] (size_t idx)
 
const RGeoInfoPinGetPtrAt (size_t idx) const
 
RGeoInfoPinGetPtrAt (size_t idx)
 
RGeoInfoPinGetPtr (const TUse &tag, bool sortkey, size_t min=0, size_t max=0) const
 
RGeoInfoPinGetPtr (const TUse &tag, size_t min=0, size_t max=0) const
 
RGeoInfoPinGetInsertPtr (const TUse &tag, bool sortkey, size_t min=0, size_t max=0)
 
RGeoInfoPinGetInsertPtr (const TUse &tag, size_t min=0, size_t max=0)
 
RGeoInfoPinGetInsertPtrAt (const TUse &tag, size_t pos)
 
RContainer< RGeoInfoPin, false,
true > * 
GetPtrs (const TUse &tag, size_t min=0, size_t max=0) const
 
size_t GetTab (const void **tab, size_t min=0, size_t max=0) const
 
size_t GetTab (void **tab, size_t min=0, size_t max=0)
 
size_t GetTab (const RGeoInfoPin **tab, size_t min=0, size_t max=0) const
 
size_t GetTab (RGeoInfoPin **tab, size_t min=0, size_t max=0)
 
void InsertPtrAt (RGeoInfoPin *ins, size_t pos, bool del)
 
void InsertPtrAt (RGeoInfoPin *ins, size_t pos)
 
void InsertPtr (RGeoInfoPin *ins, bool del=false, size_t min=0, size_t max=0)
 
void DeletePtrAt (size_t pos, bool shift, bool del)
 
void DeletePtrAt (size_t pos, bool shift)
 
void DeletePtrAt (size_t pos)
 
void DeletePtr (const TUse &tag, bool sortkey, bool del, size_t min=0, size_t max=0)
 
void DeletePtr (const TUse &tag, bool sortkey, size_t min=0, size_t max=0)
 
void DeletePtr (const TUse &tag, size_t min=0, size_t max=0)
 
void Inter (const iRContainer< RGeoInfoPin > &src1, const iRContainer< RGeoInfoPin > &src2)
 
void Union (const iRContainer< RGeoInfoPin > &src1, const iRContainer< RGeoInfoPin > &src2)
 
virtual ~RContainer (void)
 
- Private Member Functions inherited from iRContainer< C >
size_t GetNb (void) const
 
size_t GetMaxPos (void) const
 
size_t GetMaxNb (void) const
 
size_t GetIncNb (void) const
 
bool VerifyIndex (size_t idx) const
 
void VerifyTab (size_t max=0)
 
void Clear (size_t m=0, size_t i=0, bool force=false)
 
void ReOrder (int sortOrder(const void *, const void *), size_t min, size_t max)
 
void ReOrder (int sortOrder(const void *, const void *))
 
void ReOrder (void)
 
void Exchange (size_t pos1, size_t pos2)
 
void Shift (size_t idx, bool reverse)
 
void Transfer (iRContainer< C > &src)
 
iRContaineroperator= (const iRContainer< C > &src)
 
void Copy (const iRContainer< C > &src)
 
iRContaineroperator+= (const iRContainer< C > &src)
 
size_t GetIndex (bool order, const TUse &tag, bool &find, size_t min=0, size_t max=0) const
 
size_t GetIndex (const TUse &tag, bool &find, size_t min=0, size_t max=0) const
 
bool IsIn (const TUse &tag, bool sortkey, size_t min=0, size_t max=0) const
 
bool IsIn (const TUse &tag, size_t min=0, size_t max=0) const
 
const C * operator[] (size_t idx) const
 
C * operator[] (size_t idx)
 
const C * GetPtrAt (size_t idx) const
 
C * GetPtrAt (size_t idx)
 
C * GetPtr (const TUse &tag, bool sortkey, size_t min=0, size_t max=0) const
 
C * GetPtr (const TUse &tag, size_t min=0, size_t max=0) const
 
C * GetInsertPtr (const TUse &tag, bool sortkey, size_t min=0, size_t max=0)
 
C * GetInsertPtr (const TUse &tag, size_t min=0, size_t max=0)
 
C * GetInsertPtrAt (const TUse &tag, size_t pos)
 
size_t GetTab (const void **tab, size_t min=0, size_t max=0) const
 
size_t GetTab (void **tab, size_t min=0, size_t max=0)
 
size_t GetTab (const C **tab, size_t min=0, size_t max=0) const
 
size_t GetTab (C **tab, size_t min=0, size_t max=0)
 
void InsertPtrAt (C *ins, size_t pos, bool del)
 
void InsertPtrAt (C *ins, size_t pos)
 
void InsertPtr (C *ins, bool del=false, size_t min=0, size_t max=0)
 
void DeletePtrAt (size_t pos, bool shift, bool del)
 
void DeletePtrAt (size_t pos, bool shift)
 
void DeletePtrAt (size_t pos)
 
void DeletePtr (const TUse &tag, bool sortkey, bool del, size_t min=0, size_t max=0)
 
void DeletePtr (const TUse &tag, bool sortkey, size_t min=0, size_t max=0)
 
void DeletePtr (const TUse &tag, size_t min=0, size_t max=0)
 
void Inter (const iRContainer< C > &src1, const iRContainer< C > &src2)
 
void Union (const iRContainer< C > &src1, const iRContainer< C > &src2)
 
virtual ~iRContainer (void)
 
void Create (const iRContainer< C > &src)
 
iRContainerNormalCopy (const iRContainer< C > &src)
 
void DeepCopy (const iRContainer< C > &src)
 
iRContainerAdd (const iRContainer< C > &src)
 

Private Attributes

RConnectionCon
 
RLayoutLayout
 
bool Complete
 
tCoord Dist
 
- Private Attributes inherited from iRContainer< C >
C ** Tab
 
size_t NbPtr
 
size_t MaxPtr
 
size_t LastPtr
 
size_t IncPtr
 

Additional Inherited Members

- Static Private Member Functions inherited from RContainer< RGeoInfoPin, true, true >
static int SortOrder (const void *a, const void *b)
 
- Static Private Member Functions inherited from iRContainer< C >
static int SortOrder (const void *a, const void *b)
 

Detailed Description

Placed Connection.

The RGeoInfoConnection class provides a representation for a connection placed.

Constructor & Destructor Documentation

RGeoInfoConnection ( RLayout layout,
RConnection con 
)

Construct a connection.

Parameters
layoutLayout.
conOriginal connection.

Member Function Documentation

void UnComplete ( void  )

Make this connection uncompleted.

int Compare ( const RGeoInfoConnection c) const

This function compares two connections returns 0 if there are the same.

Parameters
cConnection used for the comparison.
RConnection* GetConnection ( void  ) const
Returns
the corresponding connection.
bool MinObjPlaced ( RLayout layout)
private

Verify that at least two objects of the connection are placed.

Parameters
layoutLayout.
tCoord ComputeMinDist ( RLayout layout)

Compute the distance of the connection for a given set of geometric information. In practice, a graph is build and the minimum spanning tree is computed. The method manages uncompleted connections (for which all involved connectors are not placed).

Parameters
layoutLayout.
Returns
The "minimal" distance of the connection.
tCoord GetDist ( RLayout layout,
RGeoInfo info,
const RPoint pos = RPoint::Null 
)

Compute the distance of the connection involving a given object. Eventually, the object is considered to be placed at a given position.

Parameters
layoutLayout.
infoThe geometric information to place.
posPosition where to placed the geometric information (if RPoint::Null, considered it as already placed).
Returns
the computed distance.
bool IsIn ( const RGeoInfo info)

Test if a a geometric information is in the connection.

Parameters
infoGeometric information. Return bool.
bool IsIn ( const RObj2DConfigConnector con)

Test if a connector is in the connection.

Parameters
conConnector.
Returns
bool.
bool IsIn ( const RObj2DConfigPin pin)

Test if a pin is in the connection.

Parameters
pinPin.
Returns
bool.
RCursor<RGeoInfoPin> GetPins ( void  ) const
Returns
a cursor over the pins.

Member Data Documentation

RConnection* Con
private

The connection involved.

RLayout* Layout
private

Corresponding placement.

bool Complete
private

Complete connection.

tCoord Dist
private

Actual total distance.