diff --git a/hurricane/doc/analog/latex/refman.tex b/hurricane/doc/analog/latex/refman.tex
index 9cf74d7f..5370cb78 100644
--- a/hurricane/doc/analog/latex/refman.tex
+++ b/hurricane/doc/analog/latex/refman.tex
@@ -34,7 +34,7 @@
\vspace*{1cm}
{\large Generated by Doxygen 1.8.14}\\
\vspace*{0.5cm}
- {\small Mon Apr 27 2020 11:34:57}\\
+ {\small Tue Jul 21 2020 11:06:16}\\
\end{center}
\end{titlepage}
diff --git a/hurricane/doc/hurricane/PhysicalRule.dox b/hurricane/doc/hurricane/PhysicalRule.dox
new file mode 100644
index 00000000..42ef6428
--- /dev/null
+++ b/hurricane/doc/hurricane/PhysicalRule.dox
@@ -0,0 +1,84 @@
+
+// -*- C++ -*-
+
+
+namespace Hurricane {
+
+//! \class PhysicalRule
+//! \brief Define a rule for the technology (\b API).
+//!
+//! \section sPhysicalRuleIntro Introduction
+//!
+//! The constructor of Physical rule is not directly accessible,
+//! as thoses objects must be created only through the
+//! Technology class \c API (to be stored in the relevant
+//! tables).
+//!
+//! PhysicalRule is a "one size fit class". As there will
+//! be only a small number of objects created (compare to other
+//! kinds) we choose to implement all variant in one class instead
+//! of creating a flock of derived classes and all the assorted
+//! paraphernalia. As a consequence, not all fields will be used
+//! at the same time, they are mutually exclusive.
+
+//! \function bool PhysicalRule::isSymmetric () const;
+//! Tells if the rule is symmetric.
+
+//! \function bool PhysicalRule::isDbU () const;
+//! Tells if the rule uses physical lengths, with multiple steps
+//! or not.
+
+//! \function bool PhysicalRule::isDouble () const;
+//! Tells if the rule describe non-length values (Volts, Ohms, Henry,
+//! Celsius, ...).
+
+//! \function bool PhysicalRule::hasSteps () const;
+//! Tells if the rule has more than one step, that is, is not uniform
+//! for all length.
+
+//! \function void PhysicalRule::setSymmetric ( bool state );
+//! Set the symmetric state of the rule. This used only for rules
+//! bound to two layers.
+
+//! \function void PhysicalRule::addValue ( double value );
+//! Set the \c double value of a rule.
+
+//! \function double PhysicalRule::getDoubleValue () const;
+//! \return The \c double value of the rule.
+
+//! \function double PhysicalRule::getValue ( DbU::Unit length=0, bool hDir=true ) const;
+//! \param length The length for which we want the rule's value.
+//! \param hDir In case of non-isotropic rule, which dimension
+//! do we want.
+//! \return The rule's value for the given length. If no parameter is supplied,
+//! then, the X value of the first step is returned.
+
+//! \function void PhysicalRule::addValue ( DbU::Unit value, DbU::Unit maxLength );
+//! \param value The \e value of the step to add.
+//! \param maxLength The length up to which the rule is valid.
+//! passing zero as this argument means always valid.
+//!
+//! Adds a new stepping value to the rule. If the rules never
+//! change, give a \c maxLength of zero and only call this function
+//! once on the rule. The rule is isotropic in X and Y.
+//!
+//! This function can be called multiple time on a rule, each call
+//! will add a new step. Steps are defined and ordered according to
+//! \c maxLength.
+
+//! \function void PhysicalRule::addValue ( DbU::Unit hvalue, DbU::Unit vvalue, DbU::Unit maxLength );
+//! \param hvalue The horizontal \e value of the step to add.
+//! \param vvalue The vertical \e value of the step to add.
+//! \param maxLength The length up to which the rule is valid.
+//! passing zero as this argument means always valid.
+//!
+//! Adds a new stepping value to the rule. If the rules never
+//! change, give a \c maxLength of zero and only call this function
+//! once on the rule. The rule is \b not isotropic, it defines a
+//! different value for X and Y.
+//!
+//! This function can be called multiple time on a rule, each call
+//! will add a new step. Steps are defined and ordered according to
+//! \c maxLength.
+
+}
diff --git a/hurricane/doc/hurricane/SoC.css b/hurricane/doc/hurricane/SoC.css
index 44bae898..a610f444 100644
--- a/hurricane/doc/hurricane/SoC.css
+++ b/hurricane/doc/hurricane/SoC.css
@@ -610,6 +610,16 @@
margin-right: 5%
}
+ div.fragment a.code:link,
+ div.fragment a.code:visited,
+ div.fragment a.codeRef:link,
+ div.fragment a.codeRef:visited {
+ text-decoration: none;
+ font-weight: bold;
+ color: black;
+ border: none;
+ }
+
div.line {
white-space: pre;
padding: 0pt;
diff --git a/hurricane/doc/hurricane/Technology.dox b/hurricane/doc/hurricane/Technology.dox
index 0a361689..3b85c631 100644
--- a/hurricane/doc/hurricane/Technology.dox
+++ b/hurricane/doc/hurricane/Technology.dox
@@ -6,24 +6,77 @@
/*! \class Technology
* \brief Technological rules description (\b API).
- *
+ *
* \section sTechnologyIntro Introduction
- *
+ *
* The Technology object provides the description of all the technology
- * rules needed by the tools, currently it is limited to the description
- * of all layers available. This object must be created once within the
+ * rules needed by the tools, currently it contains:
+ *
+ * - The layers, roughly from bottom (i.e. closest to the subtsrate)
+ * to top. Layers can be basic, that is, match a real physical layer,
+ * or composite, like for VIAs in symbolic for macro-generation.
+ * It also provides a connexity table between layers.
+ * - Three sets of rules describing the technology rules (formerly the
+ * \c DTR in Alliance).
+ * -# Zero Layer: rules not associated to any layer.
+ * -# One Layer: rules associated to one layer.
+ * -# Two Layers: rules associated to two layer.
+ *
+ * This object must be created once within the
* DataBase, and, in principle never destroyed (this would destroy layers
* and all objects laying on them ...).
+ *
+ * Here
*
* \remark There is only one technology for the current DataBase, and only one
* Database object, so only one technology defined.
+ *
+ * \section sTechnologyRules Using PhysicalRules
+ *
+ * How to create a simple one layer rule, setup the minimal width
+ * of \c metal1 layer to 0.5µm.
+ *
+\code
+tech = DataBase::getDB()->getTechnology();
+PhysicalRule* rule = tech->addPhysicalRule( "minWidth", "metal1" );
+rule->addValue( DbU::fromPhysical( 0.5, DbU::UnitPower::Micro ), 0 );
+\endcode
+ *
+ * How to create a one layer rule, with multiple steps.
+ * The minimal spacing of \c metal1 layer which will depend
+ * on the wire length. The spacing will be of 2µm for length
+ * below 50µm and 4µm above.
+ *
+\code
+tech = DataBase::getDB()->getTechnology();
+PhysicalRule* rule = tech->addPhysicalRule( "minWidth", "metal1" );
+rule->addValue( DbU::fromPhysical( 2.0, DbU::UnitPower::Micro )
+ , DbU::fromPhysical( 50.0, DbU::UnitPower::Micro ) );
+rule->addValue( DbU::fromPhysical( 4.0, DbU::UnitPower::Micro )
+ , DbU::fromPhysical( 1000.0, DbU::UnitPower::Micro ) );
+\endcode
+ *
+ * How to create a two layers rule, with non-isomorphic values.
+ * The minimum enclosure of \c metal1 layer over \c cut1 will be
+ * 1µm in horizontal direction and 0.5µm in vertical.
+ * The order of layers is significant in the function call, it
+ * must be read as "The encolusre of metal1 over cut1".
+ *
+\code
+tech = DataBase::getDB()->getTechnology();
+PhysicalRule* rule = tech->addPhysicalRule( "minWidth", "metal1", "cut1" );
+rule->addValue( DbU::fromPhysical( 1.0, DbU::UnitPower::Micro )
+ , DbU::fromPhysical( 0.5, DbU::UnitPower::Micro )
+ , 0 );
+\endcode
+ */
*/
/*! \function Technology* Technology::create ( DataBase* dataBase, const Name& name );
* \Return a newly created technology named \c \ for the data base \c \.
*
- * \caution Throws an exception if the \c dataBase is \NULL, if the name is empty or if
+ * \warning Throws an exception if the \c dataBase is \NULL, if the name is empty or if
* the \c dataBase has already a technology.
*/
@@ -142,4 +195,73 @@
* Returns \true on success (the layer exists).
*/
+ //! \function PhysicalRule* Technology::getUnitRule ( std::string ruleName ) const;
+ //! \param ruleName The name of the rule
+ //!
+ //! \Return The matching rule in the table of unit rules.
+
+ //! \function PhysicalRule* Technology::getPhysicalRule ( std::string ruleName, std::string layerName ) const;
+ //! \param ruleName The name of the rule
+ //! \param layerName The name of the layer
+ //!
+ //! \Return The matching rule in the table of one layer rules.
+
+ //! \function PhysicalRule* Technology::getPhysicalRule ( std::string ruleName, std::string layer1Name, std::string layer2Name ) const;
+ //! \param ruleName The name of the rule
+ //! \param layer1Name The name of the first layer
+ //! \param layer2Name The name of the second layer
+ //!
+ //! \Return The matching rule in the table of two layers rules.
+ //! The order of layers arguments is meaningful and should match
+ //! The one used at rule creation.
+
+ //! \function PhysicalRule* Technology::addUnitRule ( const std::string& ruleName, const std::string& reference );
+ //! \param ruleName The name of the rule
+ //! \param reference A free comentary string for further reference.
+ //!
+ //! \Return The newly added rule.
+ //!
+ //! Create and add to Technology a rule whithout associated layer.
+ //! The rule should contain a value which is anything but a length
+ //! (Volt, Henry, Ohm, ...)
+ //! The rule is created empty. For a detailed explanation see
+ //! PhysicalRule.
+
+ //! \function PhysicalRule* Technology::addPhysicalRule ( std::string ruleName, std::string reference );
+ //! \param ruleName The name of the rule
+ //! \param reference A free comentary string for further reference.
+ //!
+ //! \Return The newly added rule.
+ //!
+ //! Create and add to Technology a rule whithout associated layer.
+ //! The rule should contain only length value(s) (so DbU::Unit).
+ //! The rule is created empty. For a detailed explanation see
+ //! PhysicalRule.
+
+ //! \function PhysicalRule* Technology::addPhysicalRule ( std::string ruleName, std::string layerName, std::string reference );
+ //! \param ruleName The name of the rule
+ //! \param layerName The one layer associated to the rule.
+ //! \param reference A free comentary string for further reference.
+ //!
+ //! \Return The newly added rule.
+ //!
+ //! Create and add to Technology a rule associated to \b one layer.
+ //! The rule should contain only length value(s) (so DbU::Unit).
+ //! The rule is created empty. For a detailed explanation see
+ //! PhysicalRule.
+
+ //! \function PhysicalRule* Technology::addPhysicalRule ( std::string ruleName, std::string layer1Name, std::string layer2Name, std::string reference );
+ //! \param ruleName The name of the rule
+ //! \param layer1Name First layer associated to the rule.
+ //! \param layer2Name First layer associated to the rule.
+ //! \param reference A free comentary string for further reference.
+ //!
+ //! \Return The newly added rule.
+ //!
+ //! Create and add to Technology a rule associated to \b two layers.
+ //! The order of layers is meaningful in case of an asymmetric rule.
+ //! The rule should contain only length value(s) (so DbU::Unit).
+ //! The rule is created empty. For a detailed explanation see
+ //! PhysicalRule.
+
}
diff --git a/hurricane/doc/hurricane/doxyfile b/hurricane/doc/hurricane/doxyfile
index 1b5eabe2..be8c913f 100644
--- a/hurricane/doc/hurricane/doxyfile
+++ b/hurricane/doc/hurricane/doxyfile
@@ -183,8 +183,7 @@ TAB_SIZE = 2
ALIASES = "function=\fn " \
"important=\par Important:\n " \
- "caution=\par Caution:\n " \
- "remark=\par Remark:\n " \
+ "caution=\par Caution: " \
"sample=\par Sample:\n " \
"Return=Returns: " \
"unsigned=\c unsigned " \
@@ -642,6 +641,8 @@ INPUT = Generalities.dox \
DBo.dox \
../../src/hurricane/hurricane/DataBase.h \
DataBase.dox \
+ ../../src/hurricane/hurricane/PhysicalRule.h \
+ PhysicalRule.dox \
../../src/hurricane/hurricane/Technology.h \
Technology.dox \
../../src/hurricane/hurricane/Layers.h \
diff --git a/hurricane/doc/hurricane/doxygen.warn.log b/hurricane/doc/hurricane/doxygen.warn.log
index f98555ad..a32c41e7 100644
--- a/hurricane/doc/hurricane/doxygen.warn.log
+++ b/hurricane/doc/hurricane/doxygen.warn.log
@@ -20,8 +20,8 @@ error: the type 'dirs' is not supported for the entry tag within a navindex! Che
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Interruption.dox:41: warning: documented symbol `const string & Hurricane::Interruption::GetReason' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Interruption.dox:45: warning: documented symbol `int Hurricane::Interruption::GetCode' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:439: warning: documented symbol `typedef list< Element > Hurricane::ElementList' was not declared or defined.
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:130: warning: documented symbol `bool Hurricane::Technology::setWorkingLayer' was not declared or defined.
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:135: warning: documented symbol `bool Hurricane::Technology::setWorkingLayer' was not declared or defined.
+/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:183: warning: documented symbol `bool Hurricane::Technology::setWorkingLayer' was not declared or defined.
+/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:188: warning: documented symbol `bool Hurricane::Technology::setWorkingLayer' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Layer.dox:128: warning: documented symbol `const DbU::Unit & Hurricane::Layer::getPitch' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Layer.dox:181: warning: no uniquely matching class member found for
DbU::Unit Hurricane::Layer::getEnclosure() const
@@ -71,103 +71,18 @@ Possible candidates:
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/PrivateProperty.dox:49: warning: documented symbol `typedef PrivateProperty::Inherit Hurricane::Property' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/SharedProperty.dox:50: warning: documented symbol `typedef SharedProperty::Inherit Hurricane::Property' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/SharedProperty.dox:71: warning: documented symbol `DBos Hurricane::SharedProperty::GetOwners' was not declared or defined.
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Generalities.dox:34: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Generalities.dox:138: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DbU.dox:14: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DbU.dox:235: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DbU.dox:247: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/BasicLayer.dox:22: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/BasicLayer.dox:27: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Box.dox:72: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:40: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:132: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:144: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:151: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:160: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:164: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:227: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:235: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:108: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:114: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:179: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:189: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:199: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:206: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:214: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:240: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:244: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Component.dox:31: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Component.dox:172: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:48: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:57: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:60: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:82: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:89: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:151: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:158: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:165: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:33: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/ContactLayer.dox:35: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DataBase.dox:23: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DataBase.dox:32: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DBo.dox:187: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DBo.dox:216: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DBo.dox:268: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DBo.dox:271: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DBo.dox:277: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DBo.dox:279: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DebugSession.dox:103: warning: Found unknown command `\Returns'
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DiffusionLayer.dox:35: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Entity.dox:41: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Exception.dox:14: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:375: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:392: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:399: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:384: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:187: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:204: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:211: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:196: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Locator.dox:129: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Locator.dox:146: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Locator.dox:153: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Locator.dox:138: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Go.dox:35: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Go.dox:201: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:101: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:108: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:116: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:124: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:132: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:141: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:145: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:176: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:184: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:193: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:203: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:226: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:236: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:245: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Horizontal.dox:48: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Horizontal.dox:57: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Horizontal.dox:65: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/HyperNet.dox:20: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/HyperNet.dox:31: warning: Found unknown command `\sreturn'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/HyperNet.dox:34: warning: Found unknown command `\sreturn'
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:73: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:77: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:103: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:127: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:145: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:156: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:159: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:163: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:177: warning: Unsupported xml/html tag found
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:182: warning: Unsupported xml/html tag found
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:182: warning: Unsupported xml/html tag found
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:184: warning: Unsupported xml/html tag found
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:186: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Interval.dox:57: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/JsonObject.dox:40: warning: Illegal command \typename as the argument of a \typename command
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/JsonObject.dox:72: warning: argument 'stack' of command @param is not found in the argument list of Hurricane::JsonObject::check(JsonStack &, std::string fname) const
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/JsonObject.dox:148: warning: argument 'name' of command @param is not found in the argument list of Hurricane::JsonObject::setName(const std::string &)
@@ -181,68 +96,19 @@ Possible candidates:
parameter 'stack'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/JsonObject.dox:193: warning: Found unknown command `\Remark'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/JsonObject.dox:204: warning: Found unknown command `\Remark'
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Layer.dox:136: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Layer.dox:144: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Layer.dox:238: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Library.dox:32: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Library.dox:40: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Library.dox:86: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Locator.dox:89: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Locator.dox:108: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Name.dox:57: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:109: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:129: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:184: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:191: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:198: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:230: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:245: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:274: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:279: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:288: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:295: warning: Unsupported xml/html tag found
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:295: warning: Unsupported xml/html tag found
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:299: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:219: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:228: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:235: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:60: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:67: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:70: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:162: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:170: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:173: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:180: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:187: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:40: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:47: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:54: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:57: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:66: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:69: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:86: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Plug.dox:20: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Plug.dox:25: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Plug.dox:60: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Plug.dox:68: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Plug.dox:76: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Plug.dox:80: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/PrivateProperty.dox:76: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:27: warning: Illegal command n as part of a title section
+/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:299: warning: Unsupported xml/html tag found
+/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/PhysicalRule.dox:70: warning: argument 'hvalue' of command @param is not found in the argument list of Hurricane::PhysicalRule::addValue(Hurricane::DbU::Unit hValue, Hurricane::DbU::Unit vValue, Hurricane::DbU::Unit maxLength)
+/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/PhysicalRule.dox:70: warning: argument 'vvalue' of command @param is not found in the argument list of Hurricane::PhysicalRule::addValue(Hurricane::DbU::Unit hValue, Hurricane::DbU::Unit vValue, Hurricane::DbU::Unit maxLength)
+/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/src/hurricane/hurricane/PhysicalRule.h:83: warning: The following parameters of Hurricane::PhysicalRule::addValue(Hurricane::DbU::Unit hValue, Hurricane::DbU::Unit vValue, Hurricane::DbU::Unit maxLength) are not documented:
+ parameter 'hValue'
+ parameter 'vValue'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:47: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:53: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:159: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:182: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:202: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:237: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:358: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:367: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:373: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/QuadTree.dox:13: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/QuadTree.dox:66: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/QuadTree.dox:68: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/QuadTree.dox:78: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/QuadTree.dox:80: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Query.dox:78: warning: Found unknown command `\sreturn'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Query.dox:81: warning: Found unknown command `\sreturn'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Query.dox:84: warning: Found unknown command `\sreturn'
@@ -262,16 +128,3 @@ Possible candidates:
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Query.dox:131: warning: Found unknown command `\sreturn'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Query.dox:135: warning: Found unknown command `\sreturn'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Query.dox:139: warning: Found unknown command `\sreturn'
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/RegularLayer.dox:29: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/RoutingPad.dox:145: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Rubber.dox:43: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:16: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:26: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:62: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Transformation.dox:35: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/TransistorLayer.dox:35: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Vertical.dox:58: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Vertical.dox:47: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Vertical.dox:67: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Vertical.dox:75: warning: Illegal command n as part of a title section
-/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/ViaLayer.dox:35: warning: Illegal command n as part of a title section
diff --git a/hurricane/doc/hurricane/html/BasicLayer_8h_source.html b/hurricane/doc/hurricane/html/BasicLayer_8h_source.html
index ed8f8596..07d2c22b 100644
--- a/hurricane/doc/hurricane/html/BasicLayer_8h_source.html
+++ b/hurricane/doc/hurricane/html/BasicLayer_8h_source.html
@@ -51,7 +51,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/classHurricane_1_1BasicLayer.html b/hurricane/doc/hurricane/html/classHurricane_1_1BasicLayer.html
index fe55dd3d..d0b3c8f1 100644
--- a/hurricane/doc/hurricane/html/classHurricane_1_1BasicLayer.html
+++ b/hurricane/doc/hurricane/html/classHurricane_1_1BasicLayer.html
@@ -223,7 +223,7 @@ Additional Inherited Members
creates and returns a new basic layer named <name>, of type <material> for the given technology (some geometrical characteristics can also be specified).
Caution: Throws an exception if the technology is null, if the name is
empty, if a layer of same name already exists or if we overflow the capacity of the bit field associated to the layer mask.
-
Remark: The extract number is a kind of logic number. In example the
CP layer which represent a poly layer should have the same extract number as the CPG layer which represent a poly layer used to realize the transistor gates. While extractions process, layers which have the same extract number are considered as equivalents. A null value indicates that the extraction should ignore this layer.
+
Remarks
The extract number is a kind of logic number. In example the CP layer which represent a poly layer should have the same extract number as the CPG layer which represent a poly layer used to realize the transistor gates. While extractions process, layers which have the same extract number are considered as equivalents. A null value indicates that the extraction should ignore this layer.
diff --git a/hurricane/doc/hurricane/html/classHurricane_1_1Cell.html b/hurricane/doc/hurricane/html/classHurricane_1_1Cell.html
index 8b4ab50d..14c1e244 100644
--- a/hurricane/doc/hurricane/html/classHurricane_1_1Cell.html
+++ b/hurricane/doc/hurricane/html/classHurricane_1_1Cell.html
@@ -649,7 +649,7 @@ Layout vs. Netlist Cell Hierarchy
Returns the Collection of all Occurrences belonging to this Cell.
-
Remark: The search depth is decremented each time a hirearchical
level is crossed. The search ends when depth becomes null (the value INFINITE is equal to (unsigned)-1) .
+
Remarks
The search depth is decremented each time a hirearchical level is crossed. The search ends when depth becomes null (the value INFINITE is equal to (unsigned)-1) .
@@ -679,7 +679,7 @@ Layout vs. Netlist Cell Hierarchy
Returns the Collection of all Occurrences belonging to this Cell and intersecting the given rectangular area.
-
Remark: The search depth is decremented each time a hirearchical
level is crossed. The search ends when depth becomes null (the value INFINITE is equal to (unsigned)-1) .
+
Remarks
The search depth is decremented each time a hirearchical level is crossed. The search ends when depth becomes null (the value INFINITE is equal to (unsigned)-1) .
Caution: Only occurences corresponding to currently materialized
entities are taken into account in this Collection.
@@ -909,7 +909,7 @@ Layout vs. Netlist Cell Hierarchy
Remark: At the Cell creation the abutment box is empty. This one must
be set through this function. It is possible also, once fixed, to reset it to empty (undefined) by passing an empty Box as argument.
+
Remarks
At the Cell creation the abutment box is empty. This one must be set through this function. It is possible also, once fixed, to reset it to empty (undefined) by passing an empty Box as argument.
@@ -1053,7 +1053,7 @@ Layout vs. Netlist Cell Hierarchy
diff --git a/hurricane/doc/hurricane/html/classHurricane_1_1Collection.html b/hurricane/doc/hurricane/html/classHurricane_1_1Collection.html
index b5aa1c25..0b21e2c1 100644
--- a/hurricane/doc/hurricane/html/classHurricane_1_1Collection.html
+++ b/hurricane/doc/hurricane/html/classHurricane_1_1Collection.html
@@ -117,7 +117,7 @@ The forEach Macro (obsoleted)
To use the forEach macro outside the Hurricane namespace, the following statement is necessary:
using Hurricane::ForEachIterator
Here is a small example of a loop:
using Hurricane::ForEachIterator;
Cell* cell = ...; // Get a Cell from somewhere.
forEach( Net*, inet, cell->getNets() ) {
cout << "This is " << (*inet);
if (inet->isExternal())
cout << " [external net].";
cout << endl;
}
The Generic getCollection
The collections provide the generic getCollection() function which allows to convert its argument into a generic collection. It has no specific interest for Hurricane collections, but this function is overloaded for STL containers.
-
This allows to handle a STL containers like a normal collection as shown in the following example:
set<Instance*> instanceSet;
// here we fill the set with the desired instances...
// (the elements are visited according to the set ordering)
}
Remark: This approach is a little bit less efficient than the use of
STL iterators, not much indeed, but has the advantage to be homogeneous with the remaining code (recall: the created collection doesn't make a copy of the STL container and its creation time is negligible).
+
This allows to handle a STL containers like a normal collection as shown in the following example:
set<Instance*> instanceSet;
// here we fill the set with the desired instances...
// (the elements are visited according to the set ordering)
}
Remarks
This approach is a little bit less efficient than the use of STL iterators, not much indeed, but has the advantage to be homogeneous with the remaining code (recall: the created collection doesn't make a copy of the STL container and its creation time is negligible).
Caution: The returned collection is valid whenever the STL container
is valid. Then you should not do the following:
GenericCollection<Instance*> getInstances(...)
{
set<Instance*> instanceSet;
// we fill the container with the appropriate instances
return getCollection(instanceSet); // instanceSet deleted after return
Allocates and returns a clone (copy) of the collection (whatever be its type).
-
Remark: In principle there is no need to use this function. However,
if you do so, don't forget to delete the clone after use. It is indeed much easier to use generic collections which do that for you, as we will see later.
+
Remarks
In principle there is no need to use this function. However, if you do so, don't forget to delete the clone after use. It is indeed much easier to use generic collections which do that for you, as we will see later.
@@ -209,7 +209,7 @@ template<class Type>
Allocates and returns a locator adapted to visit the elements of the collection.
-
Remark: In principle there is no need to use this function. Use
preferably the macro for_each described below. However, if you do so, don't forget to delete this locator after use, else use generic locators, which do that for you, as we will see later.
+
Remarks
In principle there is no need to use this function. Use preferably the macro for_each described below. However, if you do so, don't forget to delete this locator after use, else use generic locators, which do that for you, as we will see later.
diff --git a/hurricane/doc/hurricane/html/classHurricane_1_1Component.html b/hurricane/doc/hurricane/html/classHurricane_1_1Component.html
index 9300a8c2..18cb0407 100644
--- a/hurricane/doc/hurricane/html/classHurricane_1_1Component.html
+++ b/hurricane/doc/hurricane/html/classHurricane_1_1Component.html
@@ -152,7 +152,7 @@ Introduction
Concept of Location
Some components (for instance the segments) bear on contacts or other segments, more precisely they bear an extremity (the origin or the extremity), possibly through an offset on other components. The real location of the concerned part is therefore relative to the location of the component on which this part bears.
For that purpose each components must be able to return a location from which a relative calculations can be done. The methods getX() and getY() provide this information and must be overloaded for each sub-type of component in oder to get the desired effect.
-
Remark: The fact that a null value is systematically returned by one
of this methods means that the locations are computed relative to a null value, which is equivalent to say they are absolute values (see for instance the Horizontal segment whose getX() returns always null, while getY() return the ordinate of its axis).
+
Remarks
The fact that a null value is systematically returned by one of this methods means that the locations are computed relative to a null value, which is equivalent to say they are absolute values (see for instance the Horizontal segment whose getX() returns always null, while getY() return the ordinate of its axis).
Destruction
When a component is destroyed, all components which are anchored on its body (through the body hook) are also destroyed. This may recursively propagate to other components anchored on the body of those last ones.
@@ -444,7 +444,7 @@ Predefined filters
Returns: the collection of "connex components" to the component <this> (which includes at least this one).
-
Remark: A componnent is said connex to an other one if it is
attached directly or indirectly through hyper-hooks, that is if there exist a sequence of components whose parts (extremities or body) are either sharing the same anchor or anchored one upon the other.
+
Remarks
A componnent is said connex to an other one if it is attached directly or indirectly through hyper-hooks, that is if there exist a sequence of components whose parts (extremities or body) are either sharing the same anchor or anchored one upon the other.
If the layout elements are correctly assembled and on the proper layers, this "connex components collection" represents an geometrically and electrically connected subset of layout elements
On the other hand, if layout anchored objects don't overlap on the same conducting layers (either by a wrong contact layer or by an offset which forbids layout intersection) electrical continuity will not be ensured.
creates and returns a new contact on the layer <layer>, of size <width> and <height> attached upon the component <anchor> through an offset defined by <dx> et <dy>.
Caution: Throws an exception if the layer or the anchor is null or if
the anchor is an unconnected plug.
-
Remark: The new contact belongs to the anchor's net.
+
Remarks
The new contact belongs to the anchor's net.
@@ -382,7 +382,7 @@ Introduction
Returns: the relative abscissa of the contact.
-
Remark: If you want to get the absolute one use the member function
diff --git a/hurricane/doc/hurricane/html/classHurricane_1_1Contact_1_1AnchorHook.html b/hurricane/doc/hurricane/html/classHurricane_1_1Contact_1_1AnchorHook.html
index e1bf2135..914b45dd 100644
--- a/hurricane/doc/hurricane/html/classHurricane_1_1Contact_1_1AnchorHook.html
+++ b/hurricane/doc/hurricane/html/classHurricane_1_1Contact_1_1AnchorHook.html
@@ -83,7 +83,7 @@ Additional Inherited Members
Detailed Description
With contacts, a new type of Hook appears : the AnchorHook, which allows to attach a contact upon an other component, on which it is said to be "anchored". It becomes then a "relative contact" with respect of the coordinates of this component. The AnchorHook is always a slave hook.
-
Remark: A contact has two attributes <Dx> and <Dy> which
represent the relative coordinates of the contact with respect to the coordinates of the component on which it is anchored (through this AnchorHook). When it is not anchored, those coordinates becomes relative to the origin of the cell, which means they are absolute.
+
Remarks
A contact has two attributes <Dx> and <Dy> which represent the relative coordinates of the contact with respect to the coordinates of the component on which it is anchored (through this AnchorHook). When it is not anchored, those coordinates becomes relative to the origin of the cell, which means they are absolute.
The documentation for this class was generated from the following file:
diff --git a/hurricane/doc/hurricane/html/classHurricane_1_1DBo.html b/hurricane/doc/hurricane/html/classHurricane_1_1DBo.html
index ab5c863a..fb1569e3 100644
--- a/hurricane/doc/hurricane/html/classHurricane_1_1DBo.html
+++ b/hurricane/doc/hurricane/html/classHurricane_1_1DBo.html
@@ -127,7 +127,7 @@ Deletion process
A process similar but opposite to the creation process is required. A function _preDestroy must be called upon before the effective object destruction. As a matter of fact, if we take again the case of the Line for example, the line must be removed from the QuadTree before the destruction of its geometric characteristics (inverse of the previous phenomenon). Therefore the destroy function is implemented that way :
For any new sub-type of DBo you must adhere to the same protocol. That is provide the methods _postCreate and _preDestroy calling the methods _postCreate and _preDestroy of their base class. Furthermore you must provide when this class is instantiable a creation function (caution : only the creation function, if any, must be public (and static) the others must be protected).
if (!myCell) throw Error("Can't create MyCell : allocation failed");
myCell->_postCreate(); // must not be forgotten!
return myCell;
}
void MyCell::_postCreate()
{
Inherit::_postCreate(); // must not be forgotten!
// complete here the post creation
}
void MyCell::_preDestroy()
{
Inherit::_preDestroy(); // must not be forgotten!
// complete here the pre-deletion.
}
Remark: The destructor, strictly speaking, is not defined because
necessary operations are done within the method _preDestroy. In the implementation of the class MyCell we have only used the type Inherit (and never Cell). This opens the door to hierarchy changes without affecting the code already written.
if (!myCell) throw Error("Can't create MyCell : allocation failed");
myCell->_postCreate(); // must not be forgotten!
return myCell;
}
void MyCell::_postCreate()
{
Inherit::_postCreate(); // must not be forgotten!
// complete here the post creation
}
void MyCell::_preDestroy()
{
Inherit::_preDestroy(); // must not be forgotten!
// complete here the pre-deletion.
}
Remarks
The destructor, strictly speaking, is not defined because necessary operations are done within the method _preDestroy. In the implementation of the class MyCell we have only used the type Inherit (and never Cell). This opens the door to hierarchy changes without affecting the code already written.
Remark
The construction and deletion process of property objects is the same. It is mandatory for any new type of property to adopt the same protocol.
@@ -180,7 +180,7 @@ Remark
Returns
The property of Namename attached to the object, if it exists, else NULL.
-
Remark: When writting what follows :
forEach(DBo*, idbo, dbos) {
Property* property = idbo->getProperty("width");
if (property) {
// do something
}
}
+
Remarks
When writting what follows :
forEach(DBo*, idbo, dbos) {
Property* property = idbo->getProperty("width");
if (property) {
// do something
}
}
There is construction of a name (from a character string) for each visited dbo in order to find the property. It's more efficient to write :
Name width = "width";
forEach(DBo*, idbo, dbos) {
Property* property = idbo->getProperty(width);
if (property) {
// do something
}
}
Or still better :
static Name WIDTH = "width";
forEach(DBo*, idbo, dbos) {
Property* property = idbo->getProperty(WIDTH);
if (property) {
// do something
}
}
This remark applies each time you handle names.
@@ -245,7 +245,7 @@ Remark
Adds the Propertyproperty to the set of object properties. Properties being named, if an other one already exists in the set, with the same name, this last will be in a first step removed from the set.
-
Remark: Does nothing if the Property object is already attached to the
object.
+
Remarks
Does nothing if the Property object is already attached to the object.
Caution: An exception is thrown if the Property pointer is NULL.
@@ -266,7 +266,7 @@ Remark
removes the property property from the set of object properties.
-
Remark: Does nothing if the Property object is not attached to the object.
+
Remarks
Does nothing if the Property object is not attached to the object.
Caution: An exception is thrown if the Property pointer is NULL.
diff --git a/hurricane/doc/hurricane/html/classHurricane_1_1DebugSession.html b/hurricane/doc/hurricane/html/classHurricane_1_1DebugSession.html
index dcbd250a..5d30a9cd 100644
--- a/hurricane/doc/hurricane/html/classHurricane_1_1DebugSession.html
+++ b/hurricane/doc/hurricane/html/classHurricane_1_1DebugSession.html
@@ -69,7 +69,7 @@ Static Public Member Functions
Detailed Description
Enable/Disable trace information (API).
DebugSession provide a way to control what and when text send through the cdebug stream is printed. cdebug display selectively the trace/debug messages between a minLevel and a maxLevel :
-
+
DebugSession manage a stack of (min,max) pairs so multiple session can be opened. On opening a new session the (min,max) pair is pushed on the top of the stack and define the active range of trace levels. On closing, the pair is removed from the top and the previous range became active again. Do not forget to match any opening with a closing.
In addition to the levels, a DebugSession also can be triggered by a symbol (i.e. a (void*) pointer). The DebugSession has contains a user managed table of symbols. When, in opening a session, you give a symbol, the session will actually changes the trace levels only if the symbol is in the internal table. Otherwise a session is still opened but it will keep the current trace levels. So, in any case the session must be closed.
Returns the bounding box of the entity. It is defined as the smallest box enclosing the entity or its constituents.
-
Remark: For the Plugs, which are not objects of the physical layout,
the returned envelope is a Box of null dimensions (ponctual) centered on the location of the master Net of the Plug, to which has been applied the transformation associated to the Instance of the Plug.
+
Remarks
For the Plugs, which are not objects of the physical layout, the returned envelope is a Box of null dimensions (ponctual) centered on the location of the master Net of the Plug, to which has been applied the transformation associated to the Instance of the Plug.
diff --git a/hurricane/doc/hurricane/html/classHurricane_1_1Exception.html b/hurricane/doc/hurricane/html/classHurricane_1_1Exception.html
index 15995918..8c4eaf9b 100644
--- a/hurricane/doc/hurricane/html/classHurricane_1_1Exception.html
+++ b/hurricane/doc/hurricane/html/classHurricane_1_1Exception.html
@@ -83,7 +83,7 @@ Static Public Member Functions
Introduction
The Exception class groups all exceptions thrown by functions from the API. This virtual class is only useful to catch exceptions originating from one of those functions.
-
Remark: Copy construction is disabled.
+
Remarks
Copy construction is disabled.
Example
try {
// do something
}
catch (Exception& exception) {
// Go through here if the exception comes from a function of the API
cerr << exception.what() << endl;
exit(1);
}
catch (...) {
// Go through here for all other system exceptions
cerr << Error("abnormal termination") << endl;
// We use the Error() in order to get the same kind of printing
This class is an auto-pointer like wrapped around the raw collection. The database systematically returns collections wrapped inside GenericCollection.
-
Remark: The destruction of a GenericCollection triggers the destruction of
the raw collection.
+
Remarks
The destruction of a GenericCollection triggers the destruction of the raw collection.
Remark: This constructor do not build a copy of the raw collection. So the original
raw collection must not be deleted. It's deletion will occurs with the one of the GenericCollection.
+
Remarks
This constructor do not build a copy of the raw collection. So the original raw collection must not be deleted. It's deletion will occurs with the one of the GenericCollection.
Remark: This constructor do not build a copy of the raw filter. So the original
raw filter must not be deleted. It's deletion will occurs with the one of the GenericFilter.
+
Remarks
This constructor do not build a copy of the raw filter. So the original raw filter must not be deleted. It's deletion will occurs with the one of the GenericFilter.
Remark: This constructor do not build a copy of the raw locator. So the original
raw locator must not be deleted. It's deletion will occurs with the one of the GenericLocator.
+
Remarks
This constructor do not build a copy of the raw locator. So the original raw locator must not be deleted. It's deletion will occurs with the one of the GenericLocator.
A graphical object is said materialized when it is effectively inserted into a quadtree. It has then a graphical appearance (it's the least it can do) but also it will be taken into account within each collection which uses quadtrees in order to find its constituents (like the collection returned by the call cell->GetComponentsUnder(area) for instance).
On the other hand, non materialized graphic objects will neither be visible nor taken into account by those collections. This may be a significant advantage in some situations and a great drawback in others.
-
Remark: Plugs are never materialized.
+
Remarks
Plugs are never materialized.
Update sessions
The location of an object within its quadtree depends of its bounding box, if a modification of this one must occur for any reason, the object must be removed from the quadtree before doing the modification and re-inserted after, at the right place, according to its new bounding box.
diff --git a/hurricane/doc/hurricane/html/classHurricane_1_1Hook.html b/hurricane/doc/hurricane/html/classHurricane_1_1Hook.html
index beca4210..88b9da83 100644
--- a/hurricane/doc/hurricane/html/classHurricane_1_1Hook.html
+++ b/hurricane/doc/hurricane/html/classHurricane_1_1Hook.html
@@ -149,7 +149,7 @@ Constructor and Destructor
Returns: the component whose hook represents a part.
-
Remark: The result is never NULL because hooks are byforce nested
objects in their component.
+
Remarks
The result is never NULL because hooks are byforce nested objects in their component.
@@ -168,7 +168,7 @@ Constructor and Destructor
Returns: the next hook within the ring.
-
Remark: The result is never NULL because every hook has by
construction its next one (which may be itself is the ring is empty).
+
Remarks
The result is never NULL because every hook has by construction its next one (which may be itself is the ring is empty).
@@ -187,7 +187,7 @@ Constructor and Destructor
Returns: the previous hook within the ring.
-
Remark: Less efficient than getNextHook because it requires a
complete ring loop.
+
Remarks
Less efficient than getNextHook because it requires a complete ring loop.
@@ -206,7 +206,7 @@ Constructor and Destructor
Returns: the master of the relation master-slaves identified by the hook.
-
Remark: May return itself if the hook is a master and return NULL if
the hook is a slave and has no associated master.
+
Remarks
May return itself if the hook is a master and return NULL if the hook is a slave and has no associated master.
@@ -225,7 +225,7 @@ Constructor and Destructor
Returns: the first master found when starting the search immediately after the given hook.
-
Remark: May return NULL if there is no master within the ring or
return the hook itself if it is a master and the only one in the ring.
+
Remarks
May return NULL if there is no master within the ring or return the hook itself if it is a master and the only one in the ring.
@@ -244,8 +244,9 @@ Constructor and Destructor
Returns: the first master found when starting a backwards search immediately before the given hook.
-
Remark: May return NULL if there is no master within the ring or
return the hook itself if it is a master and the only one in the ring.
-
Remark: Of course the search is done in the natural forward direction
(else it would be trully inefficient).
+
Remarks
May return NULL if there is no master within the ring or return the hook itself if it is a master and the only one in the ring.
+
+Of course the search is done in the natural forward direction (else it would be trully inefficient).
@@ -312,7 +313,7 @@ Constructor and Destructor
Returns:true if the hook must be considered as a master, else false.
-
Remark: For any new kind of hook this predicate must be overloaded.
+
Remarks
For any new kind of hook this predicate must be overloaded.
@@ -332,7 +333,7 @@ Constructor and Destructor
If the hook is a slave :
Returns:true if the hook has an associated master, else false.
-
Remark: You can't find two slaves in the same ring without at least a
master.
+
Remarks
You can't find two slaves in the same ring without at least a master.
If the hook is a master :
Let us consider the hyper-ring made upon hyper-hooks. Then the function returns true if the ring contains at least an other master else false.
Caution: The meaning here is very different than for a slave hook!
@@ -355,7 +356,7 @@ Constructor and Destructor
If the hook is a slave :
detaches the hook from its ring and returns its old predecessor.
-
Remark: Will return NULL if the hook is the only one in the ring.
+
Remarks
Will return NULL if the hook is the only one in the ring.
If the hook is a master :
Let us consider the hyper-ring made upon hyper-hooks. Then, the function detaches the hyper-hook (the sub-ring made up of the master and its slaves, if any) from the hyper-ring and returns the old predecessor of the hyper-hook.
Within the detached hyper-hook, the relationship master hook
@@ -406,7 +407,7 @@ Constructor and Destructor
merges the rings represented by the two hooks which both must be masters, returns <masterHook>.
-
Remark: Throws an exception if both hooks are not masters.
+
Remarks
Throws an exception if both hooks are not masters.
This function doesn't change the two relatioships master-slaves but modifies the connection request between corresponding hyper-hooks.
diff --git a/hurricane/doc/hurricane/html/classHurricane_1_1HyperNet.html b/hurricane/doc/hurricane/html/classHurricane_1_1HyperNet.html
index 5d70b1c4..c78deaad 100644
--- a/hurricane/doc/hurricane/html/classHurricane_1_1HyperNet.html
+++ b/hurricane/doc/hurricane/html/classHurricane_1_1HyperNet.html
@@ -70,7 +70,7 @@ Public Member Functions
Introduction
The HyperNet is a part of the trans-hierarchical mechanism. An HyperNet is build upon a NetOccurrence, this occurrence is the root of a tree of Net occurrences which represent the Net as if flattened. The walkthroughs are provided as Collections.
In all the walkthrough, if doExtraction is set, a simple layout extraction is performed. Of course, it makes the walkthrough much slower. By default it's disabled and the Net occurrence tree is created only from the Plug information.
-
Remark: The allowInteruption is deprecated and do nothing.
+
Remarks
The allowInteruption is deprecated and do nothing.
Create and return a pointer to a new instance of name <name> belonging to the cell <cell> and refering the cell <masterCell> through a transformation <transformation> if it is provided (else the identity transform is assumed).
Caution: Throws an exception if the cell <cell> is null, if the
<masterCell> is null, if an instance of same name already exists or if a cyclic assembly is detected.
-
Remark: If the <secureFlag> is set to false the verification of
the lack of cyclic assembly is skipped (you save some cpu time, but at your own risks).
+
Remarks
If the <secureFlag> is set to false the verification of the lack of cyclic assembly is skipped (you save some cpu time, but at your own risks).
@@ -542,7 +542,7 @@ Instance Destruction
Allows to change the instance name.
-
Remark: Throws an exception if the name is empty or if an instance
with the same name exists in the owner cell.
+
Remarks
Throws an exception if the name is empty or if an instance with the same name exists in the owner cell.
@@ -592,7 +592,7 @@ Instance Destruction
Allows to change the cell referenced by this instance.
Caution: Throws an exception if either the cell is null, a cyclic
assembly is detected or the substitution can't succeed.
-
Remark: If the <secureFlag> is set to false the verification of
the lack of cyclic assembly is skipped (you save some cpu time, but at your own risks).
+
Remarks
If the <secureFlag> is set to false the verification of the lack of cyclic assembly is skipped (you save some cpu time, but at your own risks).
Important: In order to succeed with the substitution, it is necessary
that for each connected plug, refering an external net of the old master cell, a net of same name can be found in the new master cell.
The properties of the instance, of its existing plugs and of the different occurences of those ones are preserved. On the other hand, all the hierarchical pathes going through that instance and not ending on it, as well as all associated occurences, become obsolete. The properties attached to those occurences are therefore deleted.
diff --git a/hurricane/doc/hurricane/html/classHurricane_1_1Layer.html b/hurricane/doc/hurricane/html/classHurricane_1_1Layer.html
index d3644cf2..8e41e4f2 100644
--- a/hurricane/doc/hurricane/html/classHurricane_1_1Layer.html
+++ b/hurricane/doc/hurricane/html/classHurricane_1_1Layer.html
@@ -394,7 +394,7 @@ Looking Up a Layer from a Mask
Returns: the collection of basic layers within this layer.
-
Remark: For a basic layer the collection contains this one only.
+
Remarks
For a basic layer the collection contains this one only.
@@ -421,7 +421,7 @@ Looking Up a Layer from a Mask
Returns: The uppermost layer of that layer. On BasicLayer, it is always the layer itself. In symbolic layers the meaning depends on the object structure.
-
Remark: In symbolic layers, top & bottom are not related to the Layer::Mask
but to the structuration of the layer. It is advisable that the designer create layers and symbolic layers in way that ensure the top layer is indeed the one with the greater mask.
+
Remarks
In symbolic layers, top & bottom are not related to the Layer::Mask but to the structuration of the layer. It is advisable that the designer create layers and symbolic layers in way that ensure the top layer is indeed the one with the greater mask.
@@ -666,7 +666,7 @@ Looking Up a Layer from a Mask
sets or changes the layer name.
-
Remark: An exception is thrown if the name is empty or if there is an
other layer with that name.
+
Remarks
An exception is thrown if the name is empty or if there is an other layer with that name.
@@ -834,7 +834,7 @@ Looking Up a Layer from a Mask
Those examples are given in order to explain how locators work. We will see in the following how to do that more simply by using generic locators, or even simpler by using the forEach macros.
This function allocates and returns a new locator that will have the same visiting course than the remaining one of the locator being cloned.
-
Remark: In principle there is no need to call this function, but if
you do so you must not forget to release the clone after its use or, from it, build a generic locator which will do that for you (to be explained later).
+
Remarks
In principle there is no need to call this function, but if you do so you must not forget to release the clone after its use or, from it, build a generic locator which will do that for you (to be explained later).
Equality operator. Very fast because it only tests the equality of pointers to the two shared strings (and not the equality of the two strings).
-
Remark: Don't loose on one side what you save on the other as shown
in the following code :
Cell* cell = ...; // we get the cell
for_each_net(net, cellGetNets()) {
if (netGetName() == "vdd") {
... ;
}
end_for;
}
Indeed, for each equality test, a name will be created from the string "vdd". If the equality test is very fast, it is not the same for the name construction. So it is faster to write :
Don't loose on one side what you save on the other as shown in the following code :
Cell* cell = ...; // we get the cell
for_each_net(net, cellGetNets()) {
if (netGetName() == "vdd") {
... ;
}
end_for;
}
Indeed, for each equality test, a name will be created from the string "vdd". If the equality test is very fast, it is not the same for the name construction. So it is faster to write :
Returns: the signal direction (by default set to UNDEFINED).
-
Remark: This direction is meaningfull only for external nets.
+
Remarks
This direction is meaningfull only for external nets.
@@ -639,7 +639,7 @@ Predefined filters
Returns: the collection of plugs which have this net as master.
-
Remark: Meaningfull only for external nets.
+
Remarks
Meaningfull only for external nets.
@@ -658,7 +658,7 @@ Predefined filters
Returns: the collection of connected plugs which have this net as master.
-
Remark: Meaningfull only for external nets.
+
Remarks
Meaningfull only for external nets.
@@ -677,7 +677,7 @@ Predefined filters
Returns: the collection of unconnected plugs which have this net as master.
-
Remark: Meaningfull only for external nets.
+
Remarks
Meaningfull only for external nets.
@@ -961,7 +961,7 @@ Predefined filters
Allows to change net name.
-
Remark: Throws an exception if the new name is empty, or if a net
with same net already exists in the cell.
+
Remarks
Throws an exception if the new name is empty, or if a net with same net already exists in the cell.
@@ -1019,7 +1019,7 @@ Predefined filters
Sets the external net status to <state>.
-
Remark: This function will throw an exception if the net switches to
internal and there is a plug refering to it.
+
Remarks
This function will throw an exception if the net switches to internal and there is a plug refering to it.
@@ -1133,8 +1133,9 @@ Predefined filters
Merges the net <net> to the net <this> which keeps its characteristics (arity, global, external and direction).
Caution: An exception is thrown if the <net> is null or equal to
<this>, if the two nets don't belong to the same cell or if <net> is external and master net of a connected plug while net <this> is not external.
-
Remark: All the rubbers and the components of the <net> (and
also the plugs) become rubbers or components of the net <this>. Nevertheless if for a particular slave instance there was both a plug referencing the <net> and an other plug referencing <this>, the first is deleted to the advantage of the second, because a net can't have more than one plug for a given instance (the rings of the body hooks are then merged).
-
Remark: Once the merger done the net <net> is definitively
deleted. Its properties and those of its deleted plugs, if any, are lost (as well as the ones which could be attached to their occurences).
+
Remarks
All the rubbers and the components of the <net> (and also the plugs) become rubbers or components of the net <this>. Nevertheless if for a particular slave instance there was both a plug referencing the <net> and an other plug referencing <this>, the first is deleted to the advantage of the second, because a net can't have more than one plug for a given instance (the rings of the body hooks are then merged).
+
+Once the merger done the net <net> is definitively deleted. Its properties and those of its deleted plugs, if any, are lost (as well as the ones which could be attached to their occurences).
@@ -1154,7 +1155,7 @@ Predefined filters
Build a duplicate of net ( <this>) inside a cloned Cell <cloneCell>. The connectivity (Plug) or components of the original net are not copied.
-
Remark: It is likely that is a copy of this net's onwer Cell,
but it is not mandatory.
+
Remarks
It is likely that <cloneCell> is a copy of this net's onwer Cell, but it is not mandatory.
Remark: This path has no instance and will be the tail terminal path
of any other path.
+
Remarks
This path has no instance and will be the tail terminal path of any other path.
@@ -182,7 +182,7 @@ Remarks
Builds the path with head instance <headInstance> and tail path <tailPath>.
Caution: If the instance is null, or if the tail path is not
compatible with this head instance, an exception is thrown.
-
Remark: The head instance and the tail path are compatible if the
tail path is void or if the owner cell of the tail path is the model cell referenced by the head instance.
+
Remarks
The head instance and the tail path are compatible if the tail path is void or if the owner cell of the tail path is the model cell referenced by the head instance.
@@ -213,7 +213,7 @@ Remarks
Builds the path with head path <headPath> and tail instance <tailInstance>.
Caution: If the tail instance is null, or if the head path is not
compatible with this tail instance, an exception is thrown.
-
Remark: The tail instance and the head path are compatible if the
owner cell of the tail instance is the master cell of the head path (which is recall it, the model cell referenced by the last instance of the head path) or if the head path is empty (then compatible with any non null instance).
+
Remarks
The tail instance and the head path are compatible if the owner cell of the tail instance is the master cell of the head path (which is recall it, the model cell referenced by the last instance of the head path) or if the head path is empty (then compatible with any non null instance).
The constructor of Physical rule is not directly accessible, as thoses objects must be created only through the Technology class API (to be stored in the relevant tables).
+
PhysicalRule is a "one size fit class". As there will be only a small number of objects created (compare to other kinds) we choose to implement all variant in one class instead of creating a flock of derived classes and all the assorted paraphernalia. As a consequence, not all fields will be used at the same time, they are mutually exclusive.
The length up to which the rule is valid. passing zero as this argument means always valid.
+
+
+
+
Adds a new stepping value to the rule. If the rules never change, give a maxLength of zero and only call this function once on the rule. The rule is isotropic in X and Y.
+
This function can be called multiple time on a rule, each call will add a new step. Steps are defined and ordered according to maxLength.
The length up to which the rule is valid. passing zero as this argument means always valid.
+
+
+
+
Adds a new stepping value to the rule. If the rules never change, give a maxLength of zero and only call this function once on the rule. The rule is not isotropic, it defines a different value for X and Y.
+
This function can be called multiple time on a rule, each call will add a new step. Steps are defined and ordered according to maxLength.
+
+
+
+The documentation for this class was generated from the following files:
diff --git a/hurricane/doc/hurricane/html/classHurricane_1_1Plug.html b/hurricane/doc/hurricane/html/classHurricane_1_1Plug.html
index 394cd963..c870f9ae 100644
--- a/hurricane/doc/hurricane/html/classHurricane_1_1Plug.html
+++ b/hurricane/doc/hurricane/html/classHurricane_1_1Plug.html
@@ -139,7 +139,7 @@ Introduction
net" because it is a net of the instance master cell (notice that this net can be asimilated to a "logical port").
A plug is unique, that is, for a given instance there is one and only one plug refering to a given master net.
Caution: When created, an instance creates all plugs corresponding to
the external nets of its master cell. So, some plugs may exist without being connected. Plugs are the only components which have this characteristic.
-
Remark: Plugs being completely managed by the system, you can't
define sub-types of plugs.
+
Remarks
Plugs being completely managed by the system, you can't define sub-types of plugs.
Constructors & Destructors
Plugs being completely managed by the system, there is no constructor nor destructor provided.
@@ -212,7 +212,7 @@ Predefined filters
Returns: the external net referenced by the plug in the master cell of its instance.
-
Remark: Don't mistake with getNet() which returns the net owning the
plug (or NULL if is unconnected).
+
Remarks
Don't mistake with getNet() which returns the net owning the plug (or NULL if is unconnected).
@@ -291,7 +291,7 @@ Predefined filters
Returns:true if the plug is connected, else false.
-
Remark: A plug is connected if the call upon getNet() doesn't
return NULL.
+
Remarks
A plug is connected if the call upon getNet() doesn't return NULL.
The property has an owner, this one is informed of the property deletion and detaches it from its property list. If the object is a quark and if this was the last property owned it automatically deletes itself.
-
Remark: Once the property is attached to an object this one becomes
responsible of its automatic destruction. When a property changes its owner, the old owner delegates this task to the new one. On the other hand, a property which has never been attached to an owner will never be deleted automatically.
+
Remarks
Once the property is attached to an object this one becomes responsible of its automatic destruction. When a property changes its owner, the old owner delegates this task to the new one. On the other hand, a property which has never been attached to an owner will never be deleted automatically.
Returns: the current owner of the property (or NULL if at not been assigned yet).
Properties can be attached to the data base objects. Those properties must have a name in order to access them unambiguously. Of course only one property of a given name can be attached to an object.
In a first step we define two great categories of properties : the private properties which can be attached to only one object and the shared properties which can be attached to a large number of objects.
We will detail separately their respective behaviour, but we ensure that the management of each of those two property categories is absolutely secure. That is, on one side you can destroy explicitely a property (and the objects will be notified) and on the other side the properties will be automatically destroyed when no more object reference them.
-
Remark: By overloading some messages, as we will see later, it is
possible to set up different behaviours (like avoid the automatic delete).
+
Remarks
By overloading some messages, as we will see later, it is possible to set up different behaviours (like avoid the automatic delete).
The Quarks
As we shall see, the occurences are very simple objects which are used to designate some entity of the virtually unfolded hierarchy. Indeed, those occurences, which are built and deleted very quickly, are very volatile objects to which obvioulsy we can't attach properties directly.
But the interest of occurences is precisely to be able to attach them properties. In order to be able to do that, properties must be stored in a secure place where we could find them when needed. The quarks are here for that purpose : they are subtypes of data base object and therefore can store the properties attached to occurences.
Important: only one quark is attached to all occurences which refer the
same entity of the virtually unfolded hierarchy. This means that a property placed on an occurence can be read by any other occurence which refers the same entity of the virtually unfolded hierarchy.
-
Remark: Those quarks are also volatile objects because their only
reason to exist is that at least one property is attached to them.
+
Remarks
Those quarks are also volatile objects because their only reason to exist is that at least one property is attached to them.
How that works
We will detail the way properties are managed by analysing more precisely what happens at the level of property access functions both for data base objects and for occurences.
@@ -107,7 +107,7 @@ How that works
Two important things might happen then : The property is already owned by an other object (may be a quark) and that property is not a shared one and/or the object owns already a property with the same name.
Therefore it may happen, within this step, that adding a property to an object leads to the deletion of an other property on that object (name unicity) or on an other object (unicity of owner for a private property).
Which behaviour should we have in such conditions ? Shall we destroy the property which has been detached ? There is no unique behaviour which matches all needs. In order to solve this problem the properties must answer to two specific messages which are : onCapturedBy(DBo* dbo) when the property is attached to an object and onReleasedBy(DBo* dbo) when it is detached from the object. It is within that last message that the decision about the future of the property must be taken.
-
Remark: We will detail below those messages for both private and
shared properties.
+
Remarks
We will detail below those messages for both private and shared properties.
The function searches for the quark associated to the occurence.
If the quark doesn't exist, there is nothing to do, the occurence has no properties.
Else the property is removed from the set of quark properties by calling the previous function. Furthermore if this removed property is the last one, the quark is automatically deleted.
@@ -127,7 +127,7 @@ Naming Conventions
In order to avoid that you must take some precautions in the choice of the property names.
So Hurricane uses properties prefixed by the string "Hurricane::",like for instance "Hurricane::Selector" for the property of type Selector.
So I suggest that different tools use a similar namming strategy which would keep confident all the community of hurricaners
-
Remark: Using names like "ZenTek::TimingNode" for the TimingNode type
property managed by tools from the ZenTek society decreases name conflicts, unless with other tools from the same society. A property name "SocietyName::ToolName::PropertyName" would be more secure.
+
Remarks
Using names like "ZenTek::TimingNode" for the TimingNode type property managed by tools from the ZenTek society decreases name conflicts, unless with other tools from the same society. A property name "SocietyName::ToolName::PropertyName" would be more secure.
Furthermore, if the community adopts this convention it will be possible to simplify some parts of the code by avoiding for example calls to the macro is_a to check that the collected property is of the expected type, as shown in the following example :
The name of properties being of type Name and not of type string, the comparison between two names operates on their pointers and not on their character strings. The length of the name doesn't affect the comparison performance.
@@ -216,7 +216,7 @@ Remarks
This message is called upon when the property is added to the properties of <dbo>.
By default this function does nothing particular, but it must be overloaded for all property sub-classes. We will detail later the reaction to this message as taken by the private and shared property classes.
-
Remark: This message being already overloaded for private and shared
property classes there is no need to overload it again when specializing any of those two classes.
+
Remarks
This message being already overloaded for private and shared property classes there is no need to overload it again when specializing any of those two classes.
@@ -245,7 +245,7 @@ Remarks
This message is called upon when the property is removed from the <dbo> properties.
Important: The argument <dbo> is not (or no more) necessarily the
owner of the property which receives the message. The processing to be done in reaction to this message often depends on this observation. We will better understand this subtlety when studying private properties.
-
Remark: This message being already overloaded for private and shared
property classes there is no need to overload it again when specializing any of those two classes.
+
Remarks
This message being already overloaded for private and shared property classes there is no need to overload it again when specializing any of those two classes.
inserts the graphic object within the quadtree (if not yet inserted).
Caution: If the graphic object pointer is NULL an exception is thrown.
-
Remark: When the number of objects contained in a quadtree leaf is
greater than some threshold, this leaf is split into four balanced sub-quadtrees. This recursive division provides a faster access even for very large quadtrees (to the detriment of some memory loss).
+
Remarks
When the number of objects contained in a quadtree leaf is greater than some threshold, this leaf is split into four balanced sub-quadtrees. This recursive division provides a faster access even for very large quadtrees (to the detriment of some memory loss).
@@ -237,7 +237,7 @@ Introduction
removes the object from the quadtree.
Caution: If the graphic object is NULL an exception is thrown.
-
Remark: When the number of objects included in the quadtree goes
below an other threshold, the inverse behaviour happens : the sub-quadtrees are deleted and the contained objects are taken in charge by this quadtree node (and memory is released to the system).
+
Remarks
When the number of objects included in the quadtree goes below an other threshold, the inverse behaviour happens : the sub-quadtrees are deleted and the contained objects are taken in charge by this quadtree node (and memory is released to the system).
When the RoutingPad is anchored on a Plug, allow to set the component that we will anchor on. The Occurrence of the RoutingPad is updated from the Plug to the component.
The Technology object provides the description of all the technology rules needed by the tools, currently it is limited to the description of all layers available. This object must be created once within the DataBase, and, in principle never destroyed (this would destroy layers and all objects laying on them ...).
-
Remark: There is only one technology for the current DataBase, and only one
The Technology object provides the description of all the technology rules needed by the tools, currently it contains:
+
+
The layers, roughly from bottom (i.e. closest to the subtsrate) to top. Layers can be basic, that is, match a real physical layer, or composite, like for VIAs in symbolic for macro-generation. It also provides a connexity table between layers.
+
Three sets of rules describing the technology rules (formerly the DTR in Alliance).
+
This object must be created once within the DataBase, and, in principle never destroyed (this would destroy layers and all objects laying on them ...).
+
Here
+
Remarks
There is only one technology for the current DataBase, and only one Database object, so only one technology defined.
+
+Using PhysicalRules
+
How to create a simple one layer rule, setup the minimal width of metal1 layer to 0.5µm.
How to create a one layer rule, with multiple steps. The minimal spacing of metal1 layer which will depend on the wire length. The spacing will be of 2µm for length below 50µm and 4µm above.
How to create a two layers rule, with non-isomorphic values. The minimum enclosure of metal1 layer over cut1 will be 1µm in horizontal direction and 0.5µm in vertical. The order of layers is significant in the function call, it must be read as "The encolusre of metal1 over cut1".
Returns: a newly created technology named <name> for the data base <dataBase>.
-
Caution: Throws an exception if the dataBase is NULL, if the name is empty or if
the dataBase has already a technology.
+
Warning
Throws an exception if the dataBase is NULL, if the name is empty or if the dataBase has already a technology.
@@ -360,7 +390,7 @@ Introduction
Returns: the collection of layers of the technology.
-
Remark: The layers are traversed according to their
creation order. This order is very important, notably for the graphical display. Therefore deeper basic layers must be created first and upper layers later (the order of composite layers has no importance).
+
Remarks
The layers are traversed according to their creation order. This order is very important, notably for the graphical display. Therefore deeper basic layers must be created first and upper layers later (the order of composite layers has no importance).
@@ -634,6 +664,110 @@ Introduction
Returns: the Nth metal layer from the substrate. So a depth of zero should mean metal1.
Returns: The matching rule in the table of two layers rules. The order of layers arguments is meaningful and should match The one used at rule creation.
+
@@ -672,6 +806,175 @@ Introduction
Sets this exact layer as symbolic (not is mask). Returns true on success (the layer exists).
Create and add to Technology a rule whithout associated layer. The rule should contain a value which is anything but a length (Volt, Henry, Ohm, ...) The rule is created empty. For a detailed explanation see PhysicalRule.
Create and add to Technology a rule whithout associated layer. The rule should contain only length value(s) (so DbU::Unit). The rule is created empty. For a detailed explanation see PhysicalRule.
Create and add to Technology a rule associated to one layer. The rule should contain only length value(s) (so DbU::Unit). The rule is created empty. For a detailed explanation see PhysicalRule.
Create and add to Technology a rule associated to two layers. The order of layers is meaningful in case of an asymmetric rule. The rule should contain only length value(s) (so DbU::Unit). The rule is created empty. For a detailed explanation see PhysicalRule.
+
The documentation for this class was generated from the following files:
diff --git a/hurricane/doc/hurricane/html/classHurricane_1_1Transformation.html b/hurricane/doc/hurricane/html/classHurricane_1_1Transformation.html
index 4917ee70..134208d6 100644
--- a/hurricane/doc/hurricane/html/classHurricane_1_1Transformation.html
+++ b/hurricane/doc/hurricane/html/classHurricane_1_1Transformation.html
@@ -124,10 +124,10 @@ Public Member Functions
Introduction
Transformation objects are a combination of a translation and an orientation defined by the new enumeration Transformation::Orientation whose different values are described in table below. The orientation is done before the translation, which is to say that the orientation is applied in the coordinate system of the model.
The transformation formula is given by:
-
+
where x and y are the coordinates of any point, x' and y' the coordinates of the transformed point, tx and ty the horizontal and vertical components of the translation and where a, b, c and d are the coefficients of the matrix associated to the orientation. See Orientation for the value of a, b, c & d.
where x and y are the coordinates of any point, x' and y' the coordinates of the transformed point, tx and ty the horizontal and vertical components of the translation and where a, b, c and d are the coefficients of the matrix associated to the orientation.
The documentation for this class was generated from the following file:
Register a static initialization function.
- More...
-
Detailed Description
-
Register a static initialization function.
-
-Initializer Mechanism
-
In C++, there is currently no way to guarantee the order into which the static initialization (variables) in various modules will be done.
-
The Initializer template class provide a way to perform a static initialization across multiple modules in an ordered fashion, thus solving potential dependency problems between initialisation.
-
The documentation for this class was generated from the following file:
diff --git a/hurricane/doc/hurricane/html/clasststream.html b/hurricane/doc/hurricane/html/clasststream.html
index afe131d2..ec122398 100644
--- a/hurricane/doc/hurricane/html/clasststream.html
+++ b/hurricane/doc/hurricane/html/clasststream.html
@@ -75,7 +75,7 @@ Public Member Functions
Detailed Description
Trace & indentation enabled stream.
Traced stream are a derived class of std::ostream that provides integrated indentation and selective printing according to a verbosity level. Only messages comprised between minLevel and maxLevel are to be printed:
-
+
The cdebug instance of this class, in conjunction with Hurricane::DebugSession is provided to create tailored program traces. cdebug is a global variable which is put in the root namespace (not the Hurricane namespace).
diff --git a/hurricane/doc/hurricane/html/graph_legend.html b/hurricane/doc/hurricane/html/graph_legend.html
index 6867a639..13b29ecd 100644
--- a/hurricane/doc/hurricane/html/graph_legend.html
+++ b/hurricane/doc/hurricane/html/graph_legend.html
@@ -74,7 +74,7 @@ A yellow dashed arrow denotes a relation between a template instance and the tem
diff --git a/hurricane/doc/hurricane/html/graph_legend.png b/hurricane/doc/hurricane/html/graph_legend.png
index 2cfe61c6..79e54025 100644
Binary files a/hurricane/doc/hurricane/html/graph_legend.png and b/hurricane/doc/hurricane/html/graph_legend.png differ
diff --git a/hurricane/doc/hurricane/html/group__DbUGroup.html b/hurricane/doc/hurricane/html/group__DbUGroup.html
index 1ddc17e1..67a72756 100644
--- a/hurricane/doc/hurricane/html/group__DbUGroup.html
+++ b/hurricane/doc/hurricane/html/group__DbUGroup.html
@@ -170,7 +170,7 @@ Obsoleteds
Introduction
The DbU class provides the DbU::Unit type for modelling geometric length, that is abscissas, ordinates, widths, offsets and a set of functions to convert DbU::Unit to and from external coordinates.
-
Remark: The DbU class contains only static methods, and is not meant to
DbU::Unit : the working type. It is currently associated to a long integer and a precision/resolution. This way all numbers are bound to the same precision (unlike floating point numbers) preventing rounding errors.
@@ -806,7 +806,7 @@ Translators
Returns
A character string representing the external value of <unit>. The value is converted in the length according to setStringMode(): database, grid or symbolic.
-
Remark: This string is shorter than the one we could print from the
external value because non needed decimals are not drawn (nor the point if value is integer).
+
Remarks
This string is shorter than the one we could print from the external value because non needed decimals are not drawn (nor the point if value is integer).
@@ -844,7 +844,7 @@ Translators
Allows to set the precision at a requested value. This must be done at the begining of the program (before the creation of the first unit) and not changed for the following (unless mandatory and for a temporary period because all existing units would be misinterpreted).
-
Remark: This function throws an exception if the requested precision
is greater than the maximal one.
+
Remarks
This function throws an exception if the requested precision is greater than the maximal one.
The name of "C macros" are written with lower case letters and underscores (examples : is_a, for_each_cell or end_for) while the name of generic functions and member functions never use the underscore and always start with an Upper case letter (examples : GetUnit, GetMasterCell, IsCalledBy).
-
Remark: When examining .h include files for more detailed information
you will find member functions which start with an underscore. While being "public" those functions must never be called upon. In principle, only here'after documented functions should be used by the application programmer.
+
Remarks
When examining .h include files for more detailed information you will find member functions which start with an underscore. While being "public" those functions must never be called upon. In principle, only here'after documented functions should be used by the application programmer.
GetString
string GetString(const Object& object);
string GetString(const Object* object);
Thoses generic function allows you to get into a string an explicit description of any kind of Hurricane object pointer or reference.
All Hurricane objects have printing operators for a reference or a pointer. Those printing operators use the generic function Hurricane::GetString() previously studied.
@@ -89,7 +89,7 @@ Trace utilities
Hurricane::trace
-
void MyFunction(MyData* data)
// **************************
{
trace << "entering in MyFunction with " << data << endl;
trace_in();
...
trace << "exiting of MyFunction" << endl;
trace_out();
}
Remark: Debugger enthousiastic users will probably ignore this trace
capability which presents the annoying need to be inserted into the code... For myself, I do prefer those facilities...
+
void MyFunction(MyData* data)
// **************************
{
trace << "entering in MyFunction with " << data << endl;
trace_in();
...
trace << "exiting of MyFunction" << endl;
trace_out();
}
Remarks
Debugger enthousiastic users will probably ignore this trace capability which presents the annoying need to be inserted into the code... For myself, I do prefer those facilities...
Remarks
Many other global and generic functions exist. Each one will be studied within the description of the classes which create or specialize them (example: Hurricane::GetUnit will be introduced with the Unit class and Hurricane::GetCollection with the Collection class).
Returns: the signal direction (by default set to UNDEFINED).
-
Remark:
This direction is meaningfull only for external nets.
-
-
-
-
-
-
-
-
-
-
-
-
const Point & Hurricane::Net::getPosition
-
(
-
)
-
const
-
-
-
-
-inline
-
-
-
-
Returns: the X,Y position of the net. This position is used for computing the location of the plugs (on slave instances calling the cell owning this net) having that net as master.
-
-
-
-
-
-
-
-
-
-
-
-
const Unit & Hurricane::Net::getX
-
(
-
)
-
const
-
-
-
-
-inline
-
-
-
-
Returns: net abscissa.
-
-
-
-
-
-
-
-
-
-
-
-
const Unit & Hurricane::Net::getY
-
(
-
)
-
const
-
-
-
-
-inline
-
-
-
-
Returns: net ordinate.
-
-
-
-
-
-
-
-
-
-
-
-
Rubbers Hurricane::Net::getRubbers
-
(
-
)
-
const
-
-
-
-
-inline
-
-
-
-
Returns: the collection of net's rubbers.
-
-
-
-
-
-
-
-
-
-
-
-
Components Hurricane::Net::getComponents
-
(
-
)
-
const
-
-
-
-
-inline
-
-
-
-
Returns: the collection of net's components.
-
-
-
-
-
-
-
-
-
Plugs Hurricane::Net::getPlugs
-
(
-
)
-
const
-
-
-
-
Returns: the collection of net's plugs.
-
-
-
-
-
-
-
-
-
Contacts Hurricane::Net::getContacts
-
(
-
)
-
const
-
-
-
-
Returns: the collection of net's contacts.
-
-
-
-
-
-
-
-
-
Segments Hurricane::Net::getSegments
-
(
-
)
-
const
-
-
-
-
Returns: the collection of net's segments.
-
-
-
-
-
-
-
-
-
Verticals Hurricane::Net::getVerticals
-
(
-
)
-
const
-
-
-
-
Returns: the collection of net's vertical segments.
-
-
-
-
-
-
-
-
-
Horizontals Hurricane::Net::getHorizontals
-
(
-
)
-
const
-
-
-
-
Returns: the collection of net's horizontal segments.
-
-
-
-
-
-
-
-
-
Pads Hurricane::Net::getPads
-
(
-
)
-
const
-
-
-
-
Returns: the collection of net's pads.
-
-
-
-
-
-
-
-
-
RoutingPads Hurricane::Net::getRoutingPads
-
(
-
)
-
const
-
-
-
-
Returns: the collection of net's RoutingPads.
-
-
-
-
-
-
-
-
-
Plugs Hurricane::Net::getSlavePlugs
-
(
-
)
-
const
-
-
-
-
Returns: the collection of plugs which have this net as master.
-
Remark:
Meaningfull only for external nets.
-
-
-
-
-
-
-
-
-
Plugs Hurricane::Net::getConnectedSlavePlugs
-
(
-
)
-
const
-
-
-
-
Returns: the collection of connected plugs which have this net as master.
-
Remark:
Meaningfull only for external nets.
-
-
-
-
-
-
-
-
-
Plugs Hurricane::Net::getUnconnectedSlavePlugs
-
(
-
)
-
const
-
-
-
-
Returns: the collection of unconnected plugs which have this net as master.
Merges the net \c \<net\> to the net \c \<this\> which keeps
- its characteristics (arity, global, external and direction).
-
Caution:
An exception is thrown if the <net> is null or equal to <this>, if the two nets don't belong to the same cell or if <net> is external and master net of a connected plug while net <this> is not external.
-
Remark:
All the rubbers and the components of the <net> (and also the plugs) become rubbers or components of the net <this>. Nevertheless if for a particular slave instance there was both a plug referencing the <net> and an other plug referencing <this>, the first is deleted to the advantage of the second, because a net can't have more than one plug for a given instance (the rings of the body hooks are then merged).
-
Remark:
Once the merger done the net <net> is definitively deleted. Its properties and those of its deleted plugs, if any, are lost (as well as the ones which could be attached to their occurences).
This class is a functor to be used in STL containers of Entity* whenever determinism is required (as an alternative to the object's pointer). If a NULL pointer is passed as argument, it's id is computed as zero, it is a failsafe and should be avoided.
-
-
diff --git a/hurricane/doc/hurricane/html/tab_b.gif b/hurricane/doc/hurricane/html/tab_b.gif
deleted file mode 100644
index 0d623483..00000000
Binary files a/hurricane/doc/hurricane/html/tab_b.gif and /dev/null differ
diff --git a/hurricane/doc/hurricane/html/tab_l.gif b/hurricane/doc/hurricane/html/tab_l.gif
deleted file mode 100644
index 9b1e6337..00000000
Binary files a/hurricane/doc/hurricane/html/tab_l.gif and /dev/null differ
diff --git a/hurricane/doc/hurricane/html/tab_r.gif b/hurricane/doc/hurricane/html/tab_r.gif
deleted file mode 100644
index ce9dd9f5..00000000
Binary files a/hurricane/doc/hurricane/html/tab_r.gif and /dev/null differ
diff --git a/hurricane/doc/hurricane/latex/annotated.tex b/hurricane/doc/hurricane/latex/annotated.tex
index 9a27a5a7..fd5a24bd 100644
--- a/hurricane/doc/hurricane/latex/annotated.tex
+++ b/hurricane/doc/hurricane/latex/annotated.tex
@@ -47,6 +47,7 @@ Here are the classes, structs, unions and interfaces with brief descriptions\+:\
\item\contentsline{section}{\mbox{\hyperlink{classHurricane_1_1Transformation_1_1Orientation}{Hurricane\+::\+Transformation\+::\+Orientation}} }{\pageref{classHurricane_1_1Transformation_1_1Orientation}}{}
\item\contentsline{section}{\mbox{\hyperlink{classHurricane_1_1Pad}{Hurricane\+::\+Pad}} \\*\mbox{\hyperlink{classHurricane_1_1Pad}{Pad}} description ({\bfseries A\+PI}) }{\pageref{classHurricane_1_1Pad}}{}
\item\contentsline{section}{\mbox{\hyperlink{classHurricane_1_1Path}{Hurricane\+::\+Path}} \\*\mbox{\hyperlink{classHurricane_1_1Path}{Path}} description ({\bfseries A\+PI}) }{\pageref{classHurricane_1_1Path}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Hurricane\+::\+Physical\+Rule}} \\*Define a rule for the technology ({\bfseries A\+PI}) }{\pageref{classHurricane_1_1PhysicalRule}}{}
\item\contentsline{section}{\mbox{\hyperlink{classHurricane_1_1Pin}{Hurricane\+::\+Pin}} \\*\mbox{\hyperlink{classHurricane_1_1Pin}{Pin}} description ({\bfseries A\+PI}) }{\pageref{classHurricane_1_1Pin}}{}
\item\contentsline{section}{\mbox{\hyperlink{classHurricane_1_1Instance_1_1PlacementStatus}{Hurricane\+::\+Instance\+::\+Placement\+Status}} \\*\mbox{\hyperlink{classHurricane_1_1Instance}{Instance}} Placement Status ({\bfseries A\+PI}) }{\pageref{classHurricane_1_1Instance_1_1PlacementStatus}}{}
\item\contentsline{section}{\mbox{\hyperlink{classHurricane_1_1Plug}{Hurricane\+::\+Plug}} \\*\mbox{\hyperlink{classHurricane_1_1Plug}{Plug}} description ({\bfseries A\+PI}) }{\pageref{classHurricane_1_1Plug}}{}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1BasicLayer.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1BasicLayer.tex
index 7e5f88c1..bcf37818 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1BasicLayer.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1BasicLayer.tex
@@ -57,9 +57,9 @@ creates and returns a new basic layer named {\ttfamily $<$name$>$}, of type {\tt
\begin{DoxyParagraph}{Caution\+: Throws an exception if the technology is null, if the name is }
empty, if a layer of same name already exists or if we overflow the capacity of the bit field associated to the layer mask.
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: The extract number is a kind of logic number. In example the }
-CP layer which represent a poly layer should have the same extract number as the C\+PG layer which represent a poly layer used to realize the transistor gates. While extractions process, layers which have the same extract number are considered as equivalents. A null value indicates that the extraction should ignore this layer.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The extract number is a kind of logic number. In example the CP layer which represent a poly layer should have the same extract number as the C\+PG layer which represent a poly layer used to realize the transistor gates. While extractions process, layers which have the same extract number are considered as equivalents. A null value indicates that the extraction should ignore this layer.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1BasicLayer_aeb7fd37db4ecf8e56e1992d6350fac58}\label{classHurricane_1_1BasicLayer_aeb7fd37db4ecf8e56e1992d6350fac58}}
\index{Hurricane\+::\+Basic\+Layer@{Hurricane\+::\+Basic\+Layer}!get\+Material@{get\+Material}}
\index{get\+Material@{get\+Material}!Hurricane\+::\+Basic\+Layer@{Hurricane\+::\+Basic\+Layer}}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Box.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Box.tex
index 440be585..72888949 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Box.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Box.tex
@@ -158,9 +158,9 @@ Assignment operator. \mbox{\Hypertarget{classHurricane_1_1Box_a2a363ad0fdfda5a2f
Equality operator.
-\begin{DoxyParagraph}{Remark\+: Two empty boxes are always different. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Two empty boxes are always different.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Box_a77a0e8c424c246973c455ce8e3ada8fb}\label{classHurricane_1_1Box_a77a0e8c424c246973c455ce8e3ada8fb}}
\index{Hurricane\+::\+Box@{Hurricane\+::\+Box}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!Hurricane\+::\+Box@{Hurricane\+::\+Box}}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Cell.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Cell.tex
index b7fa3e03..84a5385d 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Cell.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Cell.tex
@@ -265,9 +265,9 @@ in this collection.
Returns the \mbox{\hyperlink{classHurricane_1_1Collection}{Collection}} of all Occurrences belonging to this \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}}.
-\begin{DoxyParagraph}{Remark\+: The search depth is decremented each time a hirearchical}
-level is crossed. The search ends when depth becomes null (the value {\ttfamily I\+N\+F\+I\+N\+I\+TE} is equal to {\ttfamily }(unsigned)-\/1) .
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The search depth is decremented each time a hirearchical level is crossed. The search ends when depth becomes null (the value {\ttfamily I\+N\+F\+I\+N\+I\+TE} is equal to {\ttfamily }(unsigned)-\/1) .
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Cell_a7fb09c8e350923c47ce4c4407bdb00ce}\label{classHurricane_1_1Cell_a7fb09c8e350923c47ce4c4407bdb00ce}}
\index{Hurricane\+::\+Cell@{Hurricane\+::\+Cell}!get\+Occurrences\+Under@{get\+Occurrences\+Under}}
\index{get\+Occurrences\+Under@{get\+Occurrences\+Under}!Hurricane\+::\+Cell@{Hurricane\+::\+Cell}}
@@ -276,9 +276,9 @@ level is crossed. The search ends when depth becomes null (the value {\ttfamily
Returns the \mbox{\hyperlink{classHurricane_1_1Collection}{Collection}} of all Occurrences belonging to this \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}} and intersecting the given rectangular area.
-\begin{DoxyParagraph}{Remark\+: The search depth is decremented each time a hirearchical}
-level is crossed. The search ends when depth becomes null (the value {\ttfamily I\+N\+F\+I\+N\+I\+TE} is equal to {\ttfamily }(unsigned)-\/1) .
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The search depth is decremented each time a hirearchical level is crossed. The search ends when depth becomes null (the value {\ttfamily I\+N\+F\+I\+N\+I\+TE} is equal to {\ttfamily }(unsigned)-\/1) .
+\end{DoxyRemark}
\begin{DoxyParagraph}{Caution\+: Only occurences corresponding to currently materialized}
entities are taken into account in this \mbox{\hyperlink{classHurricane_1_1Collection}{Collection}}.
\end{DoxyParagraph}
@@ -354,9 +354,9 @@ Returns {\bfseries true} if the \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}}
Allows to change the \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}} \mbox{\hyperlink{classHurricane_1_1Name}{Name}}.
-\begin{DoxyParagraph}{Remark\+: Throws an exception if the new {\itshape name} is empty or if the}
-\mbox{\hyperlink{classHurricane_1_1Library}{Library}} owning the \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}} has already a \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}} with the same name.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Throws an exception if the new {\itshape name} is empty or if the \mbox{\hyperlink{classHurricane_1_1Library}{Library}} owning the \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}} has already a \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}} with the same name.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Cell_ab1949e2b708f0bd2d215ab90cfe864e0}\label{classHurricane_1_1Cell_ab1949e2b708f0bd2d215ab90cfe864e0}}
\index{Hurricane\+::\+Cell@{Hurricane\+::\+Cell}!set\+Abutment\+Box@{set\+Abutment\+Box}}
\index{set\+Abutment\+Box@{set\+Abutment\+Box}!Hurricane\+::\+Cell@{Hurricane\+::\+Cell}}
@@ -365,9 +365,9 @@ Allows to change the \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}} \mbox{\hype
sets \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}} abutment box.
-\begin{DoxyParagraph}{Remark\+: At the Cell creation the abutment box is empty. This one must}
-be set through this function. It is possible also, once fixed, to reset it to empty (undefined) by passing an empty \mbox{\hyperlink{classHurricane_1_1Box}{Box}} as argument.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+At the \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}} creation the abutment box is empty. This one must be set through this function. It is possible also, once fixed, to reset it to empty (undefined) by passing an empty \mbox{\hyperlink{classHurricane_1_1Box}{Box}} as argument.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Cell_a15958b25e911e8f5543557b6deea5618}\label{classHurricane_1_1Cell_a15958b25e911e8f5543557b6deea5618}}
\index{Hurricane\+::\+Cell@{Hurricane\+::\+Cell}!set\+Terminal\+Netlist@{set\+Terminal\+Netlist}}
\index{set\+Terminal\+Netlist@{set\+Terminal\+Netlist}!Hurricane\+::\+Cell@{Hurricane\+::\+Cell}}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Collection.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Collection.tex
index 1cab7f50..36ce4e27 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Collection.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Collection.tex
@@ -115,9 +115,9 @@ forEach(Instance*, iinstance, getCollection(instanceSet)) \{
\end{DoxyCode}
-\begin{DoxyParagraph}{Remark\+: This approach is a little bit less efficient than the use of }
-S\+TL iterators, not much indeed, but has the advantage to be homogeneous with the remaining code (recall\+: the created collection doesn\textquotesingle{}t make a copy of the S\+TL container and its creation time is negligible).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This approach is a little bit less efficient than the use of S\+TL iterators, not much indeed, but has the advantage to be homogeneous with the remaining code (recall\+: the created collection doesn\textquotesingle{}t make a copy of the S\+TL container and its creation time is negligible).
+\end{DoxyRemark}
\begin{DoxyParagraph}{Caution\+: The returned collection is valid whenever the S\+TL container }
is valid. Then you should not do the following\+:
\begin{DoxyCode}
@@ -173,9 +173,9 @@ Destroys the collection but doesn\textquotesingle{}t acts on elements refered by
Allocates and returns a clone (copy) of the collection (whatever be its type).
-\begin{DoxyParagraph}{Remark\+: In principle there is no need to use this function. However, }
-if you do so, don\textquotesingle{}t forget to delete the clone after use. It is indeed much easier to use generic collections which do that for you, as we will see later.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+In principle there is no need to use this function. However, if you do so, don\textquotesingle{}t forget to delete the clone after use. It is indeed much easier to use generic collections which do that for you, as we will see later.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Collection_a48fd1a0a2b6d2530a87e22ba65aa3152}\label{classHurricane_1_1Collection_a48fd1a0a2b6d2530a87e22ba65aa3152}}
\index{Hurricane\+::\+Collection@{Hurricane\+::\+Collection}!get\+Locator@{get\+Locator}}
\index{get\+Locator@{get\+Locator}!Hurricane\+::\+Collection@{Hurricane\+::\+Collection}}
@@ -185,9 +185,9 @@ if you do so, don\textquotesingle{}t forget to delete the clone after use. It is
Allocates and returns a locator adapted to visit the elements of the collection.
-\begin{DoxyParagraph}{Remark\+: In principle there is no need to use this function. Use }
-preferably the macro {\bfseries for\+\_\+each} described below. However, if you do so, don\textquotesingle{}t forget to delete this locator after use, else use generic locators, which do that for you, as we will see later.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+In principle there is no need to use this function. Use preferably the macro {\bfseries for\+\_\+each} described below. However, if you do so, don\textquotesingle{}t forget to delete this locator after use, else use generic locators, which do that for you, as we will see later.
+\end{DoxyRemark}
Referenced by Hurricane\+::\+Collection$<$ Sub\+Type $>$\+::get\+First(), and Hurricane\+::\+Collection$<$ Sub\+Type $>$\+::get\+Size().
@@ -201,9 +201,9 @@ unsigned \mbox{\hyperlink{classHurricane_1_1Collection}{Hurricane\+::\+Collectio
{\bfseries Returns\+:} the number of objects identified within the collection.
-\begin{DoxyParagraph}{Remark\+: Very fast in some cases, but may need to visit the collection }
-in most ones.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Very fast in some cases, but may need to visit the collection in most ones.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Collection_a846a042646e02a0f77d2ce0f6190288a}\label{classHurricane_1_1Collection_a846a042646e02a0f77d2ce0f6190288a}}
\index{Hurricane\+::\+Collection@{Hurricane\+::\+Collection}!get\+First@{get\+First}}
\index{get\+First@{get\+First}!Hurricane\+::\+Collection@{Hurricane\+::\+Collection}}
@@ -213,9 +213,9 @@ Type \mbox{\hyperlink{classHurricane_1_1Collection}{Hurricane\+::\+Collection}}$
{\bfseries Returns\+:} the first element of the collection.
-\begin{DoxyParagraph}{Remark\+: The result is meaningful only when the collection is non }
-empty.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The result is meaningful only when the collection is non empty.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Collection_aa32ea7249d57ee05e3c71dcde8106832}\label{classHurricane_1_1Collection_aa32ea7249d57ee05e3c71dcde8106832}}
\index{Hurricane\+::\+Collection@{Hurricane\+::\+Collection}!get\+Sub\+Set@{get\+Sub\+Set}}
\index{get\+Sub\+Set@{get\+Sub\+Set}!Hurricane\+::\+Collection@{Hurricane\+::\+Collection}}
@@ -240,9 +240,9 @@ template$<$class Sub\+Type $>$ \\
{\bfseries Returns\+:} the collection corresponding to the subset of elements of type {\ttfamily $<$Sub\+Type$>$}.
-\begin{DoxyParagraph}{Remark\+: The returned collection is a collection of objects of type }
-{\bfseries Sub\+Type} and not of type {\bfseries Type}.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The returned collection is a collection of objects of type {\bfseries Sub\+Type} and not of type {\bfseries Type}.
+\end{DoxyRemark}
\begin{DoxyCode}
\mbox{\hyperlink{namespaceHurricane_a1e6a8ab09f688509bd727b3fee02d0d2}{Contacts}} \mbox{\hyperlink{classHurricane_1_1Net_a9c397596fe9ecbf674712c72e0b9010c}{Net::getContacts}}()\textcolor{keyword}{ const}
@@ -264,9 +264,9 @@ template$<$class Sub\+Type $>$ \\
{\bfseries Returns\+:} the collection representing the subset of elements of type {\ttfamily $<$Sub\+Type$>$} accepted by the filter.
-\begin{DoxyParagraph}{Remark\+: The returned collection is a collection of elements of type }
-{\bfseries Sub\+Type} and not of type {\bfseries Type} and the filter must be a filter of elements of type {\bfseries Sub\+Type}.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The returned collection is a collection of elements of type {\bfseries Sub\+Type} and not of type {\bfseries Type} and the filter must be a filter of elements of type {\bfseries Sub\+Type}.
+\end{DoxyRemark}
\begin{DoxyParagraph}{Sample\+: Filter Hurricane\+:\+:Segment according to their Layer.}
\begin{DoxyCode}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Component.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Component.tex
index f04fa93e..1dfa55fc 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Component.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Component.tex
@@ -65,9 +65,9 @@ Some components (for instance the segments) bear on contacts or other segments,
For that purpose each components must be able to return a location from which a relative calculations can be done. The methods {\bfseries \mbox{\hyperlink{classHurricane_1_1Component_a0f8299ed73705fd4fbf56589dcc7e074}{get\+X()}}} and {\bfseries \mbox{\hyperlink{classHurricane_1_1Component_a727da3f127c3a7a0a09468219f98c3e6}{get\+Y()}}} provide this information and must be overloaded for each sub-\/type of component in oder to get the desired effect.
-\begin{DoxyParagraph}{Remark\+: The fact that a null value is systematically returned by one }
-of this methods means that the locations are computed relative to a null value, which is equivalent to say they are absolute values (see for instance the \mbox{\hyperlink{classHurricane_1_1Horizontal}{Horizontal}} segment whose \mbox{\hyperlink{classHurricane_1_1Component_a0f8299ed73705fd4fbf56589dcc7e074}{get\+X()}} returns always null, while \mbox{\hyperlink{classHurricane_1_1Component_a727da3f127c3a7a0a09468219f98c3e6}{get\+Y()}} return the ordinate of its axis).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The fact that a null value is systematically returned by one of this methods means that the locations are computed relative to a null value, which is equivalent to say they are absolute values (see for instance the \mbox{\hyperlink{classHurricane_1_1Horizontal}{Horizontal}} segment whose \mbox{\hyperlink{classHurricane_1_1Component_a0f8299ed73705fd4fbf56589dcc7e074}{get\+X()}} returns always null, while \mbox{\hyperlink{classHurricane_1_1Component_a727da3f127c3a7a0a09468219f98c3e6}{get\+Y()}} return the ordinate of its axis).
+\end{DoxyRemark}
\hypertarget{classHurricane_1_1Component_secComponentDestruction}{}\subsection{Destruction}\label{classHurricane_1_1Component_secComponentDestruction}
When a component is destroyed, all components which are anchored on its body (through the body hook) are also destroyed. This may recursively propagate to other components anchored on the body of those last ones.
@@ -205,9 +205,9 @@ Implemented in \mbox{\hyperlink{classHurricane_1_1RoutingPad_a7f1e300e4148556fa2
{\bfseries Returns\+:} the collection of \char`\"{}connex components\char`\"{} to the component {\ttfamily $<$this$>$} (which includes at least this one).
-\begin{DoxyParagraph}{Remark\+: A componnent is said connex to an other one if it is }
-attached directly or indirectly through hyper-\/hooks, that is if there exist a sequence of components whose parts (extremities or body) are either sharing the same anchor or anchored one upon the other.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+A componnent is said {\bfseries connex} to an other one if it is attached directly or indirectly through hyper-\/hooks, that is if there exist a sequence of components whose parts (extremities or body) are either sharing the same anchor or anchored one upon the other.
+\end{DoxyRemark}
If the layout elements are correctly assembled and on the proper layers, this \char`\"{}connex components collection\char`\"{} represents an geometrically and electrically connected subset of layout elements
On the other hand, if layout anchored objects don\textquotesingle{}t overlap on the same conducting layers (either by a wrong contact layer or by an offset which forbids layout intersection) electrical continuity will not be ensured. \mbox{\Hypertarget{classHurricane_1_1Component_af6d6b7c6b3cb18754cfa02bc5fb1e754}\label{classHurricane_1_1Component_af6d6b7c6b3cb18754cfa02bc5fb1e754}}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Contact.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Contact.tex
index ecc8bb1a..8fa445a2 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Contact.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Contact.tex
@@ -112,9 +112,9 @@ creates and returns a new contact on the layer {\ttfamily $<$layer$>$}, of size
\begin{DoxyParagraph}{Caution\+: Throws an exception if the layer or the anchor is null or if }
the anchor is an unconnected plug.
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: The new contact belongs to the anchor\textquotesingle{}s net. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The new contact belongs to the anchor\textquotesingle{}s net.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Contact_a300306b006397377bc9a54ea783c1150}\label{classHurricane_1_1Contact_a300306b006397377bc9a54ea783c1150}}
\index{Hurricane\+::\+Contact@{Hurricane\+::\+Contact}!get\+Anchor\+Hook@{get\+Anchor\+Hook}}
\index{get\+Anchor\+Hook@{get\+Anchor\+Hook}!Hurricane\+::\+Contact@{Hurricane\+::\+Contact}}
@@ -135,9 +135,9 @@ The anchor hook of the contact being a slave one, it may have a master hook repr
{\bfseries Returns\+:} the relative abscissa of the contact.
-\begin{DoxyParagraph}{Remark\+: If you want to get the absolute one use the member function }
-get\+X() defined at the \mbox{\hyperlink{classHurricane_1_1Component}{Component}} level.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+If you want to get the absolute one use the member function get\+X() defined at the \mbox{\hyperlink{classHurricane_1_1Component}{Component}} level.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Contact_aa7bc32ab9211fd5f6ad3aacdf1214f20}\label{classHurricane_1_1Contact_aa7bc32ab9211fd5f6ad3aacdf1214f20}}
\index{Hurricane\+::\+Contact@{Hurricane\+::\+Contact}!get\+Dy@{get\+Dy}}
\index{get\+Dy@{get\+Dy}!Hurricane\+::\+Contact@{Hurricane\+::\+Contact}}
@@ -146,9 +146,9 @@ get\+X() defined at the \mbox{\hyperlink{classHurricane_1_1Component}{Component}
{\bfseries Returns\+:} the relative ordinate of the contact.
-\begin{DoxyParagraph}{Remark\+: If you want to get the absolute one use the member function }
-get\+Y() defined at the \mbox{\hyperlink{classHurricane_1_1Component}{Component}} level.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+If you want to get the absolute one use the member function get\+Y() defined at the \mbox{\hyperlink{classHurricane_1_1Component}{Component}} level.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Contact_a28bd18de9ca6e5cf2b77fce5e22af43a}\label{classHurricane_1_1Contact_a28bd18de9ca6e5cf2b77fce5e22af43a}}
\index{Hurricane\+::\+Contact@{Hurricane\+::\+Contact}!get\+Width@{get\+Width}}
\index{get\+Width@{get\+Width}!Hurricane\+::\+Contact@{Hurricane\+::\+Contact}}
@@ -229,9 +229,9 @@ Allows to change the absolute location of the contact (if it has a location rela
Allows to change the horizontal offset of the contact.
-\begin{DoxyParagraph}{Remark\+: If the contact is absolute, this amounts to change its }
-absolute abscissa.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+If the contact is absolute, this amounts to change its absolute abscissa.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Contact_a32ee96c21115ee9d197bc505fd48e37d}\label{classHurricane_1_1Contact_a32ee96c21115ee9d197bc505fd48e37d}}
\index{Hurricane\+::\+Contact@{Hurricane\+::\+Contact}!set\+Dy@{set\+Dy}}
\index{set\+Dy@{set\+Dy}!Hurricane\+::\+Contact@{Hurricane\+::\+Contact}}
@@ -240,9 +240,9 @@ absolute abscissa.
Allows to change the vertical offset of the contact.
-\begin{DoxyParagraph}{Remark\+: If the contact is absolute, this amounts to change its }
-absolute ordinate.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+If the contact is absolute, this amounts to change its absolute ordinate.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Contact_a41ba972136e77d768f58ad0407d18f8e}\label{classHurricane_1_1Contact_a41ba972136e77d768f58ad0407d18f8e}}
\index{Hurricane\+::\+Contact@{Hurricane\+::\+Contact}!set\+Offset@{set\+Offset}}
\index{set\+Offset@{set\+Offset}!Hurricane\+::\+Contact@{Hurricane\+::\+Contact}}
@@ -251,9 +251,9 @@ absolute ordinate.
Allows to change the offset of the contact.
-\begin{DoxyParagraph}{Remark\+: If the contact is absolute, this amounts to change its }
-absolute location.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+If the contact is absolute, this amounts to change its absolute location.
+\end{DoxyRemark}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Contact_1_1AnchorHook.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Contact_1_1AnchorHook.tex
index fde61656..58c084ee 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Contact_1_1AnchorHook.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Contact_1_1AnchorHook.tex
@@ -15,9 +15,9 @@ Inheritance diagram for Hurricane\+:\+:Contact\+:\+:Anchor\+Hook\+:\nopagebreak
\subsection{Detailed Description}
With contacts, a new type of \mbox{\hyperlink{classHurricane_1_1Hook}{Hook}} appears \+: the {\bfseries \mbox{\hyperlink{classHurricane_1_1Contact_1_1AnchorHook}{Anchor\+Hook}}}, which allows to attach a contact upon an other component, on which it is said to be \char`\"{}anchored\char`\"{}. It becomes then a \char`\"{}relative contact\char`\"{} with respect of the coordinates of this component. The \mbox{\hyperlink{classHurricane_1_1Contact_1_1AnchorHook}{Anchor\+Hook}} is always a slave hook.
-\begin{DoxyParagraph}{Remark\+: A contact has two attributes {\ttfamily $<$Dx$>$} and {\ttfamily $<$Dy$>$} which }
-represent the relative coordinates of the contact with respect to the coordinates of the component on which it is anchored (through this \mbox{\hyperlink{classHurricane_1_1Contact_1_1AnchorHook}{Anchor\+Hook}}). When it is not anchored, those coordinates becomes relative to the origin of the cell, which means they are absolute.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+A contact has two attributes {\ttfamily $<$Dx$>$} and {\ttfamily $<$Dy$>$} which represent the relative coordinates of the contact with respect to the coordinates of the component on which it is anchored (through this \mbox{\hyperlink{classHurricane_1_1Contact_1_1AnchorHook}{Anchor\+Hook}}). When it is not anchored, those coordinates becomes relative to the origin of the cell, which means they are absolute.
+\end{DoxyRemark}
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1DBo.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1DBo.tex
index 53697a67..2f4ddf90 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1DBo.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1DBo.tex
@@ -139,9 +139,9 @@ MyCell* MyCell::Create(Library* library, \textcolor{keyword}{const} Name& name)
\end{DoxyCode}
-\begin{DoxyParagraph}{Remark\+: The destructor, strictly speaking, is not defined because}
-necessary operations are done within the method {\bfseries \+\_\+pre\+Destroy}. In the implementation of the class {\bfseries My\+Cell} we have only used the type {\bfseries Inherit} (and never {\bfseries \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}}}). This opens the door to hierarchy changes without affecting the code already written.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The destructor, strictly speaking, is not defined because necessary operations are done within the method {\bfseries \+\_\+pre\+Destroy}. In the implementation of the class {\bfseries My\+Cell} we have only used the type {\bfseries Inherit} (and never {\bfseries \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}}}). This opens the door to hierarchy changes without affecting the code already written.
+\end{DoxyRemark}
\hypertarget{classHurricane_1_1DBo_sDBoRemark}{}\subsection{Remark}\label{classHurricane_1_1DBo_sDBoRemark}
The construction and deletion process of property objects is the same. It is mandatory for any new type of property to adopt the same protocol.
@@ -166,8 +166,8 @@ The legal method to delete any \mbox{\hyperlink{classHurricane_1_1DBo}{D\+Bo}} o
\begin{DoxyReturn}{Returns}
The property of \mbox{\hyperlink{classHurricane_1_1Name}{Name}} {\itshape name} attached to the object, if it exists, else {\ttfamily N\+U\+LL}.
\end{DoxyReturn}
-\begin{DoxyParagraph}{Remark\+: When writting what follows \+:}
-
+\begin{DoxyRemark}{Remarks}
+When writting what follows \+:
\begin{DoxyCode}
forEach(DBo*, idbo, dbos) \{
Property* \textcolor{keyword}{property} = idbo->getProperty(\textcolor{stringliteral}{"width"});
@@ -177,7 +177,7 @@ forEach(DBo*, idbo, dbos) \{
\}
\end{DoxyCode}
-\end{DoxyParagraph}
+\end{DoxyRemark}
There is construction of a name (from a character string) for each visited dbo in order to find the property. It\textquotesingle{}s more efficient to write \+:
\begin{DoxyCode}
Name width = \textcolor{stringliteral}{"width"};
@@ -224,9 +224,9 @@ The property \mbox{\hyperlink{classHurricane_1_1Collection}{Collection}} associa
Adds the \mbox{\hyperlink{classHurricane_1_1Property}{Property}} {\itshape property} to the set of object properties. Properties being named, if an other one already exists in the set, with the same name, this last will be in a first step removed from the set.
-\begin{DoxyParagraph}{Remark\+: Does nothing if the Property object is already attached to the}
-object.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Does nothing if the \mbox{\hyperlink{classHurricane_1_1Property}{Property}} object is already attached to the object.
+\end{DoxyRemark}
\begin{DoxyParagraph}{Caution\+: An exception is thrown if the Property pointer is {\ttfamily N\+U\+LL}.}
\end{DoxyParagraph}
@@ -238,9 +238,9 @@ object.
removes the property {\itshape property} from the set of object properties.
-\begin{DoxyParagraph}{Remark\+: Does nothing if the Property object is not attached to the object.}
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Does nothing if the \mbox{\hyperlink{classHurricane_1_1Property}{Property}} object is not attached to the object.
+\end{DoxyRemark}
\begin{DoxyParagraph}{Caution\+: An exception is thrown if the Property pointer is {\ttfamily N\+U\+LL}.}
\end{DoxyParagraph}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1DBo__inherit__graph.pdf b/hurricane/doc/hurricane/latex/classHurricane_1_1DBo__inherit__graph.pdf
index 887eafaf..81c61ae9 100644
Binary files a/hurricane/doc/hurricane/latex/classHurricane_1_1DBo__inherit__graph.pdf and b/hurricane/doc/hurricane/latex/classHurricane_1_1DBo__inherit__graph.pdf differ
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Entity.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Entity.tex
index c1015ced..3b3975d4 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Entity.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Entity.tex
@@ -50,9 +50,9 @@ The identifier is generated from an ever incrementing counter on 32 bits or 64 b
\begin{DoxyReturn}{Returns}
Returns the bounding box of the entity. It is defined as the smallest box enclosing the entity or its constituents.
\end{DoxyReturn}
-\begin{DoxyParagraph}{Remark\+: For the Plugs, which are not objects of the physical layout,}
-the returned envelope is a \mbox{\hyperlink{classHurricane_1_1Box}{Box}} of null dimensions (ponctual) centered on the location of the master \mbox{\hyperlink{classHurricane_1_1Net}{Net}} of the \mbox{\hyperlink{classHurricane_1_1Plug}{Plug}}, to which has been applied the transformation associated to the \mbox{\hyperlink{classHurricane_1_1Instance}{Instance}} of the \mbox{\hyperlink{classHurricane_1_1Plug}{Plug}}.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+For the Plugs, which are not objects of the physical layout, the returned envelope is a \mbox{\hyperlink{classHurricane_1_1Box}{Box}} of null dimensions (ponctual) centered on the location of the master \mbox{\hyperlink{classHurricane_1_1Net}{Net}} of the \mbox{\hyperlink{classHurricane_1_1Plug}{Plug}}, to which has been applied the transformation associated to the \mbox{\hyperlink{classHurricane_1_1Instance}{Instance}} of the \mbox{\hyperlink{classHurricane_1_1Plug}{Plug}}.
+\end{DoxyRemark}
Implemented in \mbox{\hyperlink{classHurricane_1_1RoutingPad_a2cc2894b5e1c82b725dedcf1978dc773}{Hurricane\+::\+Routing\+Pad}}.
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Exception.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Exception.tex
index bb665605..6203d4bb 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Exception.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Exception.tex
@@ -38,9 +38,9 @@ static void \mbox{\hyperlink{classHurricane_1_1Exception_a0effe808df00f4efe10925
\hypertarget{classHurricane_1_1Exception_secExceptionIntro}{}\subsection{Introduction}\label{classHurricane_1_1Exception_secExceptionIntro}
The \mbox{\hyperlink{classHurricane_1_1Exception}{Exception}} class groups all exceptions thrown by functions from the A\+PI. This virtual class is only useful to catch exceptions originating from one of those functions.
-\begin{DoxyParagraph}{Remark\+: Copy construction is disabled.}
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Copy construction is disabled.
+\end{DoxyRemark}
\hypertarget{classHurricane_1_1Exception_secExceptionExample}{}\subsection{Example}\label{classHurricane_1_1Exception_secExceptionExample}
\begin{DoxyCode}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1GenericCollection.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1GenericCollection.tex
index 87037589..2e2d76dd 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1GenericCollection.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1GenericCollection.tex
@@ -33,9 +33,9 @@ Generic \mbox{\hyperlink{classHurricane_1_1Collection}{Collection}} auto-\/point
This class is an auto-\/pointer like wrapped around the raw collection. The database systematically returns collections wrapped inside \mbox{\hyperlink{classHurricane_1_1GenericCollection}{Generic\+Collection}}.
-\begin{DoxyParagraph}{Remark\+: The destruction of a Generic\+Collection triggers the destruction of}
-the raw collection.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The destruction of a \mbox{\hyperlink{classHurricane_1_1GenericCollection}{Generic\+Collection}} triggers the destruction of the raw collection.
+\end{DoxyRemark}
\subsection{Constructor \& Destructor Documentation}
@@ -48,9 +48,9 @@ the raw collection.
Constructor from a raw \mbox{\hyperlink{classHurricane_1_1Collection}{Collection}}.
-\begin{DoxyParagraph}{Remark\+: This constructor build a {\itshape copy} of the raw collection. So the originating}
-collection can be safely deleted.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This constructor build a {\itshape copy} of the raw collection. So the originating collection can be safely deleted.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1GenericCollection_a9b77dc014864c2248f31b9dfee242d25}\label{classHurricane_1_1GenericCollection_a9b77dc014864c2248f31b9dfee242d25}}
\index{Hurricane\+::\+Generic\+Collection@{Hurricane\+::\+Generic\+Collection}!Generic\+Collection@{Generic\+Collection}}
\index{Generic\+Collection@{Generic\+Collection}!Hurricane\+::\+Generic\+Collection@{Hurricane\+::\+Generic\+Collection}}
@@ -60,9 +60,9 @@ collection can be safely deleted.
Constructor from a raw \mbox{\hyperlink{classHurricane_1_1Collection}{Collection}}.
-\begin{DoxyParagraph}{Remark\+: This constructor build a {\itshape copy} of the raw collection. So the originating}
-collection can be safely deleted.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This constructor build a {\itshape copy} of the raw collection. So the originating collection can be safely deleted.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1GenericCollection_a8e4f70213efb85c0ba802b7de9c03b32}\label{classHurricane_1_1GenericCollection_a8e4f70213efb85c0ba802b7de9c03b32}}
\index{Hurricane\+::\+Generic\+Collection@{Hurricane\+::\+Generic\+Collection}!Generic\+Collection@{Generic\+Collection}}
\index{Generic\+Collection@{Generic\+Collection}!Hurricane\+::\+Generic\+Collection@{Hurricane\+::\+Generic\+Collection}}
@@ -72,9 +72,9 @@ collection can be safely deleted.
Constructor from a raw \mbox{\hyperlink{classHurricane_1_1Collection}{Collection}}.
-\begin{DoxyParagraph}{Remark\+: This constructor do not build a copy of the raw collection. So the original}
-raw collection must not be deleted. It\textquotesingle{}s deletion will occurs with the one of the \mbox{\hyperlink{classHurricane_1_1GenericCollection}{Generic\+Collection}}.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This constructor do not build a copy of the raw collection. So the original raw collection must not be deleted. It\textquotesingle{}s deletion will occurs with the one of the \mbox{\hyperlink{classHurricane_1_1GenericCollection}{Generic\+Collection}}.
+\end{DoxyRemark}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1GenericFilter.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1GenericFilter.tex
index fd721694..992d3b39 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1GenericFilter.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1GenericFilter.tex
@@ -33,9 +33,9 @@ Generic \mbox{\hyperlink{classHurricane_1_1Filter}{Filter}} auto-\/pointer.
This class is an auto-\/pointer like wrapped around the raw filter. The database systematically returns filters wrapped inside \mbox{\hyperlink{classHurricane_1_1GenericFilter}{Generic\+Filter}}.
-\begin{DoxyParagraph}{Remark\+: The destruction of a Generic\+Filter triggers the destruction of}
-the raw filter.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The destruction of a \mbox{\hyperlink{classHurricane_1_1GenericFilter}{Generic\+Filter}} triggers the destruction of the raw filter.
+\end{DoxyRemark}
\subsection{Constructor \& Destructor Documentation}
@@ -48,9 +48,9 @@ the raw filter.
Constructor from a raw \mbox{\hyperlink{classHurricane_1_1Filter}{Filter}}.
-\begin{DoxyParagraph}{Remark\+: This constructor build a {\itshape copy} of the raw filter. So the originating}
-filter can be safely deleted.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This constructor build a {\itshape copy} of the raw filter. So the originating filter can be safely deleted.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1GenericFilter_adf44866e7507f45dd0d612743f2d9a71}\label{classHurricane_1_1GenericFilter_adf44866e7507f45dd0d612743f2d9a71}}
\index{Hurricane\+::\+Generic\+Filter@{Hurricane\+::\+Generic\+Filter}!Generic\+Filter@{Generic\+Filter}}
\index{Generic\+Filter@{Generic\+Filter}!Hurricane\+::\+Generic\+Filter@{Hurricane\+::\+Generic\+Filter}}
@@ -60,9 +60,9 @@ filter can be safely deleted.
Constructor from a raw \mbox{\hyperlink{classHurricane_1_1Filter}{Filter}}.
-\begin{DoxyParagraph}{Remark\+: This constructor build a {\itshape copy} of the raw filter. So the originating}
-filter can be safely deleted.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This constructor build a {\itshape copy} of the raw filter. So the originating filter can be safely deleted.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1GenericFilter_aac847f0c0d6ee640c54847e374287fe1}\label{classHurricane_1_1GenericFilter_aac847f0c0d6ee640c54847e374287fe1}}
\index{Hurricane\+::\+Generic\+Filter@{Hurricane\+::\+Generic\+Filter}!Generic\+Filter@{Generic\+Filter}}
\index{Generic\+Filter@{Generic\+Filter}!Hurricane\+::\+Generic\+Filter@{Hurricane\+::\+Generic\+Filter}}
@@ -72,9 +72,9 @@ filter can be safely deleted.
Constructor from a raw \mbox{\hyperlink{classHurricane_1_1Filter}{Filter}}.
-\begin{DoxyParagraph}{Remark\+: This constructor do not build a copy of the raw filter. So the original}
-raw filter must not be deleted. It\textquotesingle{}s deletion will occurs with the one of the \mbox{\hyperlink{classHurricane_1_1GenericFilter}{Generic\+Filter}}.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This constructor do not build a copy of the raw filter. So the original raw filter must not be deleted. It\textquotesingle{}s deletion will occurs with the one of the \mbox{\hyperlink{classHurricane_1_1GenericFilter}{Generic\+Filter}}.
+\end{DoxyRemark}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1GenericLocator.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1GenericLocator.tex
index 90dcb055..28301be8 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1GenericLocator.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1GenericLocator.tex
@@ -33,9 +33,9 @@ Generic \mbox{\hyperlink{classHurricane_1_1Locator}{Locator}} auto-\/pointer.
This class is an auto-\/pointer like wrapped around the raw locator.
-\begin{DoxyParagraph}{Remark\+: The destruction of a Generic\+Locator triggers the destruction of}
-the raw locator.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The destruction of a \mbox{\hyperlink{classHurricane_1_1GenericLocator}{Generic\+Locator}} triggers the destruction of the raw locator.
+\end{DoxyRemark}
\subsection{Constructor \& Destructor Documentation}
@@ -48,9 +48,9 @@ the raw locator.
Constructor from a primary \mbox{\hyperlink{classHurricane_1_1Locator}{Locator}}.
-\begin{DoxyParagraph}{Remark\+: This constructor build a {\itshape copy} of the raw locator. So the originating}
-locator can be safely deleted.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This constructor build a {\itshape copy} of the raw locator. So the originating locator can be safely deleted.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1GenericLocator_aa314dea86573d1cee1d1eea8ac2ab49e}\label{classHurricane_1_1GenericLocator_aa314dea86573d1cee1d1eea8ac2ab49e}}
\index{Hurricane\+::\+Generic\+Locator@{Hurricane\+::\+Generic\+Locator}!Generic\+Locator@{Generic\+Locator}}
\index{Generic\+Locator@{Generic\+Locator}!Hurricane\+::\+Generic\+Locator@{Hurricane\+::\+Generic\+Locator}}
@@ -60,9 +60,9 @@ locator can be safely deleted.
Constructor from a primary \mbox{\hyperlink{classHurricane_1_1Locator}{Locator}} and a \mbox{\hyperlink{classHurricane_1_1Filter}{Filter}}.
-\begin{DoxyParagraph}{Remark\+: This constructor build a {\itshape copy} of the raw locator. So the originating}
-locator can be safely deleted.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This constructor build a {\itshape copy} of the raw locator. So the originating locator can be safely deleted.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1GenericLocator_a4706b6502b806f90f2374df76791a729}\label{classHurricane_1_1GenericLocator_a4706b6502b806f90f2374df76791a729}}
\index{Hurricane\+::\+Generic\+Locator@{Hurricane\+::\+Generic\+Locator}!Generic\+Locator@{Generic\+Locator}}
\index{Generic\+Locator@{Generic\+Locator}!Hurricane\+::\+Generic\+Locator@{Hurricane\+::\+Generic\+Locator}}
@@ -72,9 +72,9 @@ locator can be safely deleted.
Constructor from a raw \mbox{\hyperlink{classHurricane_1_1Locator}{Locator}}.
-\begin{DoxyParagraph}{Remark\+: This constructor do not build a copy of the raw locator. So the original}
-raw locator must not be deleted. It\textquotesingle{}s deletion will occurs with the one of the \mbox{\hyperlink{classHurricane_1_1GenericLocator}{Generic\+Locator}}.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This constructor do not build a copy of the raw locator. So the original raw locator must not be deleted. It\textquotesingle{}s deletion will occurs with the one of the \mbox{\hyperlink{classHurricane_1_1GenericLocator}{Generic\+Locator}}.
+\end{DoxyRemark}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Go.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Go.tex
index 2221b0e1..90d8308c 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Go.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Go.tex
@@ -51,9 +51,9 @@ A graphical object is said materialized when it is effectively inserted into a q
On the other hand, non materialized graphic objects will neither be visible nor taken into account by those collections. This may be a significant advantage in some situations and a great drawback in others.
-\begin{DoxyParagraph}{Remark\+: Plugs are never materialized. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+{\bfseries Plugs are never materialized}.
+\end{DoxyRemark}
\hypertarget{classHurricane_1_1Go_secGoUpdateSessions}{}\subsection{Update sessions}\label{classHurricane_1_1Go_secGoUpdateSessions}
The location of an object within its quadtree depends of its bounding box, if a modification of this one must occur for any reason, the object must be removed from the quadtree before doing the modification and re-\/inserted after, at the right place, according to its new bounding box.
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Hook.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Hook.tex
index 1ea6657d..3d0e1ebc 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Hook.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Hook.tex
@@ -88,9 +88,9 @@ On the same way, hooks disapear automatically with their owner.
{\bfseries Returns\+:} the component whose hook represents a part.
-\begin{DoxyParagraph}{Remark\+: The result is never N\+U\+LL because hooks are byforce nested }
-objects in their component.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The result is never N\+U\+LL because hooks are byforce nested objects in their component.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Hook_a03044fa995d6d784d6c441927ca8af04}\label{classHurricane_1_1Hook_a03044fa995d6d784d6c441927ca8af04}}
\index{Hurricane\+::\+Hook@{Hurricane\+::\+Hook}!get\+Next\+Hook@{get\+Next\+Hook}}
\index{get\+Next\+Hook@{get\+Next\+Hook}!Hurricane\+::\+Hook@{Hurricane\+::\+Hook}}
@@ -99,9 +99,9 @@ objects in their component.
{\bfseries Returns\+:} the next hook within the ring.
-\begin{DoxyParagraph}{Remark\+: The result is never N\+U\+LL because every hook has by }
-construction its next one (which may be itself is the ring is empty).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The result is never N\+U\+LL because every hook has by construction its next one (which may be itself is the ring is empty).
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Hook_ad69ebbbf3d64343aca23ca435f24c624}\label{classHurricane_1_1Hook_ad69ebbbf3d64343aca23ca435f24c624}}
\index{Hurricane\+::\+Hook@{Hurricane\+::\+Hook}!get\+Previous\+Hook@{get\+Previous\+Hook}}
\index{get\+Previous\+Hook@{get\+Previous\+Hook}!Hurricane\+::\+Hook@{Hurricane\+::\+Hook}}
@@ -110,9 +110,9 @@ construction its next one (which may be itself is the ring is empty).
{\bfseries Returns\+:} the previous hook within the ring.
-\begin{DoxyParagraph}{Remark\+: Less efficient than get\+Next\+Hook because it requires a }
-complete ring loop.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Less efficient than get\+Next\+Hook because it requires a complete ring loop.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Hook_af18e0531df4ed14b64cf058b780aee46}\label{classHurricane_1_1Hook_af18e0531df4ed14b64cf058b780aee46}}
\index{Hurricane\+::\+Hook@{Hurricane\+::\+Hook}!get\+Master\+Hook@{get\+Master\+Hook}}
\index{get\+Master\+Hook@{get\+Master\+Hook}!Hurricane\+::\+Hook@{Hurricane\+::\+Hook}}
@@ -121,9 +121,9 @@ complete ring loop.
{\bfseries Returns\+:} the master of the relation master-\/slaves identified by the hook.
-\begin{DoxyParagraph}{Remark\+: May return itself if the hook is a master and return N\+U\+LL if }
-the hook is a slave and has no associated master.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+May return itself if the hook is a master and return N\+U\+LL if the hook is a slave and has no associated master.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Hook_a0923a5a2d0a7ee0458876eed72008e46}\label{classHurricane_1_1Hook_a0923a5a2d0a7ee0458876eed72008e46}}
\index{Hurricane\+::\+Hook@{Hurricane\+::\+Hook}!get\+Next\+Master\+Hook@{get\+Next\+Master\+Hook}}
\index{get\+Next\+Master\+Hook@{get\+Next\+Master\+Hook}!Hurricane\+::\+Hook@{Hurricane\+::\+Hook}}
@@ -132,9 +132,9 @@ the hook is a slave and has no associated master.
{\bfseries Returns\+:} the first master found when starting the search immediately after the given hook.
-\begin{DoxyParagraph}{Remark\+: May return N\+U\+LL if there is no master within the ring or }
-return the hook itself if it is a master and the only one in the ring.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+May return N\+U\+LL if there is no master within the ring or return the hook itself if it is a master and the only one in the ring.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Hook_a80bf5cdd4e81952064f1be94fe10188f}\label{classHurricane_1_1Hook_a80bf5cdd4e81952064f1be94fe10188f}}
\index{Hurricane\+::\+Hook@{Hurricane\+::\+Hook}!get\+Previous\+Master\+Hook@{get\+Previous\+Master\+Hook}}
\index{get\+Previous\+Master\+Hook@{get\+Previous\+Master\+Hook}!Hurricane\+::\+Hook@{Hurricane\+::\+Hook}}
@@ -143,12 +143,11 @@ return the hook itself if it is a master and the only one in the ring.
{\bfseries Returns\+:} the first master found when starting a backwards search immediately before the given hook.
-\begin{DoxyParagraph}{Remark\+: May return N\+U\+LL if there is no master within the ring or }
-return the hook itself if it is a master and the only one in the ring.
-\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: Of course the search is done in the natural forward direction }
-(else it would be trully inefficient).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+May return N\+U\+LL if there is no master within the ring or return the hook itself if it is a master and the only one in the ring.
+
+Of course the search is done in the natural forward direction (else it would be trully inefficient).
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Hook_a2def96fbcd444bebc16e589357c2a779}\label{classHurricane_1_1Hook_a2def96fbcd444bebc16e589357c2a779}}
\index{Hurricane\+::\+Hook@{Hurricane\+::\+Hook}!get\+Hooks@{get\+Hooks}}
\index{get\+Hooks@{get\+Hooks}!Hurricane\+::\+Hook@{Hurricane\+::\+Hook}}
@@ -181,9 +180,9 @@ The master is not included in this collection. \mbox{\Hypertarget{classHurricane
{\bfseries Returns\+:} {\bfseries true} if the hook must be considered as a master, else {\bfseries false}.
-\begin{DoxyParagraph}{Remark\+: For any new kind of hook this predicate must be overloaded. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+For any new kind of hook this predicate must be overloaded.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Hook_acd62c7de2c023a1013d5a728159d068d}\label{classHurricane_1_1Hook_acd62c7de2c023a1013d5a728159d068d}}
\index{Hurricane\+::\+Hook@{Hurricane\+::\+Hook}!is\+Attached@{is\+Attached}}
\index{is\+Attached@{is\+Attached}!Hurricane\+::\+Hook@{Hurricane\+::\+Hook}}
@@ -194,9 +193,9 @@ If the hook is a slave \+:
{\bfseries Returns\+:} {\bfseries true} if the hook has an associated master, else {\bfseries false}.
-\begin{DoxyParagraph}{Remark\+: You can\textquotesingle{}t find two slaves in the same ring without at least a }
-master.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+You can\textquotesingle{}t find two slaves in the same ring without at least a master.
+\end{DoxyRemark}
If the hook is a master \+:
Let us consider the hyper-\/ring made upon hyper-\/hooks. Then the function returns {\bfseries true} if the ring contains at least an other master else {\bfseries false}.
@@ -214,9 +213,9 @@ If the hook is a slave \+:
detaches the hook from its ring and returns its old predecessor.
-\begin{DoxyParagraph}{Remark\+: Will return N\+U\+LL if the hook is the only one in the ring. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Will return N\+U\+LL if the hook is the only one in the ring.
+\end{DoxyRemark}
If the hook is a master \+:
Let us consider the hyper-\/ring made upon hyper-\/hooks. Then, the function detaches the hyper-\/hook (the sub-\/ring made up of the master and its slaves, if any) from the hyper-\/ring and returns the old predecessor of the hyper-\/hook.
@@ -257,9 +256,9 @@ attached within a ring including an other master or if {\ttfamily $<$master\+Hoo
merges the rings represented by the two hooks which both must be masters, returns {\ttfamily $<$master\+Hook$>$}.
-\begin{DoxyParagraph}{Remark\+: Throws an exception if both hooks are not masters. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Throws an exception if both hooks are not masters.
+\end{DoxyRemark}
This function doesn\textquotesingle{}t change the two relatioships master-\/slaves but modifies the connection request between corresponding hyper-\/hooks.
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Horizontal.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Horizontal.tex
index cfb26c48..5928088d 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Horizontal.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Horizontal.tex
@@ -82,9 +82,9 @@ No description. \mbox{\Hypertarget{classHurricane_1_1Horizontal_a7fdafaa2a7e9314
{\bfseries Returns\+:} the relative source abscissa of the segment (may be absolute if the source extremity isn\textquotesingle{}t anchored).
-\begin{DoxyParagraph}{Remark\+: If you want to get the absolute one use the member function }
-get\+Source\+Y() defined at the \mbox{\hyperlink{classHurricane_1_1Segment}{Segment}} level.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+If you want to get the absolute one use the member function get\+Source\+Y() defined at the \mbox{\hyperlink{classHurricane_1_1Segment}{Segment}} level.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Horizontal_aab807785755e4229f215aee3f3b16941}\label{classHurricane_1_1Horizontal_aab807785755e4229f215aee3f3b16941}}
\index{Hurricane\+::\+Horizontal@{Hurricane\+::\+Horizontal}!get\+Dx\+Target@{get\+Dx\+Target}}
\index{get\+Dx\+Target@{get\+Dx\+Target}!Hurricane\+::\+Horizontal@{Hurricane\+::\+Horizontal}}
@@ -93,9 +93,9 @@ get\+Source\+Y() defined at the \mbox{\hyperlink{classHurricane_1_1Segment}{Segm
{\bfseries Returns\+:} the relative target abscissa of the segment (may be absolute if the target extremity isn\textquotesingle{}t anchored).
-\begin{DoxyParagraph}{Remark\+: If you want to get the absolute one use the member function }
-get\+Target\+Y() defined at the \mbox{\hyperlink{classHurricane_1_1Segment}{Segment}} level.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+If you want to get the absolute one use the member function get\+Target\+Y() defined at the \mbox{\hyperlink{classHurricane_1_1Segment}{Segment}} level.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Horizontal_a794aa68157beb2d04816a5f4e9160187}\label{classHurricane_1_1Horizontal_a794aa68157beb2d04816a5f4e9160187}}
\index{Hurricane\+::\+Horizontal@{Hurricane\+::\+Horizontal}!setY@{setY}}
\index{setY@{setY}!Hurricane\+::\+Horizontal@{Hurricane\+::\+Horizontal}}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1HyperNet.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1HyperNet.tex
index 5c940997..3cdf871b 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1HyperNet.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1HyperNet.tex
@@ -28,9 +28,9 @@ The \mbox{\hyperlink{classHurricane_1_1HyperNet}{Hyper\+Net}} is a part of the t
In all the walkthrough, if {\ttfamily do\+Extraction} is set, a simple layout extraction is performed. Of course, it makes the walkthrough much slower. By default it\textquotesingle{}s disabled and the \mbox{\hyperlink{classHurricane_1_1Net}{Net}} occurrence tree is created only from the \mbox{\hyperlink{classHurricane_1_1Plug}{Plug}} information.
-\begin{DoxyParagraph}{Remark\+: The {\ttfamily allow\+Interuption} is deprecated and do nothing.}
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The {\ttfamily allow\+Interuption} is deprecated and do nothing.
+\end{DoxyRemark}
\subsection{Constructor \& Destructor Documentation}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Instance.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Instance.tex
index 7ba09c90..ac73c174 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Instance.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Instance.tex
@@ -111,9 +111,9 @@ Create and return a pointer to a new instance of name {\ttfamily $<$name$>$} bel
\begin{DoxyParagraph}{Caution\+: Throws an exception if the cell {\ttfamily $<$cell$>$} is null, if the }
{\ttfamily $<$master\+Cell$>$} is null, if an instance of same name already exists or if a cyclic assembly is detected.
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: If the {\ttfamily $<$secure\+Flag$>$} is set to {\bfseries false} the verification of }
-the lack of cyclic assembly is skipped (you save some cpu time, but at your own risks).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+If the {\ttfamily $<$secure\+Flag$>$} is set to {\bfseries false} the verification of the lack of cyclic assembly is skipped (you save some cpu time, but at your own risks).
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Instance_aa48280b4d7127d283c89983cf7a42c23}\label{classHurricane_1_1Instance_aa48280b4d7127d283c89983cf7a42c23}}
\index{Hurricane\+::\+Instance@{Hurricane\+::\+Instance}!get\+Name@{get\+Name}}
\index{get\+Name@{get\+Name}!Hurricane\+::\+Instance@{Hurricane\+::\+Instance}}
@@ -194,9 +194,9 @@ consistent with the instance (that is if the owner cell of the tail path is not
Allows to change the instance name.
-\begin{DoxyParagraph}{Remark\+: Throws an exception if the name is empty or if an instance }
-with the same name exists in the owner cell.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Throws an exception if the name is empty or if an instance with the same name exists in the owner cell.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Instance_a8890d2e1b2ba2542997454297e63512f}\label{classHurricane_1_1Instance_a8890d2e1b2ba2542997454297e63512f}}
\index{Hurricane\+::\+Instance@{Hurricane\+::\+Instance}!set\+Transformation@{set\+Transformation}}
\index{set\+Transformation@{set\+Transformation}!Hurricane\+::\+Instance@{Hurricane\+::\+Instance}}
@@ -214,9 +214,9 @@ Allows to change the cell referenced by this instance.
\begin{DoxyParagraph}{Caution\+: Throws an exception if either the cell is null, a cyclic }
assembly is detected or the substitution can\textquotesingle{}t succeed.
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: If the {\ttfamily $<$secure\+Flag$>$} is set to {\bfseries false} the verification of }
-the lack of cyclic assembly is skipped (you save some cpu time, but at your own risks).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+If the {\ttfamily $<$secure\+Flag$>$} is set to {\bfseries false} the verification of the lack of cyclic assembly is skipped (you save some cpu time, but at your own risks).
+\end{DoxyRemark}
\begin{DoxyParagraph}{Important\+: In order to succeed with the substitution, it is necessary }
that for each connected plug, refering an external net of the old master cell, a net of same name can be found in the new master cell.
\end{DoxyParagraph}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Interval.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Interval.tex
index a8319797..acfe9417 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Interval.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Interval.tex
@@ -113,9 +113,9 @@ Assignment operator. \mbox{\Hypertarget{classHurricane_1_1Interval_a1b022ac0ad97
Equality operator.
-\begin{DoxyParagraph}{Remark\+: Two empty intervals are always different. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Two empty intervals are always different.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Interval_a2e5a64c485269fb08fb762e1eb3bc374}\label{classHurricane_1_1Interval_a2e5a64c485269fb08fb762e1eb3bc374}}
\index{Hurricane\+::\+Interval@{Hurricane\+::\+Interval}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!Hurricane\+::\+Interval@{Hurricane\+::\+Interval}}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Layer.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Layer.tex
index 18bdea5e..647e7c11 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Layer.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Layer.tex
@@ -177,9 +177,9 @@ Two differents basic layers have different masks but may have same extraction ma
{\bfseries Returns\+:} the collection of basic layers within this layer.
-\begin{DoxyParagraph}{Remark\+: For a basic layer the collection contains this one only. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+For a basic layer the collection contains this one only.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Layer_a5f7c43a29f3dd02a9ebccbcbf91d6727}\label{classHurricane_1_1Layer_a5f7c43a29f3dd02a9ebccbcbf91d6727}}
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Top@{get\+Top}}
\index{get\+Top@{get\+Top}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
@@ -188,9 +188,9 @@ Two differents basic layers have different masks but may have same extraction ma
{\bfseries Returns\+:} The uppermost layer of that layer. On \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}}, it is always the layer itself. In symbolic layers the meaning depends on the object structure.
-\begin{DoxyParagraph}{Remark\+: In symbolic layers, top \& bottom are not related to the Layer\+:\+:Mask}
-but to the {\itshape structuration} of the layer. It is advisable that the designer create layers and symbolic layers in way that ensure the top layer is indeed the one with the greater mask.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+In symbolic layers, top \& bottom are not related to the \mbox{\hyperlink{classHurricane_1_1Layer_af5277c670637bd5d910237e7afe01a91}{Layer\+::\+Mask}} but to the {\itshape structuration} of the layer. It is advisable that the designer create layers and symbolic layers in way that ensure the top layer is indeed the one with the greater mask.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Layer_a4dab4552a219d2d900ed0b1245dc6580}\label{classHurricane_1_1Layer_a4dab4552a219d2d900ed0b1245dc6580}}
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Bottom@{get\+Bottom}}
\index{get\+Bottom@{get\+Bottom}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
@@ -267,9 +267,9 @@ References get\+Mask().
sets or changes the layer name.
-\begin{DoxyParagraph}{Remark\+: An exception is thrown if the name is empty or if there is an }
-other layer with that name.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+An exception is thrown if the name is empty or if there is an other layer with that name.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Layer_a400d17fe999c0080bb50489948986fe7}\label{classHurricane_1_1Layer_a400d17fe999c0080bb50489948986fe7}}
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!set\+Minimal\+Size@{set\+Minimal\+Size}}
\index{set\+Minimal\+Size@{set\+Minimal\+Size}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Library.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Library.tex
index 54b1b14c..f6574d2c 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Library.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Library.tex
@@ -137,9 +137,9 @@ empty or if a sub library with same name already exists in the library.
Allows to change the library name.
-\begin{DoxyParagraph}{Remark\+: Throws an exception if the new name is empty or if the }
-library owning the library (if any) has already a sub library with the same name.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Throws an exception if the new name is empty or if the library owning the library (if any) has already a sub library with the same name.
+\end{DoxyRemark}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Locator.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Locator.tex
index 91a1a3a4..a206c5db 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Locator.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Locator.tex
@@ -88,9 +88,9 @@ Cell* cell = ...; \textcolor{comment}{// we get a cell}
\textcolor{keyword}{delete} locator1;
\}
\end{DoxyCode}
- \begin{DoxyParagraph}{Remark\+: Those examples are given in order to explain how locators }
-work. We will see in the following how to do that more simply by using generic locators, or even simpler by using the for\+Each macros.
-\end{DoxyParagraph}
+ \begin{DoxyRemark}{Remarks}
+Those examples are given in order to explain how locators work. We will see in the following how to do that more simply by using generic locators, or even simpler by using the for\+Each macros.
+\end{DoxyRemark}
\subsection{Member Function Documentation}
@@ -110,9 +110,9 @@ Type \mbox{\hyperlink{classHurricane_1_1Locator}{Hurricane\+::\+Locator}}$<$ Typ
This function allocates and returns a new locator that will have the same visiting course than the remaining one of the locator being cloned.
-\begin{DoxyParagraph}{Remark\+: In principle there is no need to call this function, but if }
-you do so you must not forget to release the clone after its use or, from it, build a generic locator which will do that for you (to be explained later).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+In principle there is no need to call this function, but if you do so you must not forget to release the clone after its use or, from it, build a generic locator which will do that for you (to be explained later).
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Locator_abb6e5255372e22e31bf0a8e4cae93f87}\label{classHurricane_1_1Locator_abb6e5255372e22e31bf0a8e4cae93f87}}
\index{Hurricane\+::\+Locator@{Hurricane\+::\+Locator}!is\+Valid@{is\+Valid}}
\index{is\+Valid@{is\+Valid}!Hurricane\+::\+Locator@{Hurricane\+::\+Locator}}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Name.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Name.tex
index f99f79a4..0f19dacd 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Name.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Name.tex
@@ -94,8 +94,8 @@ Assignment operator. Very fast because there is only an assignement of pointer t
Equality operator. Very fast because it only tests the equality of pointers to the two shared strings (and not the equality of the two strings).
-\begin{DoxyParagraph}{Remark\+: Don\textquotesingle{}t loose on one side what you save on the other as shown }
-in the following code \+:
+\begin{DoxyRemark}{Remarks}
+Don\textquotesingle{}t loose on one side what you save on the other as shown in the following code \+:
\begin{DoxyCode}
Cell* cell = ...; \textcolor{comment}{// we get the cell}
@@ -131,7 +131,7 @@ for\_each\_net(net, cellGetNets()) \{
\}
\end{DoxyCode}
-\end{DoxyParagraph}
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Name_aff97f0bcf698ad76f6f3c9a4c4833cc3}\label{classHurricane_1_1Name_aff97f0bcf698ad76f6f3c9a4c4833cc3}}
\index{Hurricane\+::\+Name@{Hurricane\+::\+Name}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!Hurricane\+::\+Name@{Hurricane\+::\+Name}}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Net.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Net.tex
index cb9fdfc0..4431f46c 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Net.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Net.tex
@@ -184,9 +184,9 @@ if a net with same name already exists.
{\bfseries Returns\+:} the signal direction (by default set to U\+N\+D\+E\+F\+I\+N\+ED).
-\begin{DoxyParagraph}{Remark\+: This direction is meaningfull only for external nets. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This direction is meaningfull only for external nets.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Net_abcfdec9c953d228845fdb9d75e8173cc}\label{classHurricane_1_1Net_abcfdec9c953d228845fdb9d75e8173cc}}
\index{Hurricane\+::\+Net@{Hurricane\+::\+Net}!get\+Position@{get\+Position}}
\index{get\+Position@{get\+Position}!Hurricane\+::\+Net@{Hurricane\+::\+Net}}
@@ -267,9 +267,9 @@ if a net with same name already exists.
{\bfseries Returns\+:} the collection of plugs which have this net as master.
-\begin{DoxyParagraph}{Remark\+: Meaningfull only for external nets. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Meaningfull only for external nets.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Net_a08560ffa6b0f5ecc442bf232486dd8ff}\label{classHurricane_1_1Net_a08560ffa6b0f5ecc442bf232486dd8ff}}
\index{Hurricane\+::\+Net@{Hurricane\+::\+Net}!get\+Connected\+Slave\+Plugs@{get\+Connected\+Slave\+Plugs}}
\index{get\+Connected\+Slave\+Plugs@{get\+Connected\+Slave\+Plugs}!Hurricane\+::\+Net@{Hurricane\+::\+Net}}
@@ -278,9 +278,9 @@ if a net with same name already exists.
{\bfseries Returns\+:} the collection of connected plugs which have this net as master.
-\begin{DoxyParagraph}{Remark\+: Meaningfull only for external nets. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Meaningfull only for external nets.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Net_aad3f3ea88bdea914cab3f38bdcdb843d}\label{classHurricane_1_1Net_aad3f3ea88bdea914cab3f38bdcdb843d}}
\index{Hurricane\+::\+Net@{Hurricane\+::\+Net}!get\+Unconnected\+Slave\+Plugs@{get\+Unconnected\+Slave\+Plugs}}
\index{get\+Unconnected\+Slave\+Plugs@{get\+Unconnected\+Slave\+Plugs}!Hurricane\+::\+Net@{Hurricane\+::\+Net}}
@@ -289,9 +289,9 @@ if a net with same name already exists.
{\bfseries Returns\+:} the collection of unconnected plugs which have this net as master.
-\begin{DoxyParagraph}{Remark\+: Meaningfull only for external nets. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Meaningfull only for external nets.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Net_a1730ed1247cd9bce7fcf519ea60dc738}\label{classHurricane_1_1Net_a1730ed1247cd9bce7fcf519ea60dc738}}
\index{Hurricane\+::\+Net@{Hurricane\+::\+Net}!get\+Is\+Global\+Filter@{get\+Is\+Global\+Filter}}
\index{get\+Is\+Global\+Filter@{get\+Is\+Global\+Filter}!Hurricane\+::\+Net@{Hurricane\+::\+Net}}
@@ -368,9 +368,9 @@ References Hurricane\+::\+Net\+::\+Type\+::\+C\+L\+O\+CK.
Allows to change net name.
-\begin{DoxyParagraph}{Remark\+: Throws an exception if the new name is empty, or if a net }
-with same net already exists in the cell.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Throws an exception if the new name is empty, or if a net with same net already exists in the cell.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Net_af5dfdca4401902ee7e1e46a1a486da38}\label{classHurricane_1_1Net_af5dfdca4401902ee7e1e46a1a486da38}}
\index{Hurricane\+::\+Net@{Hurricane\+::\+Net}!set\+Arity@{set\+Arity}}
\index{set\+Arity@{set\+Arity}!Hurricane\+::\+Net@{Hurricane\+::\+Net}}
@@ -391,9 +391,9 @@ Sets global signal status to {\ttfamily $<$state$>$}. \mbox{\Hypertarget{classHu
Sets the external net status to {\ttfamily $<$state$>$}.
-\begin{DoxyParagraph}{Remark\+: This function will throw an exception if the net switches to }
-internal and there is a plug refering to it.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This function will throw an exception if the net switches to internal and there is a plug refering to it.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Net_a83f5ce12291b0ec5ab584d515dd8963c}\label{classHurricane_1_1Net_a83f5ce12291b0ec5ab584d515dd8963c}}
\index{Hurricane\+::\+Net@{Hurricane\+::\+Net}!set\+Type@{set\+Type}}
\index{set\+Type@{set\+Type}!Hurricane\+::\+Net@{Hurricane\+::\+Net}}
@@ -435,12 +435,11 @@ Merges the net {\ttfamily $<$net$>$} to the net {\ttfamily $<$this$>$} which kee
\begin{DoxyParagraph}{Caution\+: An exception is thrown if the {\ttfamily $<$net$>$} is null or equal to }
{\ttfamily $<$this$>$}, if the two nets don\textquotesingle{}t belong to the same cell or if {\ttfamily $<$net$>$} is external and master net of a connected plug while net {\ttfamily $<$this$>$} is not external.
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: All the rubbers and the components of the {\ttfamily $<$net$>$} (and }
-also the plugs) become rubbers or components of the net {\ttfamily $<$this$>$}. Nevertheless if for a particular slave instance there was both a plug referencing the {\ttfamily $<$net$>$} and an other plug referencing {\ttfamily $<$this$>$}, the first is deleted to the advantage of the second, because a net can\textquotesingle{}t have more than one plug for a given instance (the rings of the body hooks are then merged).
-\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: Once the merger done the net {\ttfamily $<$net$>$} is definitively }
-deleted. Its properties and those of its deleted plugs, if any, are lost (as well as the ones which could be attached to their occurences).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+All the rubbers and the components of the {\ttfamily $<$net$>$} (and also the plugs) become rubbers or components of the net {\ttfamily $<$this$>$}. Nevertheless if for a particular slave instance there was both a plug referencing the {\ttfamily $<$net$>$} and an other plug referencing {\ttfamily $<$this$>$}, the first is deleted to the advantage of the second, because a net can\textquotesingle{}t have more than one plug for a given instance (the rings of the body hooks are then merged).
+
+Once the merger done the net {\ttfamily $<$net$>$} is definitively deleted. Its properties and those of its deleted plugs, if any, are lost (as well as the ones which could be attached to their occurences).
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Net_a4bd27e6ae22606463491c28437c4068f}\label{classHurricane_1_1Net_a4bd27e6ae22606463491c28437c4068f}}
\index{Hurricane\+::\+Net@{Hurricane\+::\+Net}!get\+Clone@{get\+Clone}}
\index{get\+Clone@{get\+Clone}!Hurricane\+::\+Net@{Hurricane\+::\+Net}}
@@ -449,9 +448,9 @@ deleted. Its properties and those of its deleted plugs, if any, are lost (as wel
Build a duplicate of net ({\ttfamily } $<$this$>$) inside a cloned \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}} {\ttfamily } $<$clone\+Cell$>$. The connectivity (\mbox{\hyperlink{classHurricane_1_1Plug}{Plug}}) or components of the original net are {\bfseries not} copied.
-\begin{DoxyParagraph}{Remark\+: It is likely that {\ttfamily } is a copy of this net\textquotesingle{}s onwer Cell,}
-but it is not mandatory.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+It is likely that {\ttfamily } $<$clone\+Cell$>$ is a copy of this net\textquotesingle{}s onwer \mbox{\hyperlink{classHurricane_1_1Cell}{Cell}}, but it is not mandatory.
+\end{DoxyRemark}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1NotFilter.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1NotFilter.tex
index d0806064..305c4522 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1NotFilter.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1NotFilter.tex
@@ -31,9 +31,9 @@ class Hurricane\+::\+Not\+Filter$<$ Type $>$}
This filter invert the matching criterion of any other filter.
-\begin{DoxyParagraph}{Remark\+: This is a raw Filter.}
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This is a raw \mbox{\hyperlink{classHurricane_1_1Filter}{Filter}}.
+\end{DoxyRemark}
\subsection{Constructor \& Destructor Documentation}
@@ -46,9 +46,9 @@ This filter invert the matching criterion of any other filter.
Constructor from a raw \mbox{\hyperlink{classHurricane_1_1Filter}{Filter}}.
-\begin{DoxyParagraph}{Remark\+: This constructor build a {\itshape copy} of the raw filter. So the originating}
-filter can be safely deleted.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This constructor build a {\itshape copy} of the raw filter. So the originating filter can be safely deleted.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1NotFilter_a232102dc584111a704e66b2ac793af86}\label{classHurricane_1_1NotFilter_a232102dc584111a704e66b2ac793af86}}
\index{Hurricane\+::\+Not\+Filter@{Hurricane\+::\+Not\+Filter}!Not\+Filter@{Not\+Filter}}
\index{Not\+Filter@{Not\+Filter}!Hurricane\+::\+Not\+Filter@{Hurricane\+::\+Not\+Filter}}
@@ -58,9 +58,9 @@ filter can be safely deleted.
Copy constructor.
-\begin{DoxyParagraph}{Remark\+: This constructor build a {\itshape copy} of the raw filter. So the originating}
-filter can be safely deleted.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This constructor build a {\itshape copy} of the raw filter. So the originating filter can be safely deleted.
+\end{DoxyRemark}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Occurrence.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Occurrence.tex
index 9db8cd34..cf342597 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Occurrence.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Occurrence.tex
@@ -79,9 +79,9 @@ All constructors, the destructor and the different operators are very efficient.
Builds an occurrence refering to an entity through a void path, in some way it is equivalent to the entity itself.
-\begin{DoxyParagraph}{Remark\+: If the entity is null the occurrence is invalid. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+If the entity is null the occurrence is invalid.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Occurrence_afedb5d75781a9a4f0a19d37f0e8c88a8}\label{classHurricane_1_1Occurrence_afedb5d75781a9a4f0a19d37f0e8c88a8}}
\index{Hurricane\+::\+Occurrence@{Hurricane\+::\+Occurrence}!Occurrence@{Occurrence}}
\index{Occurrence@{Occurrence}!Hurricane\+::\+Occurrence@{Hurricane\+::\+Occurrence}}
@@ -93,9 +93,9 @@ Builds an occurrence refering to an entity through a path (possibly void).
\begin{DoxyParagraph}{Caution\+: If the entity is null or if the path is uncompatible with the }
entity, an exception is thrown.
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: The entity and the path are compatible if the path is void or }
-if the master cell of the path is the cell owning the entity.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The entity and the path are compatible if the path is void or if the master cell of the path is the cell owning the entity.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Occurrence_affec5f25b9c2efa2bcde02e9c4833626}\label{classHurricane_1_1Occurrence_affec5f25b9c2efa2bcde02e9c4833626}}
\index{Hurricane\+::\+Occurrence@{Hurricane\+::\+Occurrence}!Occurrence@{Occurrence}}
\index{Occurrence@{Occurrence}!Hurricane\+::\+Occurrence@{Hurricane\+::\+Occurrence}}
@@ -209,9 +209,9 @@ exception is thrown.
removes the property {\ttfamily $<$property$>$} from the occurrence property set.
-\begin{DoxyParagraph}{Remark\+: Does nothing if the occurrence doesn\textquotesingle{}t own this property }
-object.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Does nothing if the occurrence doesn\textquotesingle{}t own this property object.
+\end{DoxyRemark}
\begin{DoxyParagraph}{Caution\+: If the occurrence is invalid or the property null, an }
exception is thrown.
\end{DoxyParagraph}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Path.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Path.tex
index c49cf297..9694379c 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Path.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Path.tex
@@ -79,9 +79,9 @@ The different constructors (appart the one which analyses the names of the path)
Default constructor \+: the path is then void.
-\begin{DoxyParagraph}{Remark\+: This path has no instance and will be the tail terminal path }
-of any other path.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This path has no instance and will be the tail terminal path of any other path.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Path_aa1a70f922b9b6a78fd3ac9b7bd94d158}\label{classHurricane_1_1Path_aa1a70f922b9b6a78fd3ac9b7bd94d158}}
\index{Hurricane\+::\+Path@{Hurricane\+::\+Path}!Path@{Path}}
\index{Path@{Path}!Hurricane\+::\+Path@{Hurricane\+::\+Path}}
@@ -104,9 +104,9 @@ Builds the path with head instance {\ttfamily $<$head\+Instance$>$} and tail pat
\begin{DoxyParagraph}{Caution\+: If the instance is null, or if the tail path is not }
compatible with this head instance, an exception is thrown.
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: The head instance and the tail path are compatible if the }
-tail path is void or if the owner cell of the tail path is the model cell referenced by the head instance.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The head instance and the tail path are compatible if the tail path is void or if the owner cell of the tail path is the model cell referenced by the head instance.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Path_add5812ab3bb9a4cf6dbe49d1e4e932cb}\label{classHurricane_1_1Path_add5812ab3bb9a4cf6dbe49d1e4e932cb}}
\index{Hurricane\+::\+Path@{Hurricane\+::\+Path}!Path@{Path}}
\index{Path@{Path}!Hurricane\+::\+Path@{Hurricane\+::\+Path}}
@@ -118,9 +118,9 @@ Builds the path with head path {\ttfamily $<$head\+Path$>$} and tail instance {\
\begin{DoxyParagraph}{Caution\+: If the tail instance is null, or if the head path is not }
compatible with this tail instance, an exception is thrown.
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: The tail instance and the head path are compatible if the }
-owner cell of the tail instance is the master cell of the head path (which is recall it, the model cell referenced by the last instance of the head path) or if the head path is empty (then compatible with any non null instance).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The tail instance and the head path are compatible if the owner cell of the tail instance is the master cell of the head path (which is recall it, the model cell referenced by the last instance of the head path) or if the head path is empty (then compatible with any non null instance).
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Path_a6e3d331f5c5a0dcb91d10516a4beb6bc}\label{classHurricane_1_1Path_a6e3d331f5c5a0dcb91d10516a4beb6bc}}
\index{Hurricane\+::\+Path@{Hurricane\+::\+Path}!Path@{Path}}
\index{Path@{Path}!Hurricane\+::\+Path@{Hurricane\+::\+Path}}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1PhysicalRule.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1PhysicalRule.tex
new file mode 100644
index 00000000..e91184e4
--- /dev/null
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1PhysicalRule.tex
@@ -0,0 +1,144 @@
+\hypertarget{classHurricane_1_1PhysicalRule}{}\section{Hurricane\+:\+:Physical\+Rule Class Reference}
+\label{classHurricane_1_1PhysicalRule}\index{Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}}
+
+
+Define a rule for the technology ({\bfseries A\+PI}).
+
+
+
+
+Inherits Rule.
+
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+bool \mbox{\hyperlink{classHurricane_1_1PhysicalRule_ad419b79177064cab06f7c8dbeccc4dce}{is\+Double}} () const
+\item
+bool \mbox{\hyperlink{classHurricane_1_1PhysicalRule_af1e9eeb3499bfd66cedf5756e2d7e2a3}{is\+DbU}} () const
+\item
+bool \mbox{\hyperlink{classHurricane_1_1PhysicalRule_a56f3eed5835ad1c268638f0f813fc029}{is\+Symmetric}} () const
+\item
+bool \mbox{\hyperlink{classHurricane_1_1PhysicalRule_a8cc9f7f2dfc580e4f91b7f93ce8a26cc}{has\+Steps}} () const
+\item
+void \mbox{\hyperlink{classHurricane_1_1PhysicalRule_afc1e61c5b2baa1126a2e253e02f40f40}{set\+Symmetric}} (bool)
+\item
+double \mbox{\hyperlink{classHurricane_1_1PhysicalRule_a89a0cd27aec78836500a5066c276bbf0}{get\+Double\+Value}} () const
+\item
+\mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}} \mbox{\hyperlink{classHurricane_1_1PhysicalRule_aa3548c58b42cd29cbe07d1a0289416a0}{get\+Value}} (\mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Hurricane\+::\+Db\+U\+::\+Unit}} length=0, bool h\+Dir=true) const
+\item
+void \mbox{\hyperlink{classHurricane_1_1PhysicalRule_ada08351fb24f36a63f4e3a3c524000a2}{add\+Value}} (double)
+\item
+void \mbox{\hyperlink{classHurricane_1_1PhysicalRule_ac25990fc4aff5e5739ae9632f43d9bf8}{add\+Value}} (\mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Hurricane\+::\+Db\+U\+::\+Unit}} value, \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Hurricane\+::\+Db\+U\+::\+Unit}} max\+Length)
+\item
+void \mbox{\hyperlink{classHurricane_1_1PhysicalRule_a51356a2e3e6cae11c8063b6a092f304d}{add\+Value}} (\mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Hurricane\+::\+Db\+U\+::\+Unit}} h\+Value, \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Hurricane\+::\+Db\+U\+::\+Unit}} v\+Value, \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Hurricane\+::\+Db\+U\+::\+Unit}} max\+Length)
+\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+Define a rule for the technology ({\bfseries A\+PI}).
+
+\hypertarget{classHurricane_1_1PhysicalRule_sPhysicalRuleIntro}{}\subsection{Introduction}\label{classHurricane_1_1PhysicalRule_sPhysicalRuleIntro}
+The constructor of Physical rule is not directly accessible, as thoses objects must be created only through the \mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} class {\ttfamily A\+PI} (to be stored in the relevant tables).
+
+\mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} is a {\itshape \char`\"{}one size fit class\char`\"{}}. As there will be only a small number of objects created (compare to other kinds) we choose to implement all variant in one class instead of creating a flock of derived classes and all the assorted paraphernalia. As a consequence, not all fields will be used at the same time, they are mutually exclusive.
+
+\subsection{Member Function Documentation}
+\mbox{\Hypertarget{classHurricane_1_1PhysicalRule_ad419b79177064cab06f7c8dbeccc4dce}\label{classHurricane_1_1PhysicalRule_ad419b79177064cab06f7c8dbeccc4dce}}
+\index{Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}!is\+Double@{is\+Double}}
+\index{is\+Double@{is\+Double}!Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}}
+\subsubsection{\texorpdfstring{is\+Double()}{isDouble()}}
+{\footnotesize\ttfamily bool Hurricane\+::\+Physical\+Rule\+::is\+Double (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+Tells if the rule describe non-\/length values (Volts, Ohms, Henry, Celsius, ...). \mbox{\Hypertarget{classHurricane_1_1PhysicalRule_af1e9eeb3499bfd66cedf5756e2d7e2a3}\label{classHurricane_1_1PhysicalRule_af1e9eeb3499bfd66cedf5756e2d7e2a3}}
+\index{Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}!is\+DbU@{is\+DbU}}
+\index{is\+DbU@{is\+DbU}!Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}}
+\subsubsection{\texorpdfstring{is\+Db\+U()}{isDbU()}}
+{\footnotesize\ttfamily bool Hurricane\+::\+Physical\+Rule\+::is\+DbU (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+Tells if the rule uses physical lengths, with multiple steps or not. \mbox{\Hypertarget{classHurricane_1_1PhysicalRule_a56f3eed5835ad1c268638f0f813fc029}\label{classHurricane_1_1PhysicalRule_a56f3eed5835ad1c268638f0f813fc029}}
+\index{Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}!is\+Symmetric@{is\+Symmetric}}
+\index{is\+Symmetric@{is\+Symmetric}!Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}}
+\subsubsection{\texorpdfstring{is\+Symmetric()}{isSymmetric()}}
+{\footnotesize\ttfamily bool Hurricane\+::\+Physical\+Rule\+::is\+Symmetric (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+Tells if the rule is symmetric. \mbox{\Hypertarget{classHurricane_1_1PhysicalRule_a8cc9f7f2dfc580e4f91b7f93ce8a26cc}\label{classHurricane_1_1PhysicalRule_a8cc9f7f2dfc580e4f91b7f93ce8a26cc}}
+\index{Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}!has\+Steps@{has\+Steps}}
+\index{has\+Steps@{has\+Steps}!Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}}
+\subsubsection{\texorpdfstring{has\+Steps()}{hasSteps()}}
+{\footnotesize\ttfamily bool Hurricane\+::\+Physical\+Rule\+::has\+Steps (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+Tells if the rule has more than one step, that is, is not uniform for all length. \mbox{\Hypertarget{classHurricane_1_1PhysicalRule_afc1e61c5b2baa1126a2e253e02f40f40}\label{classHurricane_1_1PhysicalRule_afc1e61c5b2baa1126a2e253e02f40f40}}
+\index{Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}!set\+Symmetric@{set\+Symmetric}}
+\index{set\+Symmetric@{set\+Symmetric}!Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}}
+\subsubsection{\texorpdfstring{set\+Symmetric()}{setSymmetric()}}
+{\footnotesize\ttfamily void Hurricane\+::\+Physical\+Rule\+::set\+Symmetric (\begin{DoxyParamCaption}\item[{bool}]{state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+Set the symmetric state of the rule. This used only for rules bound to two layers. \mbox{\Hypertarget{classHurricane_1_1PhysicalRule_a89a0cd27aec78836500a5066c276bbf0}\label{classHurricane_1_1PhysicalRule_a89a0cd27aec78836500a5066c276bbf0}}
+\index{Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}!get\+Double\+Value@{get\+Double\+Value}}
+\index{get\+Double\+Value@{get\+Double\+Value}!Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}}
+\subsubsection{\texorpdfstring{get\+Double\+Value()}{getDoubleValue()}}
+{\footnotesize\ttfamily double Hurricane\+::\+Physical\+Rule\+::get\+Double\+Value (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+\begin{DoxyReturn}{Returns}
+The {\ttfamily double} value of the rule.
+\end{DoxyReturn}
+\mbox{\Hypertarget{classHurricane_1_1PhysicalRule_aa3548c58b42cd29cbe07d1a0289416a0}\label{classHurricane_1_1PhysicalRule_aa3548c58b42cd29cbe07d1a0289416a0}}
+\index{Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}!get\+Value@{get\+Value}}
+\index{get\+Value@{get\+Value}!Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}}
+\subsubsection{\texorpdfstring{get\+Value()}{getValue()}}
+{\footnotesize\ttfamily double Hurricane\+::\+Physical\+Rule\+::get\+Value (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Hurricane\+::\+Db\+U\+::\+Unit}}}]{length = {\ttfamily 0}, }\item[{bool}]{h\+Dir = {\ttfamily true} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+\begin{DoxyParams}{Parameters}
+{\em length} & The length for which we want the rule\textquotesingle{}s value. \\
+\hline
+{\em h\+Dir} & In case of non-\/isotropic rule, which dimension do we want. \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+The rule\textquotesingle{}s value for the given length. If no parameter is supplied, then, the X value of the first step is returned.
+\end{DoxyReturn}
+\mbox{\Hypertarget{classHurricane_1_1PhysicalRule_ada08351fb24f36a63f4e3a3c524000a2}\label{classHurricane_1_1PhysicalRule_ada08351fb24f36a63f4e3a3c524000a2}}
+\index{Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}!add\+Value@{add\+Value}}
+\index{add\+Value@{add\+Value}!Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}}
+\subsubsection{\texorpdfstring{add\+Value()}{addValue()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
+{\footnotesize\ttfamily void Hurricane\+::\+Physical\+Rule\+::add\+Value (\begin{DoxyParamCaption}\item[{double}]{value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+Set the {\ttfamily double} value of a rule. \mbox{\Hypertarget{classHurricane_1_1PhysicalRule_ac25990fc4aff5e5739ae9632f43d9bf8}\label{classHurricane_1_1PhysicalRule_ac25990fc4aff5e5739ae9632f43d9bf8}}
+\index{Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}!add\+Value@{add\+Value}}
+\index{add\+Value@{add\+Value}!Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}}
+\subsubsection{\texorpdfstring{add\+Value()}{addValue()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
+{\footnotesize\ttfamily void Hurricane\+::\+Physical\+Rule\+::add\+Value (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Hurricane\+::\+Db\+U\+::\+Unit}}}]{value, }\item[{\mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Hurricane\+::\+Db\+U\+::\+Unit}}}]{max\+Length }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+\begin{DoxyParams}{Parameters}
+{\em value} & The {\itshape value} of the step to add. \\
+\hline
+{\em max\+Length} & The length up to which the rule is valid. passing zero as this argument means always valid.\\
+\hline
+\end{DoxyParams}
+Adds a new stepping value to the rule. If the rules never change, give a {\ttfamily max\+Length} of zero and only call this function once on the rule. The rule is isotropic in X and Y.
+
+This function can be called multiple time on a rule, each call will add a new step. Steps are defined and ordered according to {\ttfamily max\+Length}. \mbox{\Hypertarget{classHurricane_1_1PhysicalRule_a51356a2e3e6cae11c8063b6a092f304d}\label{classHurricane_1_1PhysicalRule_a51356a2e3e6cae11c8063b6a092f304d}}
+\index{Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}!add\+Value@{add\+Value}}
+\index{add\+Value@{add\+Value}!Hurricane\+::\+Physical\+Rule@{Hurricane\+::\+Physical\+Rule}}
+\subsubsection{\texorpdfstring{add\+Value()}{addValue()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
+{\footnotesize\ttfamily void Hurricane\+::\+Physical\+Rule\+::add\+Value (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Hurricane\+::\+Db\+U\+::\+Unit}}}]{h\+Value, }\item[{\mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Hurricane\+::\+Db\+U\+::\+Unit}}}]{v\+Value, }\item[{\mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Hurricane\+::\+Db\+U\+::\+Unit}}}]{max\+Length }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+\begin{DoxyParams}{Parameters}
+{\em hvalue} & The horizontal {\itshape value} of the step to add. \\
+\hline
+{\em vvalue} & The vertical {\itshape value} of the step to add. \\
+\hline
+{\em max\+Length} & The length up to which the rule is valid. passing zero as this argument means always valid.\\
+\hline
+\end{DoxyParams}
+Adds a new stepping value to the rule. If the rules never change, give a {\ttfamily max\+Length} of zero and only call this function once on the rule. The rule is {\bfseries not} isotropic, it defines a different value for X and Y.
+
+This function can be called multiple time on a rule, each call will add a new step. Steps are defined and ordered according to {\ttfamily max\+Length}.
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+Physical\+Rule.\+h\item
+Physical\+Rule.\+dox\end{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Plug.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Plug.tex
index 2d7e34f3..08169eb1 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Plug.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Plug.tex
@@ -51,9 +51,9 @@ A plug is unique, that is, for a given instance there is one and only one plug r
\begin{DoxyParagraph}{Caution\+: When created, an instance creates all plugs corresponding to }
the external nets of its master cell. So, some plugs may exist without being connected. Plugs are the only components which have this characteristic.
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: Plugs being completely managed by the system, you can\textquotesingle{}t }
-define sub-\/types of plugs.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Plugs being completely managed by the system, you can\textquotesingle{}t define sub-\/types of plugs.
+\end{DoxyRemark}
\hypertarget{classHurricane_1_1Plug_secPlugConstructors}{}\subsection{Constructors \& Destructors}\label{classHurricane_1_1Plug_secPlugConstructors}
Plugs being completely managed by the system, there is no constructor nor destructor provided.\hypertarget{classHurricane_1_1Plug_secPlugPredefinedFilters}{}\subsection{Predefined filters}\label{classHurricane_1_1Plug_secPlugPredefinedFilters}
{\bfseries \mbox{\hyperlink{classHurricane_1_1Plug_a51bd5d04a337544709950d7cace05f0d}{Hurricane\+::\+Plug\+::get\+Is\+Connected\+Filter}}} {\bfseries \mbox{\hyperlink{classHurricane_1_1Plug_af27b873ed2420329a63ea67dcc243f07}{Hurricane\+::\+Plug\+::get\+Is\+Unconnected\+Filter}}}
@@ -82,9 +82,9 @@ Useful for calling upon methods of the base class without knowing it.
{\bfseries Returns\+:} the external net referenced by the plug in the master cell of its instance.
-\begin{DoxyParagraph}{Remark\+: Don\textquotesingle{}t mistake with get\+Net() which returns the net owning the }
-plug (or N\+U\+LL if is unconnected).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Don\textquotesingle{}t mistake with \mbox{\hyperlink{classHurricane_1_1Component_a1556ef77d6b89bfc17698d52ebde9791}{get\+Net()}} which returns the net owning the plug (or N\+U\+LL if is unconnected).
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Plug_a51bd5d04a337544709950d7cace05f0d}\label{classHurricane_1_1Plug_a51bd5d04a337544709950d7cace05f0d}}
\index{Hurricane\+::\+Plug@{Hurricane\+::\+Plug}!get\+Is\+Connected\+Filter@{get\+Is\+Connected\+Filter}}
\index{get\+Is\+Connected\+Filter@{get\+Is\+Connected\+Filter}!Hurricane\+::\+Plug@{Hurricane\+::\+Plug}}
@@ -105,9 +105,9 @@ plug (or N\+U\+LL if is unconnected).
{\bfseries Returns\+:} {\bfseries true} if the plug is connected, else {\bfseries false}.
-\begin{DoxyParagraph}{Remark\+: A plug is connected if the call upon get\+Net() doesn\textquotesingle{}t }
-return N\+U\+LL.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+A plug is connected if the call upon {\bfseries \mbox{\hyperlink{classHurricane_1_1Component_a1556ef77d6b89bfc17698d52ebde9791}{get\+Net()}}} doesn\textquotesingle{}t return N\+U\+LL.
+\end{DoxyRemark}
References Hurricane\+::\+Component\+::get\+Net().
@@ -123,9 +123,9 @@ This method allows to connect or change the net of a plug.
\begin{DoxyParagraph}{Caution\+: An exception is thrown if the net owner cell differs from the }
plug owner cell, or if there are components (contact, segments, ...) currently anchored on the plug.
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: The properties attached to this plug and its occurences are }
-left unchanged.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The properties attached to this plug and its occurences are left unchanged.
+\end{DoxyRemark}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1PrivateProperty.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1PrivateProperty.tex
index 5162be84..dcabd7a8 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1PrivateProperty.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1PrivateProperty.tex
@@ -49,9 +49,9 @@ If the property owner is destroyed \+: All properties owned by the object are th
\hypertarget{classHurricane_1_1PrivateProperty_secPrivatePropertyDestruction}{}\subsection{Destruction}\label{classHurricane_1_1PrivateProperty_secPrivatePropertyDestruction}
The property has an owner, this one is informed of the property deletion and detaches it from its property list. If the object is a quark and if this was the last property owned it automatically deletes itself.
-\begin{DoxyParagraph}{Remark\+: Once the property is attached to an object this one becomes }
-responsible of its automatic destruction. When a property changes its owner, the old owner delegates this task to the new one. On the other hand, a property which has never been attached to an owner will never be deleted automatically.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Once the property is attached to an object this one becomes responsible of its automatic destruction. When a property changes its owner, the old owner delegates this task to the new one. On the other hand, a property which has never been attached to an owner will never be deleted automatically.
+\end{DoxyRemark}
{\bfseries Returns\+:} the current owner of the property (or N\+U\+LL if at not been assigned yet).
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Property.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Property.tex
index 121b4a4d..28cfc28d 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Property.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Property.tex
@@ -37,9 +37,9 @@ In a first step we define two great categories of properties \+: the private pro
We will detail separately their respective behaviour, but we ensure that the management of each of those two property categories is absolutely secure. That is, on one side you can destroy explicitely a property (and the objects will be notified) and on the other side the properties will be automatically destroyed when no more object reference them.
-\begin{DoxyParagraph}{Remark\+: By overloading some messages, as we will see later, it is }
-possible to set up different behaviours (like avoid the automatic delete).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+By overloading some messages, as we will see later, it is possible to set up different behaviours (like avoid the automatic delete).
+\end{DoxyRemark}
\hypertarget{classHurricane_1_1Property_secPropertyTheQuarks}{}\subsection{The Quarks}\label{classHurricane_1_1Property_secPropertyTheQuarks}
As we shall see, the occurences are very simple objects which are used to designate some entity of the virtually unfolded hierarchy. Indeed, those occurences, which are built and deleted very quickly, are very volatile objects to which obvioulsy we can\textquotesingle{}t attach properties directly.
@@ -48,9 +48,9 @@ But the interest of occurences is precisely to be able to attach them properties
\begin{DoxyParagraph}{Important\+: only one quark is attached to all occurences which refer the }
same entity of the virtually unfolded hierarchy. This means that a property placed on an occurence can be read by any other occurence which refers the same entity of the virtually unfolded hierarchy.
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: Those quarks are also volatile objects because their only }
-reason to exist is that at least one property is attached to them.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Those quarks are also volatile objects because their only reason to exist is that at least one property is attached to them.
+\end{DoxyRemark}
\hypertarget{classHurricane_1_1Property_secPropertyHowThatWorks}{}\subsection{How that works}\label{classHurricane_1_1Property_secPropertyHowThatWorks}
We will detail the way properties are managed by analysing more precisely what happens at the level of property access functions both for data base objects and for occurences.
@@ -114,9 +114,9 @@ Therefore it may happen, within this step, that adding a property to an object l
Which behaviour should we have in such conditions ? Shall we destroy the property which has been detached ? There is no unique behaviour which matches all needs. In order to solve this problem the properties must answer to two specific messages which are \+: {\bfseries \mbox{\hyperlink{classHurricane_1_1Property_ac7b936414d9d85bb6509100b5dd6a667}{on\+Captured\+By(\+D\+Bo$\ast$ dbo)}}} when the property is attached to an object and {\bfseries on\+Released\+By(D\+Bo$\ast$ dbo)} when it is detached from the object. It is within that last message that the decision about the future of the property must be taken.
-\begin{DoxyParagraph}{Remark\+: We will detail below those messages for both private and }
-shared properties.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+We will detail below those messages for both private and shared properties.
+\end{DoxyRemark}
{\bfseries Removing a property}
\begin{DoxyCode}
\textcolor{keywordtype}{void} \mbox{\hyperlink{classHurricane_1_1DBo_a7833a1f0b8c704930bdc00861e63cf5e}{DBo::remove}}(Property* property);
@@ -160,9 +160,9 @@ So \mbox{\hyperlink{namespaceHurricane}{Hurricane}} uses properties prefixed by
So I suggest that different tools use a similar namming strategy which would keep confident all the community of {\bfseries {\itshape hurricaners}}
-\begin{DoxyParagraph}{Remark\+: Using names like \char`\"{}\+Zen\+Tek\+::\+Timing\+Node\char`\"{} for the Timing\+Node type }
-property managed by tools from the Zen\+Tek society decreases name conflicts, unless with other tools from the same society. A property name \char`\"{}\+Society\+Name\+::\+Tool\+Name\+::\+Property\+Name\char`\"{} would be more secure.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+Using names like \char`\"{}\+Zen\+Tek\+::\+Timing\+Node\char`\"{} for the Timing\+Node type property managed by tools from the Zen\+Tek society decreases name conflicts, unless with other tools from the same society. A property name \char`\"{}\+Society\+Name\+::\+Tool\+Name\+::\+Property\+Name\char`\"{} would be more secure.
+\end{DoxyRemark}
Furthermore, if the community adopts this convention it will be possible to simplify some parts of the code by avoiding for example calls to the macro {\bfseries is\+\_\+a} to check that the collected property is of the expected type, as shown in the following example \+:
\begin{DoxyCode}
Property* \textcolor{keyword}{property} = occurence.getProperty(\textcolor{stringliteral}{"Hurricane::Selector"});
@@ -250,9 +250,9 @@ This message is called upon when the property is added to the properties of {\tt
By default this function does nothing particular, but it must be overloaded for all property sub-\/classes. We will detail later the reaction to this message as taken by the private and shared property classes.
-\begin{DoxyParagraph}{Remark\+: This message being already overloaded for private and shared }
-property classes there is no need to overload it again when specializing any of those two classes.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This message being already overloaded for private and shared property classes there is no need to overload it again when specializing any of those two classes.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Property_a0ea7ee2089f1463c0c16e30313b54083}\label{classHurricane_1_1Property_a0ea7ee2089f1463c0c16e30313b54083}}
\index{Hurricane\+::\+Property@{Hurricane\+::\+Property}!on\+Released\+By@{on\+Released\+By}}
\index{on\+Released\+By@{on\+Released\+By}!Hurricane\+::\+Property@{Hurricane\+::\+Property}}
@@ -264,9 +264,9 @@ This message is called upon when the property is removed from the {\ttfamily $<$
\begin{DoxyParagraph}{Important\+: The argument {\ttfamily $<$dbo$>$} is not (or no more) necessarily the }
owner of the property which receives the message. The processing to be done in reaction to this message often depends on this observation. We will better understand this subtlety when studying private properties.
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: This message being already overloaded for private and shared }
-property classes there is no need to overload it again when specializing any of those two classes.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This message being already overloaded for private and shared property classes there is no need to overload it again when specializing any of those two classes.
+\end{DoxyRemark}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1QuadTree.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1QuadTree.tex
index a5d05345..f5a96cbb 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1QuadTree.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1QuadTree.tex
@@ -96,9 +96,9 @@ inserts the graphic object within the quadtree (if not yet inserted).
\begin{DoxyParagraph}{Caution\+: If the graphic object pointer is N\+U\+LL an exception is thrown. }
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: When the number of objects contained in a quadtree leaf is }
-greater than some threshold, this leaf is split into four balanced sub-\/quadtrees. This recursive division provides a faster access even for very large quadtrees (to the detriment of some memory loss).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+When the number of objects contained in a quadtree leaf is greater than some threshold, this leaf is split into four balanced sub-\/quadtrees. This recursive division provides a faster access even for very large quadtrees (to the detriment of some memory loss).
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1QuadTree_af646d2864c70f6456d845c2d6a8d1785}\label{classHurricane_1_1QuadTree_af646d2864c70f6456d845c2d6a8d1785}}
\index{Hurricane\+::\+Quad\+Tree@{Hurricane\+::\+Quad\+Tree}!remove@{remove}}
\index{remove@{remove}!Hurricane\+::\+Quad\+Tree@{Hurricane\+::\+Quad\+Tree}}
@@ -110,9 +110,9 @@ removes the object from the quadtree.
\begin{DoxyParagraph}{Caution\+: If the graphic object is N\+U\+LL an exception is thrown. }
\end{DoxyParagraph}
-\begin{DoxyParagraph}{Remark\+: When the number of objects included in the quadtree goes }
-below an other threshold, the inverse behaviour happens \+: the sub-\/quadtrees are deleted and the contained objects are taken in charge by this quadtree node (and memory is released to the system).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+When the number of objects included in the quadtree goes below an other threshold, the inverse behaviour happens \+: the sub-\/quadtrees are deleted and the contained objects are taken in charge by this quadtree node (and memory is released to the system).
+\end{DoxyRemark}
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1RoutingPad.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1RoutingPad.tex
index 8398a0f0..cc490337 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1RoutingPad.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1RoutingPad.tex
@@ -317,9 +317,9 @@ Implements \mbox{\hyperlink{classHurricane_1_1Go_a54c4351dbbf4045e1aa89f06bb8934
When the \mbox{\hyperlink{classHurricane_1_1RoutingPad}{Routing\+Pad}} is anchored on a \mbox{\hyperlink{classHurricane_1_1Plug}{Plug}}, allow to set the {\ttfamily component} that we will anchor on. The \mbox{\hyperlink{classHurricane_1_1Occurrence}{Occurrence}} of the \mbox{\hyperlink{classHurricane_1_1RoutingPad}{Routing\+Pad}} is updated from the \mbox{\hyperlink{classHurricane_1_1Plug}{Plug}} to the {\ttfamily component}.
-\begin{DoxyParagraph}{Remark\+: {\ttfamily component} must be tagged as Net external. }
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+{\ttfamily component} must be tagged as \mbox{\hyperlink{classHurricane_1_1Net}{Net}} external.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1RoutingPad_a410992ef75c40f9a898c36f39a7d1a1a}\label{classHurricane_1_1RoutingPad_a410992ef75c40f9a898c36f39a7d1a1a}}
\index{Hurricane\+::\+Routing\+Pad@{Hurricane\+::\+Routing\+Pad}!set\+On\+Best\+Component@{set\+On\+Best\+Component}}
\index{set\+On\+Best\+Component@{set\+On\+Best\+Component}!Hurricane\+::\+Routing\+Pad@{Hurricane\+::\+Routing\+Pad}}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Rubber.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Rubber.tex
index 22d9e05b..e8df6a8f 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Rubber.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Rubber.tex
@@ -72,9 +72,9 @@ Useful for calling upon methods of the base class without knowing it.
{\bfseries Returns\+:} the count associated to the rubber (in fact the number of master hooks of the ring).
-\begin{DoxyParagraph}{Remark\+: This count is at least equal to two else the rubber doesn\textquotesingle{}t }
-exists (no need).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This count is at least equal to two else the rubber doesn\textquotesingle{}t exists (no need).
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Rubber_a124ef92401fd95ff794e381acd24e4ff}\label{classHurricane_1_1Rubber_a124ef92401fd95ff794e381acd24e4ff}}
\index{Hurricane\+::\+Rubber@{Hurricane\+::\+Rubber}!get\+Center@{get\+Center}}
\index{get\+Center@{get\+Center}!Hurricane\+::\+Rubber@{Hurricane\+::\+Rubber}}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Technology.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Technology.tex
index 9874010d..1ed75574 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Technology.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Technology.tex
@@ -55,14 +55,28 @@ Via\+Layers \mbox{\hyperlink{classHurricane_1_1Technology_aacde973f6a02a232a01f3
\item
\mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Technology_a81a3f3e479aeb686c61a2d0fa2931f3b}{get\+Nth\+Metal}} (int) const
\item
+\mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Technology_a6ab76e8a246a10a395d68341bca9ea96}{get\+Unit\+Rule}} (std\+::string rule\+Name) const
+\item
+\mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Technology_a21ef6f7507785a587e56aecc52a0c0ee}{get\+Physical\+Rule}} (std\+::string rule\+Name, std\+::string layer\+Name) const
+\item
+\mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Technology_aec2ce8a8195e90537e6d35cb3ba8b58f}{get\+Physical\+Rule}} (std\+::string rule\+Name, std\+::string layer1\+Name, std\+::string layer2\+Name) const
+\item
void \mbox{\hyperlink{classHurricane_1_1Technology_a247b75d5cbb85198cea9e5e609304cd0}{set\+Name}} (const \mbox{\hyperlink{classHurricane_1_1Name}{Name}} \&)
\item
bool \mbox{\hyperlink{classHurricane_1_1Technology_a26c12c5828acaeb33068a2899df1134b}{set\+Symbolic\+Layer}} (const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$)
+\item
+\mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Technology_a96d62a8b3eb12560a9cb778328f8a301}{add\+Unit\+Rule}} (std\+::string rule\+Name, std\+::string reference)
+\item
+\mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Technology_a267e44b205b97ff46297d16ed278a5bc}{add\+Physical\+Rule}} (std\+::string rule\+Name, std\+::string reference)
+\item
+\mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Technology_a4210936e097a774035bf52bce7d962bc}{add\+Physical\+Rule}} (std\+::string rule\+Name, std\+::string layer\+Name, std\+::string reference)
+\item
+\mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Technology_a3f04a0d9fe9c76fc3c0911c76c120e00}{add\+Physical\+Rule}} (std\+::string rule\+Name, std\+::string layer1\+Name, std\+::string layer2\+Name, std\+::string reference)
\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item
-static \mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Technology_a8fd65387c7fd6ba1396f905fadf20087}{create}} (\mbox{\hyperlink{classHurricane_1_1DataBase}{Data\+Base}} $\ast$, const \mbox{\hyperlink{classHurricane_1_1Name}{Name}} \&)
+static \mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Technology_a64670f0d48e9460342005df52f25c152}{create}} (\mbox{\hyperlink{classHurricane_1_1DataBase}{Data\+Base}} $\ast$, const \mbox{\hyperlink{classHurricane_1_1Name}{Name}} \&)
\end{DoxyCompactItemize}
@@ -70,25 +84,74 @@ static \mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} $\ast$ \mbox{
Technological rules description ({\bfseries A\+PI}).
\hypertarget{classHurricane_1_1Technology_sTechnologyIntro}{}\subsection{Introduction}\label{classHurricane_1_1Technology_sTechnologyIntro}
-The \mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} object provides the description of all the technology rules needed by the tools, currently it is limited to the description of all layers available. This object must be created once within the \mbox{\hyperlink{classHurricane_1_1DataBase}{Data\+Base}}, and, in principle never destroyed (this would destroy layers and all objects laying on them ...).
+The \mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} object provides the description of all the technology rules needed by the tools, currently it contains\+:
-\begin{DoxyParagraph}{Remark\+: There is only one technology for the current Data\+Base, and only one}
-Database object, so only one technology defined.
-\end{DoxyParagraph}
+\begin{DoxyItemize}
+\item The layers, roughly from bottom (i.\+e. closest to the subtsrate) to top. Layers can be basic, that is, match a real physical layer, or composite, like for V\+I\+As in symbolic for macro-\/generation. It also provides a connexity table between layers.
+\item Three sets of rules describing the technology rules (formerly the {\ttfamily D\+TR} in Alliance).
+\begin{DoxyEnumerate}
+\item {\ttfamily Zero \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}}}\+: rules not associated to any layer.
+\item {\ttfamily One \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}}}\+: rules associated to one layer.
+\item {\ttfamily Two Layers}\+: rules associated to two layer.
+\end{DoxyEnumerate}
+\end{DoxyItemize}
+
+This object must be created once within the \mbox{\hyperlink{classHurricane_1_1DataBase}{Data\+Base}}, and, in principle never destroyed (this would destroy layers and all objects laying on them ...).
+
+Here
+
+\begin{DoxyRemark}{Remarks}
+There is only one technology for the current \mbox{\hyperlink{classHurricane_1_1DataBase}{Data\+Base}}, and only one Database object, so only one technology defined.
+\end{DoxyRemark}
+\hypertarget{classHurricane_1_1Technology_sTechnologyRules}{}\subsection{Using Physical\+Rules}\label{classHurricane_1_1Technology_sTechnologyRules}
+How to create a simple one layer rule, setup the minimal width of {\ttfamily metal1} layer to 0.\+5{$\mu$}m.
+
+
+\begin{DoxyCode}
+tech = \mbox{\hyperlink{classHurricane_1_1DataBase_a53d0b9fcd06b73f3968c8f238f377a88}{DataBase::getDB}}()->\mbox{\hyperlink{classHurricane_1_1DataBase_a144480c54b0f9fbda57622ad6767ab8a}{getTechnology}}();
+PhysicalRule* rule = tech->\mbox{\hyperlink{classHurricane_1_1Technology_a267e44b205b97ff46297d16ed278a5bc}{addPhysicalRule}}( \textcolor{stringliteral}{"minWidth"}, \textcolor{stringliteral}{"metal1"} );
+rule->\mbox{\hyperlink{classHurricane_1_1PhysicalRule_ada08351fb24f36a63f4e3a3c524000a2}{addValue}}( \mbox{\hyperlink{group__DbUGroup_ga11d4dbd9134a19bda35cbacde1cb2769}{DbU::fromPhysical}}( 0.5, DbU::UnitPower::Micro ), 0 );
+\end{DoxyCode}
+
+
+How to create a one layer rule, with multiple steps. The minimal spacing of {\ttfamily metal1} layer which will depend on the wire length. The spacing will be of 2{$\mu$}m for length below 50{$\mu$}m and 4{$\mu$}m above.
+
+
+\begin{DoxyCode}
+tech = \mbox{\hyperlink{classHurricane_1_1DataBase_a53d0b9fcd06b73f3968c8f238f377a88}{DataBase::getDB}}()->\mbox{\hyperlink{classHurricane_1_1DataBase_a144480c54b0f9fbda57622ad6767ab8a}{getTechnology}}();
+PhysicalRule* rule = tech->\mbox{\hyperlink{classHurricane_1_1Technology_a267e44b205b97ff46297d16ed278a5bc}{addPhysicalRule}}( \textcolor{stringliteral}{"minWidth"}, \textcolor{stringliteral}{"metal1"} );
+rule->\mbox{\hyperlink{classHurricane_1_1PhysicalRule_ada08351fb24f36a63f4e3a3c524000a2}{addValue}}( \mbox{\hyperlink{group__DbUGroup_ga11d4dbd9134a19bda35cbacde1cb2769}{DbU::fromPhysical}}( 2.0, DbU::UnitPower::Micro )
+ , \mbox{\hyperlink{group__DbUGroup_ga11d4dbd9134a19bda35cbacde1cb2769}{DbU::fromPhysical}}( 50.0, DbU::UnitPower::Micro ) );
+rule->addValue( \mbox{\hyperlink{group__DbUGroup_ga11d4dbd9134a19bda35cbacde1cb2769}{DbU::fromPhysical}}( 4.0, DbU::UnitPower::Micro )
+ , \mbox{\hyperlink{group__DbUGroup_ga11d4dbd9134a19bda35cbacde1cb2769}{DbU::fromPhysical}}( 1000.0, DbU::UnitPower::Micro ) );
+\end{DoxyCode}
+
+
+How to create a two layers rule, with non-\/isomorphic values. The minimum enclosure of {\ttfamily metal1} layer over {\ttfamily cut1} will be 1{$\mu$}m in horizontal direction and 0.\+5{$\mu$}m in vertical. The order of layers is significant in the function call, it must be read as {\itshape \char`\"{}\+The encolusre of metal1 over cut1\char`\"{}}.
+
+
+\begin{DoxyCode}
+tech = \mbox{\hyperlink{classHurricane_1_1DataBase_a53d0b9fcd06b73f3968c8f238f377a88}{DataBase::getDB}}()->\mbox{\hyperlink{classHurricane_1_1DataBase_a144480c54b0f9fbda57622ad6767ab8a}{getTechnology}}();
+PhysicalRule* rule = tech->\mbox{\hyperlink{classHurricane_1_1Technology_a267e44b205b97ff46297d16ed278a5bc}{addPhysicalRule}}( \textcolor{stringliteral}{"minWidth"}, \textcolor{stringliteral}{"metal1"}, \textcolor{stringliteral}{"cut1"} );
+rule->\mbox{\hyperlink{classHurricane_1_1PhysicalRule_ada08351fb24f36a63f4e3a3c524000a2}{addValue}}( \mbox{\hyperlink{group__DbUGroup_ga11d4dbd9134a19bda35cbacde1cb2769}{DbU::fromPhysical}}( 1.0, DbU::UnitPower::Micro )
+ , \mbox{\hyperlink{group__DbUGroup_ga11d4dbd9134a19bda35cbacde1cb2769}{DbU::fromPhysical}}( 0.5, DbU::UnitPower::Micro )
+ , 0 );
+\end{DoxyCode}
+
\subsection{Member Function Documentation}
-\mbox{\Hypertarget{classHurricane_1_1Technology_a8fd65387c7fd6ba1396f905fadf20087}\label{classHurricane_1_1Technology_a8fd65387c7fd6ba1396f905fadf20087}}
+\mbox{\Hypertarget{classHurricane_1_1Technology_a64670f0d48e9460342005df52f25c152}\label{classHurricane_1_1Technology_a64670f0d48e9460342005df52f25c152}}
\index{Hurricane\+::\+Technology@{Hurricane\+::\+Technology}!create@{create}}
\index{create@{create}!Hurricane\+::\+Technology@{Hurricane\+::\+Technology}}
\subsubsection{\texorpdfstring{create()}{create()}}
-{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} $\ast$ Hurricane\+::\+Technology\+::create (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classHurricane_1_1DataBase}{Data\+Base}} $\ast$}]{data\+Base, }\item[{const \mbox{\hyperlink{classHurricane_1_1Name}{Name}} \&}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+{\footnotesize\ttfamily $\ast$\mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} $\ast$ Hurricane\+::\+Technology\+::create (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classHurricane_1_1DataBase}{Data\+Base}} $\ast$}]{data\+Base, }\item[{const \mbox{\hyperlink{classHurricane_1_1Name}{Name}} \&}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
{\bfseries Returns\+:} a newly created technology named {\ttfamily $<$name$>$} for the data base {\ttfamily $<$data\+Base$>$}.
-\begin{DoxyParagraph}{Caution\+: Throws an exception if the {\ttfamily data\+Base} is {\ttfamily N\+U\+LL}, if the name is empty or if}
-the {\ttfamily data\+Base} has already a technology.
-\end{DoxyParagraph}
+\begin{DoxyWarning}{Warning}
+Throws an exception if the {\ttfamily data\+Base} is {\ttfamily N\+U\+LL}, if the name is empty or if the {\ttfamily data\+Base} has already a technology.
+\end{DoxyWarning}
\mbox{\Hypertarget{classHurricane_1_1Technology_ae5590e455d35f76531a6feb0c0f111a2}\label{classHurricane_1_1Technology_ae5590e455d35f76531a6feb0c0f111a2}}
\index{Hurricane\+::\+Technology@{Hurricane\+::\+Technology}!is\+Metal@{is\+Metal}}
\index{is\+Metal@{is\+Metal}!Hurricane\+::\+Technology@{Hurricane\+::\+Technology}}
@@ -143,9 +206,9 @@ References Hurricane\+::\+Layer\+::get\+Mask().
{\bfseries Returns\+:} the collection of layers of the technology.
-\begin{DoxyParagraph}{Remark\+: The layers are traversed according to their}
-creation order. This order is very important, notably for the graphical display. Therefore deeper basic layers must be created first and upper layers later (the order of composite layers has no importance).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The layers are traversed according to their creation order. This order is very important, notably for the graphical display. Therefore deeper basic layers must be created first and upper layers later (the order of composite layers has no importance).
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Technology_a7fccff9da6604fafb90408ba56184fc0}\label{classHurricane_1_1Technology_a7fccff9da6604fafb90408ba56184fc0}}
\index{Hurricane\+::\+Technology@{Hurricane\+::\+Technology}!get\+Basic\+Layers@{get\+Basic\+Layers}}
\index{get\+Basic\+Layers@{get\+Basic\+Layers}!Hurricane\+::\+Technology@{Hurricane\+::\+Technology}}
@@ -212,7 +275,46 @@ creation order. This order is very important, notably for the graphical display.
\subsubsection{\texorpdfstring{get\+Nth\+Metal()}{getNthMetal()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ Hurricane\+::\+Technology\+::get\+Nth\+Metal (\begin{DoxyParamCaption}\item[{int}]{depth }\end{DoxyParamCaption}) const}
-{\bfseries Returns\+:} the {\ttfamily Nth} metal layer from the substrate. So a {\ttfamily depth} of zero should mean {\ttfamily metal1}. \mbox{\Hypertarget{classHurricane_1_1Technology_a247b75d5cbb85198cea9e5e609304cd0}\label{classHurricane_1_1Technology_a247b75d5cbb85198cea9e5e609304cd0}}
+{\bfseries Returns\+:} the {\ttfamily Nth} metal layer from the substrate. So a {\ttfamily depth} of zero should mean {\ttfamily metal1}. \mbox{\Hypertarget{classHurricane_1_1Technology_a6ab76e8a246a10a395d68341bca9ea96}\label{classHurricane_1_1Technology_a6ab76e8a246a10a395d68341bca9ea96}}
+\index{Hurricane\+::\+Technology@{Hurricane\+::\+Technology}!get\+Unit\+Rule@{get\+Unit\+Rule}}
+\index{get\+Unit\+Rule@{get\+Unit\+Rule}!Hurricane\+::\+Technology@{Hurricane\+::\+Technology}}
+\subsubsection{\texorpdfstring{get\+Unit\+Rule()}{getUnitRule()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ Hurricane\+::\+Technology\+::get\+Unit\+Rule (\begin{DoxyParamCaption}\item[{std\+::string}]{rule\+Name }\end{DoxyParamCaption}) const}
+
+
+\begin{DoxyParams}{Parameters}
+{\em rule\+Name} & The name of the rule\\
+\hline
+\end{DoxyParams}
+{\bfseries Returns\+:} The matching rule in the table of {\bfseries unit} rules. \mbox{\Hypertarget{classHurricane_1_1Technology_a21ef6f7507785a587e56aecc52a0c0ee}\label{classHurricane_1_1Technology_a21ef6f7507785a587e56aecc52a0c0ee}}
+\index{Hurricane\+::\+Technology@{Hurricane\+::\+Technology}!get\+Physical\+Rule@{get\+Physical\+Rule}}
+\index{get\+Physical\+Rule@{get\+Physical\+Rule}!Hurricane\+::\+Technology@{Hurricane\+::\+Technology}}
+\subsubsection{\texorpdfstring{get\+Physical\+Rule()}{getPhysicalRule()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ Hurricane\+::\+Technology\+::get\+Physical\+Rule (\begin{DoxyParamCaption}\item[{std\+::string}]{rule\+Name, }\item[{std\+::string}]{layer\+Name }\end{DoxyParamCaption}) const}
+
+
+\begin{DoxyParams}{Parameters}
+{\em rule\+Name} & The name of the rule \\
+\hline
+{\em layer\+Name} & The name of the layer\\
+\hline
+\end{DoxyParams}
+{\bfseries Returns\+:} The matching rule in the table of {\bfseries one layer} rules. \mbox{\Hypertarget{classHurricane_1_1Technology_aec2ce8a8195e90537e6d35cb3ba8b58f}\label{classHurricane_1_1Technology_aec2ce8a8195e90537e6d35cb3ba8b58f}}
+\index{Hurricane\+::\+Technology@{Hurricane\+::\+Technology}!get\+Physical\+Rule@{get\+Physical\+Rule}}
+\index{get\+Physical\+Rule@{get\+Physical\+Rule}!Hurricane\+::\+Technology@{Hurricane\+::\+Technology}}
+\subsubsection{\texorpdfstring{get\+Physical\+Rule()}{getPhysicalRule()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ Hurricane\+::\+Technology\+::get\+Physical\+Rule (\begin{DoxyParamCaption}\item[{std\+::string}]{rule\+Name, }\item[{std\+::string}]{layer1\+Name, }\item[{std\+::string}]{layer2\+Name }\end{DoxyParamCaption}) const}
+
+
+\begin{DoxyParams}{Parameters}
+{\em rule\+Name} & The name of the rule \\
+\hline
+{\em layer1\+Name} & The name of the first layer \\
+\hline
+{\em layer2\+Name} & The name of the second layer\\
+\hline
+\end{DoxyParams}
+{\bfseries Returns\+:} The matching rule in the table of {\bfseries two layers} rules. The order of layers arguments is meaningful and should match The one used at rule creation. \mbox{\Hypertarget{classHurricane_1_1Technology_a247b75d5cbb85198cea9e5e609304cd0}\label{classHurricane_1_1Technology_a247b75d5cbb85198cea9e5e609304cd0}}
\index{Hurricane\+::\+Technology@{Hurricane\+::\+Technology}!set\+Name@{set\+Name}}
\index{set\+Name@{set\+Name}!Hurricane\+::\+Technology@{Hurricane\+::\+Technology}}
\subsubsection{\texorpdfstring{set\+Name()}{setName()}}
@@ -224,7 +326,73 @@ Allows to change the technology name (if empty name, throws an exception). \mbox
\subsubsection{\texorpdfstring{set\+Symbolic\+Layer()}{setSymbolicLayer()}}
{\footnotesize\ttfamily bool Hurricane\+::\+Technology\+::set\+Symbolic\+Layer (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$}]{layer }\end{DoxyParamCaption})}
-Sets this exact {\ttfamily layer} as symbolic (not is mask). Returns {\bfseries true} on success (the layer exists).
+Sets this exact {\ttfamily layer} as symbolic (not is mask). Returns {\bfseries true} on success (the layer exists). \mbox{\Hypertarget{classHurricane_1_1Technology_a96d62a8b3eb12560a9cb778328f8a301}\label{classHurricane_1_1Technology_a96d62a8b3eb12560a9cb778328f8a301}}
+\index{Hurricane\+::\+Technology@{Hurricane\+::\+Technology}!add\+Unit\+Rule@{add\+Unit\+Rule}}
+\index{add\+Unit\+Rule@{add\+Unit\+Rule}!Hurricane\+::\+Technology@{Hurricane\+::\+Technology}}
+\subsubsection{\texorpdfstring{add\+Unit\+Rule()}{addUnitRule()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ Hurricane\+::\+Technology\+::add\+Unit\+Rule (\begin{DoxyParamCaption}\item[{std\+::string}]{rule\+Name, }\item[{std\+::string}]{reference }\end{DoxyParamCaption})}
+
+
+\begin{DoxyParams}{Parameters}
+{\em rule\+Name} & The name of the rule \\
+\hline
+{\em reference} & A free comentary string for further reference.\\
+\hline
+\end{DoxyParams}
+{\bfseries Returns\+:} The newly added rule.
+
+Create and add to \mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} a rule whithout associated layer. The rule should contain a value which is anything but a length (Volt, Henry, Ohm, ...) The rule is created empty. For a detailed explanation see \mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}}. \mbox{\Hypertarget{classHurricane_1_1Technology_a267e44b205b97ff46297d16ed278a5bc}\label{classHurricane_1_1Technology_a267e44b205b97ff46297d16ed278a5bc}}
+\index{Hurricane\+::\+Technology@{Hurricane\+::\+Technology}!add\+Physical\+Rule@{add\+Physical\+Rule}}
+\index{add\+Physical\+Rule@{add\+Physical\+Rule}!Hurricane\+::\+Technology@{Hurricane\+::\+Technology}}
+\subsubsection{\texorpdfstring{add\+Physical\+Rule()}{addPhysicalRule()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ Hurricane\+::\+Technology\+::add\+Physical\+Rule (\begin{DoxyParamCaption}\item[{std\+::string}]{rule\+Name, }\item[{std\+::string}]{reference }\end{DoxyParamCaption})}
+
+
+\begin{DoxyParams}{Parameters}
+{\em rule\+Name} & The name of the rule \\
+\hline
+{\em reference} & A free comentary string for further reference.\\
+\hline
+\end{DoxyParams}
+{\bfseries Returns\+:} The newly added rule.
+
+Create and add to \mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} a rule whithout associated layer. The rule should contain only length value(s) (so \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}}). The rule is created empty. For a detailed explanation see \mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}}. \mbox{\Hypertarget{classHurricane_1_1Technology_a4210936e097a774035bf52bce7d962bc}\label{classHurricane_1_1Technology_a4210936e097a774035bf52bce7d962bc}}
+\index{Hurricane\+::\+Technology@{Hurricane\+::\+Technology}!add\+Physical\+Rule@{add\+Physical\+Rule}}
+\index{add\+Physical\+Rule@{add\+Physical\+Rule}!Hurricane\+::\+Technology@{Hurricane\+::\+Technology}}
+\subsubsection{\texorpdfstring{add\+Physical\+Rule()}{addPhysicalRule()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ Hurricane\+::\+Technology\+::add\+Physical\+Rule (\begin{DoxyParamCaption}\item[{std\+::string}]{rule\+Name, }\item[{std\+::string}]{layer\+Name, }\item[{std\+::string}]{reference }\end{DoxyParamCaption})}
+
+
+\begin{DoxyParams}{Parameters}
+{\em rule\+Name} & The name of the rule \\
+\hline
+{\em layer\+Name} & The one layer associated to the rule. \\
+\hline
+{\em reference} & A free comentary string for further reference.\\
+\hline
+\end{DoxyParams}
+{\bfseries Returns\+:} The newly added rule.
+
+Create and add to \mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} a rule associated to {\bfseries one} layer. The rule should contain only length value(s) (so \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}}). The rule is created empty. For a detailed explanation see \mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}}. \mbox{\Hypertarget{classHurricane_1_1Technology_a3f04a0d9fe9c76fc3c0911c76c120e00}\label{classHurricane_1_1Technology_a3f04a0d9fe9c76fc3c0911c76c120e00}}
+\index{Hurricane\+::\+Technology@{Hurricane\+::\+Technology}!add\+Physical\+Rule@{add\+Physical\+Rule}}
+\index{add\+Physical\+Rule@{add\+Physical\+Rule}!Hurricane\+::\+Technology@{Hurricane\+::\+Technology}}
+\subsubsection{\texorpdfstring{add\+Physical\+Rule()}{addPhysicalRule()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}} $\ast$ Hurricane\+::\+Technology\+::add\+Physical\+Rule (\begin{DoxyParamCaption}\item[{std\+::string}]{rule\+Name, }\item[{std\+::string}]{layer1\+Name, }\item[{std\+::string}]{layer2\+Name, }\item[{std\+::string}]{reference }\end{DoxyParamCaption})}
+
+
+\begin{DoxyParams}{Parameters}
+{\em rule\+Name} & The name of the rule \\
+\hline
+{\em layer1\+Name} & First layer associated to the rule. \\
+\hline
+{\em layer2\+Name} & First layer associated to the rule. \\
+\hline
+{\em reference} & A free comentary string for further reference.\\
+\hline
+\end{DoxyParams}
+{\bfseries Returns\+:} The newly added rule.
+
+Create and add to \mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} a rule associated to {\bfseries two} layers. The order of layers is meaningful in case of an asymmetric rule. The rule should contain only length value(s) (so \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}}). The rule is created empty. For a detailed explanation see \mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}}.
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Transformation.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Transformation.tex
index 428e8449..67977ec6 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Transformation.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Transformation.tex
@@ -81,9 +81,9 @@ void \mbox{\hyperlink{classHurricane_1_1Transformation_a3ac2c40977ecf061b4316ece
The transformation formula is given by\+: \[ \Large \left \{ \begin{array}{r c l l l l l} x' & = & (a \times x) & + & (b \times y) & + & tx \\ y' & = & (c \times x) & + & (d \times y) & + & ty \end{array} \right . \] where x and y are the coordinates of any point, x\textquotesingle{} and y\textquotesingle{} the coordinates of the transformed point, tx and ty the horizontal and vertical components of the translation and where a, b, c and d are the coefficients of the matrix associated to the orientation. See \mbox{\hyperlink{classHurricane_1_1Transformation_1_1Orientation}{Orientation}} for the value of a, b, c \& d.
-\begin{DoxyParagraph}{Remark\+: Rotations are done counter clock wise}
-
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+{\bfseries Rotations are done counter clock wise}
+\end{DoxyRemark}
\subsection{Constructor \& Destructor Documentation}
diff --git a/hurricane/doc/hurricane/latex/classHurricane_1_1Vertical.tex b/hurricane/doc/hurricane/latex/classHurricane_1_1Vertical.tex
index 677734de..f086a6f0 100644
--- a/hurricane/doc/hurricane/latex/classHurricane_1_1Vertical.tex
+++ b/hurricane/doc/hurricane/latex/classHurricane_1_1Vertical.tex
@@ -87,9 +87,9 @@ pointers is null or if the two component don\textquotesingle{}t belong to the sa
{\bfseries Returns\+:} the relative source ordinate of the segment (may be absolute if the source extremity isn\textquotesingle{}t anchored).
-\begin{DoxyParagraph}{Remark\+: If you want to get the absolute one use the member function }
-get\+Source\+X() defined at the \mbox{\hyperlink{classHurricane_1_1Segment}{Segment}} level.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+If you want to get the absolute one use the member function get\+Source\+X() defined at the \mbox{\hyperlink{classHurricane_1_1Segment}{Segment}} level.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Vertical_af9ae34d224436db7c4c30f18fbd8f9a3}\label{classHurricane_1_1Vertical_af9ae34d224436db7c4c30f18fbd8f9a3}}
\index{Hurricane\+::\+Vertical@{Hurricane\+::\+Vertical}!get\+Dy\+Target@{get\+Dy\+Target}}
\index{get\+Dy\+Target@{get\+Dy\+Target}!Hurricane\+::\+Vertical@{Hurricane\+::\+Vertical}}
@@ -98,9 +98,9 @@ get\+Source\+X() defined at the \mbox{\hyperlink{classHurricane_1_1Segment}{Segm
{\bfseries Returns\+:} the relative target ordinate of the segment (may be absolute if the target extremity isn\textquotesingle{}t anchored).
-\begin{DoxyParagraph}{Remark\+: If you want to get the absolute one use the member function }
-get\+Target\+X() defined at the \mbox{\hyperlink{classHurricane_1_1Segment}{Segment}} level.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+If you want to get the absolute one use the member function get\+Target\+X() defined at the \mbox{\hyperlink{classHurricane_1_1Segment}{Segment}} level.
+\end{DoxyRemark}
\mbox{\Hypertarget{classHurricane_1_1Vertical_aaea60cb8247f4ea837f90a4532901143}\label{classHurricane_1_1Vertical_aaea60cb8247f4ea837f90a4532901143}}
\index{Hurricane\+::\+Vertical@{Hurricane\+::\+Vertical}!setX@{setX}}
\index{setX@{setX}!Hurricane\+::\+Vertical@{Hurricane\+::\+Vertical}}
diff --git a/hurricane/doc/hurricane/latex/group__DbUGroup.tex b/hurricane/doc/hurricane/latex/group__DbUGroup.tex
index fde9249e..144a9ae2 100644
--- a/hurricane/doc/hurricane/latex/group__DbUGroup.tex
+++ b/hurricane/doc/hurricane/latex/group__DbUGroup.tex
@@ -123,9 +123,9 @@ Fixed point numbers management.
\hypertarget{group__DbUGroup_secDbUIntro}{}\subsection{Introduction}\label{group__DbUGroup_secDbUIntro}
The \mbox{\hyperlink{classHurricane_1_1DbU}{DbU}} class provides the \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}} type for modelling geometric length, that is abscissas, ordinates, widths, offsets and a set of functions to convert \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}} to and from external coordinates.
-\begin{DoxyParagraph}{Remark\+: The DbU class contains only static methods, and is not meant to}
-be instanciated. The working type is \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}}.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+The \mbox{\hyperlink{classHurricane_1_1DbU}{DbU}} class contains only static methods, and is not meant to be instanciated. The working type is \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}}.
+\end{DoxyRemark}
The \mbox{\hyperlink{classHurricane_1_1DbU}{DbU}} class manage three king of length \+:
\begin{DoxyItemize}
\item {\bfseries \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}}} \+: the working type. It is currently associated to a long integer and a precision/resolution. This way all numbers are bound to the same precision (unlike floating point numbers) preventing rounding errors.
@@ -395,9 +395,9 @@ Sets in which length the units are to be displayed by \mbox{\hyperlink{group__Db
\begin{DoxyReturn}{Returns}
A character string representing the external value of {\ttfamily $<$unit$>$}. The value is converted in the length according to \mbox{\hyperlink{group__DbUGroup_ga89ab8f8326c54113336086663ecf1d25}{set\+String\+Mode()}}\+: database, grid or symbolic.
\end{DoxyReturn}
-\begin{DoxyParagraph}{Remark\+: This string is shorter than the one we could print from the }
-external value because non needed decimals are not drawn (nor the point if value is integer).
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This string is shorter than the one we could print from the external value because non needed decimals are not drawn (nor the point if value is integer).
+\end{DoxyRemark}
\mbox{\Hypertarget{group__DbUGroup_gace9a8644e7e80dcaed2a8a95deeb1622}\label{group__DbUGroup_gace9a8644e7e80dcaed2a8a95deeb1622}}
\index{Db\+U/\+Unit description@{Db\+U/\+Unit description}!set\+Precision@{set\+Precision}}
\index{set\+Precision@{set\+Precision}!Db\+U/\+Unit description@{Db\+U/\+Unit description}}
@@ -406,9 +406,9 @@ external value because non needed decimals are not drawn (nor the point if value
Allows to set the precision at a requested value. This must be done at the begining of the program (before the creation of the first unit) and not changed for the following (unless mandatory and for a temporary period because all existing units would be misinterpreted).
-\begin{DoxyParagraph}{Remark\+: This function throws an exception if the requested precision }
-is greater than the maximal one.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+This function throws an exception if the requested precision is greater than the maximal one.
+\end{DoxyRemark}
\mbox{\Hypertarget{group__DbUGroup_ga202cc3aa3364c2224647a29dde047fae}\label{group__DbUGroup_ga202cc3aa3364c2224647a29dde047fae}}
\index{Db\+U/\+Unit description@{Db\+U/\+Unit description}!set\+Real\+Snap\+Grid\+Step@{set\+Real\+Snap\+Grid\+Step}}
\index{set\+Real\+Snap\+Grid\+Step@{set\+Real\+Snap\+Grid\+Step}!Db\+U/\+Unit description@{Db\+U/\+Unit description}}
diff --git a/hurricane/doc/hurricane/latex/group__Generalities.tex b/hurricane/doc/hurricane/latex/group__Generalities.tex
index c238396a..4ea7fb8d 100644
--- a/hurricane/doc/hurricane/latex/group__Generalities.tex
+++ b/hurricane/doc/hurricane/latex/group__Generalities.tex
@@ -25,9 +25,9 @@ In the same way, some opetators or global functions are defined for all object t
terminology In the following, we will describe operators and functions applying to objects of different types. Therefore we will name \char`\"{}\+Object\char`\"{} any of those types.\hypertarget{group__Generalities_secGeneralitiesNammingConventions}{}\subsection{Namming conventions}\label{group__Generalities_secGeneralitiesNammingConventions}
The name of \char`\"{}\+C macros\char`\"{} are written with lower case letters and underscores (examples \+: {\bfseries is\+\_\+a}, {\bfseries for\+\_\+each\+\_\+cell} or {\bfseries end\+\_\+for}) while the name of generic functions and member functions never use the underscore and always start with an Upper case letter (examples \+: {\bfseries Get\+Unit}, {\bfseries Get\+Master\+Cell}, {\bfseries Is\+Called\+By}).
-\begin{DoxyParagraph}{Remark\+: When examining {\ttfamily }.h include files for more detailed information }
-you will find member functions which start with an underscore. {\bfseries While being \char`\"{}public\char`\"{} those functions must never be called upon}. In principle, only here\textquotesingle{}after documented functions should be used by the application programmer.
-\end{DoxyParagraph}
+\begin{DoxyRemark}{Remarks}
+When examining {\ttfamily }.h include files for more detailed information you will find member functions which start with an underscore. {\bfseries While being \char`\"{}public\char`\"{} those functions must never be called upon}. In principle, only here\textquotesingle{}after documented functions should be used by the application programmer.
+\end{DoxyRemark}
\hypertarget{group__Generalities_secGeneralitiesGetString}{}\subsection{Get\+String}\label{group__Generalities_secGeneralitiesGetString}
\begin{DoxyCode}
@@ -100,9 +100,9 @@ The library provides some usefull utilities for generating trace printings with
trace\_out();
\}
\end{DoxyCode}
- \begin{DoxyParagraph}{Remark\+: Debugger enthousiastic users will probably ignore this trace }
-capability which presents the annoying need to be inserted into the code... For myself, I do prefer those facilities...
-\end{DoxyParagraph}
+ \begin{DoxyRemark}{Remarks}
+Debugger enthousiastic users will probably ignore this trace capability which presents the annoying need to be inserted into the code... For myself, I do prefer those facilities...
+\end{DoxyRemark}
\hypertarget{group__Generalities_secGeneralitiesRemarks}{}\subsection{Remarks}\label{group__Generalities_secGeneralitiesRemarks}
Many other global and generic functions exist. Each one will be studied within the description of the classes which create or specialize them (example\+: {\bfseries Hurricane\+::\+Get\+Unit} will be introduced with the Unit class and {\bfseries Hurricane\+::\+Get\+Collection} with the \mbox{\hyperlink{classHurricane_1_1Collection}{Collection}} class).
diff --git a/hurricane/doc/hurricane/latex/hierarchy.tex b/hurricane/doc/hurricane/latex/hierarchy.tex
index 4fde8e3f..6522842d 100644
--- a/hurricane/doc/hurricane/latex/hierarchy.tex
+++ b/hurricane/doc/hurricane/latex/hierarchy.tex
@@ -107,6 +107,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically\+:\b
\item \contentsline{section}{Hurricane\+:\+:Occurrence}{\pageref{classHurricane_1_1Occurrence}}{}
\item \contentsline{section}{Hurricane\+:\+:Transformation\+:\+:Orientation}{\pageref{classHurricane_1_1Transformation_1_1Orientation}}{}
\item \contentsline{section}{Hurricane\+:\+:Path}{\pageref{classHurricane_1_1Path}}{}
+\item \contentsline{section}{Hurricane\+:\+:Physical\+Rule}{\pageref{classHurricane_1_1PhysicalRule}}{}
\item \contentsline{section}{Hurricane\+:\+:Instance\+:\+:Placement\+Status}{\pageref{classHurricane_1_1Instance_1_1PlacementStatus}}{}
\item \contentsline{section}{Hurricane\+:\+:Point}{\pageref{classHurricane_1_1Point}}{}
\item \contentsline{section}{Hurricane\+:\+:Property}{\pageref{classHurricane_1_1Property}}{}
diff --git a/hurricane/doc/hurricane/latex/namespaceHurricane.tex b/hurricane/doc/hurricane/latex/namespaceHurricane.tex
index cebb1c57..4c354c7d 100644
--- a/hurricane/doc/hurricane/latex/namespaceHurricane.tex
+++ b/hurricane/doc/hurricane/latex/namespaceHurricane.tex
@@ -90,6 +90,8 @@ class \mbox{\hyperlink{classHurricane_1_1Pad}{Pad}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classHurricane_1_1Pad}{Pad}} description ({\bfseries A\+PI}) \end{DoxyCompactList}\item
class \mbox{\hyperlink{classHurricane_1_1Path}{Path}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classHurricane_1_1Path}{Path}} description ({\bfseries A\+PI}) \end{DoxyCompactList}\item
+class \mbox{\hyperlink{classHurricane_1_1PhysicalRule}{Physical\+Rule}}
+\begin{DoxyCompactList}\small\item\em Define a rule for the technology ({\bfseries A\+PI}). \end{DoxyCompactList}\item
class \mbox{\hyperlink{classHurricane_1_1Pin}{Pin}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classHurricane_1_1Pin}{Pin}} description ({\bfseries A\+PI}) \end{DoxyCompactList}\item
class \mbox{\hyperlink{classHurricane_1_1Plug}{Plug}}
diff --git a/hurricane/doc/hurricane/latex/refman.tex b/hurricane/doc/hurricane/latex/refman.tex
index 3b3fab69..5ac25edb 100644
--- a/hurricane/doc/hurricane/latex/refman.tex
+++ b/hurricane/doc/hurricane/latex/refman.tex
@@ -34,7 +34,7 @@
\vspace*{1cm}
{\large Generated by Doxygen 1.8.14}\\
\vspace*{0.5cm}
- {\small Mon Apr 27 2020 11:34:57}\\
+ {\small Tue Jul 21 2020 11:06:16}\\
\end{center}
\end{titlepage}
@@ -110,6 +110,7 @@
\input{classHurricane_1_1Transformation_1_1Orientation}
\input{classHurricane_1_1Pad}
\input{classHurricane_1_1Path}
+\input{classHurricane_1_1PhysicalRule}
\input{classHurricane_1_1Pin}
\input{classHurricane_1_1Instance_1_1PlacementStatus}
\input{classHurricane_1_1Plug}
diff --git a/hurricane/doc/viewer/CellPrinter.dox b/hurricane/doc/viewer/CellPrinter.dox
index ba8aa39f..e6627c29 100644
--- a/hurricane/doc/viewer/CellPrinter.dox
+++ b/hurricane/doc/viewer/CellPrinter.dox
@@ -29,6 +29,7 @@
*
*
* Code example (took from CellViewer):
+ *
\code
void CellViewer::printDisplay ()
{
diff --git a/hurricane/doc/viewer/html/CellImage_8h_source.html b/hurricane/doc/viewer/html/CellImage_8h_source.html
index 9a468f7f..56a0e36f 100644
--- a/hurricane/doc/viewer/html/CellImage_8h_source.html
+++ b/hurricane/doc/viewer/html/CellImage_8h_source.html
@@ -54,7 +54,7 @@ $(function() {
diff --git a/hurricane/doc/viewer/html/classHurricane_1_1CellImage.html b/hurricane/doc/viewer/html/classHurricane_1_1CellImage.html
index 16bc3490..71215060 100644
--- a/hurricane/doc/viewer/html/classHurricane_1_1CellImage.html
+++ b/hurricane/doc/viewer/html/classHurricane_1_1CellImage.html
@@ -261,7 +261,7 @@ ShowScale: display a false color scale at the bottom of the image. Useful if you
diff --git a/hurricane/doc/viewer/html/graph_legend.html b/hurricane/doc/viewer/html/graph_legend.html
index a0d98026..a186bdaf 100644
--- a/hurricane/doc/viewer/html/graph_legend.html
+++ b/hurricane/doc/viewer/html/graph_legend.html
@@ -74,7 +74,7 @@ A yellow dashed arrow denotes a relation between a template instance and the tem