diff --git a/hurricane/doc/hurricane/CMakeLists.txt b/hurricane/doc/hurricane/CMakeLists.txt
index c1be0312..cdc37381 100644
--- a/hurricane/doc/hurricane/CMakeLists.txt
+++ b/hurricane/doc/hurricane/CMakeLists.txt
@@ -1 +1,3 @@
-EXEC_PROGRAM(${DOXYGEN_EXECUTABLE})
+ADD_CUSTOM_TARGET(doc ALL cd ${HURRICANE_SOURCE_DIR}/doc/hurricane && ${DOXYGEN_EXECUTABLE} doxyfile)
+
+INSTALL(DIRECTORY html/ DESTINATION /share/doc/en/html/hurricane)
diff --git a/hurricane/doc/hurricane/doxyfile b/hurricane/doc/hurricane/doxyfile
index 178ca5bc..004af5da 100644
--- a/hurricane/doc/hurricane/doxyfile
+++ b/hurricane/doc/hurricane/doxyfile
@@ -1,331 +1,1500 @@
-# Doxyfile 1.3.4
+# Doxyfile 1.5.4
-# --------------------------------------------------------------------
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file that
+# follow. The default is UTF-8 which is also the encoding used for all text before
+# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into
+# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
+# possible encodings.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = "Hurricane "
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
-PROJECT_NAME = "Hurricane"
PROJECT_NUMBER = 2.3
-OUTPUT_DIRECTORY = en/hurricane
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = html
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
+# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
+# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
+# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+
OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
FULL_PATH_NAMES = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
JAVADOC_AUTOBRIEF = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member
+# documentation.
+
DETAILS_AT_TOP = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
INHERIT_DOCS = NO
-DISTRIBUTE_GROUP_DOC = NO
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
TAB_SIZE = 2
-ALIASES = "function=\fn"\
- "important=\par Important:\n"\
- "caution=\par Caution:\n"\
- "remark=\par Remark:\n"\
- "sample=\par Sample:\n"\
- "Return=Returns:"\
- "unsigned=\c unsigned"\
- "POD=\c POD"\
- "True=\b True"\
- "true=\b true"\
- "False=\b False"\
- "false=\b false"\
- "public=\c public"\
- "protected=\c protected"\
- "private=\c private"\
- "static=\c static"\
- "virtual=\c virtual"\
- "this=\c this"\
- "VERTICAL=\b VERTICAL"\
- "HORIZONTAL=\b HORIZONTAL"\
- "NULL=\c NULL"\
- "stream=\c stream"\
- "iostream=\c iostream"\
- "stdin=\c stdin"\
- "stdout=\c stdout"\
- "stderr=\c stderr"\
- "string=\c string"\
- "vector=\c vector"\
- "list=\c list"\
- "map=\c map"\
- "set=\c set"\
- "STL=STL"
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES = "function=\fn " \
+ "important=\par Important:\n " \
+ "caution=\par Caution:\n " \
+ "remark=\par Remark:\n " \
+ "sample=\par Sample:\n " \
+ "Return=Returns: " \
+ "unsigned=\c unsigned " \
+ "POD=\c POD " \
+ "True=\b True " \
+ "true=\b true " \
+ "False=\b False " \
+ "false=\b false " \
+ "public=\c public " \
+ "protected=\c protected " \
+ "private=\c private " \
+ "static=\c static " \
+ "virtual=\c virtual " \
+ "this=\c this " \
+ "VERTICAL=\b VERTICAL " \
+ "HORIZONTAL=\b HORIZONTAL " \
+ "NULL=\c NULL " \
+ "stream=\c stream " \
+ "iostream=\c iostream " \
+ "stdin=\c stdin " \
+ "stdout=\c stdout " \
+ "stderr=\c stderr " \
+ "string=\c string " \
+ "vector=\c vector " \
+ "list=\c list " \
+ "map=\c map " \
+ "set=\c set " \
+ "STL=STL "
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for Java.
+# For instance, namespaces will be presented as packages, qualified scopes
+# will look different, etc.
+
OPTIMIZE_OUTPUT_JAVA = NO
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
+# include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT = NO
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
SUBGROUPING = YES
-# --------------------------------------------------------------------
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct (or union) is
+# documented as struct with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code where the coding convention is that all structs are
+# typedef'ed and only the typedef is referenced never the struct's name.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+#---------------------------------------------------------------------------
# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
EXTRACT_ALL = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
EXTRACT_PRIVATE = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
EXTRACT_STATIC = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be extracted
+# and appear in the documentation as a namespace called 'anonymous_namespace{file}',
+# where file will be replaced with the base name of the file that contains the anonymous
+# namespace. By default anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
HIDE_UNDOC_MEMBERS = YES
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
HIDE_UNDOC_CLASSES = YES
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
SHOW_INCLUDE_FILES = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
SORT_MEMBER_DOCS = NO
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
MAX_INITIALIZER_LINES = 1
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
SHOW_USED_FILES = YES
-# --------------------------------------------------------------------
-# Configuration options related to warning and progress messages
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES = NO
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from the
+# version control system). Doxygen will invoke the program by executing (via
+# popen()) the command , where is the value of
+# the FILE_VERSION_FILTER tag, and is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
QUIET = YES
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
WARN_IF_UNDOCUMENTED = NO
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
WARN_IF_DOC_ERROR = YES
-WARN_FORMAT = "$file:$line: $text"
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT = "$file:$line: $text "
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
WARN_LOGFILE =
-# --------------------------------------------------------------------
-# Configuration options related to the input files
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
-# ../../src/hurricane/Commands.h ../../src/hurricane/Command.h Command.dox \
-# ../../src/hurricane/MainViews.h ../../src/hurricane/MainView.h MainView.dox \
-# ../../src/hurricane/MapView.h MapView.dox \
-# ../../src/hurricane/Primitives.h ../../src/hurricane/Primitive.h Primitive.dox \
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
-INPUT = \
- ../../src/hurricane/Hurricane.h Hurricane.dox \
- ../../src/hurricane/SlotAdapter.h SlotAdapter.dox \
- ../../src/hurricane/Commons.h Commons.dox \
- ../../src/hurricane/DataBase.h DataBase.dox \
- ../../src/hurricane/Technology.h Technology.dox \
- ../../src/hurricane/DBos.h ../../src/hurricane/DBo.h DBo.dox \
- ../../src/hurricane/Entities.h ../../src/hurricane/Entity.h Entity.dox \
- ../../src/hurricane/Cells.h ../../src/hurricane/Cell.h Cell.dox \
- ../../src/hurricane/BasicLayers.h ../../src/hurricane/BasicLayer.h BasicLayer.dox \
- ../../src/hurricane/Boxes.h ../../src/hurricane/Box.h Box.dox \
- ../../src/hurricane/Collection.h Collection.dox \
- SelectCommand.dox \
- SelectNetCommand.dox \
- ZoomCommand.dox \
- ../../src/hurricane/Components.h ../../src/hurricane/Component.h Component.dox \
- ../../src/hurricane/CompositeLayers.h ../../src/hurricane/CompositeLayer.h CompositeLayer.dox \
- ../../src/hurricane/Contacts.h ../../src/hurricane/Contact.h Contact.dox \
- ../../src/hurricane/Error.h Error.dox \
- ../../src/hurricane/Exception.h Exception.dox \
- ../../src/hurricane/Filter.h Filter.dox \
- NotFilter.dox \
- Generalities.dox \
- ../../src/hurricane/Collection.h GenericCollection.dox \
- ../../src/hurricane/Filter.h GenericFilter.dox \
- ../../src/hurricane/Locator.h GenericLocator.dox \
- ../../src/hurricane/Gos.h ../../src/hurricane/Go.h Go.dox \
- ../../src/hurricane/Hooks.h ../../src/hurricane/Hook.h Hook.dox \
- ../../src/hurricane/Horizontals.h ../../src/hurricane/Horizontal.h Horizontal.dox \
- ../../src/hurricane/Instances.h ../../src/hurricane/Instance.h Instance.dox \
- ../../src/hurricane/Interruption.h Interruption.dox \
- ../../src/hurricane/Intervals.h ../../src/hurricane/Interval.h Interval.dox \
- ../../src/hurricane/Layers.h ../../src/hurricane/Layer.h Layer.dox \
- ../../src/hurricane/Libraries.h ../../src/hurricane/Library.h Library.dox \
- ../../src/hurricane/ListCollection.h ListCollection.dox \
- ../../src/hurricane/Locator.h Locator.dox \
- ../../src/hurricane/MapCollection.h MapCollection.dox \
- ../../src/hurricane/Names.h ../../src/hurricane/Name.h Name.dox \
- ../../src/hurricane/Nets.h ../../src/hurricane/Net.h Net.dox \
- ../../src/hurricane/Occurrences.h ../../src/hurricane/Occurrence.h Occurrence.dox \
- ../../src/hurricane/Pads.h ../../src/hurricane/Pad.h Pad.dox \
- ../../src/hurricane/Pathes.h ../../src/hurricane/Path.h Path.dox \
- ../../src/hurricane/Pins.h ../../src/hurricane/Pin.h Pin.dox \
- ../../src/hurricane/Plugs.h ../../src/hurricane/Plug.h Plug.dox \
- ../../src/hurricane/Points.h ../../src/hurricane/Point.h Point.dox \
- ../../src/hurricane/Properties.h ../../src/hurricane/Property.h Property.dox \
- PrivateProperty.dox \
- SharedProperty.dox \
- StandardPrivateProperty.dox \
- StandardSharedProperty.dox \
- ../../src/hurricane/QuadTree.h QuadTree.dox \
- ../../src/hurricane/Quarks.h ../../src/hurricane/Quark.h Quark.dox \
- ../../src/hurricane/Relation.h Relation.dox \
- StandardRelation.dox \
- ../../src/hurricane/Rubbers.h ../../src/hurricane/Rubber.h Rubber.dox \
- ../../src/hurricane/Segments.h ../../src/hurricane/Segment.h Segment.dox \
- ../../src/hurricane/Selectors.h ../../src/hurricane/Selector.h Selector.dox \
- ../../src/hurricane/SetCollection.h SetCollection.dox \
- SubSetCollection.dox \
- SubTypeCollection.dox \
- ../../src/hurricane/Slices.h ../../src/hurricane/Slice.h Slice.dox \
- ../../src/hurricane/Symbols.h ../../src/hurricane/Symbol.h Symbol.dox \
- ../../src/hurricane/Tabulation.h Tabulation.dox \
- ../../src/hurricane/Transformation.h Transformation.dox \
- ../../src/hurricane/Unit.h Unit.dox \
- ../../src/hurricane/UpdateSession.h UpdateSession.dox \
- ../../src/hurricane/VectorCollection.h VectorCollection.dox \
- ../../src/hurricane/Verticals.h ../../src/hurricane/Vertical.h Vertical.dox \
- ../../src/hurricane/Views.h ../../src/hurricane/View.h View.dox \
- ../../src/hurricane/Warning.h Warning.dox
+INPUT = ../../src/hurricane/Hurricane.h \
+ Hurricane.dox \
+ ../../src/hurricane/SlotAdapter.h \
+ SlotAdapter.dox \
+ ../../src/hurricane/Commons.h \
+ Commons.dox \
+ ../../src/hurricane/DataBase.h \
+ DataBase.dox \
+ ../../src/hurricane/Technology.h \
+ Technology.dox \
+ ../../src/hurricane/DBos.h \
+ ../../src/hurricane/DBo.h \
+ DBo.dox \
+ ../../src/hurricane/Entities.h \
+ ../../src/hurricane/Entity.h \
+ Entity.dox \
+ ../../src/hurricane/Cells.h \
+ ../../src/hurricane/Cell.h \
+ Cell.dox \
+ ../../src/hurricane/BasicLayers.h \
+ ../../src/hurricane/BasicLayer.h \
+ BasicLayer.dox \
+ ../../src/hurricane/Boxes.h \
+ ../../src/hurricane/Box.h \
+ Box.dox \
+ ../../src/hurricane/Collection.h \
+ Collection.dox \
+ SelectCommand.dox \
+ SelectNetCommand.dox \
+ ZoomCommand.dox \
+ ../../src/hurricane/Components.h \
+ ../../src/hurricane/Component.h \
+ Component.dox \
+ ../../src/hurricane/CompositeLayers.h \
+ ../../src/hurricane/CompositeLayer.h \
+ CompositeLayer.dox \
+ ../../src/hurricane/Contacts.h \
+ ../../src/hurricane/Contact.h \
+ Contact.dox \
+ ../../src/hurricane/Error.h \
+ Error.dox \
+ ../../src/hurricane/Exception.h \
+ Exception.dox \
+ ../../src/hurricane/Filter.h \
+ Filter.dox \
+ NotFilter.dox \
+ Generalities.dox \
+ ../../src/hurricane/Collection.h \
+ GenericCollection.dox \
+ ../../src/hurricane/Filter.h \
+ GenericFilter.dox \
+ ../../src/hurricane/Locator.h \
+ GenericLocator.dox \
+ ../../src/hurricane/Gos.h \
+ ../../src/hurricane/Go.h \
+ Go.dox \
+ ../../src/hurricane/Hooks.h \
+ ../../src/hurricane/Hook.h \
+ Hook.dox \
+ ../../src/hurricane/Horizontals.h \
+ ../../src/hurricane/Horizontal.h \
+ Horizontal.dox \
+ ../../src/hurricane/Instances.h \
+ ../../src/hurricane/Instance.h \
+ Instance.dox \
+ ../../src/hurricane/Interruption.h \
+ Interruption.dox \
+ ../../src/hurricane/Intervals.h \
+ ../../src/hurricane/Interval.h \
+ Interval.dox \
+ ../../src/hurricane/Layers.h \
+ ../../src/hurricane/Layer.h \
+ Layer.dox \
+ ../../src/hurricane/Libraries.h \
+ ../../src/hurricane/Library.h \
+ Library.dox \
+ ../../src/hurricane/ListCollection.h \
+ ListCollection.dox \
+ ../../src/hurricane/Locator.h \
+ Locator.dox \
+ ../../src/hurricane/MapCollection.h \
+ MapCollection.dox \
+ ../../src/hurricane/Names.h \
+ ../../src/hurricane/Name.h \
+ Name.dox \
+ ../../src/hurricane/Nets.h \
+ ../../src/hurricane/Net.h \
+ Net.dox \
+ ../../src/hurricane/Occurrences.h \
+ ../../src/hurricane/Occurrence.h \
+ Occurrence.dox \
+ ../../src/hurricane/Pads.h \
+ ../../src/hurricane/Pad.h \
+ Pad.dox \
+ ../../src/hurricane/Pathes.h \
+ ../../src/hurricane/Path.h \
+ Path.dox \
+ ../../src/hurricane/Pins.h \
+ ../../src/hurricane/Pin.h \
+ Pin.dox \
+ ../../src/hurricane/Plugs.h \
+ ../../src/hurricane/Plug.h \
+ Plug.dox \
+ ../../src/hurricane/Points.h \
+ ../../src/hurricane/Point.h \
+ Point.dox \
+ ../../src/hurricane/Properties.h \
+ ../../src/hurricane/Property.h \
+ Property.dox \
+ PrivateProperty.dox \
+ SharedProperty.dox \
+ StandardPrivateProperty.dox \
+ StandardSharedProperty.dox \
+ ../../src/hurricane/QuadTree.h \
+ QuadTree.dox \
+ ../../src/hurricane/Quarks.h \
+ ../../src/hurricane/Quark.h \
+ Quark.dox \
+ ../../src/hurricane/Relation.h \
+ Relation.dox \
+ StandardRelation.dox \
+ ../../src/hurricane/Rubbers.h \
+ ../../src/hurricane/Rubber.h \
+ Rubber.dox \
+ ../../src/hurricane/Segments.h \
+ ../../src/hurricane/Segment.h \
+ Segment.dox \
+ ../../src/hurricane/Selectors.h \
+ ../../src/hurricane/Selector.h \
+ Selector.dox \
+ ../../src/hurricane/SetCollection.h \
+ SetCollection.dox \
+ SubSetCollection.dox \
+ SubTypeCollection.dox \
+ ../../src/hurricane/Slices.h \
+ ../../src/hurricane/Slice.h \
+ Slice.dox \
+ ../../src/hurricane/Symbols.h \
+ ../../src/hurricane/Symbol.h \
+ Symbol.dox \
+ ../../src/hurricane/Tabulation.h \
+ Tabulation.dox \
+ ../../src/hurricane/Transformation.h \
+ Transformation.dox \
+ ../../src/hurricane/Unit.h \
+ Unit.dox \
+ ../../src/hurricane/UpdateSession.h \
+ UpdateSession.dox \
+ ../../src/hurricane/VectorCollection.h \
+ VectorCollection.dox \
+ ../../src/hurricane/Verticals.h \
+ ../../src/hurricane/Vertical.h \
+ Vertical.dox \
+ ../../src/hurricane/Views.h \
+ ../../src/hurricane/View.h \
+ View.dox \
+ ../../src/hurricane/Warning.h \
+ Warning.dox
-FILE_PATTERNS = *.h \
+# This tag can be used to specify the character encoding of the source files that
+# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default
+# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding.
+# See http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+INPUT_ENCODING = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+
+FILE_PATTERNS = *.h \
*.cpp \
*.dox
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
RECURSIVE = YES
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
EXCLUDE_PATTERNS =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the output.
+# The symbol name can be a fully qualified name, a word, or if the wildcard * is used,
+# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
EXAMPLE_PATTERNS =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
IMAGE_PATH = images
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command , where
+# is the value of the INPUT_FILTER tag, and is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output. If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
FILTER_SOURCE_FILES = YES
-# --------------------------------------------------------------------
-# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH
+# then you must also enable this option. If you don't then doxygen will produce
+# a warning and turn it on anyway
SOURCE_BROWSER = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default)
+# then for each documented function all documented
+# functions referencing it will be listed.
+
REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default)
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
REFERENCES_RELATION = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code. Otherwise they will link to the documentstion.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
VERBATIM_HEADERS = YES
-# --------------------------------------------------------------------
-# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
ALPHABETICAL_INDEX = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
COLS_IN_ALPHA_INDEX = 2
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
IGNORE_PREFIX =
-# --------------------------------------------------------------------
-# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
HTML_HEADER = header.html
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
HTML_FOOTER = footer.html
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
HTML_STYLESHEET = ASIM.css
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
HTML_ALIGN_MEMBERS = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
+# of the generated HTML documentation.
+
GENERATE_HTMLHELP = NO
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
HHC_LOCATION =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
TOC_EXPAND = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
DISABLE_INDEX = YES
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
ENUM_VALUES_PER_LINE = 1
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
+# probably better off using the HTML help feature.
+
GENERATE_TREEVIEW = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
TREEVIEW_WIDTH = 250
-# --------------------------------------------------------------------
-# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
GENERATE_LATEX = YES
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
LATEX_HEADER = header.tex
-PDF_HYPERLINKS = YES
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
USE_PDFLATEX = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
LATEX_BATCHMODE = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
LATEX_HIDE_INDICES = NO
-# --------------------------------------------------------------------
-# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
RTF_EXTENSIONS_FILE =
-# --------------------------------------------------------------------
-# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
GENERATE_MAN = YES
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
MAN_LINKS = NO
-# --------------------------------------------------------------------
-# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
XML_DTD =
-# --------------------------------------------------------------------
-# Configuration options for the AutoGen Definitions output
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
GENERATE_AUTOGEN_DEF = NO
-# --------------------------------------------------------------------
-# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader. This is useful
+# if you want to understand what is going on. On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
PERLMOD_MAKEVAR_PREFIX =
-# --------------------------------------------------------------------
+#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
MACRO_EXPANSION = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
INCLUDE_FILE_PATTERNS =
-PREDEFINED = __DOXYGEN_PROCESSOR__
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED = __DOXYGEN_PROCESSOR__
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
SKIP_FUNCTION_MACROS = YES
-# --------------------------------------------------------------------
-# Configuration::addtions related to external references
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
TAGFILES =
-GENERATE_TAGFILE = en/hurricane/html/hurricane.tag
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE = html/hurricane.tag
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
PERL_PATH = /usr/bin/perl
-# --------------------------------------------------------------------
+#---------------------------------------------------------------------------
# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
CLASS_DIAGRAMS = NO
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to
+# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to
+# specify the directory where the mscgen tool resides. If left empty the tool is assumed to
+# be found in the default search path.
+
+MSCGEN_PATH =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
HAVE_DOT = YES
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
COLLABORATION_GRAPH = NO
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
UML_LOOK = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
TEMPLATE_RELATIONS = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will
+# generate a call dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+
CALL_GRAPH = NO
+
+# If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will
+# generate a caller dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command.
+
+CALLER_GRAPH = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
GRAPHICAL_HIERARCHY = NO
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
DOT_IMAGE_FORMAT = png
-DOT_PATH =
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
DOTFILE_DIRS =
-MAX_DOT_GRAPH_WIDTH = 512
-MAX_DOT_GRAPH_HEIGHT = 1024
+
+# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the number
+# of direct children of the root node in a graph is already larger than
+# MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, which results in a white background.
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+
+DOT_TRANSPARENT = YES
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS = NO
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
DOT_CLEANUP = YES
-# --------------------------------------------------------------------
-# Configuration::addtions related to the search engine
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be
+# used. If set to NO the values of all tags below this one will be ignored.
SEARCHENGINE = NO
diff --git a/hurricane/src/editor/InstanceGraphicsItem.cpp b/hurricane/src/editor/InstanceGraphicsItem.cpp
index 848b67bd..5d20a1e7 100644
--- a/hurricane/src/editor/InstanceGraphicsItem.cpp
+++ b/hurricane/src/editor/InstanceGraphicsItem.cpp
@@ -74,7 +74,7 @@ void InstanceGraphicsItem::drawElements(QPainter* painter) {
painter->save();
BasicLayer* layer = dynamic_cast(slice->GetLayer());
if (layer) {
- painter->setBrush(QColor(layer->GetRedValue(), layer->GetGreenValue(), layer->GetBlueValue()));
+ painter->setBrush(QColor(layer->getRedValue(), layer->getGreenValue(), layer->getBlueValue()));
} else {
painter->setBrush(Qt::blue);
}
diff --git a/hurricane/src/editor/SegmentFigure.cpp b/hurricane/src/editor/SegmentFigure.cpp
index e2b0129e..23dcaae0 100644
--- a/hurricane/src/editor/SegmentFigure.cpp
+++ b/hurricane/src/editor/SegmentFigure.cpp
@@ -80,9 +80,9 @@ void SegmentGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsIte
boxToRectangle(box, rect);
BasicLayer* blayer = dynamic_cast(segment->GetLayer());
if (blayer) {
- QColor layerColor(blayer->GetRedValue(),
- blayer->GetGreenValue(),
- blayer->GetBlueValue());
+ QColor layerColor(blayer->getRedValue(),
+ blayer->getGreenValue(),
+ blayer->getBlueValue());
QBrush brush(layerColor);
brush.setStyle(Qt::Dense1Pattern);
painter->setBrush(brush);
@@ -95,10 +95,10 @@ void SegmentGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsIte
} else {
CompositeLayer* clayer = dynamic_cast(segment->GetLayer());
if (clayer) {
- for_each_basic_layer(basiclayer, clayer->GetBasicLayers()) {
- QColor layerColor(basiclayer->GetRedValue(),
- basiclayer->GetGreenValue(),
- basiclayer->GetBlueValue());
+ for_each_basic_layer(basiclayer, clayer->getBasicLayers()) {
+ QColor layerColor(basiclayer->getRedValue(),
+ basiclayer->getGreenValue(),
+ basiclayer->getBlueValue());
QBrush brush(layerColor);
brush.setStyle(Qt::Dense1Pattern);
painter->setBrush(brush);
diff --git a/hurricane/src/hurricane/BasicLayer.cpp b/hurricane/src/hurricane/BasicLayer.cpp
index 8615a654..876d34f3 100644
--- a/hurricane/src/hurricane/BasicLayer.cpp
+++ b/hurricane/src/hurricane/BasicLayer.cpp
@@ -96,7 +96,7 @@ BasicLayer::BasicLayer(Technology* technology, const Name& name, const Type& typ
{
}
-BasicLayer* BasicLayer::Create(Technology* technology, const Name& name, const Type& type, unsigned extractNumber, const Unit& minimalSize, const Unit& minimalSpacing)
+BasicLayer* BasicLayer::create(Technology* technology, const Name& name, const Type& type, unsigned extractNumber, const Unit& minimalSize, const Unit& minimalSpacing)
// ****************************************************************************************************
{
BasicLayer* basicLayer =
@@ -107,31 +107,23 @@ BasicLayer* BasicLayer::Create(Technology* technology, const Name& name, const T
return basicLayer;
}
-BasicLayers BasicLayer::GetBasicLayers() const
+BasicLayers BasicLayer::getBasicLayers() const
// *******************************************
{
return BasicLayer_BasicLayers(this);
}
-void BasicLayer::SetColor(unsigned short redValue, unsigned short greenValue, unsigned short blueValue)
+void BasicLayer::setColor(unsigned short redValue, unsigned short greenValue, unsigned short blueValue)
// ****************************************************************************************************
{
if ((redValue != _redValue) || (greenValue != _greenValue) || (blueValue != _blueValue)) {
_redValue = redValue;
_greenValue = greenValue;
_blueValue = blueValue;
- //if (_drawGC) {
- // gdk_gc_destroy(_drawGC);
- // _drawGC = NULL;
- //}
- //if (_fillGC) {
- // gdk_gc_destroy(_fillGC);
- // _fillGC = NULL;
- //}
}
}
-void BasicLayer::SetFillPattern(const string& fillPattern)
+void BasicLayer::setFillPattern(const string& fillPattern)
// *******************************************************
{
if (fillPattern != _fillPattern) {
@@ -144,14 +136,6 @@ void BasicLayer::SetFillPattern(const string& fillPattern)
throw Error("Can't set fill pattern (bad value)");
}
_fillPattern = fillPattern;
- //if (_drawGC) {
- // gdk_gc_destroy(_drawGC);
- // _drawGC = NULL;
- //}
- //if (_fillGC) {
- // gdk_gc_destroy(_fillGC);
- // _fillGC = NULL;
- //}
}
}
@@ -159,8 +143,8 @@ void BasicLayer::_PostCreate()
// ***************************
{
Mask basicLayersMask = 0;
- for_each_basic_layer(basicLayer, GetTechnology()->GetBasicLayers()) {
- basicLayersMask |= basicLayer->GetMask();
+ for_each_basic_layer(basicLayer, getTechnology()->GetBasicLayers()) {
+ basicLayersMask |= basicLayer->getMask();
end_for;
}
@@ -170,7 +154,7 @@ void BasicLayer::_PostCreate()
if (!mask)
throw Error("Can't create " + _TName("BasicLayer") + " : mask capacity overflow");
- _SetMask(mask);
+ _setMask(mask);
if (_extractNumber) {
Mask extractMask = (1 << _extractNumber);
@@ -178,7 +162,7 @@ void BasicLayer::_PostCreate()
if (!extractMask)
throw Error("Can't create " + _TName("BasicLayer") + " : extract mask capacity overflow");
- _SetExtractMask(extractMask);
+ _setExtractMask(extractMask);
}
Inherit::_PostCreate();
@@ -189,12 +173,9 @@ void BasicLayer::_PreDelete()
{
Inherit::_PreDelete();
- //if (_drawGC) gdk_gc_destroy(_drawGC);
- //if (_fillGC) gdk_gc_destroy(_fillGC);
-
- CompositeLayers compositeLayers = GetTechnology()->GetCompositeLayers();
+ CompositeLayers compositeLayers = getTechnology()->GetCompositeLayers();
for_each_composite_layer(compositeLayer, compositeLayers) {
- if (compositeLayer->Contains(this)) compositeLayer->Remove(this);
+ if (compositeLayer->contains(this)) compositeLayer->remove(this);
end_for;
}
}
@@ -222,76 +203,6 @@ Record* BasicLayer::_GetRecord() const
return record;
}
-//GdkGC* BasicLayer::_GetDrawGC()
-//// ****************************
-//{
-// if (!_drawGC) _drawGC = gtk_gc_new(_redValue, _greenValue, _blueValue);
-//
-// return _drawGC;
-//}
-//
-//GdkGC* BasicLayer::_GetFillGC()
-//// ****************************
-//{
-// if (!_fillGC) _fillGC = gtk_gc_new(_redValue, _greenValue, _blueValue, _fillPattern);
-//
-// return _fillGC;
-//}
-//
-
-//void BasicLayer::_Fill(View* view, const Box& box) const
-//// *****************************************************
-//{
-// switch (_type) {
-// case Type::CONTACT : {
-//
-// Unit minimalSize = GetMinimalSize();
-// Unit minimalSpacing = GetMinimalSpacing();
-//
-// if ((minimalSize <= 0) || (minimalSpacing <= 0))
-// view->FillRectangle(box);
-// else {
-// view->DrawRectangle(box);
-//
-// Unit width = box.GetWidth();
-// Unit height = box.GetHeight();
-// Unit offset = minimalSize + minimalSpacing;
-//
-// int nx = (int)(GetValue(width) / GetValue(offset));
-// int ny = (int)(GetValue(height) / GetValue(offset));
-//
-// Unit dx = (width - (minimalSize + (offset * nx))) / 2;
-// Unit dy = (height - (minimalSize + (offset * ny))) / 2;
-//
-// if (dx < 0) dx = (width - (minimalSize + (offset * (--nx)))) / 2;
-// if (dy < 0) dy = (height - (minimalSize + (offset * (--ny)))) / 2;
-//
-// Unit xmin = box.GetXMin() + dx;
-// Unit ymin = box.GetYMin() + dy;
-// Unit xmax = box.GetXMax() - dx;
-// Unit ymax = box.GetYMax() - dy;
-//
-// if ((xmin < xmax) && (ymin < ymax)) {
-// Unit y = ymin;
-// do {
-// Unit x = xmin;
-// do {
-// view->FillRectangle(x, y, x + minimalSize, y + minimalSize, true);
-// x += offset;
-// } while (x < xmax);
-// y += offset;
-// } while (y < ymax);
-// }
-// }
-// break;
-// }
-// default : {
-// view->FillRectangle(box);
-// break;
-// }
-// }
-//}
-//
// ****************************************************************************************************
// BasicLayer_BasicLayers implementation
// ****************************************************************************************************
diff --git a/hurricane/src/hurricane/BasicLayer.h b/hurricane/src/hurricane/BasicLayer.h
index 0a38044b..19222b83 100644
--- a/hurricane/src/hurricane/BasicLayer.h
+++ b/hurricane/src/hurricane/BasicLayer.h
@@ -43,7 +43,7 @@ class BasicLayer : public Layer {
public: operator const Code&() const {return _code;};
- public: const Code& GetCode() const {return _code;};
+ public: const Code& getCode() const {return _code;};
public: string _GetTypeName() const { return _TName("BasicLayer::Type"); };
public: string _GetString() const;
@@ -61,34 +61,32 @@ class BasicLayer : public Layer {
private: unsigned short _blueValue;
private: string _fillPattern;
private: double _displayThreshold;
-// private: GdkGC* _drawGC;
-// private: GdkGC* _fillGC;
// Constructors
// ************
protected: BasicLayer(Technology* technology, const Name& name, const Type& type, unsigned extractNumber, const Unit& minimalSize = 0, const Unit& minimalSpacing = 0);
- public: static BasicLayer* Create(Technology* technology, const Name& name, const Type& type, unsigned extractNumber, const Unit& minimalSize = 0, const Unit& minimalSpacing = 0);
+ public: static BasicLayer* create(Technology* technology, const Name& name, const Type& type, unsigned extractNumber, const Unit& minimalSize = 0, const Unit& minimalSpacing = 0);
// Accessors
// *********
- public: const Type& GetType() const {return _type;};
- public: unsigned GetExtractNumber() const {return _extractNumber;};
- public: const unsigned short& GetRedValue() const {return _redValue;};
- public: const unsigned short& GetGreenValue() const {return _greenValue;};
- public: const unsigned short& GetBlueValue() const {return _blueValue;};
- public: const string& GetFillPattern() const {return _fillPattern;};
- public: double GetDisplayThreshold() const {return _displayThreshold;};
- public: virtual BasicLayers GetBasicLayers() const;
+ public: const Type& getType() const {return _type;};
+ public: unsigned getExtractNumber() const {return _extractNumber;};
+ public: const unsigned short& getRedValue() const {return _redValue;};
+ public: const unsigned short& getGreenValue() const {return _greenValue;};
+ public: const unsigned short& getBlueValue() const {return _blueValue;};
+ public: const string& getFillPattern() const {return _fillPattern;};
+ public: double getDisplayThreshold() const {return _displayThreshold;};
+ public: virtual BasicLayers getBasicLayers() const;
// Updators
// ********
- public: void SetColor(unsigned short redValue, unsigned short greenValue, unsigned short blueValue);
- public: void SetFillPattern(const string& fillPattern);
- public: void SetDisplayThreshold(double threshold) {_displayThreshold = threshold;};
+ public: void setColor(unsigned short redValue, unsigned short greenValue, unsigned short blueValue);
+ public: void setFillPattern(const string& fillPattern);
+ public: void setDisplayThreshold(double threshold) {_displayThreshold = threshold;};
// Others
// ******
@@ -100,11 +98,9 @@ class BasicLayer : public Layer {
public: virtual string _GetTypeName() const {return _TName("BasicLayer");};
public: virtual string _GetString() const;
public: virtual Record* _GetRecord() const;
- public: virtual BasicLayer* _GetSymbolicBasicLayer() {return this;};
- //public: GdkGC* _GetDrawGC();
- //public: GdkGC* _GetFillGC();
+ public: virtual BasicLayer* _getSymbolicBasicLayer() {return this;};
- public: void _Fill(View* view, const Box& box) const;
+ public: void _fill(View* view, const Box& box) const;
};
diff --git a/hurricane/src/hurricane/CellCollections.cpp b/hurricane/src/hurricane/CellCollections.cpp
index 0c059dbf..a9ebdc4e 100644
--- a/hurricane/src/hurricane/CellCollections.cpp
+++ b/hurricane/src/hurricane/CellCollections.cpp
@@ -1451,7 +1451,7 @@ Cell_Slices::Locator::Locator(const Cell* cell, const Layer::Mask& mask)
{
if (_cell && (_mask != 0)) {
_sliceLocator = ((Cell*)_cell)->_GetSliceMap().GetElements().GetLocator();
- while (_sliceLocator.IsValid() && !(_sliceLocator.GetElement()->GetLayer()->GetMask() & _mask))
+ while (_sliceLocator.IsValid() && !(_sliceLocator.GetElement()->GetLayer()->getMask() & _mask))
_sliceLocator.Progress();
}
}
@@ -1499,7 +1499,7 @@ void Cell_Slices::Locator::Progress()
do {
_sliceLocator.Progress();
}
- while (_sliceLocator.IsValid() && !(_sliceLocator.GetElement()->GetLayer()->GetMask() & _mask));
+ while (_sliceLocator.IsValid() && !(_sliceLocator.GetElement()->GetLayer()->getMask() & _mask));
}
}
diff --git a/hurricane/src/hurricane/CompositeLayer.cpp b/hurricane/src/hurricane/CompositeLayer.cpp
index 201c3a04..eb5f2fb2 100644
--- a/hurricane/src/hurricane/CompositeLayer.cpp
+++ b/hurricane/src/hurricane/CompositeLayer.cpp
@@ -19,180 +19,180 @@ namespace Hurricane {
CompositeLayer::CompositeLayer(Technology* technology, const Name& name, const Type& type, const Unit& minimalSize, const Unit& minimalSpacing)
// ****************************************************************************************************
-: Inherit(technology, name, minimalSize, minimalSpacing),
- _type(type),
- _basicLayerList(),
- _contactSizeMap(),
- _segmentSizeMap(),
- _segmentExtentionMap(),
- _padSizeMap(),
- _maximalContactSize(0),
- _maximalSegmentSize(0),
- _maximalSegmentExtention(0),
- _maximalPadSize(0),
- _symbolicBasicLayer(NULL)
+: Inherit(technology, name, minimalSize, minimalSpacing),
+ _type(type),
+ _basicLayerList(),
+ _contactSizeMap(),
+ _segmentSizeMap(),
+ _segmentExtentionMap(),
+ _padSizeMap(),
+ _maximalContactSize(0),
+ _maximalSegmentSize(0),
+ _maximalSegmentExtention(0),
+ _maximalPadSize(0),
+ _symbolicBasicLayer(NULL)
{
}
-CompositeLayer* CompositeLayer::Create(Technology* technology, const Name& name, const Type& type, const Unit& minimalSize, const Unit& minimalSpacing)
+CompositeLayer* CompositeLayer::create(Technology* technology, const Name& name, const Type& type, const Unit& minimalSize, const Unit& minimalSpacing)
// ****************************************************************************************************
{
- CompositeLayer* compositeLayer =
- new CompositeLayer(technology, name, type, minimalSize, minimalSpacing);
+ CompositeLayer* compositeLayer =
+ new CompositeLayer(technology, name, type, minimalSize, minimalSpacing);
- compositeLayer->_PostCreate();
+ compositeLayer->_PostCreate();
- return compositeLayer;
+ return compositeLayer;
}
-BasicLayers CompositeLayer::GetBasicLayers() const
+BasicLayers CompositeLayer::getBasicLayers() const
// ***********************************************
{
- return GetCollection(_basicLayerList);
+ return GetCollection(_basicLayerList);
}
-Unit CompositeLayer::GetContactSize(const BasicLayer* basicLayer) const
+Unit CompositeLayer::getContactSize(const BasicLayer* basicLayer) const
// **************************************************************
{
- SizeMap::const_iterator it = _contactSizeMap.find(basicLayer);
- return ((it == _contactSizeMap.end()) ? 0 : (*it).second);
+ SizeMap::const_iterator it = _contactSizeMap.find(basicLayer);
+ return ((it == _contactSizeMap.end()) ? 0 : (*it).second);
}
-Unit CompositeLayer::GetSegmentSize(const BasicLayer* basicLayer) const
+Unit CompositeLayer::getSegmentSize(const BasicLayer* basicLayer) const
// **************************************************************
{
- SizeMap::const_iterator it = _segmentSizeMap.find(basicLayer);
- return ((it == _segmentSizeMap.end()) ? 0 : (*it).second);
+ SizeMap::const_iterator it = _segmentSizeMap.find(basicLayer);
+ return ((it == _segmentSizeMap.end()) ? 0 : (*it).second);
}
-Unit CompositeLayer::GetSegmentExtention(const BasicLayer* basicLayer) const
+Unit CompositeLayer::getSegmentExtention(const BasicLayer* basicLayer) const
// *******************************************************************
{
- SizeMap::const_iterator it = _segmentExtentionMap.find(basicLayer);
- return ((it == _segmentExtentionMap.end()) ? 0 : (*it).second);
+ SizeMap::const_iterator it = _segmentExtentionMap.find(basicLayer);
+ return ((it == _segmentExtentionMap.end()) ? 0 : (*it).second);
}
-Unit CompositeLayer::GetPadSize(const BasicLayer* basicLayer) const
+Unit CompositeLayer::getPadSize(const BasicLayer* basicLayer) const
// **********************************************************
{
- SizeMap::const_iterator it = _padSizeMap.find(basicLayer);
- return ((it == _padSizeMap.end()) ? 0 : (*it).second);
+ SizeMap::const_iterator it = _padSizeMap.find(basicLayer);
+ return ((it == _padSizeMap.end()) ? 0 : (*it).second);
}
-void CompositeLayer::Add(BasicLayer* basicLayer, const Unit& contactSize, const Unit& segmentSize, const Unit& segmentExtention, const Unit& padSize)
+void CompositeLayer::add(BasicLayer* basicLayer, const Unit& contactSize, const Unit& segmentSize, const Unit& segmentExtention, const Unit& padSize)
// ****************************************************************************************************
{
- if (!basicLayer)
- throw Error("Can't add basic layer : null basic layer");
+ if (!basicLayer)
+ throw Error("Can't add basic layer : null basic layer");
- if (Contains(basicLayer))
- throw Error("Can't add basic layer : already done");
+ if (contains(basicLayer))
+ throw Error("Can't add basic layer : already done");
- _basicLayerList.push_back(basicLayer);
+ _basicLayerList.push_back(basicLayer);
- _SetMask(GetMask() | basicLayer->GetMask());
- _SetExtractMask(GetExtractMask() | basicLayer->GetExtractMask());
+ _setMask(getMask() | basicLayer->getMask());
+ _setExtractMask(getExtractMask() | basicLayer->getExtractMask());
- if (contactSize != 0) _contactSizeMap[basicLayer] = contactSize;
- if (segmentSize != 0) _segmentSizeMap[basicLayer] = segmentSize;
- if (segmentExtention != 0) _segmentExtentionMap[basicLayer] = segmentExtention;
- if (padSize != 0) _padSizeMap[basicLayer] = padSize;
+ if (contactSize != 0) _contactSizeMap[basicLayer] = contactSize;
+ if (segmentSize != 0) _segmentSizeMap[basicLayer] = segmentSize;
+ if (segmentExtention != 0) _segmentExtentionMap[basicLayer] = segmentExtention;
+ if (padSize != 0) _padSizeMap[basicLayer] = padSize;
- _maximalContactSize = max(contactSize, _maximalContactSize);
- _maximalSegmentSize = max(segmentSize, _maximalSegmentSize);
- _maximalSegmentExtention = max(segmentExtention, _maximalSegmentExtention);
- _maximalPadSize = max(padSize, _maximalPadSize);
+ _maximalContactSize = max(contactSize, _maximalContactSize);
+ _maximalSegmentSize = max(segmentSize, _maximalSegmentSize);
+ _maximalSegmentExtention = max(segmentExtention, _maximalSegmentExtention);
+ _maximalPadSize = max(padSize, _maximalPadSize);
}
-void CompositeLayer::Remove(BasicLayer* basicLayer)
+void CompositeLayer::remove(BasicLayer* basicLayer)
// ************************************************
{
- if (!basicLayer)
- throw Error("Can't remove basic layer : null basic layer");
+ if (!basicLayer)
+ throw Error("Can't remove basic layer : null basic layer");
- if (!Contains(basicLayer))
- throw Error("Can't remove basic layer : not contained");
+ if (!contains(basicLayer))
+ throw Error("Can't remove basic layer : not contained");
- _basicLayerList.remove(basicLayer);
+ _basicLayerList.remove(basicLayer);
- _contactSizeMap.erase(basicLayer);
- _segmentSizeMap.erase(basicLayer);
- _segmentExtentionMap.erase(basicLayer);
- _padSizeMap.erase(basicLayer);
+ _contactSizeMap.erase(basicLayer);
+ _segmentSizeMap.erase(basicLayer);
+ _segmentExtentionMap.erase(basicLayer);
+ _padSizeMap.erase(basicLayer);
- _maximalContactSize = 0;
- _maximalSegmentSize = 0;
- _maximalSegmentExtention = 0;
- _maximalPadSize = 0;
+ _maximalContactSize = 0;
+ _maximalSegmentSize = 0;
+ _maximalSegmentExtention = 0;
+ _maximalPadSize = 0;
- Mask mask = 0;
- Mask extractMask = 0;
+ Mask mask = 0;
+ Mask extractMask = 0;
- for_each_basic_layer(basicLayer, GetBasicLayers()) {
- mask |= basicLayer->GetMask();
- extractMask |= basicLayer->GetExtractMask();
- _maximalContactSize = max(GetContactSize(basicLayer), _maximalContactSize);
- _maximalSegmentSize = max(GetSegmentSize(basicLayer), _maximalSegmentSize);
- _maximalSegmentExtention = max(GetSegmentExtention(basicLayer), _maximalSegmentExtention);
- _maximalPadSize = max(GetPadSize(basicLayer), _maximalPadSize);
- end_for;
- }
+ for_each_basic_layer(basicLayer, getBasicLayers()) {
+ mask |= basicLayer->getMask();
+ extractMask |= basicLayer->getExtractMask();
+ _maximalContactSize = max(getContactSize(basicLayer), _maximalContactSize);
+ _maximalSegmentSize = max(getSegmentSize(basicLayer), _maximalSegmentSize);
+ _maximalSegmentExtention = max(getSegmentExtention(basicLayer), _maximalSegmentExtention);
+ _maximalPadSize = max(getPadSize(basicLayer), _maximalPadSize);
+ end_for;
+ }
- _SetMask(mask);
- _SetExtractMask(extractMask);
+ _setMask(mask);
+ _setExtractMask(extractMask);
}
string CompositeLayer::_GetString() const
// **************************************
{
- string s = Inherit::_GetString();
- /*
- s.insert(s.length() - 1, " " + GetString(_type));
- s.insert(s.length() - 1, " {");
- string separator = "";
- for_each_basic_layer(basicLayer, GetBasicLayers()) {
- s.insert(s.length() - 1, separator + GetString(basicLayer->GetName()));
- separator = "|";
- end_for;
- }
- s.insert(s.length() - 1, "}");
- */
- return s;
+ string s = Inherit::_GetString();
+ /*
+ s.insert(s.length() - 1, " " + GetString(_type));
+ s.insert(s.length() - 1, " {");
+ string separator = "";
+ for_each_basic_layer(basicLayer, GetBasicLayers()) {
+ s.insert(s.length() - 1, separator + GetString(basicLayer->GetName()));
+ separator = "|";
+ end_for;
+ }
+ s.insert(s.length() - 1, "}");
+ */
+ return s;
}
Record* CompositeLayer::_GetRecord() const
// ***************************************
{
- Record* record = Inherit::_GetRecord();
- if (record) {
- record->Add(GetSlot("Type", &_type));
- record->Add(GetSlot("BasicLayers", &_basicLayerList));
- record->Add(GetSlot("ContactSizes", &_contactSizeMap));
- record->Add(GetSlot("SegmentSizes", &_segmentSizeMap));
- record->Add(GetSlot("SegmentExtentions", &_segmentExtentionMap));
- record->Add(GetSlot("PadSizes", &_padSizeMap));
- record->Add(GetSlot("MaximalContactSize", &_maximalContactSize));
- record->Add(GetSlot("MaximalSegmentSize", &_maximalSegmentSize));
- record->Add(GetSlot("MaximalSegmentExtention", &_maximalSegmentExtention));
- record->Add(GetSlot("MaximalPadSize", &_maximalPadSize));
- }
- return record;
+ Record* record = Inherit::_GetRecord();
+ if (record) {
+ record->Add(GetSlot("Type", &_type));
+ record->Add(GetSlot("BasicLayers", &_basicLayerList));
+ record->Add(GetSlot("ContactSizes", &_contactSizeMap));
+ record->Add(GetSlot("SegmentSizes", &_segmentSizeMap));
+ record->Add(GetSlot("SegmentExtentions", &_segmentExtentionMap));
+ record->Add(GetSlot("PadSizes", &_padSizeMap));
+ record->Add(GetSlot("MaximalContactSize", &_maximalContactSize));
+ record->Add(GetSlot("MaximalSegmentSize", &_maximalSegmentSize));
+ record->Add(GetSlot("MaximalSegmentExtention", &_maximalSegmentExtention));
+ record->Add(GetSlot("MaximalPadSize", &_maximalPadSize));
+ }
+ return record;
}
-void CompositeLayer::_UpdateSymbolicBasicLayer(const Layer::Mask& visibleBasicLayersMask)
+void CompositeLayer::_updateSymbolicBasicLayer(const Layer::Mask& visibleBasicLayersMask)
// **************************************************************************************
{
- _symbolicBasicLayer = NULL;
- BasicLayer* symbolicBasicLayer = NULL;
- for_each_basic_layer(basicLayer, GetBasicLayers()) {
- if (basicLayer->GetMask() & visibleBasicLayersMask) {
- symbolicBasicLayer = basicLayer;
- if (basicLayer->GetType() == BasicLayer::Type::CONTACT)
- _symbolicBasicLayer = basicLayer;
- }
- end_for;
- }
- if (!_symbolicBasicLayer) _symbolicBasicLayer = symbolicBasicLayer;
+ _symbolicBasicLayer = NULL;
+ BasicLayer* symbolicBasicLayer = NULL;
+ for_each_basic_layer(basicLayer, getBasicLayers()) {
+ if (basicLayer->getMask() & visibleBasicLayersMask) {
+ symbolicBasicLayer = basicLayer;
+ if (basicLayer->getType() == BasicLayer::Type::CONTACT)
+ _symbolicBasicLayer = basicLayer;
+ }
+ end_for;
+ }
+ if (!_symbolicBasicLayer) _symbolicBasicLayer = symbolicBasicLayer;
}
// ****************************************************************************************************
@@ -201,40 +201,40 @@ void CompositeLayer::_UpdateSymbolicBasicLayer(const Layer::Mask& visibleBasicLa
CompositeLayer::Type::Type(const Code& code)
// *****************************************
-: _code(code)
+: _code(code)
{
}
CompositeLayer::Type::Type(const Type& type)
// *****************************************
-: _code(type._code)
+: _code(type._code)
{
}
CompositeLayer::Type& CompositeLayer::Type::operator=(const Type& type)
// ********************************************************************
{
- _code = type._code;
- return *this;
+ _code = type._code;
+ return *this;
}
string CompositeLayer::Type::_GetString() const
// ********************************************
{
- switch (_code) {
- case UNDEFINED : return "UNDEFINED";
- case METAL : return "METAL";
- case VIA : return "VIA";
- }
- return "ABNORMAL";
+ switch (_code) {
+ case UNDEFINED : return "UNDEFINED";
+ case METAL : return "METAL";
+ case VIA : return "VIA";
+ }
+ return "ABNORMAL";
}
Record* CompositeLayer::Type::_GetRecord() const
// *********************************************
{
- Record* record = new Record(GetString(this));
- record->Add(GetSlot("Code", (int)_code));
- return record;
+ Record* record = new Record(GetString(this));
+ record->Add(GetSlot("Code", (int)_code));
+ return record;
}
@@ -249,19 +249,19 @@ Record* CompositeLayer::Type::_GetRecord() const
bool Scan(const string& s, H::CompositeLayer::Type& type)
// ***************************************************
{
- if (s == "UNDEFINED") {
- type = H::CompositeLayer::Type::UNDEFINED;
- return true;
- }
- if (s == "METAL") {
- type = H::CompositeLayer::Type::METAL;
- return true;
- }
- if (s == "VIA") {
- type = H::CompositeLayer::Type::VIA;
- return true;
- }
- return false;
+ if (s == "UNDEFINED") {
+ type = H::CompositeLayer::Type::UNDEFINED;
+ return true;
+ }
+ if (s == "METAL") {
+ type = H::CompositeLayer::Type::METAL;
+ return true;
+ }
+ if (s == "VIA") {
+ type = H::CompositeLayer::Type::VIA;
+ return true;
+ }
+ return false;
}
diff --git a/hurricane/src/hurricane/CompositeLayer.h b/hurricane/src/hurricane/CompositeLayer.h
index e378eed8..b34575e8 100644
--- a/hurricane/src/hurricane/CompositeLayer.h
+++ b/hurricane/src/hurricane/CompositeLayer.h
@@ -24,86 +24,86 @@ class CompositeLayer : public Layer {
// Types
// *****
- public: typedef Layer Inherit;
+ public: typedef Layer Inherit;
public: class Type {
- // ***************
+ // ***************
- public: enum Code {UNDEFINED=0, METAL=1, VIA=2};
+ public: enum Code {UNDEFINED=0, METAL=1, VIA=2};
- private: Code _code;
+ private: Code _code;
- public: Type(const Code& code = UNDEFINED);
- public: Type(const Type& type);
+ public: Type(const Code& code = UNDEFINED);
+ public: Type(const Type& type);
- public: Type& operator=(const Type& type);
+ public: Type& operator=(const Type& type);
- public: operator const Code&() const {return _code;};
+ public: operator const Code&() const {return _code;};
- public: const Code& GetCode() const {return _code;};
+ public: const Code& getCode() const {return _code;};
public: string _GetTypeName() const { return _TName("CompositeLayer::Type"); };
- public: string _GetString() const;
- public: Record* _GetRecord() const;
+ public: string _GetString() const;
+ public: Record* _GetRecord() const;
- };
+ };
- public: typedef list BasicLayerList;
+ public: typedef list BasicLayerList;
- public: typedef map SizeMap;
+ public: typedef map SizeMap;
// Attributes
// **********
- private: Type _type;
- private: BasicLayerList _basicLayerList;
- private: SizeMap _contactSizeMap;
- private: SizeMap _segmentSizeMap;
- private: SizeMap _segmentExtentionMap;
- private: SizeMap _padSizeMap;
- private: Unit _maximalContactSize;
- private: Unit _maximalSegmentSize;
- private: Unit _maximalSegmentExtention;
- private: Unit _maximalPadSize;
- private: BasicLayer* _symbolicBasicLayer;
+ private: Type _type;
+ private: BasicLayerList _basicLayerList;
+ private: SizeMap _contactSizeMap;
+ private: SizeMap _segmentSizeMap;
+ private: SizeMap _segmentExtentionMap;
+ private: SizeMap _padSizeMap;
+ private: Unit _maximalContactSize;
+ private: Unit _maximalSegmentSize;
+ private: Unit _maximalSegmentExtention;
+ private: Unit _maximalPadSize;
+ private: BasicLayer* _symbolicBasicLayer;
// Constructors
// ************
- protected: CompositeLayer(Technology* technology, const Name& name, const Type& type, const Unit& minimalSize = 0, const Unit& minimalSpacing = 0);
+ protected: CompositeLayer(Technology* technology, const Name& name, const Type& type, const Unit& minimalSize = 0, const Unit& minimalSpacing = 0);
- public: static CompositeLayer* Create(Technology* technology, const Name& name, const Type& type, const Unit& minimalSize = 0, const Unit& minimalSpacing = 0);
+ public: static CompositeLayer* create(Technology* technology, const Name& name, const Type& type, const Unit& minimalSize = 0, const Unit& minimalSpacing = 0);
// Accessors
// *********
- public: const Type& GetType() const {return _type;};
- public: virtual BasicLayers GetBasicLayers() const;
- public: Unit GetContactSize(const BasicLayer* basicLayer) const;
- public: Unit GetSegmentSize(const BasicLayer* basicLayer) const;
- public: Unit GetSegmentExtention(const BasicLayer* basicLayer) const;
- public: Unit GetPadSize(const BasicLayer* basicLayer) const;
- public: const Unit& GetMaximalContactSize() const {return _maximalContactSize;};
- public: const Unit& GetMaximalSegmentSize() const {return _maximalSegmentSize;};
- public: const Unit& GetMaximalSegmentExtention() const {return _maximalSegmentExtention;};
- public: const Unit& GetMaximalPadSize() const {return _maximalPadSize;};
+ public: const Type& getType() const {return _type;};
+ public: virtual BasicLayers getBasicLayers() const;
+ public: Unit getContactSize(const BasicLayer* basicLayer) const;
+ public: Unit getSegmentSize(const BasicLayer* basicLayer) const;
+ public: Unit getSegmentExtention(const BasicLayer* basicLayer) const;
+ public: Unit getPadSize(const BasicLayer* basicLayer) const;
+ public: const Unit& getMaximalContactSize() const {return _maximalContactSize;};
+ public: const Unit& getMaximalSegmentSize() const {return _maximalSegmentSize;};
+ public: const Unit& getMaximalSegmentExtention() const {return _maximalSegmentExtention;};
+ public: const Unit& getMaximalPadSize() const {return _maximalPadSize;};
// Updators
// ********
- public: void Add(BasicLayer* basicLayer, const Unit& contactSize, const Unit& segmentSize, const Unit& segmentExtention, const Unit& padSize);
- public: void Remove(BasicLayer* basicLayer);
+ public: void add(BasicLayer* basicLayer, const Unit& contactSize, const Unit& segmentSize, const Unit& segmentExtention, const Unit& padSize);
+ public: void remove(BasicLayer* basicLayer);
// Others
// ******
- public: virtual string _GetTypeName() const {return _TName("CompositeLayer");};
- public: virtual string _GetString() const;
- public: virtual Record* _GetRecord() const;
- public: virtual BasicLayer* _GetSymbolicBasicLayer() {return _symbolicBasicLayer;};
- public: BasicLayerList& _GetBasicLayerList() {return _basicLayerList;};
+ public: virtual string _GetTypeName() const {return _TName("CompositeLayer");};
+ public: virtual string _GetString() const;
+ public: virtual Record* _GetRecord() const;
+ public: virtual BasicLayer* _getSymbolicBasicLayer() {return _symbolicBasicLayer;};
+ public: BasicLayerList& _getBasicLayerList() {return _basicLayerList;};
- public: void _UpdateSymbolicBasicLayer(const Layer::Mask& visibleBasicLayersMask);
+ public: void _updateSymbolicBasicLayer(const Layer::Mask& visibleBasicLayersMask);
};
diff --git a/hurricane/src/hurricane/Contact.cpp b/hurricane/src/hurricane/Contact.cpp
index 3f9e346a..6f7d5d9a 100644
--- a/hurricane/src/hurricane/Contact.cpp
+++ b/hurricane/src/hurricane/Contact.cpp
@@ -186,7 +186,7 @@ Box Contact::GetBoundingBox() const
Box Contact::GetBoundingBox(const BasicLayer* basicLayer) const
// ******************************************************
{
- if (!_layer->Contains(basicLayer)) return Box();
+ if (!_layer->contains(basicLayer)) return Box();
Unit size = _GetSize(basicLayer);
@@ -318,7 +318,7 @@ string Contact::_GetString() const
// *******************************
{
string s = Inherit::_GetString();
- s.insert(s.length() - 1, " " + GetString(_layer->GetName()));
+ s.insert(s.length() - 1, " " + GetString(_layer->getName()));
s.insert(s.length() - 1, " [" + GetValueString(GetX()));
s.insert(s.length() - 1, " " + GetValueString(GetY()));
s.insert(s.length() - 1, "] " + GetValueString(_width));
@@ -349,7 +349,7 @@ Unit Contact::_GetSize() const
Layer* layer = GetLayer();
if (is_a(layer))
- size = ((CompositeLayer*)layer)->GetMaximalContactSize();
+ size = ((CompositeLayer*)layer)->getMaximalContactSize();
return size;
}
@@ -359,69 +359,16 @@ Unit Contact::_GetSize(const BasicLayer* basicLayer) const
{
Layer* layer = GetLayer();
- if (!layer->Contains(basicLayer)) return 0;
+ if (!layer->contains(basicLayer)) return 0;
Unit size = 0;
if (is_a(layer))
- size = ((CompositeLayer*)layer)->GetContactSize(basicLayer);
+ size = ((CompositeLayer*)layer)->getContactSize(basicLayer);
return size;
}
-//void Contact::_Draw(View* view, BasicLayer* basicLayer, const Box& updateArea, const Transformation& transformation)
-//// ****************************************************************************************************
-//{
-// if (_width && _height) {
-// if (1 < view->GetScreenSize(max(_width, _height)))
-// basicLayer->_Fill(view, transformation.GetBox(GetBoundingBox(basicLayer)));
-// }
-// if (basicLayer == _layer->_GetSymbolicBasicLayer()) {
-// if (view->CutPointsAreVisible() && (3 < view->GetScale())) {
-// Point position = GetPosition();
-// view->DrawPoint(transformation.GetPoint(position), 3);
-// if (_width) {
-// Box box = transformation.GetBox(Box(position).Inflate(GetHalfWidth(), 0));
-// view->DrawLine(box.GetXMin(), box.GetYMin(), box.GetXMax(), box.GetYMax());
-// }
-// if (_height) {
-// Box box = transformation.GetBox(Box(position).Inflate(0, GetHalfHeight()));
-// view->DrawLine(box.GetXMin(), box.GetYMin(), box.GetXMax(), box.GetYMax());
-// }
-// }
-// }
-//}
-//
-//void Contact::_Highlight(View* view, const Box& updateArea, const Transformation& transformation)
-//// **********************************************************************************************
-//{
-// if (_width && _height) {
-// if (1 < view->GetScreenSize(max(_width, _height))) {
-// for_each_basic_layer(basicLayer, GetLayer()->GetBasicLayers()) {
-// basicLayer->_Fill(view, transformation.GetBox(GetBoundingBox(basicLayer)));
-// end_for;
-// }
-// }
-// }
-// if (view->GetScale() <= 1)
-// view->DrawPoint(transformation.GetPoint(GetPosition()), 1);
-// else if (view->GetScale() <= 3)
-// view->DrawPoint(transformation.GetPoint(GetPosition()), 2);
-// else {
-// Point position = GetPosition();
-// view->DrawPoint(transformation.GetPoint(position), 3);
-// if (_width) {
-// Box box = transformation.GetBox(Box(position).Inflate(GetHalfWidth(), 0));
-// view->DrawLine(box.GetXMin(), box.GetYMin(), box.GetXMax(), box.GetYMax());
-// }
-// if (_height) {
-// Box box = transformation.GetBox(Box(position).Inflate(0, GetHalfHeight()));
-// view->DrawLine(box.GetXMin(), box.GetYMin(), box.GetXMax(), box.GetYMax());
-// }
-// }
-//}
-//
-
// ****************************************************************************************************
// Contact::AnchorHook implementation
// ****************************************************************************************************
diff --git a/hurricane/src/hurricane/DBo.h b/hurricane/src/hurricane/DBo.h
index b29c997e..0212348e 100644
--- a/hurricane/src/hurricane/DBo.h
+++ b/hurricane/src/hurricane/DBo.h
@@ -27,69 +27,69 @@ class DBo : public NestedSlotAdapter {
// Types
// *****
- public: typedef set PropertySet;
+ public: typedef set PropertySet;
// Attributs
// *********
- private: PropertySet _propertySet;
+ private: PropertySet _propertySet;
// Constructors
// ************
- protected: DBo();
+ protected: DBo();
- private: DBo(const DBo& dbo); // not implemented to forbid copy construction
+ private: DBo(const DBo& dbo); // not implemented to forbid copy construction
// Destructors
// ***********
- protected: virtual ~DBo();
+ protected: virtual ~DBo();
// Operators
// *********
- private: DBo& operator=(const DBo& dbo); // not implemented to forbid assignment
+ private: DBo& operator=(const DBo& dbo); // not implemented to forbid assignment
// Others
// ******
- protected: virtual void _PostCreate();
+ protected: virtual void _PostCreate();
- protected: virtual void _PreDelete();
+ protected: virtual void _PreDelete();
- public: virtual string _GetTypeName() const = 0;
- public: virtual string _GetString() const;
- public: virtual Record* _GetRecord() const;
- public: PropertySet& _GetPropertySet() {return _propertySet;};
+ public: virtual string _GetTypeName() const = 0;
+ public: virtual string _GetString() const;
+ public: virtual Record* _GetRecord() const;
+ public: PropertySet& _GetPropertySet() {return _propertySet;};
- public: void _OnDeleted(Property* property);
+ public: void _OnDeleted(Property* property);
# endif
// Destructors
// ***********
- public: virtual void Delete();
+ public: virtual void Delete();
// Accessors
// *********
- public: Property* GetProperty(const Name& name) const;
- public: Properties GetProperties() const {return GetCollection(_propertySet);};
+ public: Property* GetProperty(const Name& name) const;
+ public: Properties GetProperties() const {return GetCollection(_propertySet);};
// Predicates
// **********
- public: bool HasProperty() const {return !_propertySet.empty();};
+ public: bool HasProperty() const {return !_propertySet.empty();};
// Updators
// ********
- public: void Put(Property* property);
- public: void Remove(Property* property);
- public: void RemoveProperty(const Name& name);
- public: void ClearProperties();
+ public: void Put(Property* property);
+ public: void Remove(Property* property);
+ public: void RemoveProperty(const Name& name);
+ public: void ClearProperties();
};
diff --git a/hurricane/src/hurricane/Horizontal.cpp b/hurricane/src/hurricane/Horizontal.cpp
index c1f6d5bf..b0dedf18 100644
--- a/hurricane/src/hurricane/Horizontal.cpp
+++ b/hurricane/src/hurricane/Horizontal.cpp
@@ -70,7 +70,7 @@ Box Horizontal::GetBoundingBox() const
Box Horizontal::GetBoundingBox(const BasicLayer* basicLayer) const
// *********************************************************
{
- if (!GetLayer()->Contains(basicLayer)) return Box();
+ if (!GetLayer()->contains(basicLayer)) return Box();
Unit size = GetHalfWidth() + _GetSize(basicLayer);
Unit extention = _GetExtention(basicLayer);
diff --git a/hurricane/src/hurricane/HyperNet.cpp b/hurricane/src/hurricane/HyperNet.cpp
index 5da25d82..bd92177e 100644
--- a/hurricane/src/hurricane/HyperNet.cpp
+++ b/hurricane/src/hurricane/HyperNet.cpp
@@ -28,65 +28,65 @@ class HyperNet_NetOccurrences : public Collection {
// Types
// *****
- public: typedef Collection Inherit;
+ public: typedef Collection Inherit;
- public: class Locator : public Hurricane::Locator {
- // *********************************************************
+ public: class Locator : public Hurricane::Locator {
+ // *********************************************************
- public: typedef Hurricane::Locator Inherit;
+ public: typedef Hurricane::Locator Inherit;
- private: const HyperNet* _hyperNet;
- private: bool _doExtraction;
- private: bool _allowInterruption;
- private: set _netOccurrenceSet;
- private: stack _netOccurrenceStack;
+ private: const HyperNet* _hyperNet;
+ private: bool _doExtraction;
+ private: bool _allowInterruption;
+ private: set _netOccurrenceSet;
+ private: stack _netOccurrenceStack;
- public: Locator();
- public: Locator(const HyperNet* hyperNet, bool doExtraction = false, bool allowInterruption = false);
- public: Locator(const Locator& locator);
+ public: Locator();
+ public: Locator(const HyperNet* hyperNet, bool doExtraction = false, bool allowInterruption = false);
+ public: Locator(const Locator& locator);
- public: Locator& operator=(const Locator& locator);
+ public: Locator& operator=(const Locator& locator);
- public: virtual Occurrence GetElement() const;
- public: virtual Hurricane::Locator* GetClone() const;
+ public: virtual Occurrence GetElement() const;
+ public: virtual Hurricane::Locator* GetClone() const;
- public: virtual bool IsValid() const;
+ public: virtual bool IsValid() const;
- public: virtual void Progress();
+ public: virtual void Progress();
- public: virtual string _GetString() const;
+ public: virtual string _GetString() const;
- };
+ };
// Attributes
// **********
- private: const HyperNet* _hyperNet;
- private: bool _doExtraction;
- private: bool _allowInterruption;
+ private: const HyperNet* _hyperNet;
+ private: bool _doExtraction;
+ private: bool _allowInterruption;
// Constructors
// ************
- public: HyperNet_NetOccurrences();
- public: HyperNet_NetOccurrences(const HyperNet* hyperNet, bool doExtraction = false, bool allowInterruption = false);
- public: HyperNet_NetOccurrences(const HyperNet_NetOccurrences& netOccurrences);
+ public: HyperNet_NetOccurrences();
+ public: HyperNet_NetOccurrences(const HyperNet* hyperNet, bool doExtraction = false, bool allowInterruption = false);
+ public: HyperNet_NetOccurrences(const HyperNet_NetOccurrences& netOccurrences);
// Operators
// *********
- public: HyperNet_NetOccurrences& operator=(const HyperNet_NetOccurrences& netOccurrences);
+ public: HyperNet_NetOccurrences& operator=(const HyperNet_NetOccurrences& netOccurrences);
// Accessors
// *********
- public: virtual Collection* GetClone() const;
- public: virtual Hurricane::Locator* GetLocator() const;
+ public: virtual Collection* GetClone() const;
+ public: virtual Hurricane::Locator* GetLocator() const;
// Others
// ******
- public: virtual string _GetString() const;
+ public: virtual string _GetString() const;
};
@@ -100,71 +100,71 @@ class HyperNet_NetOccurrencesUnder : public Collection {
// Types
// *****
- public: typedef Collection Inherit;
+ public: typedef Collection Inherit;
- public: class Locator : public Hurricane::Locator {
- // *********************************************************
+ public: class Locator : public Hurricane::Locator {
+ // *********************************************************
- public: typedef Hurricane::Locator Inherit;
+ public: typedef Hurricane::Locator Inherit;
- private: const HyperNet* _hyperNet;
+ private: const HyperNet* _hyperNet;
private: Box _area;
- private: bool _doExtraction;
- private: bool _allowInterruption;
- private: set _netOccurrenceSet;
- private: stack _netOccurrenceStack;
+ private: bool _doExtraction;
+ private: bool _allowInterruption;
+ private: set _netOccurrenceSet;
+ private: stack _netOccurrenceStack;
- public: Locator();
- public: Locator(const HyperNet* hyperNet, Box area,
- bool doExtraction = false, bool allowInterruption = false);
- public: Locator(const Locator& locator);
+ public: Locator();
+ public: Locator(const HyperNet* hyperNet, Box area,
+ bool doExtraction = false, bool allowInterruption = false);
+ public: Locator(const Locator& locator);
- public: Locator& operator=(const Locator& locator);
+ public: Locator& operator=(const Locator& locator);
- public: virtual Occurrence GetElement() const;
- public: virtual Hurricane::Locator* GetClone() const;
+ public: virtual Occurrence GetElement() const;
+ public: virtual Hurricane::Locator* GetClone() const;
- public: virtual bool IsValid() const;
+ public: virtual bool IsValid() const;
- public: virtual void Progress();
+ public: virtual void Progress();
- public: virtual string _GetString() const;
+ public: virtual string _GetString() const;
- };
+ };
// Attributes
// **********
- private: const HyperNet* _hyperNet;
+ private: const HyperNet* _hyperNet;
private: Box _area;
- private: bool _doExtraction;
- private: bool _allowInterruption;
+ private: bool _doExtraction;
+ private: bool _allowInterruption;
// Constructors
// ************
- public: HyperNet_NetOccurrencesUnder();
- public: HyperNet_NetOccurrencesUnder(const HyperNet* hyperNet,
- Box area,
- bool doExtraction = false,
- bool allowInterruption = false);
- public: HyperNet_NetOccurrencesUnder(const HyperNet_NetOccurrencesUnder& netOccurrences);
+ public: HyperNet_NetOccurrencesUnder();
+ public: HyperNet_NetOccurrencesUnder(const HyperNet* hyperNet,
+ Box area,
+ bool doExtraction = false,
+ bool allowInterruption = false);
+ public: HyperNet_NetOccurrencesUnder(const HyperNet_NetOccurrencesUnder& netOccurrences);
// Operators
// *********
- public: HyperNet_NetOccurrencesUnder& operator=(const HyperNet_NetOccurrencesUnder& netOccurrences);
+ public: HyperNet_NetOccurrencesUnder& operator=(const HyperNet_NetOccurrencesUnder& netOccurrences);
// Accessors
// *********
- public: virtual Collection* GetClone() const;
- public: virtual Hurricane::Locator* GetLocator() const;
+ public: virtual Collection* GetClone() const;
+ public: virtual Hurricane::Locator* GetLocator() const;
// Others
// ******
- public: virtual string _GetString() const;
+ public: virtual string _GetString() const;
};
@@ -179,64 +179,64 @@ class HyperNet_LeafPlugOccurrences : public Collection {
// Types
// *****
- public: typedef Collection Inherit;
+ public: typedef Collection Inherit;
- public: class Locator : public Hurricane::Locator {
- // *********************************************************
+ public: class Locator : public Hurricane::Locator {
+ // *********************************************************
- public: typedef Hurricane::Locator Inherit;
+ public: typedef Hurricane::Locator Inherit;
- private: bool _doExtraction;
- private: bool _allowInterruption;
+ private: bool _doExtraction;
+ private: bool _allowInterruption;
private: OccurrenceLocator _netOccurrenceLocator;
private: Occurrence _plugOccurrence;
- public: Locator();
- public: Locator(const HyperNet* hyperNet, bool doExtraction = false, bool allowInterruption = false);
- public: Locator(const Locator& locator);
+ public: Locator();
+ public: Locator(const HyperNet* hyperNet, bool doExtraction = false, bool allowInterruption = false);
+ public: Locator(const Locator& locator);
- public: Locator& operator=(const Locator& locator);
+ public: Locator& operator=(const Locator& locator);
- public: virtual Occurrence GetElement() const;
- public: virtual Hurricane::Locator* GetClone() const;
+ public: virtual Occurrence GetElement() const;
+ public: virtual Hurricane::Locator* GetClone() const;
- public: virtual bool IsValid() const;
+ public: virtual bool IsValid() const;
- public: virtual void Progress();
+ public: virtual void Progress();
- public: virtual string _GetString() const;
+ public: virtual string _GetString() const;
- };
+ };
// Attributes
// **********
- private: const HyperNet* _hyperNet;
- private: bool _doExtraction;
- private: bool _allowInterruption;
+ private: const HyperNet* _hyperNet;
+ private: bool _doExtraction;
+ private: bool _allowInterruption;
// Constructors
// ************
- public: HyperNet_LeafPlugOccurrences();
- public: HyperNet_LeafPlugOccurrences(const HyperNet* hyperNet, bool doExtraction = false, bool allowInterruption = false);
- public: HyperNet_LeafPlugOccurrences(const HyperNet_LeafPlugOccurrences& netOccurrences);
+ public: HyperNet_LeafPlugOccurrences();
+ public: HyperNet_LeafPlugOccurrences(const HyperNet* hyperNet, bool doExtraction = false, bool allowInterruption = false);
+ public: HyperNet_LeafPlugOccurrences(const HyperNet_LeafPlugOccurrences& netOccurrences);
// Operators
// *********
- public: HyperNet_LeafPlugOccurrences& operator=(const HyperNet_LeafPlugOccurrences& netOccurrences);
+ public: HyperNet_LeafPlugOccurrences& operator=(const HyperNet_LeafPlugOccurrences& netOccurrences);
// Accessors
// *********
- public: virtual Collection* GetClone() const;
- public: virtual Hurricane::Locator* GetLocator() const;
+ public: virtual Collection* GetClone() const;
+ public: virtual Hurricane::Locator* GetLocator() const;
// Others
// ******
- public: virtual string _GetString() const;
+ public: virtual string _GetString() const;
};
@@ -248,64 +248,64 @@ class HyperNet_LeafPlugOccurrences : public Collection {
HyperNet::HyperNet(const Occurrence& occurrence)
// *******************************************
-: _netOccurrence()
+: _netOccurrence()
{
- if (occurrence.IsValid()) {
- Entity* entity = occurrence.GetEntity();
- if (is_a(entity))
- _netOccurrence = occurrence;
- else {
- if (is_a(entity)) {
- Rubber* rubber = (Rubber*)entity;
- _netOccurrence = Occurrence(rubber->GetNet(), occurrence.GetPath());
- }
- else {
- if (is_a(entity)) {
- Component* component = (Component*)entity;
- _netOccurrence = Occurrence(component->GetNet(), occurrence.GetPath());
- }
- else
- throw Error("Can't create " + _TName("HyperNet") + " : bad occurrence entity type");
- }
- }
- }
+ if (occurrence.IsValid()) {
+ Entity* entity = occurrence.GetEntity();
+ if (is_a(entity))
+ _netOccurrence = occurrence;
+ else {
+ if (is_a(entity)) {
+ Rubber* rubber = (Rubber*)entity;
+ _netOccurrence = Occurrence(rubber->GetNet(), occurrence.GetPath());
+ }
+ else {
+ if (is_a(entity)) {
+ Component* component = (Component*)entity;
+ _netOccurrence = Occurrence(component->GetNet(), occurrence.GetPath());
+ }
+ else
+ throw Error("Can't create " + _TName("HyperNet") + " : bad occurrence entity type");
+ }
+ }
+ }
}
Occurrences HyperNet::GetNetOccurrences(bool doExtraction, bool allowInterruption) const
// ***********************************************************************************
{
- return HyperNet_NetOccurrences(this, doExtraction, allowInterruption);
+ return HyperNet_NetOccurrences(this, doExtraction, allowInterruption);
}
Occurrences HyperNet::GetNetOccurrencesUnder(Box area, bool doExtraction, bool allowInterruption) const
// **************************************************************************************************
{
- return HyperNet_NetOccurrencesUnder(this, area, doExtraction, allowInterruption);
+ return HyperNet_NetOccurrencesUnder(this, area, doExtraction, allowInterruption);
}
Occurrences HyperNet::GetLeafPlugOccurrences(bool doExtraction, bool allowInterruption) const
// ********************************************************************************************
{
- return HyperNet_LeafPlugOccurrences(this, doExtraction, allowInterruption);
+ return HyperNet_LeafPlugOccurrences(this, doExtraction, allowInterruption);
}
string HyperNet::_GetString() const
// ********************************
{
- string s = "<" + _TName("HyperNet");
- if (IsValid()) s += " " + GetString(_netOccurrence);
- s += ">";
- return s;
+ string s = "<" + _TName("HyperNet");
+ if (IsValid()) s += " " + GetString(_netOccurrence);
+ s += ">";
+ return s;
}
Record* HyperNet::_GetRecord() const
// ***************************
{
- Record* record = new Record(GetString(this));
- if (record) {
- record->Add(GetSlot("NetOccurrence", &_netOccurrence));
- }
- return record;
+ Record* record = new Record(GetString(this));
+ if (record) {
+ record->Add(GetSlot("NetOccurrence", &_netOccurrence));
+ }
+ return record;
}
Occurrence GetHyperNetRootNetOccurrence(const Occurrence& netoccurrence)
@@ -360,65 +360,65 @@ bool IsHyperNetRootNetOccurrence(Occurrence netoccurrence)
HyperNet_NetOccurrences::HyperNet_NetOccurrences()
// *********************************************
-: Inherit(),
- _hyperNet(NULL),
- _doExtraction(false),
- _allowInterruption(false)
+: Inherit(),
+ _hyperNet(NULL),
+ _doExtraction(false),
+ _allowInterruption(false)
{
}
HyperNet_NetOccurrences::HyperNet_NetOccurrences(const HyperNet* hyperNet, bool doExtraction, bool allowInterruption)
// ****************************************************************************************************
-: Inherit(),
- _hyperNet(hyperNet),
- _doExtraction(doExtraction),
- _allowInterruption(allowInterruption)
+: Inherit(),
+ _hyperNet(hyperNet),
+ _doExtraction(doExtraction),
+ _allowInterruption(allowInterruption)
{
}
HyperNet_NetOccurrences::HyperNet_NetOccurrences(const HyperNet_NetOccurrences& netOccurrences)
// ****************************************************************************************
-: Inherit(),
- _hyperNet(netOccurrences._hyperNet),
- _doExtraction(netOccurrences._doExtraction),
- _allowInterruption(netOccurrences._allowInterruption)
+: Inherit(),
+ _hyperNet(netOccurrences._hyperNet),
+ _doExtraction(netOccurrences._doExtraction),
+ _allowInterruption(netOccurrences._allowInterruption)
{
}
HyperNet_NetOccurrences& HyperNet_NetOccurrences::operator=(const HyperNet_NetOccurrences& netOccurrences)
// ***************************************************************************************************
{
- _hyperNet = netOccurrences._hyperNet;
- _doExtraction = netOccurrences._doExtraction;
- _allowInterruption = netOccurrences._allowInterruption;
- return *this;
+ _hyperNet = netOccurrences._hyperNet;
+ _doExtraction = netOccurrences._doExtraction;
+ _allowInterruption = netOccurrences._allowInterruption;
+ return *this;
}
Collection* HyperNet_NetOccurrences::GetClone() const
// ************************************************************
{
- return new HyperNet_NetOccurrences(*this);
+ return new HyperNet_NetOccurrences(*this);
}
Locator* HyperNet_NetOccurrences::GetLocator() const
// ***********************************************************
{
- return new Locator(_hyperNet, _doExtraction, _allowInterruption);
+ return new Locator(_hyperNet, _doExtraction, _allowInterruption);
}
string HyperNet_NetOccurrences::_GetString() const
// **********************************************
{
- string s = "<" + _TName("HyperNet::NetOccurrences");
- if (_hyperNet) {
- s += " " + GetString(_hyperNet);
- if (_doExtraction) {
- s += " DO_EXTRACTION";
- if (_allowInterruption) s += " ALLOW_INTERRUPTION";
- }
- }
- s += ">";
- return s;
+ string s = "<" + _TName("HyperNet::NetOccurrences");
+ if (_hyperNet) {
+ s += " " + GetString(_hyperNet);
+ if (_doExtraction) {
+ s += " DO_EXTRACTION";
+ if (_allowInterruption) s += " ALLOW_INTERRUPTION";
+ }
+ }
+ s += ">";
+ return s;
}
@@ -429,174 +429,174 @@ string HyperNet_NetOccurrences::_GetString() const
HyperNet_NetOccurrences::Locator::Locator()
// ***************************************
-: Inherit(),
- _hyperNet(NULL),
- _doExtraction(false),
- _allowInterruption(false),
- _netOccurrenceSet(),
- _netOccurrenceStack()
+: Inherit(),
+ _hyperNet(NULL),
+ _doExtraction(false),
+ _allowInterruption(false),
+ _netOccurrenceSet(),
+ _netOccurrenceStack()
{
}
HyperNet_NetOccurrences::Locator::Locator(const HyperNet* hyperNet, bool doExtraction, bool allowInterruption)
// ****************************************************************************************************
-: Inherit(),
- _hyperNet(hyperNet),
- _doExtraction(doExtraction),
- _allowInterruption(allowInterruption),
- _netOccurrenceSet(),
- _netOccurrenceStack()
+: Inherit(),
+ _hyperNet(hyperNet),
+ _doExtraction(doExtraction),
+ _allowInterruption(allowInterruption),
+ _netOccurrenceSet(),
+ _netOccurrenceStack()
{
- if (_hyperNet) {
- Occurrence netOccurrence = _hyperNet->GetNetOccurrence();
- if (netOccurrence.IsValid()) {
- _netOccurrenceSet.insert(netOccurrence);
- _netOccurrenceStack.push(netOccurrence);
- }
- }
+ if (_hyperNet) {
+ Occurrence netOccurrence = _hyperNet->GetNetOccurrence();
+ if (netOccurrence.IsValid()) {
+ _netOccurrenceSet.insert(netOccurrence);
+ _netOccurrenceStack.push(netOccurrence);
+ }
+ }
}
HyperNet_NetOccurrences::Locator::Locator(const Locator& locator)
// *************************************************************
-: Inherit(),
- _hyperNet(locator._hyperNet),
- _doExtraction(locator._doExtraction),
- _allowInterruption(locator._allowInterruption),
- _netOccurrenceSet(locator._netOccurrenceSet),
- _netOccurrenceStack(locator._netOccurrenceStack)
+: Inherit(),
+ _hyperNet(locator._hyperNet),
+ _doExtraction(locator._doExtraction),
+ _allowInterruption(locator._allowInterruption),
+ _netOccurrenceSet(locator._netOccurrenceSet),
+ _netOccurrenceStack(locator._netOccurrenceStack)
{
}
HyperNet_NetOccurrences::Locator& HyperNet_NetOccurrences::Locator::operator=(const Locator& locator)
// ************************************************************************************************
{
- _hyperNet = locator._hyperNet;
- _doExtraction = locator._doExtraction;
- _allowInterruption = locator._allowInterruption;
- _netOccurrenceSet = locator._netOccurrenceSet;
- _netOccurrenceStack = locator._netOccurrenceStack;
- return *this;
+ _hyperNet = locator._hyperNet;
+ _doExtraction = locator._doExtraction;
+ _allowInterruption = locator._allowInterruption;
+ _netOccurrenceSet = locator._netOccurrenceSet;
+ _netOccurrenceStack = locator._netOccurrenceStack;
+ return *this;
}
Occurrence HyperNet_NetOccurrences::Locator::GetElement() const
// **********************************************************
{
- return (!_netOccurrenceStack.empty()) ? _netOccurrenceStack.top() : Occurrence();
+ return (!_netOccurrenceStack.empty()) ? _netOccurrenceStack.top() : Occurrence();
}
Locator* HyperNet_NetOccurrences::Locator::GetClone() const
// ******************************************************************
{
- return new Locator(*this);
+ return new Locator(*this);
}
bool HyperNet_NetOccurrences::Locator::IsValid() const
// **************************************************
{
- return !_netOccurrenceStack.empty();
+ return !_netOccurrenceStack.empty();
}
static bool IsConnex(const Occurrence& componentOccurrence1, const Occurrence& componentOccurrence2)
// *********************************************************************************************
{
- Component* component1 = (Component*)componentOccurrence1.GetEntity();
- Component* component2 = (Component*)componentOccurrence2.GetEntity();
- Layer* layer1 = component1->GetLayer();
- Layer* layer2 = component2->GetLayer();
- if (layer1->GetExtractMask() & layer2->GetExtractMask()) {
- Transformation transformation1 = componentOccurrence1.GetPath().GetTransformation();
- Transformation transformation2 = componentOccurrence2.GetPath().GetTransformation();
- for_each_basic_layer(basicLayer1, layer1->GetBasicLayers()) {
- Box box1 = transformation1.getBox(component1->GetBoundingBox(basicLayer1));
- for_each_basic_layer(basicLayer2, layer2->GetBasicLayers()) {
- if (basicLayer1->GetExtractMask() & basicLayer2->GetExtractMask()) {
- Box box2 = transformation2.getBox(component2->GetBoundingBox(basicLayer2));
- if (box1.intersect(box2)) return true;
- }
- end_for;
- }
- end_for;
- }
- }
- return false;
+ Component* component1 = (Component*)componentOccurrence1.GetEntity();
+ Component* component2 = (Component*)componentOccurrence2.GetEntity();
+ Layer* layer1 = component1->GetLayer();
+ Layer* layer2 = component2->GetLayer();
+ if (layer1->getExtractMask() & layer2->getExtractMask()) {
+ Transformation transformation1 = componentOccurrence1.GetPath().GetTransformation();
+ Transformation transformation2 = componentOccurrence2.GetPath().GetTransformation();
+ for_each_basic_layer(basicLayer1, layer1->getBasicLayers()) {
+ Box box1 = transformation1.getBox(component1->GetBoundingBox(basicLayer1));
+ for_each_basic_layer(basicLayer2, layer2->getBasicLayers()) {
+ if (basicLayer1->getExtractMask() & basicLayer2->getExtractMask()) {
+ Box box2 = transformation2.getBox(component2->GetBoundingBox(basicLayer2));
+ if (box1.intersect(box2)) return true;
+ }
+ end_for;
+ }
+ end_for;
+ }
+ }
+ return false;
}
void HyperNet_NetOccurrences::Locator::Progress()
// *********************************************
{
- if (!_netOccurrenceStack.empty()) {
- Occurrence netOccurrence = _netOccurrenceStack.top();
- _netOccurrenceStack.pop();
- Net* net = (Net*)netOccurrence.GetEntity();
- Path path = netOccurrence.GetPath();
+ if (!_netOccurrenceStack.empty()) {
+ Occurrence netOccurrence = _netOccurrenceStack.top();
+ _netOccurrenceStack.pop();
+ Net* net = (Net*)netOccurrence.GetEntity();
+ Path path = netOccurrence.GetPath();
- if (_doExtraction) {
- Cell* cell = netOccurrence.GetOwnerCell();
- for_each_component(component, net->GetComponents()) {
- if (!is_a(component)) {
- //if (_allowInterruption && !((i++) % 200)) gtk_check_for_interruption();
- Occurrence occurrence = Occurrence(component, path);
- Box area = occurrence.GetBoundingBox();
- for_each_occurrence(occurrence2, cell->GetOccurrencesUnder(area)) {
- if (is_a(occurrence2.GetEntity())) {
- Component* component2 = (Component*)occurrence2.GetEntity();
- if (IsConnex(occurrence, occurrence2)) {
- Occurrence net2Occurrence =
- Occurrence(component2->GetNet(), occurrence2.GetPath());
- if (_netOccurrenceSet.find(net2Occurrence) == _netOccurrenceSet.end()) {
- _netOccurrenceSet.insert(net2Occurrence);
- _netOccurrenceStack.push(net2Occurrence);
- }
- }
- }
- end_for;
- }
- }
- end_for;
- }
- }
+ if (_doExtraction) {
+ Cell* cell = netOccurrence.GetOwnerCell();
+ for_each_component(component, net->GetComponents()) {
+ if (!is_a(component)) {
+ //if (_allowInterruption && !((i++) % 200)) gtk_check_for_interruption();
+ Occurrence occurrence = Occurrence(component, path);
+ Box area = occurrence.GetBoundingBox();
+ for_each_occurrence(occurrence2, cell->GetOccurrencesUnder(area)) {
+ if (is_a(occurrence2.GetEntity())) {
+ Component* component2 = (Component*)occurrence2.GetEntity();
+ if (IsConnex(occurrence, occurrence2)) {
+ Occurrence net2Occurrence =
+ Occurrence(component2->GetNet(), occurrence2.GetPath());
+ if (_netOccurrenceSet.find(net2Occurrence) == _netOccurrenceSet.end()) {
+ _netOccurrenceSet.insert(net2Occurrence);
+ _netOccurrenceStack.push(net2Occurrence);
+ }
+ }
+ }
+ end_for;
+ }
+ }
+ end_for;
+ }
+ }
- for_each_plug(plug, net->GetPlugs()) {
- Occurrence occurrence = Occurrence(plug->GetMasterNet(), Path(path, plug->GetInstance()));
- if (_netOccurrenceSet.find(occurrence) == _netOccurrenceSet.end()) {
- _netOccurrenceSet.insert(occurrence);
- _netOccurrenceStack.push(occurrence);
- }
- end_for;
- }
+ for_each_plug(plug, net->GetPlugs()) {
+ Occurrence occurrence = Occurrence(plug->GetMasterNet(), Path(path, plug->GetInstance()));
+ if (_netOccurrenceSet.find(occurrence) == _netOccurrenceSet.end()) {
+ _netOccurrenceSet.insert(occurrence);
+ _netOccurrenceStack.push(occurrence);
+ }
+ end_for;
+ }
- if (net->IsExternal()) {
- Instance* instance = path.GetTailInstance();
- if (instance) {
- Plug* plug = instance->GetPlug(net);
- if (plug) {
- Net* net = plug->GetNet();
- if (net) {
- Occurrence occurrence = Occurrence(net, path.GetHeadPath());
- if (_netOccurrenceSet.find(occurrence) == _netOccurrenceSet.end()) {
- _netOccurrenceSet.insert(occurrence);
- _netOccurrenceStack.push(occurrence);
- }
- }
- }
- }
- }
- }
+ if (net->IsExternal()) {
+ Instance* instance = path.GetTailInstance();
+ if (instance) {
+ Plug* plug = instance->GetPlug(net);
+ if (plug) {
+ Net* net = plug->GetNet();
+ if (net) {
+ Occurrence occurrence = Occurrence(net, path.GetHeadPath());
+ if (_netOccurrenceSet.find(occurrence) == _netOccurrenceSet.end()) {
+ _netOccurrenceSet.insert(occurrence);
+ _netOccurrenceStack.push(occurrence);
+ }
+ }
+ }
+ }
+ }
+ }
}
string HyperNet_NetOccurrences::Locator::_GetString() const
// *******************************************************
{
- string s = "<" + _TName("HyperNet::NetOccurrences::Locator");
- if (_hyperNet) {
- s += " " + GetString(_hyperNet);
- if (_doExtraction) {
- s += " DO_EXTRACTION";
- if (_allowInterruption) s += " ALLOW_INTERRUPTION";
- }
- }
- s += ">";
- return s;
+ string s = "<" + _TName("HyperNet::NetOccurrences::Locator");
+ if (_hyperNet) {
+ s += " " + GetString(_hyperNet);
+ if (_doExtraction) {
+ s += " DO_EXTRACTION";
+ if (_allowInterruption) s += " ALLOW_INTERRUPTION";
+ }
+ }
+ s += ">";
+ return s;
}
// ****************************************************************************************************
@@ -605,71 +605,71 @@ string HyperNet_NetOccurrences::Locator::_GetString() const
HyperNet_NetOccurrencesUnder::HyperNet_NetOccurrencesUnder()
// *******************************************************
-: Inherit(),
- _hyperNet(NULL),
- _area(),
- _doExtraction(false),
- _allowInterruption(false)
+: Inherit(),
+ _hyperNet(NULL),
+ _area(),
+ _doExtraction(false),
+ _allowInterruption(false)
{
}
HyperNet_NetOccurrencesUnder::HyperNet_NetOccurrencesUnder(const HyperNet* hyperNet,
- Box area, bool doExtraction,
- bool allowInterruption)
+ Box area, bool doExtraction,
+ bool allowInterruption)
// ***********************************************************************************
-: Inherit(),
- _hyperNet(hyperNet),
- _area(area),
- _doExtraction(doExtraction),
- _allowInterruption(allowInterruption)
+: Inherit(),
+ _hyperNet(hyperNet),
+ _area(area),
+ _doExtraction(doExtraction),
+ _allowInterruption(allowInterruption)
{
}
HyperNet_NetOccurrencesUnder::HyperNet_NetOccurrencesUnder(const HyperNet_NetOccurrencesUnder& netOccurrences)
// *******************************************************************************************************
-: Inherit(),
- _hyperNet(netOccurrences._hyperNet),
- _area(netOccurrences._area),
- _doExtraction(netOccurrences._doExtraction),
- _allowInterruption(netOccurrences._allowInterruption)
+: Inherit(),
+ _hyperNet(netOccurrences._hyperNet),
+ _area(netOccurrences._area),
+ _doExtraction(netOccurrences._doExtraction),
+ _allowInterruption(netOccurrences._allowInterruption)
{
}
HyperNet_NetOccurrencesUnder& HyperNet_NetOccurrencesUnder::operator=(const HyperNet_NetOccurrencesUnder& netOccurrences)
// ******************************************************************************************************************
{
- _hyperNet = netOccurrences._hyperNet;
- _area = netOccurrences._area;
- _doExtraction = netOccurrences._doExtraction;
- _allowInterruption = netOccurrences._allowInterruption;
- return *this;
+ _hyperNet = netOccurrences._hyperNet;
+ _area = netOccurrences._area;
+ _doExtraction = netOccurrences._doExtraction;
+ _allowInterruption = netOccurrences._allowInterruption;
+ return *this;
}
Collection* HyperNet_NetOccurrencesUnder::GetClone() const
// *****************************************************************
{
- return new HyperNet_NetOccurrencesUnder(*this);
+ return new HyperNet_NetOccurrencesUnder(*this);
}
Locator* HyperNet_NetOccurrencesUnder::GetLocator() const
// ****************************************************************
{
- return new Locator(_hyperNet, _area, _doExtraction, _allowInterruption);
+ return new Locator(_hyperNet, _area, _doExtraction, _allowInterruption);
}
string HyperNet_NetOccurrencesUnder::_GetString() const
// ***************************************************
{
- string s = "<" + _TName("HyperNet::NetOccurrences");
- if (_hyperNet) {
- s += " " + GetString(_hyperNet);
- if (_doExtraction) {
- s += " DO_EXTRACTION";
- if (_allowInterruption) s += " ALLOW_INTERRUPTION";
- }
- }
- s += ">";
- return s;
+ string s = "<" + _TName("HyperNet::NetOccurrences");
+ if (_hyperNet) {
+ s += " " + GetString(_hyperNet);
+ if (_doExtraction) {
+ s += " DO_EXTRACTION";
+ if (_allowInterruption) s += " ALLOW_INTERRUPTION";
+ }
+ }
+ s += ">";
+ return s;
}
@@ -680,161 +680,161 @@ string HyperNet_NetOccurrencesUnder::_GetString() const
HyperNet_NetOccurrencesUnder::Locator::Locator()
// ********************************************
-: Inherit(),
- _hyperNet(NULL),
- _area(),
- _doExtraction(false),
- _allowInterruption(false),
- _netOccurrenceSet(),
- _netOccurrenceStack()
+: Inherit(),
+ _hyperNet(NULL),
+ _area(),
+ _doExtraction(false),
+ _allowInterruption(false),
+ _netOccurrenceSet(),
+ _netOccurrenceStack()
{
}
HyperNet_NetOccurrencesUnder::Locator::Locator(const HyperNet* hyperNet, Box area,
- bool doExtraction, bool allowInterruption)
+ bool doExtraction, bool allowInterruption)
// *************************************************************************************
-: Inherit(),
- _hyperNet(hyperNet),
- _area(area),
- _doExtraction(doExtraction),
- _allowInterruption(allowInterruption),
- _netOccurrenceSet(),
- _netOccurrenceStack()
+: Inherit(),
+ _hyperNet(hyperNet),
+ _area(area),
+ _doExtraction(doExtraction),
+ _allowInterruption(allowInterruption),
+ _netOccurrenceSet(),
+ _netOccurrenceStack()
{
- if (_hyperNet) {
- Occurrence netOccurrence = _hyperNet->GetNetOccurrence();
- if (netOccurrence.IsValid()) {
- _netOccurrenceSet.insert(netOccurrence);
- _netOccurrenceStack.push(netOccurrence);
- }
- }
+ if (_hyperNet) {
+ Occurrence netOccurrence = _hyperNet->GetNetOccurrence();
+ if (netOccurrence.IsValid()) {
+ _netOccurrenceSet.insert(netOccurrence);
+ _netOccurrenceStack.push(netOccurrence);
+ }
+ }
}
HyperNet_NetOccurrencesUnder::Locator::Locator(const Locator& locator)
// ******************************************************************
-: Inherit(),
- _hyperNet(locator._hyperNet),
- _area(locator._area),
- _doExtraction(locator._doExtraction),
- _allowInterruption(locator._allowInterruption),
- _netOccurrenceSet(locator._netOccurrenceSet),
- _netOccurrenceStack(locator._netOccurrenceStack)
+: Inherit(),
+ _hyperNet(locator._hyperNet),
+ _area(locator._area),
+ _doExtraction(locator._doExtraction),
+ _allowInterruption(locator._allowInterruption),
+ _netOccurrenceSet(locator._netOccurrenceSet),
+ _netOccurrenceStack(locator._netOccurrenceStack)
{
}
HyperNet_NetOccurrencesUnder::Locator& HyperNet_NetOccurrencesUnder::Locator::operator=(const Locator& locator)
// **********************************************************************************************************
{
- _hyperNet = locator._hyperNet;
- _area = locator._area;
- _doExtraction = locator._doExtraction;
- _allowInterruption = locator._allowInterruption;
- _netOccurrenceSet = locator._netOccurrenceSet;
- _netOccurrenceStack = locator._netOccurrenceStack;
- return *this;
+ _hyperNet = locator._hyperNet;
+ _area = locator._area;
+ _doExtraction = locator._doExtraction;
+ _allowInterruption = locator._allowInterruption;
+ _netOccurrenceSet = locator._netOccurrenceSet;
+ _netOccurrenceStack = locator._netOccurrenceStack;
+ return *this;
}
Occurrence HyperNet_NetOccurrencesUnder::Locator::GetElement() const
// ***************************************************************
{
- return (!_netOccurrenceStack.empty()) ? _netOccurrenceStack.top() : Occurrence();
+ return (!_netOccurrenceStack.empty()) ? _netOccurrenceStack.top() : Occurrence();
}
Locator* HyperNet_NetOccurrencesUnder::Locator::GetClone() const
// ***********************************************************************
{
- return new Locator(*this);
+ return new Locator(*this);
}
bool HyperNet_NetOccurrencesUnder::Locator::IsValid() const
// *******************************************************
{
- return !_netOccurrenceStack.empty();
+ return !_netOccurrenceStack.empty();
}
void HyperNet_NetOccurrencesUnder::Locator::Progress()
// **************************************************
{
- if (!_netOccurrenceStack.empty()) {
- Occurrence netOccurrence = _netOccurrenceStack.top();
- _netOccurrenceStack.pop();
- Net* net = (Net*)netOccurrence.GetEntity();
- Path path = netOccurrence.GetPath();
+ if (!_netOccurrenceStack.empty()) {
+ Occurrence netOccurrence = _netOccurrenceStack.top();
+ _netOccurrenceStack.pop();
+ Net* net = (Net*)netOccurrence.GetEntity();
+ Path path = netOccurrence.GetPath();
- if (_doExtraction) {
- Cell* cell = netOccurrence.GetOwnerCell();
- for_each_component(component, net->GetComponents()) {
- Occurrence occurrence = Occurrence(component, path);
- Box area = occurrence.GetBoundingBox();
- if (! area.intersect (_area)) {
- // Outside useful area
- } else if (is_a(component)) {
- // Will be processed below
- } else if (is_a(component)) {
- // Don't go through the Rubbers (go only trough connecting layers)
- } else {
- //if (_allowInterruption && !((i++) % 200)) gtk_check_for_interruption();
- Box under = area.getIntersection (_area);
- for_each_occurrence(occurrence2, cell->GetOccurrencesUnder(under)) {
- if (is_a(occurrence2.GetEntity())) {
- Component* component2 = (Component*)occurrence2.GetEntity();
- if (IsConnex(occurrence, occurrence2)) {
- Occurrence net2Occurrence =
- Occurrence(component2->GetNet(), occurrence2.GetPath());
- if (_netOccurrenceSet.find(net2Occurrence) == _netOccurrenceSet.end()) {
- _netOccurrenceSet.insert(net2Occurrence);
- _netOccurrenceStack.push(net2Occurrence);
- }
- }
- }
- end_for;
- }
- }
- end_for;
- }
- }
+ if (_doExtraction) {
+ Cell* cell = netOccurrence.GetOwnerCell();
+ for_each_component(component, net->GetComponents()) {
+ Occurrence occurrence = Occurrence(component, path);
+ Box area = occurrence.GetBoundingBox();
+ if (! area.intersect (_area)) {
+ // Outside useful area
+ } else if (is_a(component)) {
+ // Will be processed below
+ } else if (is_a(component)) {
+ // Don't go through the Rubbers (go only trough connecting layers)
+ } else {
+ //if (_allowInterruption && !((i++) % 200)) gtk_check_for_interruption();
+ Box under = area.getIntersection (_area);
+ for_each_occurrence(occurrence2, cell->GetOccurrencesUnder(under)) {
+ if (is_a(occurrence2.GetEntity())) {
+ Component* component2 = (Component*)occurrence2.GetEntity();
+ if (IsConnex(occurrence, occurrence2)) {
+ Occurrence net2Occurrence =
+ Occurrence(component2->GetNet(), occurrence2.GetPath());
+ if (_netOccurrenceSet.find(net2Occurrence) == _netOccurrenceSet.end()) {
+ _netOccurrenceSet.insert(net2Occurrence);
+ _netOccurrenceStack.push(net2Occurrence);
+ }
+ }
+ }
+ end_for;
+ }
+ }
+ end_for;
+ }
+ }
- for_each_plug(plug, net->GetPlugs()) {
- Occurrence occurrence = Occurrence(plug->GetMasterNet(), Path(path, plug->GetInstance()));
- if (_netOccurrenceSet.find(occurrence) == _netOccurrenceSet.end()) {
- _netOccurrenceSet.insert(occurrence);
- _netOccurrenceStack.push(occurrence);
- }
- end_for;
- }
+ for_each_plug(plug, net->GetPlugs()) {
+ Occurrence occurrence = Occurrence(plug->GetMasterNet(), Path(path, plug->GetInstance()));
+ if (_netOccurrenceSet.find(occurrence) == _netOccurrenceSet.end()) {
+ _netOccurrenceSet.insert(occurrence);
+ _netOccurrenceStack.push(occurrence);
+ }
+ end_for;
+ }
- if (net->IsExternal()) {
- Instance* instance = path.GetTailInstance();
- if (instance) {
- Plug* plug = instance->GetPlug(net);
- if (plug) {
- Net* net = plug->GetNet();
- if (net) {
- Occurrence occurrence = Occurrence(net, path.GetHeadPath());
- if (_netOccurrenceSet.find(occurrence) == _netOccurrenceSet.end()) {
- _netOccurrenceSet.insert(occurrence);
- _netOccurrenceStack.push(occurrence);
- }
- }
- }
- }
- }
- }
+ if (net->IsExternal()) {
+ Instance* instance = path.GetTailInstance();
+ if (instance) {
+ Plug* plug = instance->GetPlug(net);
+ if (plug) {
+ Net* net = plug->GetNet();
+ if (net) {
+ Occurrence occurrence = Occurrence(net, path.GetHeadPath());
+ if (_netOccurrenceSet.find(occurrence) == _netOccurrenceSet.end()) {
+ _netOccurrenceSet.insert(occurrence);
+ _netOccurrenceStack.push(occurrence);
+ }
+ }
+ }
+ }
+ }
+ }
}
string HyperNet_NetOccurrencesUnder::Locator::_GetString() const
// ***********************************************************
{
- string s = "<" + _TName("HyperNet::NetOccurrences::Locator");
- if (_hyperNet) {
- s += " " + GetString(_hyperNet);
- if (_doExtraction) {
- s += " DO_EXTRACTION";
- if (_allowInterruption) s += " ALLOW_INTERRUPTION";
- }
- }
- s += ">";
- return s;
+ string s = "<" + _TName("HyperNet::NetOccurrences::Locator");
+ if (_hyperNet) {
+ s += " " + GetString(_hyperNet);
+ if (_doExtraction) {
+ s += " DO_EXTRACTION";
+ if (_allowInterruption) s += " ALLOW_INTERRUPTION";
+ }
+ }
+ s += ">";
+ return s;
}
// ****************************************************************************************************
@@ -843,65 +843,65 @@ string HyperNet_NetOccurrencesUnder::Locator::_GetString() const
HyperNet_LeafPlugOccurrences::HyperNet_LeafPlugOccurrences()
// *********************************************
-: Inherit(),
- _hyperNet(NULL),
- _doExtraction(false),
- _allowInterruption(false)
+: Inherit(),
+ _hyperNet(NULL),
+ _doExtraction(false),
+ _allowInterruption(false)
{
}
HyperNet_LeafPlugOccurrences::HyperNet_LeafPlugOccurrences(const HyperNet* hyperNet, bool doExtraction, bool allowInterruption)
// ****************************************************************************************************
-: Inherit(),
- _hyperNet(hyperNet),
- _doExtraction(doExtraction),
- _allowInterruption(allowInterruption)
+: Inherit(),
+ _hyperNet(hyperNet),
+ _doExtraction(doExtraction),
+ _allowInterruption(allowInterruption)
{
}
HyperNet_LeafPlugOccurrences::HyperNet_LeafPlugOccurrences(const HyperNet_LeafPlugOccurrences& netOccurrences)
// ****************************************************************************************
-: Inherit(),
- _hyperNet(netOccurrences._hyperNet),
- _doExtraction(netOccurrences._doExtraction),
- _allowInterruption(netOccurrences._allowInterruption)
+: Inherit(),
+ _hyperNet(netOccurrences._hyperNet),
+ _doExtraction(netOccurrences._doExtraction),
+ _allowInterruption(netOccurrences._allowInterruption)
{
}
HyperNet_LeafPlugOccurrences& HyperNet_LeafPlugOccurrences::operator=(const HyperNet_LeafPlugOccurrences& netOccurrences)
// ***************************************************************************************************
{
- _hyperNet = netOccurrences._hyperNet;
- _doExtraction = netOccurrences._doExtraction;
- _allowInterruption = netOccurrences._allowInterruption;
- return *this;
+ _hyperNet = netOccurrences._hyperNet;
+ _doExtraction = netOccurrences._doExtraction;
+ _allowInterruption = netOccurrences._allowInterruption;
+ return *this;
}
Collection* HyperNet_LeafPlugOccurrences::GetClone() const
// ************************************************************
{
- return new HyperNet_LeafPlugOccurrences(*this);
+ return new HyperNet_LeafPlugOccurrences(*this);
}
Locator* HyperNet_LeafPlugOccurrences::GetLocator() const
// ***********************************************************
{
- return new Locator(_hyperNet, _doExtraction, _allowInterruption);
+ return new Locator(_hyperNet, _doExtraction, _allowInterruption);
}
string HyperNet_LeafPlugOccurrences::_GetString() const
// **********************************************
{
- string s = "<" + _TName("HyperNet::LeafPlugOccurrences");
- if (_hyperNet) {
- s += " " + GetString(_hyperNet);
- if (_doExtraction) {
- s += " DO_EXTRACTION";
- if (_allowInterruption) s += " ALLOW_INTERRUPTION";
- }
- }
- s += ">";
- return s;
+ string s = "<" + _TName("HyperNet::LeafPlugOccurrences");
+ if (_hyperNet) {
+ s += " " + GetString(_hyperNet);
+ if (_doExtraction) {
+ s += " DO_EXTRACTION";
+ if (_allowInterruption) s += " ALLOW_INTERRUPTION";
+ }
+ }
+ s += ">";
+ return s;
}
@@ -912,7 +912,7 @@ string HyperNet_LeafPlugOccurrences::_GetString() const
HyperNet_LeafPlugOccurrences::Locator::Locator()
// ***************************************
-: Inherit(),
+: Inherit(),
_netOccurrenceLocator(),
_plugOccurrence()
@@ -921,19 +921,19 @@ HyperNet_LeafPlugOccurrences::Locator::Locator()
HyperNet_LeafPlugOccurrences::Locator::Locator(const HyperNet* hyperNet, bool doExtraction, bool allowInterruption)
// ****************************************************************************************************
-: Inherit(),
+: Inherit(),
_netOccurrenceLocator(),
_plugOccurrence()
{
- if (hyperNet) {
+ if (hyperNet) {
_netOccurrenceLocator = hyperNet->GetNetOccurrences(doExtraction,allowInterruption).GetLocator();
Progress();
- }
+ }
}
HyperNet_LeafPlugOccurrences::Locator::Locator(const Locator& locator)
// *************************************************************
-: Inherit(),
+: Inherit(),
_netOccurrenceLocator(),
_plugOccurrence()
{
@@ -944,25 +944,25 @@ HyperNet_LeafPlugOccurrences::Locator& HyperNet_LeafPlugOccurrences::Locator::op
{
_netOccurrenceLocator = locator._netOccurrenceLocator;
_plugOccurrence = locator._plugOccurrence;
- return *this;
+ return *this;
}
Occurrence HyperNet_LeafPlugOccurrences::Locator::GetElement() const
// **********************************************************
{
- return _plugOccurrence;
+ return _plugOccurrence;
}
Locator* HyperNet_LeafPlugOccurrences::Locator::GetClone() const
// ******************************************************************
{
- return new Locator(*this);
+ return new Locator(*this);
}
bool HyperNet_LeafPlugOccurrences::Locator::IsValid() const
// **************************************************
{
- return _plugOccurrence.IsValid();
+ return _plugOccurrence.IsValid();
}
@@ -989,10 +989,10 @@ void HyperNet_LeafPlugOccurrences::Locator::Progress()
string HyperNet_LeafPlugOccurrences::Locator::_GetString() const
// *******************************************************
{
- string s = "<" + _TName("HyperNet::LeafPlugOccurrences::Locator");
+ string s = "<" + _TName("HyperNet::LeafPlugOccurrences::Locator");
s += " " + GetString(_netOccurrenceLocator);
- s += ">";
- return s;
+ s += ">";
+ return s;
}
diff --git a/hurricane/src/hurricane/Layer.cpp b/hurricane/src/hurricane/Layer.cpp
index 5e4c1eb3..dfd972b2 100644
--- a/hurricane/src/hurricane/Layer.cpp
+++ b/hurricane/src/hurricane/Layer.cpp
@@ -18,112 +18,112 @@ namespace Hurricane {
Layer::Layer(Technology* technology, const Name& name, const Unit& minimalSize, const Unit& minimalSpacing, const Unit& pitch)
// ****************************************************************************************************
-: Inherit(),
- _technology(technology),
- _name(name),
- _mask(0),
- _extractMask(0),
- _minimalSize(minimalSize),
- _minimalSpacing(minimalSpacing),
+: Inherit(),
+ _technology(technology),
+ _name(name),
+ _mask(0),
+ _extractMask(0),
+ _minimalSize(minimalSize),
+ _minimalSpacing(minimalSpacing),
_pitch(pitch),
- _nextOfTechnologyLayerMap(NULL)
+ _nextOfTechnologyLayerMap(NULL)
{
- if (!_technology)
- throw Error("Can't create " + _TName("Layer") + " : null technology");
+ if (!_technology)
+ throw Error("Can't create " + _TName("Layer") + " : null technology");
- if (_name.IsEmpty())
- throw Error("Can't create " + _TName("Layer") + " : empty name");
+ if (_name.IsEmpty())
+ throw Error("Can't create " + _TName("Layer") + " : empty name");
- if (_technology->GetLayer(_name))
- throw Error("Can't create " + _TName("Layer") + " " + GetString(_name) + " : already exists");
+ if (_technology->GetLayer(_name))
+ throw Error("Can't create " + _TName("Layer") + " " + GetString(_name) + " : already exists");
}
-bool Layer::Contains(const Layer* layer) const
+bool Layer::contains(const Layer* layer) const
// *******************************************
{
- return (layer && ((_mask & layer->GetMask()) == layer->GetMask()));
+ return (layer && ((_mask & layer->getMask()) == layer->getMask()));
}
-bool Layer::Intersect(const Layer* layer) const
+bool Layer::intersect(const Layer* layer) const
// ********************************************
{
- return ((_mask & layer->GetMask()) != 0);
+ return ((_mask & layer->getMask()) != 0);
}
-void Layer::SetName(const Name& name)
+void Layer::setName(const Name& name)
// **********************************
{
- if (name != _name) {
- if (name.IsEmpty())
- throw Error("Can't change layer name : empty name");
+ if (name != _name) {
+ if (name.IsEmpty())
+ throw Error("Can't change layer name : empty name");
- if (_technology->GetLayer(name))
- throw Error("Can't change layer name : already exists");
+ if (_technology->GetLayer(name))
+ throw Error("Can't change layer name : already exists");
- _technology->_GetLayerMap()._Remove(this);
- _name = name;
- _technology->_GetLayerMap()._Insert(this);
- }
+ _technology->_GetLayerMap()._Remove(this);
+ _name = name;
+ _technology->_GetLayerMap()._Insert(this);
+ }
}
-void Layer::SetMinimalSize(const Unit& minimalSize)
+void Layer::setMinimalSize(const Unit& minimalSize)
// ************************************************
{
- _minimalSize = minimalSize;
+ _minimalSize = minimalSize;
}
-void Layer::SetMinimalSpacing(const Unit& minimalSpacing)
+void Layer::setMinimalSpacing(const Unit& minimalSpacing)
// ******************************************************
{
- _minimalSpacing = minimalSpacing;
+ _minimalSpacing = minimalSpacing;
}
-void Layer::SetPitch(const Unit& pitch)
+void Layer::setPitch(const Unit& pitch)
// ************************************
{
- _pitch = pitch;
+ _pitch = pitch;
}
void Layer::_PostCreate()
// **********************
{
- _technology->_GetLayerMap()._Insert(this);
- _technology->_GetLayerList().push_back(this);
+ _technology->_GetLayerMap()._Insert(this);
+ _technology->_GetLayerList().push_back(this);
- Inherit::_PostCreate();
+ Inherit::_PostCreate();
}
void Layer::_PreDelete()
// *********************
{
- Inherit::_PreDelete();
+ Inherit::_PreDelete();
- _technology->_GetLayerList().remove(this);
- _technology->_GetLayerMap()._Remove(this);
+ _technology->_GetLayerList().remove(this);
+ _technology->_GetLayerMap()._Remove(this);
}
string Layer::_GetString() const
// *****************************
{
- string s = Inherit::_GetString();
- s.insert(s.length() - 1, " " + GetString(_name));
- return s;
+ string s = Inherit::_GetString();
+ s.insert(s.length() - 1, " " + GetString(_name));
+ return s;
}
Record* Layer::_GetRecord() const
// ************************
{
- Record* record = Inherit::_GetRecord();
- if (record) {
- record->Add(GetSlot("Technology", _technology));
- record->Add(GetSlot("Name", &_name));
- record->Add(GetSlot("Mask", &_mask));
- record->Add(GetSlot("ExtractMask", &_extractMask));
- record->Add(GetSlot("MinimalSize", &_minimalSize));
- record->Add(GetSlot("MinimalSpacing", &_minimalSpacing));
- record->Add(GetSlot("Pitch", &_pitch));
- }
- return record;
+ Record* record = Inherit::_GetRecord();
+ if (record) {
+ record->Add(GetSlot("Technology", _technology));
+ record->Add(GetSlot("Name", &_name));
+ record->Add(GetSlot("Mask", &_mask));
+ record->Add(GetSlot("ExtractMask", &_extractMask));
+ record->Add(GetSlot("MinimalSize", &_minimalSize));
+ record->Add(GetSlot("MinimalSpacing", &_minimalSpacing));
+ record->Add(GetSlot("Pitch", &_pitch));
+ }
+ return record;
}
} // End of Hurricane namespace.
diff --git a/hurricane/src/hurricane/Layer.h b/hurricane/src/hurricane/Layer.h
index fb908cf9..370dc120 100644
--- a/hurricane/src/hurricane/Layer.h
+++ b/hurricane/src/hurricane/Layer.h
@@ -28,68 +28,68 @@ class Layer : public DBo {
// Types
// *****
- public: typedef DBo Inherit;
+ public: typedef DBo Inherit;
- public: typedef unsigned long long Mask;
+ public: typedef unsigned long long Mask;
// Attributes
// **********
- private: Technology* _technology;
- private: Name _name;
- private: Mask _mask;
- private: Mask _extractMask;
- private: Unit _minimalSize;
- private: Unit _minimalSpacing;
- private: Unit _pitch;
- private: Layer* _nextOfTechnologyLayerMap;
+ private: Technology* _technology;
+ private: Name _name;
+ private: Mask _mask;
+ private: Mask _extractMask;
+ private: Unit _minimalSize;
+ private: Unit _minimalSpacing;
+ private: Unit _pitch;
+ private: Layer* _nextOfTechnologyLayerMap;
// Constructors
// ************
- protected: Layer(Technology* technology, const Name& name, const Unit& minimalSize = 0, const Unit& minimalSpacing = 0, const Unit& pitch = 0);
+ protected: Layer(Technology* technology, const Name& name, const Unit& minimalSize = 0, const Unit& minimalSpacing = 0, const Unit& pitch = 0);
// Accessors
// *********
- public: Technology* GetTechnology() const {return _technology;};
- public: const Name& GetName() const {return _name;};
- public: const Mask& GetMask() const {return _mask;};
- public: const Mask& GetExtractMask() const {return _extractMask;};
- public: const Unit& GetMinimalSize() const {return _minimalSize;};
- public: const Unit& GetMinimalSpacing() const {return _minimalSpacing;};
- public: Unit GetPitch() const {return (_pitch==0?(_minimalSize + _minimalSpacing):_pitch);};
- public: virtual BasicLayers GetBasicLayers() const = 0;
+ public: Technology* getTechnology() const {return _technology;};
+ public: const Name& getName() const {return _name;};
+ public: const Mask& getMask() const {return _mask;};
+ public: const Mask& getExtractMask() const {return _extractMask;};
+ public: const Unit& getMinimalSize() const {return _minimalSize;};
+ public: const Unit& getMinimalSpacing() const {return _minimalSpacing;};
+ public: Unit getPitch() const {return (_pitch==0?(_minimalSize + _minimalSpacing):_pitch);};
+ public: virtual BasicLayers getBasicLayers() const = 0;
// Predicates
// **********
- public: bool Contains(const Layer* layer) const;
- public: bool Intersect(const Layer* layer) const;
+ public: bool contains(const Layer* layer) const;
+ public: bool intersect(const Layer* layer) const;
// Updators
// ********
- public: void SetName(const Name& name);
- public: void SetMinimalSize(const Unit& minimalSize);
- public: void SetMinimalSpacing(const Unit& minimalSpacing);
- public: void SetPitch(const Unit& pitch);
+ public: void setName(const Name& name);
+ public: void setMinimalSize(const Unit& minimalSize);
+ public: void setMinimalSpacing(const Unit& minimalSpacing);
+ public: void setPitch(const Unit& pitch);
// Others
// ******
- protected: virtual void _PostCreate();
+ protected: virtual void _PostCreate();
- protected: virtual void _PreDelete();
+ protected: virtual void _PreDelete();
- public: virtual string _GetString() const;
- public: virtual Record* _GetRecord() const;
- public: virtual BasicLayer* _GetSymbolicBasicLayer() = 0;
- public: Layer* _GetNextOfTechnologyLayerMap() const {return _nextOfTechnologyLayerMap;};
+ public: virtual string _GetString() const;
+ public: virtual Record* _GetRecord() const;
+ public: virtual BasicLayer* _getSymbolicBasicLayer() = 0;
+ public: Layer* _getNextOfTechnologyLayerMap() const {return _nextOfTechnologyLayerMap;};
- public: void _SetMask(const Mask& mask) {_mask = mask;};
- public: void _SetExtractMask(const Mask& extractMask) {_extractMask = extractMask;};
- public: void _SetNextOfTechnologyLayerMap(Layer* layer) {_nextOfTechnologyLayerMap = layer;};
+ public: void _setMask(const Mask& mask) {_mask = mask;};
+ public: void _setExtractMask(const Mask& extractMask) {_extractMask = extractMask;};
+ public: void _setNextOfTechnologyLayerMap(Layer* layer) {_nextOfTechnologyLayerMap = layer;};
};
diff --git a/hurricane/src/hurricane/Pad.cpp b/hurricane/src/hurricane/Pad.cpp
index 41184efc..4f2295a4 100644
--- a/hurricane/src/hurricane/Pad.cpp
+++ b/hurricane/src/hurricane/Pad.cpp
@@ -60,7 +60,7 @@ Box Pad::GetBoundingBox() const
Box boundingBox = _boundingBox;
if (is_a(_layer))
- boundingBox.inflate(((CompositeLayer*)_layer)->GetMaximalPadSize());
+ boundingBox.inflate(((CompositeLayer*)_layer)->getMaximalPadSize());
return boundingBox;
}
@@ -68,12 +68,12 @@ Box Pad::GetBoundingBox() const
Box Pad::GetBoundingBox(const BasicLayer* basicLayer) const
// **************************************************
{
- if (!_layer->Contains(basicLayer)) return Box();
+ if (!_layer->contains(basicLayer)) return Box();
Box boundingBox = _boundingBox;
if (is_a(_layer))
- boundingBox.inflate(((CompositeLayer*)_layer)->GetPadSize(basicLayer));
+ boundingBox.inflate(((CompositeLayer*)_layer)->getPadSize(basicLayer));
return boundingBox;
}
@@ -103,7 +103,7 @@ string Pad::_GetString() const
// ***************************
{
string s = Inherit::_GetString();
- s.insert(s.length() - 1, " " + GetString(_layer->GetName()));
+ s.insert(s.length() - 1, " " + GetString(_layer->getName()));
s.insert(s.length() - 1, " " + GetString(_boundingBox));
return s;
}
diff --git a/hurricane/src/hurricane/Segment.cpp b/hurricane/src/hurricane/Segment.cpp
index d18a4442..576f894b 100644
--- a/hurricane/src/hurricane/Segment.cpp
+++ b/hurricane/src/hurricane/Segment.cpp
@@ -24,58 +24,58 @@ class Segment_Hooks : public Collection {
// Types
// *****
- public: typedef Collection Inherit;
+ public: typedef Collection Inherit;
- public: class Locator : public Hurricane::Locator {
- // *****************************************************
+ public: class Locator : public Hurricane::Locator {
+ // *****************************************************
- public: typedef Hurricane::Locator Inherit;
+ public: typedef Hurricane::Locator Inherit;
- private: const Segment* _segment;
- private: Hook* _hook;
+ private: const Segment* _segment;
+ private: Hook* _hook;
- public: Locator(const Segment* segment = NULL);
- public: Locator(const Locator& locator);
+ public: Locator(const Segment* segment = NULL);
+ public: Locator(const Locator& locator);
- public: Locator& operator=(const Locator& locator);
+ public: Locator& operator=(const Locator& locator);
- public: virtual Hook* GetElement() const;
- public: virtual Hurricane::Locator* GetClone() const;
+ public: virtual Hook* GetElement() const;
+ public: virtual Hurricane::Locator* GetClone() const;
- public: virtual bool IsValid() const;
+ public: virtual bool IsValid() const;
- public: virtual void Progress();
+ public: virtual void Progress();
- public: virtual string _GetString() const;
+ public: virtual string _GetString() const;
- };
+ };
// Attributes
// **********
- private: const Segment* _segment;
+ private: const Segment* _segment;
// Constructors
// ************
- public: Segment_Hooks(const Segment* segment = NULL);
- public: Segment_Hooks(const Segment_Hooks& hooks);
+ public: Segment_Hooks(const Segment* segment = NULL);
+ public: Segment_Hooks(const Segment_Hooks& hooks);
// Operators
// *********
- public: Segment_Hooks& operator=(const Segment_Hooks& hooks);
+ public: Segment_Hooks& operator=(const Segment_Hooks& hooks);
// Accessors
// *********
- public: virtual Collection* GetClone() const;
- public: virtual Hurricane::Locator* GetLocator() const;
+ public: virtual Collection* GetClone() const;
+ public: virtual Hurricane::Locator* GetLocator() const;
// Others
// ******
- public: virtual string _GetString() const;
+ public: virtual string _GetString() const;
};
@@ -91,58 +91,58 @@ class Segment_Anchors : public Collection {
// Types
// *****
- public: typedef Collection Inherit;
+ public: typedef Collection Inherit;
- public: class Locator : public Hurricane::Locator {
- // **********************************************************
+ public: class Locator : public Hurricane::Locator {
+ // **********************************************************
- public: typedef Hurricane::Locator Inherit;
+ public: typedef Hurricane::Locator Inherit;
- private: const Segment* _segment;
- private: Component* _anchor;
+ private: const Segment* _segment;
+ private: Component* _anchor;
- public: Locator(const Segment* segment = NULL);
- public: Locator(const Locator& locator);
+ public: Locator(const Segment* segment = NULL);
+ public: Locator(const Locator& locator);
- public: Locator& operator=(const Locator& locator);
+ public: Locator& operator=(const Locator& locator);
- public: virtual Component* GetElement() const;
- public: virtual Hurricane::Locator* GetClone() const;
+ public: virtual Component* GetElement() const;
+ public: virtual Hurricane::Locator* GetClone() const;
- public: virtual bool IsValid() const;
+ public: virtual bool IsValid() const;
- public: virtual void Progress();
+ public: virtual void Progress();
- public: virtual string _GetString() const;
+ public: virtual string _GetString() const;
- };
+ };
// Attributes
// **********
- private: const Segment* _segment;
+ private: const Segment* _segment;
// Constructors
// ************
- public: Segment_Anchors(const Segment* segment = NULL);
- public: Segment_Anchors(const Segment_Anchors& anchors);
+ public: Segment_Anchors(const Segment* segment = NULL);
+ public: Segment_Anchors(const Segment_Anchors& anchors);
// Operators
// *********
- public: Segment_Anchors& operator=(const Segment_Anchors& anchors);
+ public: Segment_Anchors& operator=(const Segment_Anchors& anchors);
// Accessors
// *********
- public: virtual Collection* GetClone() const;
- public: virtual Hurricane::Locator* GetLocator() const;
+ public: virtual Collection* GetClone() const;
+ public: virtual Hurricane::Locator* GetLocator() const;
// Others
// ******
- public: virtual string _GetString() const;
+ public: virtual string _GetString() const;
};
@@ -155,124 +155,124 @@ class Segment_Anchors : public Collection {
Segment::Segment(Net* net, Component* source, Component* target, Layer* layer, const Unit& width)
// **********************************************************************************************
: Inherit(net),
- _sourceHook(this),
- _targetHook(this),
- _layer(layer),
- _width(width)
+ _sourceHook(this),
+ _targetHook(this),
+ _layer(layer),
+ _width(width)
{
- if (source) {
- if (!source->GetNet())
- throw Error("Can't create " + _TName("Segment") + " : unconnected source");
- if (source->GetNet() != net)
- throw Error("Can't create " + _TName("Segment") + " : incompatible source");
- }
+ if (source) {
+ if (!source->GetNet())
+ throw Error("Can't create " + _TName("Segment") + " : unconnected source");
+ if (source->GetNet() != net)
+ throw Error("Can't create " + _TName("Segment") + " : incompatible source");
+ }
- if (target) {
- if (!target->GetNet())
- throw Error("Can't create " + _TName("Segment") + " : unconnected target");
- if (target->GetNet() != net)
- throw Error("Can't create " + _TName("Segment") + " : incompatible target");
- }
+ if (target) {
+ if (!target->GetNet())
+ throw Error("Can't create " + _TName("Segment") + " : unconnected target");
+ if (target->GetNet() != net)
+ throw Error("Can't create " + _TName("Segment") + " : incompatible target");
+ }
- if (!_layer)
- throw Error("Can't create " + _TName("Segment") + " : null layer");
+ if (!_layer)
+ throw Error("Can't create " + _TName("Segment") + " : null layer");
- if (source) _sourceHook.Attach(source->GetBodyHook());
- if (target) _targetHook.Attach(target->GetBodyHook());
+ if (source) _sourceHook.Attach(source->GetBodyHook());
+ if (target) _targetHook.Attach(target->GetBodyHook());
}
Hooks Segment::GetHooks() const
// ****************************
{
- return Segment_Hooks(this);
+ return Segment_Hooks(this);
}
Hook* Segment::GetOppositeHook(const Hook* hook) const
// ***************************************************
{
- if (hook) {
- if (hook == &_sourceHook) return (Hook*)&_targetHook;
- if (hook == &_targetHook) return (Hook*)&_sourceHook;
- }
- return NULL;
+ if (hook) {
+ if (hook == &_sourceHook) return (Hook*)&_targetHook;
+ if (hook == &_targetHook) return (Hook*)&_sourceHook;
+ }
+ return NULL;
}
Component* Segment::GetSource() const
// **********************************
{
- Hook* masterHook = _sourceHook.GetMasterHook();
- return (masterHook) ? masterHook->GetComponent() : NULL;
+ Hook* masterHook = _sourceHook.GetMasterHook();
+ return (masterHook) ? masterHook->GetComponent() : NULL;
}
Component* Segment::GetTarget() const
// **********************************
{
- Hook* masterHook = _targetHook.GetMasterHook();
- return (masterHook) ? masterHook->GetComponent() : NULL;
+ Hook* masterHook = _targetHook.GetMasterHook();
+ return (masterHook) ? masterHook->GetComponent() : NULL;
}
Components Segment::GetAnchors() const
// ***********************************
{
- return Segment_Anchors(this);
+ return Segment_Anchors(this);
}
Component* Segment::GetOppositeAnchor(Component* anchor) const
// ***********************************************************
{
- if (anchor) {
- Component* source = GetSource();
- Component* target = GetTarget();
- if (anchor == source) return target;
- if (anchor == target) return source;
- }
- return NULL;
+ if (anchor) {
+ Component* source = GetSource();
+ Component* target = GetTarget();
+ if (anchor == source) return target;
+ if (anchor == target) return source;
+ }
+ return NULL;
}
Point Segment::GetSourcePosition() const
// *************************************
{
- return Point(GetSourceX(), GetSourceY());
+ return Point(GetSourceX(), GetSourceY());
}
Point Segment::GetTargetPosition() const
// *************************************
{
- return Point(GetTargetX(), GetTargetY());
+ return Point(GetTargetX(), GetTargetY());
}
void Segment::SetLayer(Layer* layer)
// *********************************
{
- if (!layer)
- throw Error("Can't set layer : null layer");
+ if (!layer)
+ throw Error("Can't set layer : null layer");
- if (layer != _layer) {
- Invalidate(false);
- _layer = layer;
- }
+ if (layer != _layer) {
+ Invalidate(false);
+ _layer = layer;
+ }
}
void Segment::SetWidth(const Unit& width)
// **************************************
{
- if (width != _width) {
- Invalidate(false);
- _width = width;
- }
+ if (width != _width) {
+ Invalidate(false);
+ _width = width;
+ }
}
void Segment::Invert()
// *******************
{
- Component* source = GetSource();
- Component* target = GetTarget();
- if (source && target && (target != source)) {
- GetSourceHook()->Detach();
- GetTargetHook()->Detach();
- GetSourceHook()->Attach(target->GetBodyHook());
- GetTargetHook()->Attach(source->GetBodyHook());
- }
+ Component* source = GetSource();
+ Component* target = GetTarget();
+ if (source && target && (target != source)) {
+ GetSourceHook()->Detach();
+ GetTargetHook()->Detach();
+ GetSourceHook()->Attach(target->GetBodyHook());
+ GetTargetHook()->Attach(source->GetBodyHook());
+ }
}
void Segment::_PreDelete()
@@ -281,10 +281,10 @@ void Segment::_PreDelete()
// trace << "entering Segment::_PreDelete: " << this << endl;
// trace_in();
- Inherit::_PreDelete();
+ Inherit::_PreDelete();
- _sourceHook.Detach();
- _targetHook.Detach();
+ _sourceHook.Detach();
+ _targetHook.Detach();
// trace << "exiting Segment::_PreDelete:" << endl;
// trace_out();
@@ -293,111 +293,83 @@ void Segment::_PreDelete()
string Segment::_GetString() const
// *******************************
{
- string s = Inherit::_GetString();
- s.insert(s.length() - 1, " " + GetString(_layer->GetName()));
- s.insert(s.length() - 1, " [" + GetValueString(GetSourceX()) + " " + GetValueString(GetSourceY()) + "]");
- s.insert(s.length() - 1, " [" + GetValueString(GetTargetX()) + " " + GetValueString(GetTargetY()) + "]");
- s.insert(s.length() - 1, " " + GetValueString(_width));
- return s;
+ string s = Inherit::_GetString();
+ s.insert(s.length() - 1, " " + GetString(_layer->getName()));
+ s.insert(s.length() - 1, " [" + GetValueString(GetSourceX()) + " " + GetValueString(GetSourceY()) + "]");
+ s.insert(s.length() - 1, " [" + GetValueString(GetTargetX()) + " " + GetValueString(GetTargetY()) + "]");
+ s.insert(s.length() - 1, " " + GetValueString(_width));
+ return s;
}
Record* Segment::_GetRecord() const
// **************************
{
- Record* record = Inherit::_GetRecord();
- if (record) {
- record->Add(GetSlot("SourceHook", &_sourceHook));
- record->Add(GetSlot("Source", GetSource()));
- record->Add(GetSlot("TargetHook", &_targetHook));
- record->Add(GetSlot("Target", GetTarget()));
- record->Add(GetSlot("Layer", _layer));
- record->Add(GetSlot("Width", &_width));
- }
- return record;
+ Record* record = Inherit::_GetRecord();
+ if (record) {
+ record->Add(GetSlot("SourceHook", &_sourceHook));
+ record->Add(GetSlot("Source", GetSource()));
+ record->Add(GetSlot("TargetHook", &_targetHook));
+ record->Add(GetSlot("Target", GetTarget()));
+ record->Add(GetSlot("Layer", _layer));
+ record->Add(GetSlot("Width", &_width));
+ }
+ return record;
}
Unit Segment::_GetSize() const
// ***************************
{
- Unit size = 0;
+ Unit size = 0;
- Layer* layer = GetLayer();
- if (is_a(layer))
- size = ((CompositeLayer*)layer)->GetMaximalSegmentSize();
+ Layer* layer = GetLayer();
+ if (is_a(layer))
+ size = ((CompositeLayer*)layer)->getMaximalSegmentSize();
- return size;
+ return size;
}
Unit Segment::_GetExtention() const
// ********************************
{
- Unit extention = 0;
+ Unit extention = 0;
- Layer* layer = GetLayer();
- if (is_a(layer))
- extention = ((CompositeLayer*)layer)->GetMaximalSegmentExtention();
+ Layer* layer = GetLayer();
+ if (is_a(layer))
+ extention = ((CompositeLayer*)layer)->getMaximalSegmentExtention();
- return extention;
+ return extention;
}
Unit Segment::_GetSize(const BasicLayer* basicLayer) const
// *************************************************
{
- Layer* layer = GetLayer();
+ Layer* layer = GetLayer();
- if (!layer->Contains(basicLayer)) return 0;
+ if (!layer->contains(basicLayer)) return 0;
- Unit size = 0;
+ Unit size = 0;
- if (is_a(layer))
- size = ((CompositeLayer*)layer)->GetSegmentSize(basicLayer);
+ if (is_a(layer))
+ size = ((CompositeLayer*)layer)->getSegmentSize(basicLayer);
- return size;
+ return size;
}
Unit Segment::_GetExtention(const BasicLayer* basicLayer) const
// ******************************************************
{
- Layer* layer = GetLayer();
+ Layer* layer = GetLayer();
- if (!layer->Contains(basicLayer)) return 0;
+ if (!layer->contains(basicLayer)) return 0;
- Unit extention = 0;
+ Unit extention = 0;
- if (is_a(layer))
- extention = ((CompositeLayer*)layer)->GetSegmentExtention(basicLayer);
+ if (is_a(layer))
+ extention = ((CompositeLayer*)layer)->getSegmentExtention(basicLayer);
- return extention;
+ return extention;
}
-//bool Segment::_IsInterceptedBy(View* view, const Point& point, const Unit& aperture) const
-//// ***************************************************************************************
-//{
-// Box area(point);
-// area.Inflate(aperture);
-// Layer* layer = GetLayer();
-// for_each_basic_layer(basicLayer, layer->GetBasicLayers()) {
-// if (view->IsVisible(basicLayer))
-// if (GetBoundingBox(basicLayer).Intersect(area)) return true;
-// end_for;
-// }
-//
-// return false;
-//}
-//
-
-//void Segment::_Draw(View* view, BasicLayer* basicLayer, const Box& updateArea, const Transformation& transformation)
-//// ****************************************************************************************************
-//{
-// if (1 < view->GetScreenSize(GetWidth()))
-// basicLayer->_Fill(view, transformation.GetBox(GetBoundingBox(basicLayer)));
-// else
-// if (basicLayer == GetLayer()->_GetSymbolicBasicLayer())
-// view->DrawLine(transformation.GetPoint(GetSourcePosition()),
-// transformation.GetPoint(GetTargetPosition()));
-//}
-//
-
// ****************************************************************************************************
// Segment::SourceHook implementation
// ****************************************************************************************************
@@ -406,25 +378,25 @@ static int SOURCE_HOOK_OFFSET = -1;
Segment::SourceHook::SourceHook(Segment* segment)
// **********************************************
-: Inherit()
+: Inherit()
{
- if (!segment)
- throw Error("Can't create " + _TName("Segment::SourceHook") + " (null segment)");
+ if (!segment)
+ throw Error("Can't create " + _TName("Segment::SourceHook") + " (null segment)");
- if (SOURCE_HOOK_OFFSET == -1)
- SOURCE_HOOK_OFFSET = (unsigned long)this - (unsigned long)segment;
+ if (SOURCE_HOOK_OFFSET == -1)
+ SOURCE_HOOK_OFFSET = (unsigned long)this - (unsigned long)segment;
}
Component* Segment::SourceHook::GetComponent() const
// *************************************************
{
- return (Component*)((unsigned long)this - SOURCE_HOOK_OFFSET);
+ return (Component*)((unsigned long)this - SOURCE_HOOK_OFFSET);
}
string Segment::SourceHook::_GetString() const
// *******************************************
{
- return "<" + _TName("Segment::SourceHook") + " " + GetString(GetComponent()) + ">";
+ return "<" + _TName("Segment::SourceHook") + " " + GetString(GetComponent()) + ">";
}
@@ -437,25 +409,25 @@ static int TARGET_HOOK_OFFSET = -1;
Segment::TargetHook::TargetHook(Segment* segment)
// **********************************************
-: Inherit()
+: Inherit()
{
- if (!segment)
- throw Error("Can't create " + _TName("Segment::TargetHook") + " (null segment)");
+ if (!segment)
+ throw Error("Can't create " + _TName("Segment::TargetHook") + " (null segment)");
- if (TARGET_HOOK_OFFSET == -1)
- TARGET_HOOK_OFFSET = (unsigned long)this - (unsigned long)segment;
+ if (TARGET_HOOK_OFFSET == -1)
+ TARGET_HOOK_OFFSET = (unsigned long)this - (unsigned long)segment;
}
Component* Segment::TargetHook::GetComponent() const
// *************************************************
{
- return (Component*)((unsigned long)this - TARGET_HOOK_OFFSET);
+ return (Component*)((unsigned long)this - TARGET_HOOK_OFFSET);
}
string Segment::TargetHook::_GetString() const
// *******************************************
{
- return "<" + _TName("Segment::TargetHook") + " " + GetString(GetComponent()) + ">";
+ return "<" + _TName("Segment::TargetHook") + " " + GetString(GetComponent()) + ">";
}
// ****************************************************************************************************
@@ -464,44 +436,44 @@ string Segment::TargetHook::_GetString() const
Segment_Hooks::Segment_Hooks(const Segment* segment)
// *************************************************
-: Inherit(),
- _segment(segment)
+: Inherit(),
+ _segment(segment)
{
}
Segment_Hooks::Segment_Hooks(const Segment_Hooks& hooks)
// *****************************************************
-: Inherit(),
- _segment(hooks._segment)
+: Inherit(),
+ _segment(hooks._segment)
{
}
Segment_Hooks& Segment_Hooks::operator=(const Segment_Hooks& hooks)
// ****************************************************************
{
- _segment = hooks._segment;
- return *this;
+ _segment = hooks._segment;
+ return *this;
}
Collection* Segment_Hooks::GetClone() const
// ***********************************************
{
- return new Segment_Hooks(*this);
+ return new Segment_Hooks(*this);
}
Locator* Segment_Hooks::GetLocator() const
// **********************************************
{
- return new Locator(_segment);
+ return new Locator(_segment);
}
string Segment_Hooks::_GetString() const
// *************************************
{
- string s = "<" + _TName("Segment::Hooks");
- if (_segment) s += " " + GetString(_segment);
- s += ">";
- return s;
+ string s = "<" + _TName("Segment::Hooks");
+ if (_segment) s += " " + GetString(_segment);
+ s += ">";
+ return s;
}
@@ -512,69 +484,69 @@ string Segment_Hooks::_GetString() const
Segment_Hooks::Locator::Locator(const Segment* segment)
// ****************************************************
-: Inherit(),
- _segment(segment),
- _hook(NULL)
+: Inherit(),
+ _segment(segment),
+ _hook(NULL)
{
- if (_segment) _hook = ((Segment*)_segment)->GetBodyHook();
+ if (_segment) _hook = ((Segment*)_segment)->GetBodyHook();
}
Segment_Hooks::Locator::Locator(const Locator& locator)
// ****************************************************
-: Inherit(),
- _segment(locator._segment),
- _hook(locator._hook)
+: Inherit(),
+ _segment(locator._segment),
+ _hook(locator._hook)
{
}
Segment_Hooks::Locator& Segment_Hooks::Locator::operator=(const Locator& locator)
// ******************************************************************************
{
- _segment = locator._segment;
- _hook = locator._hook;
- return *this;
+ _segment = locator._segment;
+ _hook = locator._hook;
+ return *this;
}
Hook* Segment_Hooks::Locator::GetElement() const
// *********************************************
{
- return _hook;
+ return _hook;
}
Locator* Segment_Hooks::Locator::GetClone() const
// *****************************************************
{
- return new Locator(*this);
+ return new Locator(*this);
}
bool Segment_Hooks::Locator::IsValid() const
// *****************************************
{
- return (_hook != NULL);
+ return (_hook != NULL);
}
void Segment_Hooks::Locator::Progress()
// ************************************
{
- if (_hook) {
- if (_hook == ((Segment*)_segment)->GetBodyHook())
- _hook = ((Segment*)_segment)->GetSourceHook();
- else {
- if (_hook == ((Segment*)_segment)->GetSourceHook())
- _hook = ((Segment*)_segment)->GetTargetHook();
- else
- _hook = NULL;
- }
- }
+ if (_hook) {
+ if (_hook == ((Segment*)_segment)->GetBodyHook())
+ _hook = ((Segment*)_segment)->GetSourceHook();
+ else {
+ if (_hook == ((Segment*)_segment)->GetSourceHook())
+ _hook = ((Segment*)_segment)->GetTargetHook();
+ else
+ _hook = NULL;
+ }
+ }
}
string Segment_Hooks::Locator::_GetString() const
// **********************************************
{
- string s = "<" + _TName("Segment::Hooks::Locator");
- if (_segment) s += " " + GetString(_segment);
- s += ">";
- return s;
+ string s = "<" + _TName("Segment::Hooks::Locator");
+ if (_segment) s += " " + GetString(_segment);
+ s += ">";
+ return s;
}
@@ -585,44 +557,44 @@ string Segment_Hooks::Locator::_GetString() const
Segment_Anchors::Segment_Anchors(const Segment* segment)
// *****************************************************
-: Inherit(),
- _segment(segment)
+: Inherit(),
+ _segment(segment)
{
}
Segment_Anchors::Segment_Anchors(const Segment_Anchors& hooks)
// ***********************************************************
-: Inherit(),
- _segment(hooks._segment)
+: Inherit(),
+ _segment(hooks._segment)
{
}
Segment_Anchors& Segment_Anchors::operator=(const Segment_Anchors& hooks)
// **********************************************************************
{
- _segment = hooks._segment;
- return *this;
+ _segment = hooks._segment;
+ return *this;
}
Collection* Segment_Anchors::GetClone() const
// ******************************************************
{
- return new Segment_Anchors(*this);
+ return new Segment_Anchors(*this);
}
Locator* Segment_Anchors::GetLocator() const
// *****************************************************
{
- return new Locator(_segment);
+ return new Locator(_segment);
}
string Segment_Anchors::_GetString() const
// ***************************************
{
- string s = "<" + _TName("Segment::Anchors");
- if (_segment) s += " " + GetString(_segment);
- s += ">";
- return s;
+ string s = "<" + _TName("Segment::Anchors");
+ if (_segment) s += " " + GetString(_segment);
+ s += ">";
+ return s;
}
@@ -633,68 +605,68 @@ string Segment_Anchors::_GetString() const
Segment_Anchors::Locator::Locator(const Segment* segment)
// ******************************************************
-: Inherit(),
- _segment(segment),
- _anchor(NULL)
+: Inherit(),
+ _segment(segment),
+ _anchor(NULL)
{
- if (_segment) {
- _anchor = ((Segment*)_segment)->GetSource();
- if (!_anchor) _anchor = ((Segment*)_segment)->GetTarget();
- }
+ if (_segment) {
+ _anchor = ((Segment*)_segment)->GetSource();
+ if (!_anchor) _anchor = ((Segment*)_segment)->GetTarget();
+ }
}
Segment_Anchors::Locator::Locator(const Locator& locator)
// ******************************************************
-: Inherit(),
- _segment(locator._segment),
- _anchor(locator._anchor)
+: Inherit(),
+ _segment(locator._segment),
+ _anchor(locator._anchor)
{
}
Segment_Anchors::Locator& Segment_Anchors::Locator::operator=(const Locator& locator)
// **********************************************************************************
{
- _segment = locator._segment;
- _anchor = locator._anchor;
- return *this;
+ _segment = locator._segment;
+ _anchor = locator._anchor;
+ return *this;
}
Component* Segment_Anchors::Locator::GetElement() const
// ****************************************************
{
- return _anchor;
+ return _anchor;
}
Locator* Segment_Anchors::Locator::GetClone() const
// ************************************************************
{
- return new Locator(*this);
+ return new Locator(*this);
}
bool Segment_Anchors::Locator::IsValid() const
// *******************************************
{
- return (_anchor != NULL);
+ return (_anchor != NULL);
}
void Segment_Anchors::Locator::Progress()
// **************************************
{
- if (_anchor) {
- if (_anchor == ((Segment*)_segment)->GetTarget())
- _anchor = NULL;
- else
- _anchor = ((Segment*)_segment)->GetTarget();
- }
+ if (_anchor) {
+ if (_anchor == ((Segment*)_segment)->GetTarget())
+ _anchor = NULL;
+ else
+ _anchor = ((Segment*)_segment)->GetTarget();
+ }
}
string Segment_Anchors::Locator::_GetString() const
// ************************************************
{
- string s = "<" + _TName("Segment::Anchors::Locator");
- if (_segment) s += " " + GetString(_segment);
- s += ">";
- return s;
+ string s = "<" + _TName("Segment::Anchors::Locator");
+ if (_segment) s += " " + GetString(_segment);
+ s += ">";
+ return s;
}
diff --git a/hurricane/src/hurricane/Slice.cpp b/hurricane/src/hurricane/Slice.cpp
index 48e5921d..c0a53c95 100644
--- a/hurricane/src/hurricane/Slice.cpp
+++ b/hurricane/src/hurricane/Slice.cpp
@@ -21,112 +21,93 @@ namespace Hurricane {
Slice::Slice(Cell* cell, Layer* layer)
// ***********************************
-: _cell(cell),
- _layer(layer),
- _quadTree(),
- _nextOfCellSliceMap(NULL)
+: _cell(cell),
+ _layer(layer),
+ _quadTree(),
+ _nextOfCellSliceMap(NULL)
{
- if (!_cell)
- throw Error("Can't create " + _TName("Slice") + " : null cell");
+ if (!_cell)
+ throw Error("Can't create " + _TName("Slice") + " : null cell");
- if (!_layer)
- throw Error("Can't create " + _TName("Slice") + " : null layer");
+ if (!_layer)
+ throw Error("Can't create " + _TName("Slice") + " : null layer");
- if (_cell->GetSlice(_layer))
- throw Error("Can't create " + _TName("Slice") + " : already exists");
+ if (_cell->GetSlice(_layer))
+ throw Error("Can't create " + _TName("Slice") + " : already exists");
- _cell->_GetSliceMap()._Insert(this);
+ _cell->_GetSliceMap()._Insert(this);
}
Slice::~Slice()
// ************
{
- _cell->_GetSliceMap()._Remove(this);
+ _cell->_GetSliceMap()._Remove(this);
}
Components Slice::GetComponents() const
// ************************************
{
- // return _quadTree.GetGos().GetSubSet();
- return SubTypeCollection(_quadTree.GetGos());
+ // return _quadTree.GetGos().GetSubSet();
+ return SubTypeCollection(_quadTree.GetGos());
}
Components Slice::GetComponentsUnder(const Box& area) const
// ********************************************************
{
- // return _quadTree.GetGosUnder(area).GetSubSet();
- return SubTypeCollection(_quadTree.GetGosUnder(area));
+ // return _quadTree.GetGosUnder(area).GetSubSet();
+ return SubTypeCollection(_quadTree.GetGosUnder(area));
}
Markers Slice::GetMarkers() const
// ******************************
{
- // return _quadTree.GetGos().GetSubSet();
- return SubTypeCollection(_quadTree.GetGos());
+ // return _quadTree.GetGos().GetSubSet();
+ return SubTypeCollection(_quadTree.GetGos());
}
Markers Slice::GetMarkersUnder(const Box& area) const
// **************************************************
{
- // return _quadTree.GetGosUnder(area).GetSubSet();
- return SubTypeCollection(_quadTree.GetGosUnder(area));
+ // return _quadTree.GetGosUnder(area).GetSubSet();
+ return SubTypeCollection(_quadTree.GetGosUnder(area));
}
Slice* Slice::_Create(Cell* cell, Layer* layer)
// ********************************************
{
- Slice* slice = new Slice(cell, layer);
+ Slice* slice = new Slice(cell, layer);
- return slice;
+ return slice;
}
void Slice::_Delete()
// ******************
{
- delete this;
+ delete this;
}
string Slice::_GetString() const
// *****************************
{
- string s = "<" + _TName("Slice");
- // s += " " + GetString(_cell->GetName());
- s += " " + GetString(_layer->GetName());
- s += ">";
- return s;
+ string s = "<" + _TName("Slice");
+ // s += " " + GetString(_cell->GetName());
+ s += " " + GetString(_layer->getName());
+ s += ">";
+ return s;
}
Record* Slice::_GetRecord() const
// ************************
{
- Record* record = new Record(GetString(this));
- if (record) {
- record->Add(GetSlot("Cell", _cell));
- record->Add(GetSlot("Layer", _layer));
- record->Add(GetSlot("QuadTree", &_quadTree));
- }
- return record;
+ Record* record = new Record(GetString(this));
+ if (record) {
+ record->Add(GetSlot("Cell", _cell));
+ record->Add(GetSlot("Layer", _layer));
+ record->Add(GetSlot("QuadTree", &_quadTree));
+ }
+ return record;
}
-//void Slice::_Draw(View* view, BasicLayer* basicLayer, const Box& updateArea, const Transformation& transformation)
-//// ****************************************************************************************************
-//{
-// assert(view);
-// assert(basicLayer);
-// if (_layer->Contains(basicLayer)) {
-// if (GetBoundingBox().Intersect(updateArea)) {
-// if ((basicLayer == _layer->_GetSymbolicBasicLayer()) || (3 < view->GetScale())) {
-// for_each_go(go, GetGosUnder(updateArea)) {
-// go->_Draw(view, basicLayer, updateArea, transformation);
-// end_for;
-// }
-// }
-// }
-// }
-//}
-//
-
-
} // End of Hurricane namespace.
// ****************************************************************************************************
diff --git a/hurricane/src/hurricane/Technology.cpp b/hurricane/src/hurricane/Technology.cpp
index e555abc0..f2761622 100644
--- a/hurricane/src/hurricane/Technology.cpp
+++ b/hurricane/src/hurricane/Technology.cpp
@@ -9,7 +9,6 @@
#include "Layer.h"
#include "BasicLayer.h"
#include "CompositeLayer.h"
-#include "Tag.h"
#include "Error.h"
@@ -28,440 +27,178 @@ class Technology_BasicLayers : public Collection {
// Types
// *****
- public: typedef Collection Inherit;
+ public: typedef Collection Inherit;
- public: class Locator : public Hurricane::Locator {
- // ***********************************************************
+ public: class Locator : public Hurricane::Locator {
+ // ***********************************************************
- public: typedef Hurricane::Locator Inherit;
+ public: typedef Hurricane::Locator Inherit;
- private: const Technology* _technology;
- private: Layer::Mask _mask;
- private: BasicLayerLocator _basicLayerLocator;
+ private: const Technology* _technology;
+ private: Layer::Mask _mask;
+ private: BasicLayerLocator _basicLayerLocator;
- public: Locator();
- public: Locator(const Technology* technology, const Layer::Mask& mask);
- public: Locator(const Locator& locator);
+ public: Locator();
+ public: Locator(const Technology* technology, const Layer::Mask& mask);
+ public: Locator(const Locator& locator);
- public: Locator& operator=(const Locator& locator);
+ public: Locator& operator=(const Locator& locator);
- public: virtual BasicLayer* GetElement() const;
- public: virtual Hurricane::Locator* GetClone() const;
+ public: virtual BasicLayer* GetElement() const;
+ public: virtual Hurricane::Locator* GetClone() const;
- public: virtual bool IsValid() const;
+ public: virtual bool IsValid() const;
- public: virtual void Progress();
+ public: virtual void Progress();
- public: virtual string _GetString() const;
+ public: virtual string _GetString() const;
- };
+ };
// Attributes
// **********
- private: const Technology* _technology;
- private: Layer::Mask _mask;
+ private: const Technology* _technology;
+ private: Layer::Mask _mask;
// Constructors
// ************
- public: Technology_BasicLayers();
- public: Technology_BasicLayers(const Technology* technology, const Layer::Mask& mask);
- public: Technology_BasicLayers(const Technology_BasicLayers& basicLayers);
+ public: Technology_BasicLayers();
+ public: Technology_BasicLayers(const Technology* technology, const Layer::Mask& mask);
+ public: Technology_BasicLayers(const Technology_BasicLayers& basicLayers);
// Operators
// *********
- public: Technology_BasicLayers& operator=(const Technology_BasicLayers& basicLayers);
+ public: Technology_BasicLayers& operator=(const Technology_BasicLayers& basicLayers);
// Accessors
// *********
- public: virtual Collection* GetClone() const;
- public: virtual Hurricane::Locator* GetLocator() const;
+ public: virtual Collection* GetClone() const;
+ public: virtual Hurricane::Locator* GetLocator() const;
// Others
// ******
- public: virtual string _GetString() const;
+ public: virtual string _GetString() const;
};
-
-
-// ****************************************************************************************************
-// Utilitarians
-// ****************************************************************************************************
-
-static void Abort(Tag* tag, const string& reason)
-// **********************************************
-{
- Tag* topTag = tag;
- while (topTag->GetTag()) topTag = topTag->GetTag();
-
- throw Error("Can't load technology : " + reason +
- " : " + topTag->GetArgument() + " (line " + GetString(tag->GetLine()) + ")");
-
-}
-
-static void CreateBasicLayerFromTag(Technology* technology, Tag* tag)
-// ******************************************************************
-{
- Name name = tag->GetArgument();
-
- if (name.IsEmpty())
- Abort(tag, "undefined basic layer name");
-
- if (technology->GetLayer(name))
- Abort(tag, "layer " + GetString(name) + " already exists");
-
- BasicLayer::Type type;
- unsigned extractNumber = 0;
- Unit minimalSize = 0;
- Unit minimalSpacing = 0;
- unsigned short redValue = 255;
- unsigned short greenValue = 255;
- unsigned short blueValue = 255;
- string fillPattern = "FFFFFFFFFFFFFFFF";
- double displayThreshold = 0.0;
-
- for_each_tag(childTag, tag->GetTags()) {
- if (childTag->GetName() == "type") {
- if (!::Scan(childTag->GetArgument(), type))
- Abort(tag, "invalid type");
- }
- else if (childTag->GetName() == "extract-number") {
- if (!::Scan(childTag->GetArgument(), extractNumber))
- Abort(tag, "invalid extract-number");
- }
- else if (childTag->GetName() == "minimal-size") {
- if (!::Scan(childTag->GetArgument(), minimalSize))
- Abort(tag, "invalid minimal-size");
- }
- else if (childTag->GetName() == "minimal-spacing") {
- if (!::Scan(childTag->GetArgument(), minimalSpacing))
- Abort(tag, "invalid minimal-spacing");
- }
- else if (childTag->GetName() == "color") {
- if (!::Scan(childTag->GetArgument(), redValue, greenValue, blueValue))
- Abort(tag, "invalid color");
- }
- else if (childTag->GetName() == "pattern") {
- if (!::Scan(childTag->GetArgument(), fillPattern))
- Abort(tag, "invalid pattern");
- }
- else if (childTag->GetName() == "display-threshold") {
- if (!::Scan(childTag->GetArgument(), displayThreshold))
- Abort(tag, "invalid display-threshold");
- }
- end_for;
- }
-
- BasicLayer* basicLayer =
- BasicLayer::Create(technology, name, type, extractNumber, minimalSize, minimalSpacing);
-
- basicLayer->SetColor(redValue, greenValue, blueValue);
- basicLayer->SetFillPattern(fillPattern);
- basicLayer->SetDisplayThreshold(displayThreshold);
-}
-
-void AddBasicLayerFromTag(CompositeLayer* compositeLayer, Tag* tag)
-// ****************************************************************
-{
- Name name = tag->GetArgument();
-
- if (name.IsEmpty())
- Abort(tag, "undefined basic layer name");
-
- BasicLayer* basicLayer = compositeLayer->GetTechnology()->GetBasicLayer(name);
-
- if (!basicLayer)
- Abort(tag, "undefined basic layer " + GetString(name));
-
- if (compositeLayer->Contains(basicLayer)) compositeLayer->Remove(basicLayer);
-
- Unit contactSize = 0;
- Unit segmentSize = 0;
- Unit segmentExtention = 0;
- Unit padSize = 0;
-
- for_each_tag(childTag, tag->GetTags()) {
- if (childTag->GetName() == "contact-size") {
- if (!::Scan(childTag->GetArgument(), contactSize))
- Abort(tag, "invalid contact-size");
- }
- else if (childTag->GetName() == "segment-size") {
- if (!::Scan(childTag->GetArgument(), segmentSize))
- Abort(tag, "invalid segment-size");
- }
- else if (childTag->GetName() == "segment-extention") {
- if (!::Scan(childTag->GetArgument(), segmentExtention))
- Abort(tag, "invalid segment-extention");
- }
- else if (childTag->GetName() == "pad-size") {
- if (!::Scan(childTag->GetArgument(), padSize))
- Abort(tag, "invalid pad-size");
- }
- end_for;
- }
-
- compositeLayer->Add(basicLayer, contactSize, segmentSize, segmentExtention, padSize);
-}
-
-void AddCompositeLayerFromTag(CompositeLayer* compositeLayer, Tag* tag)
-// ********************************************************************
-{
- Name name = tag->GetArgument();
-
- CompositeLayer* childCompositeLayer = compositeLayer->GetTechnology()->GetCompositeLayer(name);
-
- if (!childCompositeLayer)
- Abort(tag, "unknown composite-layer " + GetString(name));
-
- for_each_basic_layer(basicLayer, childCompositeLayer->GetBasicLayers()) {
- Unit contactSize =
- max(childCompositeLayer->GetContactSize(basicLayer),
- compositeLayer->GetContactSize(basicLayer));
- Unit segmentSize =
- max(childCompositeLayer->GetSegmentSize(basicLayer),
- compositeLayer->GetSegmentSize(basicLayer));
- Unit segmentExtention =
- max(childCompositeLayer->GetSegmentExtention(basicLayer),
- compositeLayer->GetSegmentExtention(basicLayer));
- Unit padSize =
- max(childCompositeLayer->GetPadSize(basicLayer),
- compositeLayer->GetPadSize(basicLayer));
- if (compositeLayer->Contains(basicLayer)) compositeLayer->Remove(basicLayer);
- compositeLayer->Add(basicLayer, contactSize, segmentSize, segmentExtention, padSize);
- Unit minimalSize = max(compositeLayer->GetMinimalSize(), childCompositeLayer->GetMinimalSize());
- compositeLayer->SetMinimalSize(minimalSize);
- end_for;
- }
-}
-
-static void CreateCompositeLayerFromTag(Technology* technology, Tag* tag)
-// **********************************************************************
-{
- Name name = tag->GetArgument();
-
- if (name.IsEmpty())
- Abort(tag, "undefined composite layer name");
-
- if (technology->GetLayer(name))
- Abort(tag, "layer " + GetString(name) + " already exists");
-
- CompositeLayer::Type type;
- Unit minimalSize = 0;
- Unit minimalSpacing = 0;
-
- for_each_tag(childTag, tag->GetTags()) {
- if (childTag->GetName() == "type") {
- if (!::Scan(childTag->GetArgument(), type))
- Abort(tag, "invalid type");
- }
- else if (childTag->GetName() == "minimal-size") {
- if (!::Scan(childTag->GetArgument(), minimalSize))
- Abort(tag, "invalid minimal-size");
- }
- else if (childTag->GetName() == "minimal-spacing") {
- if (!::Scan(childTag->GetArgument(), minimalSpacing))
- Abort(tag, "invalid minimal-spacing");
- }
- end_for;
- }
-
- CompositeLayer* compositeLayer =
- CompositeLayer::Create(technology, name, type, minimalSize, minimalSpacing);
-
- for_each_tag(childTag, tag->GetTags()) {
- if (childTag->GetName() == "basic-layer")
- AddBasicLayerFromTag(compositeLayer, childTag);
- if (childTag->GetName() == "composite-layer")
- AddCompositeLayerFromTag(compositeLayer, childTag);
- end_for;
- }
-}
-
-static Technology* CreateTechnologyFromTag(DataBase* dataBase, Tag* tag)
-// *********************************************************************
-{
- Name name;
- unsigned precision;
- unsigned gridStep = 1;
-
- for_each_tag(childTag, tag->GetTags()) {
- if (childTag->GetName() == "name") {
- name = childTag->GetArgument();
- }
- else if (childTag->GetName() == "precision") {
- if (!::Scan(childTag->GetArgument(), precision))
- Abort(tag, "invalid precision");
- if (GetMaximalPrecisionAllowed() < precision)
- Abort(childTag, "too big precision (not allowed)");
- }
- else if (childTag->GetName() == "grid-step") {
- if (!::Scan(childTag->GetArgument(), gridStep))
- Abort(tag, "invalid grid-step");
- if (!gridStep)
- Abort(childTag, "too small grid step (not allowed)");
- }
- end_for;
- }
-
- if (name.IsEmpty())
- Abort(tag, "undefined technology name");
-
- Technology* technology = Technology::Create(dataBase, name);
-
- SetPrecision(precision);
- SetGridStep(gridStep);
-
- for_each_tag(childTag, tag->GetTags()) {
- if (childTag->GetName() == "basic-layer")
- CreateBasicLayerFromTag(technology, childTag);
- else if (childTag->GetName() == "composite-layer")
- CreateCompositeLayerFromTag(technology, childTag);
- end_for;
- }
-
- return technology;
-}
-
-
-
// ****************************************************************************************************
// Technology implementation
// ****************************************************************************************************
Technology::Technology(DataBase* dataBase, const Name& name)
// *********************************************************
-: Inherit(),
- _dataBase(dataBase),
- _name(name),
- _layerMap(),
- _layerList()
+: Inherit(),
+ _dataBase(dataBase),
+ _name(name),
+ _layerMap(),
+ _layerList()
{
- if (!_dataBase)
- throw Error("Can't create " + _TName("Technology") + " : null data base");
+ if (!_dataBase)
+ throw Error("Can't create " + _TName("Technology") + " : null data base");
- if (_dataBase->GetTechnology())
- throw Error("Can't create " + _TName("Technology") + " : already exists");
+ if (_dataBase->GetTechnology())
+ throw Error("Can't create " + _TName("Technology") + " : already exists");
- if (_name.IsEmpty())
- throw Error("Can't create " + _TName("Technology") + " : empty name");
+ if (_name.IsEmpty())
+ throw Error("Can't create " + _TName("Technology") + " : empty name");
}
Technology* Technology::Create(DataBase* dataBase, const Name& name)
// *****************************************************************
{
- Technology* technology = new Technology(dataBase, name);
+ Technology* technology = new Technology(dataBase, name);
- technology->_PostCreate();
+ technology->_PostCreate();
- return technology;
-}
-
-Technology* Technology::CreateFromFile(DataBase* dataBase, const string& filePathName)
-// ***********************************************************************************
-{
- Tag* tag = NULL;
- Technology* technology = NULL;
-
- try {
- tag = new Tag(filePathName, "technology");
- technology = CreateTechnologyFromTag(dataBase, tag);
- delete tag;
- }
- catch (...) {
- if (technology) technology->Delete();
- if (tag) delete tag;
- throw;
- }
-
- return technology;
+ return technology;
}
BasicLayer* Technology::GetBasicLayer(const Name& name) const
// **********************************************************
{
- Layer* layer = GetLayer(name);
- return (layer && is_a(layer)) ? (BasicLayer*)layer : NULL;
+ Layer* layer = GetLayer(name);
+ return (layer && is_a(layer)) ? (BasicLayer*)layer : NULL;
}
CompositeLayer* Technology::GetCompositeLayer(const Name& name) const
// ******************************************************************
{
- Layer* layer = GetLayer(name);
- return (layer && is_a(layer)) ? (CompositeLayer*)layer : NULL;
+ Layer* layer = GetLayer(name);
+ return (layer && is_a(layer)) ? (CompositeLayer*)layer : NULL;
}
BasicLayers Technology::GetBasicLayers() const
// *******************************************
{
- // return GetLayers().GetSubSet();
- return SubTypeCollection(GetLayers());
+ // return GetLayers().GetSubSet();
+ return SubTypeCollection(GetLayers());
}
BasicLayers Technology::GetBasicLayers(const Layer::Mask& mask) const
// ******************************************************************
{
- return Technology_BasicLayers(this, mask);
+ return Technology_BasicLayers(this, mask);
}
CompositeLayers Technology::GetCompositeLayers() const
// ***************************************************
{
- // return GetLayers().GetSubSet();
- return SubTypeCollection(GetLayers());
+ // return GetLayers().GetSubSet();
+ return SubTypeCollection(GetLayers());
}
void Technology::SetName(const Name& name)
// ***************************************
{
- if (name != _name) {
- if (name.IsEmpty())
- throw Error("Can't change technology name : empty name");
+ if (name != _name) {
+ if (name.IsEmpty())
+ throw Error("Can't change technology name : empty name");
- _name = name;
- }
+ _name = name;
+ }
}
void Technology::_PostCreate()
// ***************************
{
- Inherit::_PostCreate();
+ Inherit::_PostCreate();
- _dataBase->_SetTechnology(this);
+ _dataBase->_SetTechnology(this);
}
void Technology::_PreDelete()
// **************************
{
- Inherit::_PreDelete();
+ Inherit::_PreDelete();
- for_each_layer(layer, GetLayers()) layer->Delete(); end_for;
+ for_each_layer(layer, GetLayers()) layer->Delete(); end_for;
- _dataBase->_SetTechnology(NULL);
+ _dataBase->_SetTechnology(NULL);
}
string Technology::_GetString() const
// **********************************
{
- string s = Inherit::_GetString();
- s.insert(s.length() - 1, " " + GetString(_name));
- return s;
+ string s = Inherit::_GetString();
+ s.insert(s.length() - 1, " " + GetString(_name));
+ return s;
}
Record* Technology::_GetRecord() const
// *****************************
{
- Record* record = Inherit::_GetRecord();
- if (record) {
- record->Add(GetSlot("DataBase", _dataBase));
- record->Add(GetSlot("Name", &_name));
- record->Add(GetSlot("Layers", &_layerList));
- }
- return record;
+ Record* record = Inherit::_GetRecord();
+ if (record) {
+ record->Add(GetSlot("DataBase", _dataBase));
+ record->Add(GetSlot("Name", &_name));
+ record->Add(GetSlot("Layers", &_layerList));
+ }
+ return record;
}
// ****************************************************************************************************
@@ -470,32 +207,32 @@ Record* Technology::_GetRecord() const
Technology::LayerMap::LayerMap()
// *****************************
-: Inherit()
+: Inherit()
{
}
Name Technology::LayerMap::_GetKey(Layer* layer) const
// ***************************************************
{
- return layer->GetName();
+ return layer->getName();
}
unsigned Technology::LayerMap::_GetHashValue(Name name) const
// **********************************************************
{
- return ( (unsigned int)( (unsigned long)name._GetSharedName() ) ) / 8;
+ return ( (unsigned int)( (unsigned long)name._GetSharedName() ) ) / 8;
}
Layer* Technology::LayerMap::_GetNextElement(Layer* layer) const
// *************************************************************
{
- return layer->_GetNextOfTechnologyLayerMap();
+ return layer->_getNextOfTechnologyLayerMap();
}
void Technology::LayerMap::_SetNextElement(Layer* layer, Layer* nextLayer) const
// *****************************************************************************
{
- layer->_SetNextOfTechnologyLayerMap(nextLayer);
+ layer->_setNextOfTechnologyLayerMap(nextLayer);
};
@@ -506,58 +243,58 @@ void Technology::LayerMap::_SetNextElement(Layer* layer, Layer* nextLayer) const
Technology_BasicLayers::Technology_BasicLayers()
// *********************************************
-: Inherit(),
- _technology(NULL),
- _mask(0)
+: Inherit(),
+ _technology(NULL),
+ _mask(0)
{
}
Technology_BasicLayers::Technology_BasicLayers(const Technology* technology, const Layer::Mask& mask)
// **************************************************************************************************
-: Inherit(),
- _technology(technology),
- _mask(mask)
+: Inherit(),
+ _technology(technology),
+ _mask(mask)
{
}
Technology_BasicLayers::Technology_BasicLayers(const Technology_BasicLayers& basicLayers)
// **************************************************************************************
-: Inherit(),
- _technology(basicLayers._technology),
- _mask(basicLayers._mask)
+: Inherit(),
+ _technology(basicLayers._technology),
+ _mask(basicLayers._mask)
{
}
Technology_BasicLayers& Technology_BasicLayers::operator=(const Technology_BasicLayers& basicLayers)
// *************************************************************************************************
{
- _technology = basicLayers._technology;
- _mask = basicLayers._mask;
- return *this;
+ _technology = basicLayers._technology;
+ _mask = basicLayers._mask;
+ return *this;
}
Collection* Technology_BasicLayers::GetClone() const
// **************************************************************
{
- return new Technology_BasicLayers(*this);
+ return new Technology_BasicLayers(*this);
}
Locator* Technology_BasicLayers::GetLocator() const
// *************************************************************
{
- return new Locator(_technology, _mask);
+ return new Locator(_technology, _mask);
}
string Technology_BasicLayers::_GetString() const
// **********************************************
{
- string s = "<" + _TName("Technology::BasicLayers");
- if (_technology) {
- s += " " + GetString(_technology);
- s += " " + GetString(_mask);
- }
- s += ">";
- return s;
+ string s = "<" + _TName("Technology::BasicLayers");
+ if (_technology) {
+ s += " " + GetString(_technology);
+ s += " " + GetString(_mask);
+ }
+ s += ">";
+ return s;
}
@@ -568,82 +305,82 @@ string Technology_BasicLayers::_GetString() const
Technology_BasicLayers::Locator::Locator()
// ***************************************
-: Inherit(),
- _technology(NULL),
- _mask(0),
- _basicLayerLocator()
+: Inherit(),
+ _technology(NULL),
+ _mask(0),
+ _basicLayerLocator()
{
}
Technology_BasicLayers::Locator::Locator(const Technology* technology, const Layer::Mask& mask)
// ********************************************************************************************
-: Inherit(),
- _technology(technology),
- _mask(mask),
- _basicLayerLocator()
+: Inherit(),
+ _technology(technology),
+ _mask(mask),
+ _basicLayerLocator()
{
- if (_technology) {
- _basicLayerLocator = _technology->GetBasicLayers().GetLocator();
- while (_basicLayerLocator.IsValid() && !(_basicLayerLocator.GetElement()->GetMask() & _mask))
- _basicLayerLocator.Progress();
- }
+ if (_technology) {
+ _basicLayerLocator = _technology->GetBasicLayers().GetLocator();
+ while (_basicLayerLocator.IsValid() && !(_basicLayerLocator.GetElement()->getMask() & _mask))
+ _basicLayerLocator.Progress();
+ }
}
Technology_BasicLayers::Locator::Locator(const Locator& locator)
// *************************************************************
-: Inherit(),
- _technology(locator._technology),
- _mask(locator._mask),
- _basicLayerLocator(locator._basicLayerLocator)
+: Inherit(),
+ _technology(locator._technology),
+ _mask(locator._mask),
+ _basicLayerLocator(locator._basicLayerLocator)
{
}
Technology_BasicLayers::Locator& Technology_BasicLayers::Locator::operator=(const Locator& locator)
// ************************************************************************************************
{
- _technology = locator._technology;
- _mask = locator._mask;
- _basicLayerLocator = locator._basicLayerLocator;
- return *this;
+ _technology = locator._technology;
+ _mask = locator._mask;
+ _basicLayerLocator = locator._basicLayerLocator;
+ return *this;
}
BasicLayer* Technology_BasicLayers::Locator::GetElement() const
// ************************************************************
{
- return _basicLayerLocator.GetElement();
+ return _basicLayerLocator.GetElement();
}
Locator* Technology_BasicLayers::Locator::GetClone() const
// ********************************************************************
{
- return new Locator(*this);
+ return new Locator(*this);
}
bool Technology_BasicLayers::Locator::IsValid() const
// **************************************************
{
- return _basicLayerLocator.IsValid();
+ return _basicLayerLocator.IsValid();
}
void Technology_BasicLayers::Locator::Progress()
// *********************************************
{
- do {
- _basicLayerLocator.Progress();
- }
- while (_basicLayerLocator.IsValid() && !(_basicLayerLocator.GetElement()->GetMask() & _mask));
+ do {
+ _basicLayerLocator.Progress();
+ }
+ while (_basicLayerLocator.IsValid() && !(_basicLayerLocator.GetElement()->getMask() & _mask));
}
string Technology_BasicLayers::Locator::_GetString() const
// *******************************************************
{
- string s = "<" + _TName("Technology::BasicLayers::Locator");
- if (_technology) {
- s += " " + GetString(_technology);
- s += " " + GetString(_mask);
- }
- s += ">";
- return s;
+ string s = "<" + _TName("Technology::BasicLayers::Locator");
+ if (_technology) {
+ s += " " + GetString(_technology);
+ s += " " + GetString(_mask);
+ }
+ s += ">";
+ return s;
}
} // End of Hurricane namespace.
diff --git a/hurricane/src/hurricane/Technology.h b/hurricane/src/hurricane/Technology.h
index 1287fa7b..4b977978 100644
--- a/hurricane/src/hurricane/Technology.h
+++ b/hurricane/src/hurricane/Technology.h
@@ -63,7 +63,6 @@ class Technology : public DBo {
protected: Technology(DataBase* dataBase, const Name& name);
public: static Technology* Create(DataBase* dataBase, const Name& name);
- public: static Technology* CreateFromFile(DataBase* dataBase, const string& filePathName);
// Accessors
// *********
diff --git a/hurricane/src/hurricane/Vertical.cpp b/hurricane/src/hurricane/Vertical.cpp
index c458e090..d385945b 100644
--- a/hurricane/src/hurricane/Vertical.cpp
+++ b/hurricane/src/hurricane/Vertical.cpp
@@ -70,7 +70,7 @@ Box Vertical::GetBoundingBox() const
Box Vertical::GetBoundingBox(const BasicLayer* basicLayer) const
// *******************************************************
{
- if (!GetLayer()->Contains(basicLayer)) return Box();
+ if (!GetLayer()->contains(basicLayer)) return Box();
Unit size = GetHalfWidth() + _GetSize(basicLayer);
Unit extention = _GetExtention(basicLayer);
diff --git a/hurricane/src/viewer/CellWidget.cpp b/hurricane/src/viewer/CellWidget.cpp
index 79f8303c..58d1604c 100644
--- a/hurricane/src/viewer/CellWidget.cpp
+++ b/hurricane/src/viewer/CellWidget.cpp
@@ -181,12 +181,12 @@ CellWidget::CellWidget(Cell* cell,
if (technology) {
for_each_basic_layer(basiclayer, technology->GetBasicLayers()) {
_basicLayersBrush[basiclayer] =
- ::getBrush(basiclayer->GetFillPattern(),
- basiclayer->GetRedValue(),
- basiclayer->GetGreenValue(),
- basiclayer->GetBlueValue());
+ ::getBrush(basiclayer->getFillPattern(),
+ basiclayer->getRedValue(),
+ basiclayer->getGreenValue(),
+ basiclayer->getBlueValue());
_basicLayersPen[basiclayer] =
- QPen(QColor(basiclayer->GetRedValue(), basiclayer->GetGreenValue(), basiclayer->GetBlueValue()));
+ QPen(QColor(basiclayer->getRedValue(), basiclayer->getGreenValue(), basiclayer->getBlueValue()));
end_for;
}
}
@@ -768,7 +768,7 @@ CellWidget::isVisible(BasicLayer* layer) const
//throw Error(NULL_LAYER, __FILE__, __LINE__);
}
- return (_visibleLayerMask & layer->GetMask());
+ return (_visibleLayerMask & layer->getMask());
}
bool
@@ -778,7 +778,7 @@ CellWidget::isDrawable(BasicLayer* layer) const
//throw Error(NULL_LAYER, __FILE__, __LINE__);
}
- return (layer->GetDisplayThreshold() <= _scale);
+ return (layer->getDisplayThreshold() <= _scale);
}
@@ -911,10 +911,10 @@ CellWidget::setVisible(BasicLayer* layer,
{
if (isVisible(layer) != visible) {
if (visible) {
- _visibleLayerMask |= layer->GetMask();
+ _visibleLayerMask |= layer->getMask();
}
else {
- _visibleLayerMask &= ~layer->GetMask();
+ _visibleLayerMask &= ~layer->getMask();
}
onSetVisible(layer, visible);
@@ -925,7 +925,7 @@ CellWidget::setVisible(BasicLayer* layer,
// invalidate();
//}
- if (cell && !cell->GetSlices(layer->GetMask()).IsEmpty() && isDrawable(layer)) {
+ if (cell && !cell->GetSlices(layer->getMask()).IsEmpty() && isDrawable(layer)) {
invalidate();
}
}
@@ -1798,7 +1798,7 @@ void CellWidget::drawContent(const Instance* instance, const BasicLayer* basicLa
void CellWidget::drawSlice(const Slice* slice, const BasicLayer* basicLayer, const H::Box& updateArea, const Transformation& transformation) const {
- if (slice->GetLayer()->Contains(basicLayer)) {
+ if (slice->GetLayer()->contains(basicLayer)) {
if (slice->GetBoundingBox().intersect(updateArea)) {
//if ((basicLayer == _layer->_GetSymbolicBasicLayer()) || (3 < view->GetScale()))
for_each_go(go, slice->GetGosUnder(updateArea)) {
diff --git a/hurricane/src/viewer/LayersWidget.cpp b/hurricane/src/viewer/LayersWidget.cpp
index 956f03ed..f9f11566 100644
--- a/hurricane/src/viewer/LayersWidget.cpp
+++ b/hurricane/src/viewer/LayersWidget.cpp
@@ -25,7 +25,7 @@ LayersWidget::LayersWidget(QWidget* parent)
//connect(checkBox, SIGNAL(toggled(bool)),
// renderArea, SLOT(setAntialiased(bool)));
- string layerName = GetString(basicLayer->GetName());
+ string layerName = GetString(basicLayer->getName());
QLabel* label = new QLabel(tr(layerName.c_str()));
widgets.insert(label);
mainLayout->addWidget(label, line, 1, Qt::AlignRight);