From 0eb89cad321a39dfe6c89fa2046b912270872977 Mon Sep 17 00:00:00 2001 From: Christophe Alexandre Date: Fri, 14 Mar 2008 16:31:18 +0000 Subject: [PATCH] Cleaning in progress in Hurricane --- hurricane/doc/hurricane/CMakeLists.txt | 4 +- hurricane/doc/hurricane/doxyfile | 1467 +++++++++++++++-- hurricane/src/editor/InstanceGraphicsItem.cpp | 2 +- hurricane/src/editor/SegmentFigure.cpp | 14 +- hurricane/src/hurricane/BasicLayer.cpp | 109 +- hurricane/src/hurricane/BasicLayer.h | 34 +- hurricane/src/hurricane/CellCollections.cpp | 4 +- hurricane/src/hurricane/CompositeLayer.cpp | 278 ++-- hurricane/src/hurricane/CompositeLayer.h | 90 +- hurricane/src/hurricane/Contact.cpp | 63 +- hurricane/src/hurricane/DBo.h | 42 +- hurricane/src/hurricane/Horizontal.cpp | 2 +- hurricane/src/hurricane/HyperNet.cpp | 904 +++++----- hurricane/src/hurricane/Layer.cpp | 108 +- hurricane/src/hurricane/Layer.h | 68 +- hurricane/src/hurricane/Pad.cpp | 8 +- hurricane/src/hurricane/Segment.cpp | 496 +++--- hurricane/src/hurricane/Slice.cpp | 89 +- hurricane/src/hurricane/Technology.cpp | 523 ++---- hurricane/src/hurricane/Technology.h | 1 - hurricane/src/hurricane/Vertical.cpp | 2 +- hurricane/src/viewer/CellWidget.cpp | 22 +- hurricane/src/viewer/LayersWidget.cpp | 2 +- 23 files changed, 2523 insertions(+), 1809 deletions(-) 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);