// -*- C++ -*- namespace OpenChams { /*! \class WirePoint * * This class describes wire point. * A wire point is an abstract object used to define all "direction changing" points of a wire. */ /*! \class InstancePoint * * This class describes a wire point associated to an instance's connector. */ /*! \fn InstancePoint::InstancePoint(Name name, Name connector) * \brief creates a new wire point associated to an instance's connector. * * \param name the name of the instance. * \param connector the name of the connector. */ /*! \fn inline Name InstancePoint::getName() * \brief returns the name of the instance associated to the instancePoint. */ /*! \fn inline Name InstancePoint::getPlug() * \brief returns the name of the connector associated to the instancePoint. */ /*! \class PortPoint * * this class describes a wire point associated to a Port. */ /*! \fn PortPoint::PortPoint(unsigned idx) * \brief creates a new wire point associated to a port. * * \param idx the index of the port associated to the portPoint. * * \note The index of the port is only valid considering the net to which the wire is relative. */ /*! \fn inline unsigned PortPoint::getIndex() * \brief returns the index of the port associated to the portPoint. */ /*! \class IntermediatePoint * * This class describes a wire point defined by its (x,y) coordinates. */ /*! \fn IntermediatePoint::IntermediatePoint(double x, double y) * \brief creates a new wire point based on its (x,y) coordinates. * * \param x the x coordinate. * \param y the y coordinate. */ /*! \fn inline double IntermediatePoint::getX() * \brief returns the x coordinate. */ /*! \fn inline double IntermediatePoint::getY() * \brief returns the y coordinate. */ /*! \class Wire * * This class describes wire. * * A wire is used by schematic to the connections between instances. * It is defined by: * - a start point (InstancePoint or PortPoint), * - a end point (InstancePoint or PortPoint), * - a list of IntermediatePoint, this list may be empty. * * \note Althought the Wire object is related to Schematic, it is handled by Net object since a wire is always associated to a Net. */ /*! \fn Wire::Wire() * \brief creates a new wire. */ /*! \fn inline WirePoint* Wire::getStartPoint() * \brief returns the start point of the wire. */ /*! \fn inline WirePoint* Wire::getEndPoint() * \brief returns the end point of the wire. */ /*! \fn inline bool Wire::hasNoIntermediatePoints() * \brief returns true if the wire has no IntermediatePoint. */ /*! \fn inline const std::vector& Wire::getIntermediatePoints() * \brief returns the list of wire's IntermediatePoint. */ /*! \fn void Wire::setStartPoint(Name name, Name connector) * \brief sets the wire's start point as an InstancePoint. * * \param name the name of the instance associated to the InstancePoint. * \param connector the name of the connector associated to the InstancePoint. */ /*! \fn void Wire::setStartPoint(unsigned idx) * \brief sets the wire's start point as a PortPoint. * * \param idx the index of the port associated to the PortPoint. */ /*! \fn void Wire::setEndPoint(Name name, Name connector) * \brief sets the wire's end point as an InstancePoint. * * \param name the name of the instance associated to the InstancePoint. * \param connector the name of the connector associated to the InstancePoint. */ /*! \fn void Wire::setEndPoint(unsigned idx) * \brief sets the wire's end point as a PortPoint. * * \param idx the index of the port associated to the PortPoint. */ /*! \fn void Wire::addIntermediatePoint(double x, double y) * \brief adds an IntermediatePoint to the wire. * * \param x the x coordinate of the IntermediatePoint. * \param y the y coordinate of the IntermediatePoint. */ }