From 384539f7cc9feaa7ef7cee385cce472c6966c843 Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 27 Apr 2009 00:24:16 +0200 Subject: Adding ue1 --- ue1/Makefile | 29 + ue1/angabe.pdf | Bin 0 -> 194759 bytes ue1/doxygen.conf | 1299 ++++++++++++++++++++ ue1/doxygen/annotated.html | 39 + ue1/doxygen/cbitmap_8h-source.html | 106 ++ ue1/doxygen/cfile_8h-source.html | 62 + ue1/doxygen/classCBitmap-members.html | 44 + ue1/doxygen/classCBitmap.html | 497 ++++++++ ue1/doxygen/classCBitmap.png | Bin 0 -> 297 bytes ue1/doxygen/classCFile-members.html | 34 + ue1/doxygen/classCFile.html | 292 +++++ ue1/doxygen/classCFile.png | Bin 0 -> 298 bytes ue1/doxygen/classCFile_1_1FileError-members.html | 29 + ue1/doxygen/classCFile_1_1FileError.html | 83 ++ ue1/doxygen/classCPixelFormat-members.html | 33 + ue1/doxygen/classCPixelFormat.html | 253 ++++ ue1/doxygen/classCPixelFormat.png | Bin 0 -> 429 bytes ...ssCPixelFormat_1_1PixelFormatError-members.html | 29 + .../classCPixelFormat_1_1PixelFormatError.html | 83 ++ ue1/doxygen/classCPixelFormat__24-members.html | 35 + ue1/doxygen/classCPixelFormat__24.html | 233 ++++ ue1/doxygen/classCPixelFormat__24.png | Bin 0 -> 427 bytes ue1/doxygen/classCScriptparser-members.html | 34 + ue1/doxygen/classCScriptparser.html | 297 +++++ .../classCScriptparser_1_1ParserError-members.html | 32 + ue1/doxygen/classCScriptparser_1_1ParserError.html | 204 +++ ue1/doxygen/cpixelformat_8h-source.html | 59 + ue1/doxygen/cpixelformat__24_8h-source.html | 48 + ue1/doxygen/cscriptparser_8h-source.html | 80 ++ ue1/doxygen/doxygen.css | 358 ++++++ ue1/doxygen/doxygen.png | Bin 0 -> 1281 bytes ue1/doxygen/files.html | 27 + ue1/doxygen/functions.html | 172 +++ ue1/doxygen/functions_func.html | 124 ++ ue1/doxygen/functions_vars.html | 80 ++ ue1/doxygen/hierarchy.html | 43 + ue1/doxygen/index.html | 22 + ue1/doxygen/namespaces.html | 23 + ue1/doxygen/namespacestd.html | 32 + ...tructCBitmap_1_1BITMAP__FILEHEADER-members.html | 32 + .../structCBitmap_1_1BITMAP__FILEHEADER.html | 112 ++ ...tructCBitmap_1_1BITMAP__INFOHEADER-members.html | 39 + .../structCBitmap_1_1BITMAP__INFOHEADER.html | 231 ++++ ue1/doxygen/tab_b.gif | Bin 0 -> 35 bytes ue1/doxygen/tab_l.gif | Bin 0 -> 706 bytes ue1/doxygen/tab_r.gif | Bin 0 -> 2585 bytes ue1/doxygen/tabs.css | 102 ++ ue1/imgsynth/Makefile | 39 + ue1/imgsynth/cbitmap.cpp | 208 ++++ ue1/imgsynth/cbitmap.h | 225 ++++ ue1/imgsynth/cfile.h | 121 ++ ue1/imgsynth/cpixelformat.h | 106 ++ ue1/imgsynth/cpixelformat_24.cpp | 47 + ue1/imgsynth/cpixelformat_24.h | 78 ++ ue1/imgsynth/cscriptparser.cpp | 208 ++++ ue1/imgsynth/cscriptparser.h | 181 +++ ue1/imgsynth/imgsynth.cbp | 60 + ue1/imgsynth/imgsynth.cpp | 84 ++ ue1/imgsynth/imgsynth.layout | 7 + ue1/imgsynth/test/input | 6 + ue1/imgsynth/test/test.sh | 12 + ue1/imgsynth/test/yellow_man_in.bmp | Bin 0 -> 530 bytes ue1/imgsynth/test/yellow_man_out.bmp | Bin 0 -> 530 bytes ue1/imgsynth/test/yellow_man_ref.bmp | Bin 0 -> 530 bytes ue1/protokoll.pdf | Bin 0 -> 283850 bytes ue1/protokoll/ClassDiagram1.png | Bin 0 -> 45422 bytes ue1/protokoll/Makefile | 19 + ue1/protokoll/fancyheadings.sty | 166 +++ ue1/protokoll/imgsynth.vpp | Bin 0 -> 53886 bytes ue1/protokoll/oop_prot.sty | 222 ++++ ue1/protokoll/protokoll.tex | 226 ++++ 71 files changed, 7346 insertions(+) create mode 100644 ue1/Makefile create mode 100644 ue1/angabe.pdf create mode 100644 ue1/doxygen.conf create mode 100644 ue1/doxygen/annotated.html create mode 100644 ue1/doxygen/cbitmap_8h-source.html create mode 100644 ue1/doxygen/cfile_8h-source.html create mode 100644 ue1/doxygen/classCBitmap-members.html create mode 100644 ue1/doxygen/classCBitmap.html create mode 100644 ue1/doxygen/classCBitmap.png create mode 100644 ue1/doxygen/classCFile-members.html create mode 100644 ue1/doxygen/classCFile.html create mode 100644 ue1/doxygen/classCFile.png create mode 100644 ue1/doxygen/classCFile_1_1FileError-members.html create mode 100644 ue1/doxygen/classCFile_1_1FileError.html create mode 100644 ue1/doxygen/classCPixelFormat-members.html create mode 100644 ue1/doxygen/classCPixelFormat.html create mode 100644 ue1/doxygen/classCPixelFormat.png create mode 100644 ue1/doxygen/classCPixelFormat_1_1PixelFormatError-members.html create mode 100644 ue1/doxygen/classCPixelFormat_1_1PixelFormatError.html create mode 100644 ue1/doxygen/classCPixelFormat__24-members.html create mode 100644 ue1/doxygen/classCPixelFormat__24.html create mode 100644 ue1/doxygen/classCPixelFormat__24.png create mode 100644 ue1/doxygen/classCScriptparser-members.html create mode 100644 ue1/doxygen/classCScriptparser.html create mode 100644 ue1/doxygen/classCScriptparser_1_1ParserError-members.html create mode 100644 ue1/doxygen/classCScriptparser_1_1ParserError.html create mode 100644 ue1/doxygen/cpixelformat_8h-source.html create mode 100644 ue1/doxygen/cpixelformat__24_8h-source.html create mode 100644 ue1/doxygen/cscriptparser_8h-source.html create mode 100644 ue1/doxygen/doxygen.css create mode 100644 ue1/doxygen/doxygen.png create mode 100644 ue1/doxygen/files.html create mode 100644 ue1/doxygen/functions.html create mode 100644 ue1/doxygen/functions_func.html create mode 100644 ue1/doxygen/functions_vars.html create mode 100644 ue1/doxygen/hierarchy.html create mode 100644 ue1/doxygen/index.html create mode 100644 ue1/doxygen/namespaces.html create mode 100644 ue1/doxygen/namespacestd.html create mode 100644 ue1/doxygen/structCBitmap_1_1BITMAP__FILEHEADER-members.html create mode 100644 ue1/doxygen/structCBitmap_1_1BITMAP__FILEHEADER.html create mode 100644 ue1/doxygen/structCBitmap_1_1BITMAP__INFOHEADER-members.html create mode 100644 ue1/doxygen/structCBitmap_1_1BITMAP__INFOHEADER.html create mode 100644 ue1/doxygen/tab_b.gif create mode 100644 ue1/doxygen/tab_l.gif create mode 100644 ue1/doxygen/tab_r.gif create mode 100644 ue1/doxygen/tabs.css create mode 100644 ue1/imgsynth/Makefile create mode 100644 ue1/imgsynth/cbitmap.cpp create mode 100644 ue1/imgsynth/cbitmap.h create mode 100644 ue1/imgsynth/cfile.h create mode 100644 ue1/imgsynth/cpixelformat.h create mode 100644 ue1/imgsynth/cpixelformat_24.cpp create mode 100644 ue1/imgsynth/cpixelformat_24.h create mode 100644 ue1/imgsynth/cscriptparser.cpp create mode 100644 ue1/imgsynth/cscriptparser.h create mode 100644 ue1/imgsynth/imgsynth.cbp create mode 100644 ue1/imgsynth/imgsynth.cpp create mode 100644 ue1/imgsynth/imgsynth.layout create mode 100644 ue1/imgsynth/test/input create mode 100755 ue1/imgsynth/test/test.sh create mode 100644 ue1/imgsynth/test/yellow_man_in.bmp create mode 100644 ue1/imgsynth/test/yellow_man_out.bmp create mode 100644 ue1/imgsynth/test/yellow_man_ref.bmp create mode 100644 ue1/protokoll.pdf create mode 100644 ue1/protokoll/ClassDiagram1.png create mode 100644 ue1/protokoll/Makefile create mode 100644 ue1/protokoll/fancyheadings.sty create mode 100644 ue1/protokoll/imgsynth.vpp create mode 100644 ue1/protokoll/oop_prot.sty create mode 100644 ue1/protokoll/protokoll.tex (limited to 'ue1') diff --git a/ue1/Makefile b/ue1/Makefile new file mode 100644 index 0000000..90c4eca --- /dev/null +++ b/ue1/Makefile @@ -0,0 +1,29 @@ +# Makefile for ue1 +# Author: Manuel Mausz (0728348) +# Created: 14.04.2009 + +SUBDIRS= imgsynth +RECURSIVE_TARGETS= all-recursive debug test clean + +all: all-recursive + +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + (cd $$subdir && $(MAKE) $$target) \ + || eval $$failcom; \ + done; \ + test -z "$$fail" + +doxygen: + @doxygen doxygen.conf + +protokoll: + @echo "Making protokoll"; \ + (cd protokoll && $(MAKE)) + +.PHONY: protokoll doxygen clean + +# vim600: noet sw=8 ts=8 diff --git a/ue1/angabe.pdf b/ue1/angabe.pdf new file mode 100644 index 0000000..b10a838 Binary files /dev/null and b/ue1/angabe.pdf differ diff --git a/ue1/doxygen.conf b/ue1/doxygen.conf new file mode 100644 index 0000000..4ea8eec --- /dev/null +++ b/ue1/doxygen.conf @@ -0,0 +1,1299 @@ +# Doxyfile 1.5.3 + +# 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 = imgsynth + +# 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_NUMBER = + +# 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 = doxygen/ + +# 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 + +# 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 = YES + +# 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 = NO + +# 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 = YES + +# 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 = 8 + +# 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 = "module=\par Modulname:\n" +ALIASES += "func=\par Functionname:\n" +ALIASES += "method=\par Methodname:\n" +ALIASES += "globalvars=\par Global variables used:\n" +#ALIASES += "exceptions=\par Exceptions thrown:\n" +ALIASES += "conditions=\par Conditions:\n" + +# 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 + +# 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 + +#--------------------------------------------------------------------------- +# 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 = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# 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 = NO + +# 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 = NO + +# 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 = YES + +# 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 = 30 + +# 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 + +# 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 = NO + +# 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 = YES + +# 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 + +# 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 +#--------------------------------------------------------------------------- + +# 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 = imgsynth + +# 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 + +FILE_PATTERNS = + +# 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 = NO + +# 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 = + +# 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 = NO + +#--------------------------------------------------------------------------- +# 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 +#--------------------------------------------------------------------------- + +# 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 = NO + +# 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 = 5 + +# 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 +#--------------------------------------------------------------------------- + +# 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 = . + +# 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 = + +# 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 = + +# 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 = + +# 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 = NO + +# 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 = 4 + +# 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 +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# 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 = + +# 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 = NO + +# 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 = NO + +# 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 +#--------------------------------------------------------------------------- + +# 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 +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# 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 +#--------------------------------------------------------------------------- + +# 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 = + +# 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 +#--------------------------------------------------------------------------- + +# 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 = + +# 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 = + +# 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::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 = + +# 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 = + +# 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 = YES + +# 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 = NO + +# 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 = YES + +# 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 = YES + +# 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 + +# 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 = + +# 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 = NO + +# 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::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/ue1/doxygen/annotated.html b/ue1/doxygen/annotated.html new file mode 100644 index 0000000..64c98a9 --- /dev/null +++ b/ue1/doxygen/annotated.html @@ -0,0 +1,39 @@ + + +imgsynth: Class List + + + + + + +

imgsynth Class List

Here are the classes, structs, unions and interfaces with brief descriptions: + + + + + + + + + + +
CBitmapImplementation of CFile handling Windows Bitmaps
CBitmap::BITMAP_FILEHEADERWindows Bitmap File Header structure
CBitmap::BITMAP_INFOHEADERWindows Bitmap Info Header structure
CFileAbstract class for handling files. Needed for generic use in CScriptparser
CFile::FileErrorException thrown by implemententations of CFile
CPixelFormatAbstract class for handling different color bitcount of Bitmaps
CPixelFormat::PixelFormatErrorException thrown by implemententations of CPixelFormat
CPixelFormat_24Implementation of CPixelFormat handling 24bit color Windows Bitmaps
CScriptparserClass for parsing simple scriptfiles
CScriptparser::ParserErrorException thrown by CScriptparser
+
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/cbitmap_8h-source.html b/ue1/doxygen/cbitmap_8h-source.html new file mode 100644 index 0000000..18c43cb --- /dev/null +++ b/ue1/doxygen/cbitmap_8h-source.html @@ -0,0 +1,106 @@ + + +imgsynth: imgsynth/cbitmap.h Source File + + + + + +

imgsynth/cbitmap.h

00001 
+00008 #ifndef CBITMAP_H
+00009 #define CBITMAP_H
+00010 
+00011 #include "cfile.h"
+00012 
+00013 class CPixelFormat;
+00014 #include "cpixelformat.h"
+00015 
+00026 class CBitmap : public CFile
+00027 {
+00028   public:
+00038     CBitmap()
+00039       : m_pixeldata(NULL), m_pixelformat(NULL)
+00040     {
+00041       m_types.insert("BMP");
+00042     }
+00043 
+00053     ~CBitmap();
+00054 
+00066     void read(std::ifstream& in);
+00067 
+00078     void write(std::ofstream& out);
+00079 
+00091     void callFunc(const std::string& func, const std::list<std::string>& params);
+00092 
+00093 #ifdef DEBUG
+00094 
+00103     void dump(std::ostream& out);
+00104 #endif
+00105 
+00109 #pragma pack(push,1)
+00110     typedef struct
+00111     {
+00113       uint8_t  bfType[2];
+00115       uint32_t bfSize;
+00117       uint32_t bfReserved;
+00119       uint32_t bfOffBits;
+00120     } BITMAP_FILEHEADER;
+00121 #pragma pack(pop)
+00122 
+00126 #pragma pack(push,1)
+00127     typedef struct
+00128     {
+00130       uint32_t biSize;
+00132       int32_t  biWidth;
+00134       int32_t  biHeight;
+00136       uint16_t biPlanes;
+00138       uint16_t biBitCount;
+00140       uint32_t biCompression;
+00142       uint32_t biSizeImage;
+00144       int32_t  biXPelsPerMeter;
+00146       int32_t  biYPelsPerMeter;
+00148       uint32_t biClrUsed;
+00151       uint32_t biClrImportant;
+00152     } BITMAP_INFOHEADER;
+00153 #pragma pack(pop)
+00154 
+00164     BITMAP_FILEHEADER &getFileHeader()
+00165     {
+00166       return m_fileheader;
+00167     }
+00168 
+00178     BITMAP_INFOHEADER &getInfoHeader()
+00179     {
+00180       return m_infoheader;
+00181     }
+00182 
+00192     uint8_t *getPixelData()
+00193     {
+00194       return m_pixeldata;
+00195     }
+00196 
+00197   protected:
+00210     void fillrect(std::list<std::string> params);
+00211 
+00212     /* members */
+00214     BITMAP_FILEHEADER m_fileheader;
+00216     BITMAP_INFOHEADER m_infoheader;
+00218     uint8_t *m_pixeldata;
+00220     CPixelFormat *m_pixelformat;
+00221 };
+00222 
+00223 #endif
+00224 
+00225 /* vim: set et sw=2 ts=2: */
+

Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/cfile_8h-source.html b/ue1/doxygen/cfile_8h-source.html new file mode 100644 index 0000000..18fa26e --- /dev/null +++ b/ue1/doxygen/cfile_8h-source.html @@ -0,0 +1,62 @@ + + +imgsynth: imgsynth/cfile.h Source File + + + + + +

imgsynth/cfile.h

00001 
+00009 #ifndef CFILE_H
+00010 #define CFILE_H
+00011 
+00012 #include <string>
+00013 #include <set>
+00014 #include <list>
+00015 #include <fstream>
+00016 #include <stdexcept>
+00017 
+00029 class CFile
+00030 {
+00031   public:
+00036     class FileError : public std::invalid_argument {
+00037       public:
+00047         FileError(const std::string& what)
+00048           : std::invalid_argument(what)
+00049         {}
+00050     };
+00051 
+00061     virtual ~CFile()
+00062     {};
+00063 
+00073     virtual void read(std::ifstream& in) = 0;
+00074 
+00084     virtual void write(std::ofstream& out) = 0;
+00085 
+00097     virtual void callFunc(const std::string& func, const std::list<std::string>& params) = 0;
+00098 
+00108     bool supportsType(const std::string& type)
+00109     {
+00110       return (m_types.find(type) == m_types.end()) ? false : true;
+00111     }
+00112 
+00113   protected:
+00114     /* members */
+00116     std::set<std::string> m_types;
+00117 };
+00118 
+00119 #endif
+00120 
+00121 /* vim: set et sw=2 ts=2: */
+

Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCBitmap-members.html b/ue1/doxygen/classCBitmap-members.html new file mode 100644 index 0000000..0c32ba6 --- /dev/null +++ b/ue1/doxygen/classCBitmap-members.html @@ -0,0 +1,44 @@ + + +imgsynth: Member List + + + + + + +

CBitmap Member List

This is the complete list of members for CBitmap, including all inherited members.

+ + + + + + + + + + + + + + + + +
callFunc(const std::string &func, const std::list< std::string > &params)CBitmap [virtual]
CBitmap()CBitmap [inline]
fillrect(std::list< std::string > params)CBitmap [protected]
getFileHeader()CBitmap [inline]
getInfoHeader()CBitmap [inline]
getPixelData()CBitmap [inline]
m_fileheaderCBitmap [protected]
m_infoheaderCBitmap [protected]
m_pixeldataCBitmap [protected]
m_pixelformatCBitmap [protected]
m_typesCFile [protected]
read(std::ifstream &in)CBitmap [virtual]
supportsType(const std::string &type)CFile [inline]
write(std::ofstream &out)CBitmap [virtual]
~CBitmap()CBitmap
~CFile()CFile [inline, virtual]


Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCBitmap.html b/ue1/doxygen/classCBitmap.html new file mode 100644 index 0000000..5fb5270 --- /dev/null +++ b/ue1/doxygen/classCBitmap.html @@ -0,0 +1,497 @@ + + +imgsynth: CBitmap Class Reference + + + + + + +

CBitmap Class Reference

Implementation of CFile handling Windows Bitmaps. +More... +

+#include <cbitmap.h> +

+

+Inheritance diagram for CBitmap:
+
+ +

+ +CFile + +
+ +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 CBitmap ()
 Default ctor.
 ~CBitmap ()
 Default dtor.
void read (std::ifstream &in)
 Reads Windows Bitmap from filestream. On error an exception is thrown.
void write (std::ofstream &out)
 Writes Windows Bitmap to filestream.
void callFunc (const std::string &func, const std::list< std::string > &params)
 Delegates the function and its parameters to the correct internal method.
BITMAP_FILEHEADERgetFileHeader ()
 Returns reference to fileheader structure of bitmap.
BITMAP_INFOHEADERgetInfoHeader ()
 Returns reference to infoheader structure of bitmap.
uint8_t * getPixelData ()
 Returns pointer to pixelbuffer.

Protected Member Functions

void fillrect (std::list< std::string > params)
 Fills rectangle in image starting on position x, y width size width, height and color red, green, blue.

Protected Attributes

BITMAP_FILEHEADER m_fileheader
BITMAP_INFOHEADER m_infoheader
uint8_t * m_pixeldata
CPixelFormatm_pixelformat

Classes

struct  BITMAP_FILEHEADER
 Windows Bitmap File Header structure. More...
struct  BITMAP_INFOHEADER
 Windows Bitmap Info Header structure. More...
+


Detailed Description

+Implementation of CFile handling Windows Bitmaps. +

+In order to support operations on bitmaps with different color bitcounts different implementations of CPixelFormat are used. These classes are allowed to modify the bitmap headers and pixelbuffer directly.

+On error CFile::FileError is thrown.


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
CBitmap::CBitmap (  )  [inline]
+
+
+ +

+Default ctor. +

+

Methodname:
CBitmap
+
Parameters:
+ + +
- 
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+ +

+
+ + + + + + + + +
CBitmap::~CBitmap (  ) 
+
+
+ +

+Default dtor. +

+

Methodname:
~CBitmap
+
Parameters:
+ + +
- 
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+


Member Function Documentation

+ +
+
+ + + + + + + + + +
void CBitmap::read (std::ifstream &  in  )  [virtual]
+
+
+ +

+Reads Windows Bitmap from filestream. On error an exception is thrown. +

+

Methodname:
read
+
Parameters:
+ + +
in filestream to read data from
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + + +
CFile::FileError 
bad_alloc 
+
+
Conditions:
none
+ +

Implements CFile.

+ +
+

+ +

+
+ + + + + + + + + +
void CBitmap::write (std::ofstream &  out  )  [virtual]
+
+
+ +

+Writes Windows Bitmap to filestream. +

+

Methodname:
write
+
Parameters:
+ + +
out filestream to read data from
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + + +
FileError 
bad_alloc 
+
+
Conditions:
none
+ +

Implements CFile.

+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
void CBitmap::callFunc (const std::string &  func,
const std::list< std::string > &  params 
) [virtual]
+
+
+ +

+Delegates the function and its parameters to the correct internal method. +

+

Methodname:
callFunc
+
Parameters:
+ + + +
func function name
params function parameters as list
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
ParserError 
+
+
Conditions:
none
+ +

Implements CFile.

+ +
+

+ +

+
+ + + + + + + + +
BITMAP_FILEHEADER& CBitmap::getFileHeader (  )  [inline]
+
+
+ +

+Returns reference to fileheader structure of bitmap. +

+

Methodname:
getFileHeader
+
Parameters:
+ + +
- 
+
+
Returns:
reference to fileheader structure
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+ +

+
+ + + + + + + + +
BITMAP_INFOHEADER& CBitmap::getInfoHeader (  )  [inline]
+
+
+ +

+Returns reference to infoheader structure of bitmap. +

+

Methodname:
getInfoHeader
+
Parameters:
+ + +
- 
+
+
Returns:
reference to infoheader structure
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+ +

+
+ + + + + + + + +
uint8_t* CBitmap::getPixelData (  )  [inline]
+
+
+ +

+Returns pointer to pixelbuffer. +

+

Methodname:
getPixelData
+
Parameters:
+ + +
- 
+
+
Returns:
pointer to pixelbuffer
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+ +

+
+ + + + + + + + + +
void CBitmap::fillrect (std::list< std::string >  params  )  [protected]
+
+
+ +

+Fills rectangle in image starting on position x, y width size width, height and color red, green, blue. +

+

Methodname:
fillrect
+
Parameters:
+ + +
params function parameters as list
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
FileError 
+
+
Conditions:
none
+Scriptfile syntax: fillrect(x, y, width, height, red, green, blue) +
+

+


Member Data Documentation

+ +
+
+ + + + +
BITMAP_FILEHEADER CBitmap::m_fileheader [protected]
+
+
+ +

+fileheader +

+

+ +

+
+ + + + +
BITMAP_INFOHEADER CBitmap::m_infoheader [protected]
+
+
+ +

+infoheader +

+

+ +

+
+ + + + +
uint8_t* CBitmap::m_pixeldata [protected]
+
+
+ +

+pointer to pixelbuffer +

+

+ +

+
+ + + + +
CPixelFormat* CBitmap::m_pixelformat [protected]
+
+
+ +

+pointer to CPixelFormat implementation +

+

+


The documentation for this class was generated from the following files: +
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCBitmap.png b/ue1/doxygen/classCBitmap.png new file mode 100644 index 0000000..b7259a1 Binary files /dev/null and b/ue1/doxygen/classCBitmap.png differ diff --git a/ue1/doxygen/classCFile-members.html b/ue1/doxygen/classCFile-members.html new file mode 100644 index 0000000..1fcbb67 --- /dev/null +++ b/ue1/doxygen/classCFile-members.html @@ -0,0 +1,34 @@ + + +imgsynth: Member List + + + + + + +

CFile Member List

This is the complete list of members for CFile, including all inherited members.

+ + + + + + +
callFunc(const std::string &func, const std::list< std::string > &params)=0CFile [pure virtual]
m_typesCFile [protected]
read(std::ifstream &in)=0CFile [pure virtual]
supportsType(const std::string &type)CFile [inline]
write(std::ofstream &out)=0CFile [pure virtual]
~CFile()CFile [inline, virtual]


Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCFile.html b/ue1/doxygen/classCFile.html new file mode 100644 index 0000000..729c872 --- /dev/null +++ b/ue1/doxygen/classCFile.html @@ -0,0 +1,292 @@ + + +imgsynth: CFile Class Reference + + + + + + +

CFile Class Reference

Abstract class for handling files. Needed for generic use in CScriptparser. +More... +

+#include <cfile.h> +

+

+Inheritance diagram for CFile:
+
+ +

+ +CBitmap + +
+ +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

virtual ~CFile ()
 Default dtor (virtual).
virtual void read (std::ifstream &in)=0
 Pure virtual method (interface). Should read data from filestream.
virtual void write (std::ofstream &out)=0
 Pure virtual method (interface). Should write data to filestream.
virtual void callFunc (const std::string &func, const std::list< std::string > &params)=0
 Pure virtual method (interface). Should delegate the function and its parameters to the correct internal method.
bool supportsType (const std::string &type)
 Check if filetype is supported by this implementation.

Protected Attributes

std::set< std::string > m_types

Classes

class  FileError
 Exception thrown by implemententations of CFile. More...
+


Detailed Description

+Abstract class for handling files. Needed for generic use in CScriptparser. +

+

Modulname:
cfile
+
Author:
Manuel Mausz, 0728348
+
Date:
17.04.2009
+Abstract class for handling files. Needed for generic use in CScriptparser.

+In order for CScriptparser to determine which instance of CFile supports which filetype, every implemententation need to insert their filetypes to the member m_types in their constructor.

+On error throw FileError.


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
virtual CFile::~CFile (  )  [inline, virtual]
+
+
+ +

+Default dtor (virtual). +

+

Methodname:
~CFile
+
Parameters:
+ + +
- 
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+


Member Function Documentation

+ +
+
+ + + + + + + + + +
virtual void CFile::read (std::ifstream &  in  )  [pure virtual]
+
+
+ +

+Pure virtual method (interface). Should read data from filestream. +

+

Methodname:
read
+
Parameters:
+ + +
in filestream to read data from
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
FileError 
+
+
Conditions:
none
+ +

Implemented in CBitmap.

+ +
+

+ +

+
+ + + + + + + + + +
virtual void CFile::write (std::ofstream &  out  )  [pure virtual]
+
+
+ +

+Pure virtual method (interface). Should write data to filestream. +

+

Methodname:
write
+
Parameters:
+ + +
out filestream to write data to
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
FileError 
+
+
Conditions:
none
+ +

Implemented in CBitmap.

+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
virtual void CFile::callFunc (const std::string &  func,
const std::list< std::string > &  params 
) [pure virtual]
+
+
+ +

+Pure virtual method (interface). Should delegate the function and its parameters to the correct internal method. +

+

Methodname:
callFunc
+
Parameters:
+ + + +
func function name
params function parameters as list
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
FileError 
+
+
Conditions:
none
+ +

Implemented in CBitmap.

+ +
+

+ +

+
+ + + + + + + + + +
bool CFile::supportsType (const std::string &  type  )  [inline]
+
+
+ +

+Check if filetype is supported by this implementation. +

+

Methodname:
supportsType
+
Parameters:
+ + +
type filetype
+
+
Returns:
true if filetype is supported. false otherwise
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+


Member Data Documentation

+ +
+
+ + + + +
std::set<std::string> CFile::m_types [protected]
+
+
+ +

+set of filetypes suppported by this implementation +

+

+


The documentation for this class was generated from the following file: +
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCFile.png b/ue1/doxygen/classCFile.png new file mode 100644 index 0000000..46179f9 Binary files /dev/null and b/ue1/doxygen/classCFile.png differ diff --git a/ue1/doxygen/classCFile_1_1FileError-members.html b/ue1/doxygen/classCFile_1_1FileError-members.html new file mode 100644 index 0000000..bfea97e --- /dev/null +++ b/ue1/doxygen/classCFile_1_1FileError-members.html @@ -0,0 +1,29 @@ + + +imgsynth: Member List + + + + + + +

CFile::FileError Member List

This is the complete list of members for CFile::FileError, including all inherited members.

+ +
FileError(const std::string &what)CFile::FileError [inline]


Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCFile_1_1FileError.html b/ue1/doxygen/classCFile_1_1FileError.html new file mode 100644 index 0000000..1448b26 --- /dev/null +++ b/ue1/doxygen/classCFile_1_1FileError.html @@ -0,0 +1,83 @@ + + +imgsynth: CFile::FileError Class Reference + + + + + + + +

CFile::FileError Class Reference

Exception thrown by implemententations of CFile. +More... +

+#include <cfile.h> +

+ +

+List of all members. + + + + + +

Public Member Functions

 FileError (const std::string &what)
 Default exception ctor.
+


Detailed Description

+Exception thrown by implemententations of CFile.

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + +
CFile::FileError::FileError (const std::string &  what  )  [inline]
+
+
+ +

+Default exception ctor. +

+

Methodname:
FileError
+
Parameters:
+ + +
what message to pass along
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+


The documentation for this class was generated from the following file: +
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCPixelFormat-members.html b/ue1/doxygen/classCPixelFormat-members.html new file mode 100644 index 0000000..80fd92d --- /dev/null +++ b/ue1/doxygen/classCPixelFormat-members.html @@ -0,0 +1,33 @@ + + +imgsynth: Member List + + + + + + +

CPixelFormat Member List

This is the complete list of members for CPixelFormat, including all inherited members.

+ + + + + +
CPixelFormat(CBitmap *bitmap)CPixelFormat [inline]
getBitCount()=0CPixelFormat [pure virtual]
m_bitmapCPixelFormat [protected]
setPixel(const uint32_t *pixel, const uint32_t x, const uint32_t y)=0CPixelFormat [pure virtual]
~CPixelFormat()CPixelFormat [inline, virtual]


Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCPixelFormat.html b/ue1/doxygen/classCPixelFormat.html new file mode 100644 index 0000000..b56105c --- /dev/null +++ b/ue1/doxygen/classCPixelFormat.html @@ -0,0 +1,253 @@ + + +imgsynth: CPixelFormat Class Reference + + + + + + +

CPixelFormat Class Reference

Abstract class for handling different color bitcount of Bitmaps. +More... +

+#include <cpixelformat.h> +

+

+Inheritance diagram for CPixelFormat:
+
+ +

+ +CPixelFormat_24 + +
+ +

+List of all members. + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 CPixelFormat (CBitmap *bitmap)
 Default ctor.
virtual ~CPixelFormat ()
 Default dtor (virtual).
virtual void setPixel (const uint32_t *pixel, const uint32_t x, const uint32_t y)=0
 Modifies pixel at coordinates x, y.
virtual uint32_t getBitCount ()=0
 returns color bitcount supported by this class

Protected Attributes

CBitmapm_bitmap

Classes

class  PixelFormatError
 Exception thrown by implemententations of CPixelFormat. More...
+


Detailed Description

+Abstract class for handling different color bitcount of Bitmaps. +

+Needed for generic use in CBitmap.

+On error throw PixelFormatError.


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + +
CPixelFormat::CPixelFormat (CBitmap bitmap  )  [inline]
+
+
+ +

+Default ctor. +

+

Methodname:
CBitmap
+
Parameters:
+ + +
bitmap pointer to CBitmap instance
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+ +

+
+ + + + + + + + +
virtual CPixelFormat::~CPixelFormat (  )  [inline, virtual]
+
+
+ +

+Default dtor (virtual). +

+

Methodname:
~CPixelFormat
+
Parameters:
+ + +
- 
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+


Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void CPixelFormat::setPixel (const uint32_t *  pixel,
const uint32_t  x,
const uint32_t  y 
) [pure virtual]
+
+
+ +

+Modifies pixel at coordinates x, y. +

+

Methodname:
setPixel
+
Parameters:
+ + + + +
pixel pointer to new pixel data
x x-coordinate
y y-coordinate
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
PixelFormatError 
+
+
Conditions:
none
+ +

Implemented in CPixelFormat_24.

+ +
+

+ +

+
+ + + + + + + + +
virtual uint32_t CPixelFormat::getBitCount (  )  [pure virtual]
+
+
+ +

+returns color bitcount supported by this class +

+

Methodname:
getBitCount
+
Parameters:
+ + +
- 
+
+
Returns:
color bitcount supported by this class
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +

Implemented in CPixelFormat_24.

+ +
+

+


Member Data Documentation

+ +
+
+ + + + +
CBitmap* CPixelFormat::m_bitmap [protected]
+
+
+ +

+pointer to CBitmap instance +

+

+


The documentation for this class was generated from the following file: +
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCPixelFormat.png b/ue1/doxygen/classCPixelFormat.png new file mode 100644 index 0000000..8d0021e Binary files /dev/null and b/ue1/doxygen/classCPixelFormat.png differ diff --git a/ue1/doxygen/classCPixelFormat_1_1PixelFormatError-members.html b/ue1/doxygen/classCPixelFormat_1_1PixelFormatError-members.html new file mode 100644 index 0000000..4b1466b --- /dev/null +++ b/ue1/doxygen/classCPixelFormat_1_1PixelFormatError-members.html @@ -0,0 +1,29 @@ + + +imgsynth: Member List + + + + + + +

CPixelFormat::PixelFormatError Member List

This is the complete list of members for CPixelFormat::PixelFormatError, including all inherited members.

+ +
PixelFormatError(const std::string &what)CPixelFormat::PixelFormatError [inline]


Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCPixelFormat_1_1PixelFormatError.html b/ue1/doxygen/classCPixelFormat_1_1PixelFormatError.html new file mode 100644 index 0000000..dce25c4 --- /dev/null +++ b/ue1/doxygen/classCPixelFormat_1_1PixelFormatError.html @@ -0,0 +1,83 @@ + + +imgsynth: CPixelFormat::PixelFormatError Class Reference + + + + + + + +

CPixelFormat::PixelFormatError Class Reference

Exception thrown by implemententations of CPixelFormat. +More... +

+#include <cpixelformat.h> +

+ +

+List of all members. + + + + + +

Public Member Functions

 PixelFormatError (const std::string &what)
 Default exception ctor.
+


Detailed Description

+Exception thrown by implemententations of CPixelFormat.

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + +
CPixelFormat::PixelFormatError::PixelFormatError (const std::string &  what  )  [inline]
+
+
+ +

+Default exception ctor. +

+

Methodname:
PixelFormatError
+
Parameters:
+ + +
what message to pass along
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+


The documentation for this class was generated from the following file: +
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCPixelFormat__24-members.html b/ue1/doxygen/classCPixelFormat__24-members.html new file mode 100644 index 0000000..333d77f --- /dev/null +++ b/ue1/doxygen/classCPixelFormat__24-members.html @@ -0,0 +1,35 @@ + + +imgsynth: Member List + + + + + + +

CPixelFormat_24 Member List

This is the complete list of members for CPixelFormat_24, including all inherited members.

+ + + + + + + +
CPixelFormat(CBitmap *bitmap)CPixelFormat [inline]
CPixelFormat_24(CBitmap *bitmap)CPixelFormat_24 [inline]
getBitCount()CPixelFormat_24 [inline, virtual]
m_bitmapCPixelFormat [protected]
setPixel(const uint32_t *pixel, uint32_t x, uint32_t y)CPixelFormat_24 [virtual]
~CPixelFormat()CPixelFormat [inline, virtual]
~CPixelFormat_24()CPixelFormat_24 [inline]


Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCPixelFormat__24.html b/ue1/doxygen/classCPixelFormat__24.html new file mode 100644 index 0000000..e645cc9 --- /dev/null +++ b/ue1/doxygen/classCPixelFormat__24.html @@ -0,0 +1,233 @@ + + +imgsynth: CPixelFormat_24 Class Reference + + + + + + +

CPixelFormat_24 Class Reference

Implementation of CPixelFormat handling 24bit color Windows Bitmaps. +More... +

+#include <cpixelformat_24.h> +

+

+Inheritance diagram for CPixelFormat_24:
+
+ +

+ +CPixelFormat + +
+ +

+List of all members. + + + + + + + + + + + + + + +

Public Member Functions

 CPixelFormat_24 (CBitmap *bitmap)
 Default ctor.
 ~CPixelFormat_24 ()
 Default dtor.
void setPixel (const uint32_t *pixel, uint32_t x, uint32_t y)
 Modifies pixel at coordinates x, y.
uint32_t getBitCount ()
 returns color bitcount supported by this class
+


Detailed Description

+Implementation of CPixelFormat handling 24bit color Windows Bitmaps. +

+

Modulname:
cpixelformat_24
+
Author:
Manuel Mausz, 0728348
+
Date:
18.04.2009
+Implementation of CPixelFormat handling 24bit color Windows Bitmaps.

+On error CPixelFormat::PixelFormatError is thrown.


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + +
CPixelFormat_24::CPixelFormat_24 (CBitmap bitmap  )  [inline]
+
+
+ +

+Default ctor. +

+

Methodname:
CPixelFormat_24
+
Parameters:
+ + +
bitmap pointer to CBitmap instance
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+ +

+
+ + + + + + + + +
CPixelFormat_24::~CPixelFormat_24 (  )  [inline]
+
+
+ +

+Default dtor. +

+

Methodname:
~CPixelFormat_24
+
Parameters:
+ + +
- 
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+


Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void CPixelFormat_24::setPixel (const uint32_t *  pixel,
uint32_t  x,
uint32_t  y 
) [virtual]
+
+
+ +

+Modifies pixel at coordinates x, y. +

+

Methodname:
setPixel
+
Parameters:
+ + + + +
pixel pointer to new pixel data
x x-coordinate
y y-coordinate
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
PixelFormatError 
+
+
Conditions:
none
+ +

Implements CPixelFormat.

+ +
+

+ +

+
+ + + + + + + + +
uint32_t CPixelFormat_24::getBitCount (  )  [inline, virtual]
+
+
+ +

+returns color bitcount supported by this class +

+

Methodname:
getBitCount
+
Parameters:
+ + +
- 
+
+
Returns:
color bitcount supported by this class
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +

Implements CPixelFormat.

+ +
+

+


The documentation for this class was generated from the following files: +
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCPixelFormat__24.png b/ue1/doxygen/classCPixelFormat__24.png new file mode 100644 index 0000000..a7e8419 Binary files /dev/null and b/ue1/doxygen/classCPixelFormat__24.png differ diff --git a/ue1/doxygen/classCScriptparser-members.html b/ue1/doxygen/classCScriptparser-members.html new file mode 100644 index 0000000..6cb2420 --- /dev/null +++ b/ue1/doxygen/classCScriptparser-members.html @@ -0,0 +1,34 @@ + + +imgsynth: Member List + + + + + + +

CScriptparser Member List

This is the complete list of members for CScriptparser, including all inherited members.

+ + + + + + +
callFunc(const std::string &func, const std::list< std::string > &funcparams)CScriptparser [protected]
CScriptparser(const std::string &scriptfile)CScriptparser
parse()CScriptparser
read(std::list< std::string > funcparams)CScriptparser [protected]
write(std::list< std::string > funcparams)CScriptparser [protected]
~CScriptparser()CScriptparser


Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCScriptparser.html b/ue1/doxygen/classCScriptparser.html new file mode 100644 index 0000000..735cfa5 --- /dev/null +++ b/ue1/doxygen/classCScriptparser.html @@ -0,0 +1,297 @@ + + +imgsynth: CScriptparser Class Reference + + + + + + +

CScriptparser Class Reference

class for parsing simple scriptfiles +More... +

+#include <cscriptparser.h> +

+ +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 CScriptparser (const std::string &scriptfile)
 Default ctor.
 ~CScriptparser ()
 Default dtor.
void parse ()
 Start parsing the scriptfile.

Protected Member Functions

void callFunc (const std::string &func, const std::list< std::string > &funcparams)
 Delegates the function and its parameters to the correct method (internal or handler).
void read (std::list< std::string > funcparams)
 Handles/wrappes read-command. according to the filetype the read-method of the corresponding handler will be called inside.
void write (std::list< std::string > funcparams)
 Handles/wrappes write-command. according to the filetype the write-method of the corresponding handler will be called inside.

Classes

class  ParserError
 Exception thrown by CScriptparser. More...
+


Detailed Description

+class for parsing simple scriptfiles +

+

Modulname:
cscriptparser
+
Author:
Manuel Mausz, 0728348
+
Date:
17.04.2009
+Parses a simple line based scriptfile with some limitations: first function (starting a block) must be a read-command, last must be a write-command (ending this block).

+read- and write-commands have hard coded parameters, number#1 being a filetype. Classes handling certain filetypes must be of type CFile. Custom functions will be passed to CFile::callFunc().

+On error ParserError will be thrown.


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + +
CScriptparser::CScriptparser (const std::string &  scriptfile  ) 
+
+
+ +

+Default ctor. +

+

Methodname:
CScriptparser
+
Parameters:
+ + +
scriptfile filename of script to parse
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
bad_alloc 
+
+
Conditions:
none
+ +
+

+ +

+
+ + + + + + + + +
CScriptparser::~CScriptparser (  ) 
+
+
+ +

+Default dtor. +

+

Methodname:
~CScriptparser
+
Parameters:
+ + +
- 
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+


Member Function Documentation

+ +
+
+ + + + + + + + +
void CScriptparser::parse (  ) 
+
+
+ +

+Start parsing the scriptfile. +

+

Methodname:
parse
+
Parameters:
+ + +
- 
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
ParserError 
+
+
Conditions:
none
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
void CScriptparser::callFunc (const std::string &  func,
const std::list< std::string > &  funcparams 
) [protected]
+
+
+ +

+Delegates the function and its parameters to the correct method (internal or handler). +

+

Methodname:
callFunc
+
Parameters:
+ + + +
func function name
funcparams function parameters as list
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
ParserError 
+
+
Conditions:
none
+ +
+

+ +

+
+ + + + + + + + + +
void CScriptparser::read (std::list< std::string >  funcparams  )  [protected]
+
+
+ +

+Handles/wrappes read-command. according to the filetype the read-method of the corresponding handler will be called inside. +

+

Methodname:
read
+
Parameters:
+ + +
funcparams function parameters as list
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
ParserError 
+
+
Conditions:
none
+Scriptfile syntax: read(<FILETYPE>, <FILENAME>) +
+

+ +

+
+ + + + + + + + + +
void CScriptparser::write (std::list< std::string >  funcparams  )  [protected]
+
+
+ +

+Handles/wrappes write-command. according to the filetype the write-method of the corresponding handler will be called inside. +

+

Methodname:
write
+
Parameters:
+ + +
funcparams function parameters as list
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
ParserError 
+
+
Conditions:
none
+Scriptfile syntax: write(<FILETYPE>, <FILENAME>) +
+

+


The documentation for this class was generated from the following files: +
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCScriptparser_1_1ParserError-members.html b/ue1/doxygen/classCScriptparser_1_1ParserError-members.html new file mode 100644 index 0000000..91c7746 --- /dev/null +++ b/ue1/doxygen/classCScriptparser_1_1ParserError-members.html @@ -0,0 +1,32 @@ + + +imgsynth: Member List + + + + + + +

CScriptparser::ParserError Member List

This is the complete list of members for CScriptparser::ParserError, including all inherited members.

+ + + + +
getLine()CScriptparser::ParserError [inline]
ParserError(const std::string &what)CScriptparser::ParserError [inline]
ParserError(const std::string &what, const std::string &line)CScriptparser::ParserError [inline]
~ParserError()CScriptparser::ParserError [inline]


Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/classCScriptparser_1_1ParserError.html b/ue1/doxygen/classCScriptparser_1_1ParserError.html new file mode 100644 index 0000000..f98c707 --- /dev/null +++ b/ue1/doxygen/classCScriptparser_1_1ParserError.html @@ -0,0 +1,204 @@ + + +imgsynth: CScriptparser::ParserError Class Reference + + + + + + + +

CScriptparser::ParserError Class Reference

Exception thrown by CScriptparser. +More... +

+#include <cscriptparser.h> +

+ +

+List of all members. + + + + + + + + + + + + + + +

Public Member Functions

 ParserError (const std::string &what)
 Default exception ctor.
 ParserError (const std::string &what, const std::string &line)
 Custom exception ctor.
 ~ParserError () throw ()
 Default dtor.
const std::string & getLine ()
 returns reference to currently parsed scriptline (if set)
+


Detailed Description

+Exception thrown by CScriptparser.

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + +
CScriptparser::ParserError::ParserError (const std::string &  what  )  [inline]
+
+
+ +

+Default exception ctor. +

+

Methodname:
ParserError
+
Parameters:
+ + +
what message to pass along
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
CScriptparser::ParserError::ParserError (const std::string &  what,
const std::string &  line 
) [inline]
+
+
+ +

+Custom exception ctor. +

+

Methodname:
ParserError
+
Parameters:
+ + + +
what message to pass along
line scriptline which is currently being parsed
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+ +

+
+ + + + + + + + +
CScriptparser::ParserError::~ParserError (  )  throw () [inline]
+
+
+ +

+Default dtor. +

+

Methodname:
~ParserError
+
Parameters:
+ + +
- 
+
+
Returns:
-
+
Global variables used:
none
+
Exceptions:
+ + +
not allowed
+
+
Conditions:
none
+ +
+

+


Member Function Documentation

+ +
+
+ + + + + + + + +
const std::string& CScriptparser::ParserError::getLine (  )  [inline]
+
+
+ +

+returns reference to currently parsed scriptline (if set) +

+

Methodname:
getLine
+
Returns:
reference to currently parsed scriptline (maybe empty string)
+
Global variables used:
none
+
Exceptions:
+ + +
none 
+
+
Conditions:
none
+ +
+

+


The documentation for this class was generated from the following file: +
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/cpixelformat_8h-source.html b/ue1/doxygen/cpixelformat_8h-source.html new file mode 100644 index 0000000..09a2096 --- /dev/null +++ b/ue1/doxygen/cpixelformat_8h-source.html @@ -0,0 +1,59 @@ + + +imgsynth: imgsynth/cpixelformat.h Source File + + + + + +

imgsynth/cpixelformat.h

00001 
+00009 #ifndef CPIXELFORMAT_H
+00010 #define CPIXELFORMAT_H
+00011 
+00012 #include <fstream>
+00013 #include <stdexcept>
+00014 
+00015 class CBitmap;
+00016 #include "cbitmap.h"
+00017 
+00026 class CPixelFormat
+00027 {
+00028   public:
+00033     class PixelFormatError : public std::invalid_argument {
+00034       public:
+00044         PixelFormatError(const std::string& what)
+00045           : std::invalid_argument(what)
+00046         {}
+00047     };
+00048 
+00058     CPixelFormat(CBitmap *bitmap)
+00059       : m_bitmap(bitmap)
+00060     {}
+00061 
+00071     virtual ~CPixelFormat()
+00072     {};
+00073 
+00085     virtual void setPixel(const uint32_t *pixel, const uint32_t x, const uint32_t y) = 0;
+00086 
+00096     virtual uint32_t getBitCount() = 0;
+00097 
+00098   protected:
+00099     /* members */
+00101     CBitmap *m_bitmap;
+00102 };
+00103 
+00104 #endif
+00105 
+00106 /* vim: set et sw=2 ts=2: */
+

Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/cpixelformat__24_8h-source.html b/ue1/doxygen/cpixelformat__24_8h-source.html new file mode 100644 index 0000000..9139a25 --- /dev/null +++ b/ue1/doxygen/cpixelformat__24_8h-source.html @@ -0,0 +1,48 @@ + + +imgsynth: imgsynth/cpixelformat_24.h Source File + + + + + +

imgsynth/cpixelformat_24.h

00001 
+00008 #ifndef CPIXELFORMAT_24_H
+00009 #define CPIXELFORMAT_24_H
+00010 
+00011 #include <fstream>
+00012 #include "cpixelformat.h"
+00013 
+00020 class CPixelFormat_24 : public CPixelFormat
+00021 {
+00022   public:
+00032     CPixelFormat_24(CBitmap *bitmap)
+00033       : CPixelFormat(bitmap)
+00034     {}
+00035 
+00045     ~CPixelFormat_24()
+00046     {}
+00047 
+00059     void setPixel(const uint32_t *pixel, uint32_t x, uint32_t y);
+00060 
+00070     uint32_t getBitCount()
+00071     {
+00072       return 24;
+00073     }
+00074 };
+00075 
+00076 #endif
+00077 
+00078 /* vim: set et sw=2 ts=2: */
+

Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/cscriptparser_8h-source.html b/ue1/doxygen/cscriptparser_8h-source.html new file mode 100644 index 0000000..fd5aa9a --- /dev/null +++ b/ue1/doxygen/cscriptparser_8h-source.html @@ -0,0 +1,80 @@ + + +imgsynth: imgsynth/cscriptparser.h Source File + + + + + +

imgsynth/cscriptparser.h

00001 
+00008 #ifndef CSCRIPTPARSER_H
+00009 #define CSCRIPTPARSER_H
+00010 
+00011 #include <stdexcept>
+00012 #include <string>
+00013 #include <list>
+00014 #include <set>
+00015 #include "cfile.h"
+00016 
+00030 class CScriptparser
+00031 {
+00032   public:
+00037     class ParserError : public std::invalid_argument {
+00038       public:
+00048         ParserError(const std::string& what)
+00049           : std::invalid_argument(what), m_line("")
+00050         {}
+00051 
+00062         ParserError(const std::string& what, const std::string& line)
+00063           : std::invalid_argument(what), m_line(line)
+00064         {}
+00065 
+00075         ~ParserError() throw()
+00076         {}
+00077 
+00086         const std::string &getLine()
+00087         {
+00088           return m_line;
+00089         }
+00090 
+00091       private:
+00092         /* members*/
+00093         std::string m_line;
+00094     };
+00095 
+00105     CScriptparser(const std::string& scriptfile);
+00106 
+00116     ~CScriptparser();
+00117 
+00127     void parse();
+00128 
+00129   protected:
+00141     void callFunc(const std::string& func, const std::list<std::string>& funcparams);
+00142 
+00155     void read(std::list<std::string> funcparams);
+00156 
+00169     void write(std::list<std::string> funcparams);
+00170 
+00171   private:
+00172     /* members */
+00173     std::set<CFile *> m_handlers;
+00174     std::string m_scriptfile;
+00175     std::string m_curline;
+00176     CFile *m_handler;
+00177 };
+00178 
+00179 #endif
+00180 
+00181 /* vim: set et sw=2 ts=2: */
+

Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/doxygen.css b/ue1/doxygen/doxygen.css new file mode 100644 index 0000000..c7db1a8 --- /dev/null +++ b/ue1/doxygen/doxygen.css @@ -0,0 +1,358 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; + white-space: nowrap; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } diff --git a/ue1/doxygen/doxygen.png b/ue1/doxygen/doxygen.png new file mode 100644 index 0000000..f0a274b Binary files /dev/null and b/ue1/doxygen/doxygen.png differ diff --git a/ue1/doxygen/files.html b/ue1/doxygen/files.html new file mode 100644 index 0000000..dae0dd6 --- /dev/null +++ b/ue1/doxygen/files.html @@ -0,0 +1,27 @@ + + +imgsynth: File Index + + + + + +

imgsynth File List

Here is a list of all documented files with brief descriptions: + + + + + +
imgsynth/cbitmap.h [code]
imgsynth/cfile.h [code]
imgsynth/cpixelformat.h [code]
imgsynth/cpixelformat_24.h [code]
imgsynth/cscriptparser.h [code]
+
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/functions.html b/ue1/doxygen/functions.html new file mode 100644 index 0000000..1b3a5ff --- /dev/null +++ b/ue1/doxygen/functions.html @@ -0,0 +1,172 @@ + + +imgsynth: Class Members + + + + + + +
+ +
+
+ +
+ +

+Here is a list of all documented class members with links to the class documentation for each member: +

+

- b -

+

- c -

+

- f -

+

- g -

+

- m -

+

- p -

+

- r -

+

- s -

+

- w -

+

- ~ -

+
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/functions_func.html b/ue1/doxygen/functions_func.html new file mode 100644 index 0000000..5a09ae2 --- /dev/null +++ b/ue1/doxygen/functions_func.html @@ -0,0 +1,124 @@ + + +imgsynth: Class Members - Functions + + + + + + +
+ +
+
+ +
+ +

+  +

+

- c -

+

- f -

+

- g -

+

- p -

+

- r -

+

- s -

+

- w -

+

- ~ -

+
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/functions_vars.html b/ue1/doxygen/functions_vars.html new file mode 100644 index 0000000..ae7eb52 --- /dev/null +++ b/ue1/doxygen/functions_vars.html @@ -0,0 +1,80 @@ + + +imgsynth: Class Members - Variables + + + + + + +
+ +
+  +

+

+
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/hierarchy.html b/ue1/doxygen/hierarchy.html new file mode 100644 index 0000000..e263e05 --- /dev/null +++ b/ue1/doxygen/hierarchy.html @@ -0,0 +1,43 @@ + + +imgsynth: Hierarchical Index + + + + + + +

imgsynth Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically: +
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/index.html b/ue1/doxygen/index.html new file mode 100644 index 0000000..ffed6d2 --- /dev/null +++ b/ue1/doxygen/index.html @@ -0,0 +1,22 @@ + + +imgsynth: Main Page + + + + + +

imgsynth Documentation

+

+


Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/namespaces.html b/ue1/doxygen/namespaces.html new file mode 100644 index 0000000..548b4fc --- /dev/null +++ b/ue1/doxygen/namespaces.html @@ -0,0 +1,23 @@ + + +imgsynth: Namespace Index + + + + + +

imgsynth Namespace List

Here is a list of all documented namespaces with brief descriptions: + +
stdImplementation of CFile handling Windows Bitmaps
+
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/namespacestd.html b/ue1/doxygen/namespacestd.html new file mode 100644 index 0000000..3ca79d0 --- /dev/null +++ b/ue1/doxygen/namespacestd.html @@ -0,0 +1,32 @@ + + +imgsynth: std Namespace Reference + + + + + +

std Namespace Reference

Implementation of CFile handling Windows Bitmaps. +More... +

+ + +
+


Detailed Description

+Implementation of CFile handling Windows Bitmaps. +

+

Modulname:
cbitmap
+
Author:
Manuel Mausz, 0728348
+
Date:
17.04.2009
+
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/structCBitmap_1_1BITMAP__FILEHEADER-members.html b/ue1/doxygen/structCBitmap_1_1BITMAP__FILEHEADER-members.html new file mode 100644 index 0000000..89e0211 --- /dev/null +++ b/ue1/doxygen/structCBitmap_1_1BITMAP__FILEHEADER-members.html @@ -0,0 +1,32 @@ + + +imgsynth: Member List + + + + + + +

CBitmap::BITMAP_FILEHEADER Member List

This is the complete list of members for CBitmap::BITMAP_FILEHEADER, including all inherited members.

+ + + + +
bfOffBitsCBitmap::BITMAP_FILEHEADER
bfReservedCBitmap::BITMAP_FILEHEADER
bfSizeCBitmap::BITMAP_FILEHEADER
bfTypeCBitmap::BITMAP_FILEHEADER


Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/structCBitmap_1_1BITMAP__FILEHEADER.html b/ue1/doxygen/structCBitmap_1_1BITMAP__FILEHEADER.html new file mode 100644 index 0000000..cb1469c --- /dev/null +++ b/ue1/doxygen/structCBitmap_1_1BITMAP__FILEHEADER.html @@ -0,0 +1,112 @@ + + +imgsynth: CBitmap::BITMAP_FILEHEADER Struct Reference + + + + + + + +

CBitmap::BITMAP_FILEHEADER Struct Reference

Windows Bitmap File Header structure. +More... +

+#include <cbitmap.h> +

+ +

+List of all members. + + + + + + + + + + +

Public Attributes

uint8_t bfType [2]
uint32_t bfSize
uint32_t bfReserved
uint32_t bfOffBits
+


Detailed Description

+Windows Bitmap File Header structure.

Member Data Documentation

+ +
+
+ + + + +
uint8_t CBitmap::BITMAP_FILEHEADER::bfType[2]
+
+
+ +

+the magic number used to identify the BMP file +

+

+ +

+ +
+ +

+the size of the BMP file in bytes +

+

+ +

+ +
+ +

+reserved +

+

+ +

+ +
+ +

+the offset of the byte where the bitmap data can be found +

+

+


The documentation for this struct was generated from the following file: +
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/structCBitmap_1_1BITMAP__INFOHEADER-members.html b/ue1/doxygen/structCBitmap_1_1BITMAP__INFOHEADER-members.html new file mode 100644 index 0000000..49590fd --- /dev/null +++ b/ue1/doxygen/structCBitmap_1_1BITMAP__INFOHEADER-members.html @@ -0,0 +1,39 @@ + + +imgsynth: Member List + + + + + + +

CBitmap::BITMAP_INFOHEADER Member List

This is the complete list of members for CBitmap::BITMAP_INFOHEADER, including all inherited members.

+ + + + + + + + + + + +
biBitCountCBitmap::BITMAP_INFOHEADER
biClrImportantCBitmap::BITMAP_INFOHEADER
biClrUsedCBitmap::BITMAP_INFOHEADER
biCompressionCBitmap::BITMAP_INFOHEADER
biHeightCBitmap::BITMAP_INFOHEADER
biPlanesCBitmap::BITMAP_INFOHEADER
biSizeCBitmap::BITMAP_INFOHEADER
biSizeImageCBitmap::BITMAP_INFOHEADER
biWidthCBitmap::BITMAP_INFOHEADER
biXPelsPerMeterCBitmap::BITMAP_INFOHEADER
biYPelsPerMeterCBitmap::BITMAP_INFOHEADER


Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/structCBitmap_1_1BITMAP__INFOHEADER.html b/ue1/doxygen/structCBitmap_1_1BITMAP__INFOHEADER.html new file mode 100644 index 0000000..95e709f --- /dev/null +++ b/ue1/doxygen/structCBitmap_1_1BITMAP__INFOHEADER.html @@ -0,0 +1,231 @@ + + +imgsynth: CBitmap::BITMAP_INFOHEADER Struct Reference + + + + + + + +

CBitmap::BITMAP_INFOHEADER Struct Reference

Windows Bitmap Info Header structure. +More... +

+#include <cbitmap.h> +

+ +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

uint32_t biSize
int32_t biWidth
int32_t biHeight
uint16_t biPlanes
uint16_t biBitCount
uint32_t biCompression
uint32_t biSizeImage
int32_t biXPelsPerMeter
int32_t biYPelsPerMeter
uint32_t biClrUsed
uint32_t biClrImportant
+


Detailed Description

+Windows Bitmap Info Header structure.

Member Data Documentation

+ +
+ +
+ +

+the size of this header (40 bytes) +

+

+ +

+ +
+ +

+the bitmap width in pixels (signed integer) +

+

+ +

+ +
+ +

+the bitmap height in pixels (signed integer) +

+

+ +

+ +
+ +

+the number of color planes being used. Must be set to 1 +

+

+ +

+ +
+ +

+the number of bits per pixel, which is the color depth of the image +

+

+ +

+ +
+ +

+the compression method being used +

+

+ +

+ +
+ +

+the image size +

+

+ +

+ +
+ +

+the horizontal resolution of the image (pixel per meter) +

+

+ +

+ +
+ +

+the vertical resolution of the image (pixel per meter) +

+

+ +

+ +
+ +

+the number of colors in the color palette, or 0 to default to 2^n +

+

+ +

+ +
+ +

+the number of important colors used, or 0 when every color is important; generally ignored. +

+

+


The documentation for this struct was generated from the following file: +
Generated on Sun Apr 26 12:25:52 2009 for imgsynth by  + +doxygen 1.5.3
+ + diff --git a/ue1/doxygen/tab_b.gif b/ue1/doxygen/tab_b.gif new file mode 100644 index 0000000..0d62348 Binary files /dev/null and b/ue1/doxygen/tab_b.gif differ diff --git a/ue1/doxygen/tab_l.gif b/ue1/doxygen/tab_l.gif new file mode 100644 index 0000000..9b1e633 Binary files /dev/null and b/ue1/doxygen/tab_l.gif differ diff --git a/ue1/doxygen/tab_r.gif b/ue1/doxygen/tab_r.gif new file mode 100644 index 0000000..ce9dd9f Binary files /dev/null and b/ue1/doxygen/tab_r.gif differ diff --git a/ue1/doxygen/tabs.css b/ue1/doxygen/tabs.css new file mode 100644 index 0000000..c37faaf --- /dev/null +++ b/ue1/doxygen/tabs.css @@ -0,0 +1,102 @@ +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI.current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI.current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.nav +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/ue1/imgsynth/Makefile b/ue1/imgsynth/Makefile new file mode 100644 index 0000000..6b52d60 --- /dev/null +++ b/ue1/imgsynth/Makefile @@ -0,0 +1,39 @@ +# Makefile for imgsynth +# Author: Manuel Mausz (0728348) +# Created: 14.04.2009 + +CC= g++ +LD= $(CC) +DEBUGFLAGS= +CFLAGS= -O -ansi -pedantic-errors -Wall $(DEBUGFLAGS) +LDFLAGS= +LIBS= -lboost_program_options + +BIN= imgsynth +OBJS= cpixelformat_24.o cbitmap.o cscriptparser.o imgsynth.o +HEADERS= cpixelformat.h cpixelformat_24.h cfile.h cbitmap.h cscriptparser.h + +.SUFFIXES: .cpp .o + +all: $(BIN) + +.cpp.o: + $(CC) $(CFLAGS) -c $< -o $@ + +$(OBJS): $(HEADERS) + +$(BIN): $(OBJS) + $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) + +debug: + @$(MAKE) all "DEBUGFLAGS=-DDEBUG -g" + +clean: + rm -f $(OBJS) $(BIN) + +run test: all + @./test/test.sh + +.PHONY: clean + +# vim600: noet sw=8 ts=8 diff --git a/ue1/imgsynth/cbitmap.cpp b/ue1/imgsynth/cbitmap.cpp new file mode 100644 index 0000000..0205f0b --- /dev/null +++ b/ue1/imgsynth/cbitmap.cpp @@ -0,0 +1,208 @@ +/** + * @module cbitmap + * @author Manuel Mausz, 0728348 + * @brief Implementation of CFile handling Windows Bitmaps. + * @date 17.04.2009 + */ + +#include +#include +#ifdef DEBUG +# include +#endif +#include "cbitmap.h" +#include "cpixelformat_24.h" + +using namespace std; + +CBitmap::~CBitmap() +{ + if (m_pixeldata != NULL) + delete[] m_pixeldata; + m_pixeldata = NULL; + + if (m_pixelformat != NULL) + delete m_pixelformat; + m_pixelformat = NULL; +} + +/*----------------------------------------------------------------------------*/ + +void CBitmap::read(std::ifstream& in) +{ + /* read and check file header */ + in.read(reinterpret_cast(&m_fileheader), sizeof(m_fileheader)); + + if (m_fileheader.bfType[0] != 'B' || m_fileheader.bfType[1] != 'M') + throw FileError("Imagefile has invalid Bitmap header."); + /* bfSize is unreliable (http://de.wikipedia.org/wiki/Windows_Bitmap) */ + if (m_fileheader.bfSize < 0) + throw FileError("Bitmap filesize is less than zero?"); + + /* read and check info header */ + in.read(reinterpret_cast(&m_infoheader), sizeof(m_infoheader)); + + if (m_infoheader.biSize != 40) + throw FileError("Bitmap info header size is invalid."); + if (m_infoheader.biPlanes != 1) + throw FileError("Bitmap color planes is not set to 1."); + if (m_infoheader.biCompression != 0) + throw FileError("Bitmap compression is set but not supported."); + if (m_infoheader.biSizeImage < 0) + throw FileError("Bitmap image size is less than zero?"); + if (m_infoheader.biClrUsed != 0 || m_infoheader.biClrImportant != 0) + throw FileError("Bitmap colortable is used but not supported."); + + /* currently only 24bit */ + if (m_infoheader.biBitCount != 24) + throw FileError("Bitmap bitcount is not supported."); + + /* read pixel data using separate class */ + if (m_infoheader.biSizeImage > 0) + { + if (m_pixeldata != NULL) + delete[] m_pixeldata; + m_pixeldata = new uint8_t[m_infoheader.biSizeImage]; + in.read(reinterpret_cast(m_pixeldata), m_infoheader.biSizeImage); + } + + /* create pixelformat instance */ + if (m_pixelformat != NULL) + delete m_pixelformat; + m_pixelformat = NULL; + if (m_infoheader.biBitCount == 24) + m_pixelformat = new CPixelFormat_24(this); +} + +/*----------------------------------------------------------------------------*/ + +void CBitmap::write(std::ofstream& out) +{ + /* set header values */ + m_fileheader.bfSize = m_infoheader.biSizeImage + sizeof(m_infoheader) + sizeof(m_fileheader); + + /* write file header */ + out.write(reinterpret_cast(&m_fileheader), sizeof(m_fileheader)); + + /* write info header */ + out.write(reinterpret_cast(&m_infoheader), sizeof(m_infoheader)); + + /* write pixel data */ + if (m_pixeldata != NULL) + out.write(reinterpret_cast(m_pixeldata), m_infoheader.biSizeImage); +} + +/*----------------------------------------------------------------------------*/ + +void CBitmap::callFunc(const std::string& func, const std::list& params) +{ + if (func.empty()) + throw FileError("Function name is empty."); + + if (func == "fillrect") + fillrect(params); + else + throw FileError("Unknown function '" + func + "'."); +} + +/*----------------------------------------------------------------------------*/ + +void CBitmap::fillrect(std::list params) +{ + /* check prerequirements */ + if (params.size() != 7) + throw FileError("Invalid number of function parameters (must be 7)."); + + /* convert parameters */ + uint32_t pparams[7]; + int i = 0; + try + { + for(i = 0; i < 7; i++) + { + pparams[i] = boost::lexical_cast(params.front()); + params.pop_front(); + } + } + catch(boost::bad_lexical_cast& ex) + { + throw FileError("Invalid parameter (" + params.front() + ")."); + } + + /* width and height can be negativ */ + uint32_t width = static_cast(abs(m_infoheader.biWidth)); + uint32_t height = static_cast(abs(m_infoheader.biHeight)); + + /* check parameter values are in range */ + if (pparams[0] < 0 || pparams[0] > width + || pparams[1] < 0 || pparams[1] > height) + throw FileError("At least one x/y-parameter is out of range."); + + if (pparams[2] < 0 || pparams[2] + pparams[0] > width + || pparams[3] < 0 || pparams[3] + pparams[1] > height) + throw FileError("At least one w/h-parameter is out of range."); + + if (pparams[4] < 0 || pparams[4] > 255 + || pparams[5] < 0 || pparams[5] > 255 + || pparams[6] < 0 || pparams[6] > 255) + throw FileError("At least one pixel color parameter is out of range."); + + /* call setPixel for every pixel in the rectangel */ + if (m_pixeldata != NULL && m_pixelformat != NULL) + { + for(uint32_t i = pparams[0]; i < pparams[2] + pparams[0]; i++) + { + for(uint32_t j = pparams[1]; j < pparams[3] + pparams[1]; j++) + { + try + { + m_pixelformat->setPixel(&pparams[4], i, j); + } + catch(CPixelFormat::PixelFormatError& ex) + { + stringstream errstr; + errstr << "Can't set pixel (pos=" << i << "," << j << " col=" + << pparams[4] << "," << pparams[5] << "," << pparams[6] << "): " + << ex.what(); + throw FileError(errstr.str()); + } + } + } + } +} + +/*----------------------------------------------------------------------------*/ + +#ifdef DEBUG +void CBitmap::dump(std::ostream& out) +{ + out + << "Bitmap File Header:" << endl + << " bfType=" << m_fileheader.bfType[0] << m_fileheader.bfType[1] + << ", bfSize=" << m_fileheader.bfSize + << ", bfReserved=" << m_fileheader.bfReserved + << ", bfOffBits=" << m_fileheader.bfOffBits + << endl; + + out + << "Bitmap Info Header:" << endl + << " biSize=" << m_infoheader.biSize + << ", biWidth=" << m_infoheader.biWidth + << ", biHeight=" << m_infoheader.biHeight + << ", biPlanes=" << m_infoheader.biPlanes + << endl + + << " biBitCount=" << m_infoheader.biBitCount + << ", biCompression=" << m_infoheader.biCompression + << ", biSizeImage=" << m_infoheader.biSizeImage + << endl + + << " biXPelsPerMeter=" << m_infoheader.biXPelsPerMeter + << ", biYPelsPerMeter=" << m_infoheader.biYPelsPerMeter + << ", biClrUsed=" << m_infoheader.biClrUsed + << ", biClrImportant=" << m_infoheader.biClrImportant + << endl; +} +#endif + +/* vim: set et sw=2 ts=2: */ diff --git a/ue1/imgsynth/cbitmap.h b/ue1/imgsynth/cbitmap.h new file mode 100644 index 0000000..300e836 --- /dev/null +++ b/ue1/imgsynth/cbitmap.h @@ -0,0 +1,225 @@ +/** + * @module cbitmap + * @author Manuel Mausz, 0728348 + * @brief Implementation of CFile handling Windows Bitmaps. + * @date 17.04.2009 + */ + +#ifndef CBITMAP_H +#define CBITMAP_H + +#include "cfile.h" + +class CPixelFormat; +#include "cpixelformat.h" + +/** + * @class CBitmap + * @brief Implementation of CFile handling Windows Bitmaps. + * + * In order to support operations on bitmaps with different color bitcounts + * different implementations of CPixelFormat are used. These classes are + * allowed to modify the bitmap headers and pixelbuffer directly. + * + * On error CFile::FileError is thrown. + */ +class CBitmap : public CFile +{ + public: + /** + * @method CBitmap + * @brief Default ctor + * @param - + * @return - + * @globalvars none + * @exception none + * @conditions none + */ + CBitmap() + : m_pixeldata(NULL), m_pixelformat(NULL) + { + m_types.insert("BMP"); + } + + /** + * @method ~CBitmap + * @brief Default dtor + * @param - + * @return - + * @globalvars none + * @exception none + * @conditions none + */ + ~CBitmap(); + + /** + * @method read + * @brief Reads Windows Bitmap from filestream. + * On error an exception is thrown. + * @param in filestream to read data from + * @return - + * @globalvars none + * @exception CFile::FileError + * @exception bad_alloc + * @conditions none + */ + void read(std::ifstream& in); + + /** + * @method write + * @brief Writes Windows Bitmap to filestream. + * @param out filestream to read data from + * @return - + * @globalvars none + * @exception FileError + * @exception bad_alloc + * @conditions none + */ + void write(std::ofstream& out); + + /** + * @method callFunc + * @brief Delegates the function and its parameters to the correct + * internal method + * @param func function name + * @param params function parameters as list + * @return - + * @globalvars none + * @exception ParserError + * @conditions none + */ + void callFunc(const std::string& func, const std::list& params); + +#ifdef DEBUG + /** + * @method dump + * @brief Dumps the Windows Bitmap file headers to ostream + * @param out output stream + * @return - + * @globalvars + * @exception + * @conditions + */ + void dump(std::ostream& out); +#endif + + /** + * @brief Windows Bitmap File Header structure + */ +#pragma pack(push,1) + typedef struct + { + /** the magic number used to identify the BMP file */ + uint8_t bfType[2]; + /** the size of the BMP file in bytes */ + uint32_t bfSize; + /** reserved */ + uint32_t bfReserved; + /** the offset of the byte where the bitmap data can be found */ + uint32_t bfOffBits; + } BITMAP_FILEHEADER; +#pragma pack(pop) + + /** + * @brief Windows Bitmap Info Header structure + */ +#pragma pack(push,1) + typedef struct + { + /** the size of this header (40 bytes) */ + uint32_t biSize; + /** the bitmap width in pixels (signed integer) */ + int32_t biWidth; + /** the bitmap height in pixels (signed integer) */ + int32_t biHeight; + /** the number of color planes being used. Must be set to 1 */ + uint16_t biPlanes; + /** the number of bits per pixel, which is the color depth of the image */ + uint16_t biBitCount; + /** the compression method being used */ + uint32_t biCompression; + /** the image size */ + uint32_t biSizeImage; + /** the horizontal resolution of the image (pixel per meter) */ + int32_t biXPelsPerMeter; + /** the vertical resolution of the image (pixel per meter) */ + int32_t biYPelsPerMeter; + /** the number of colors in the color palette, or 0 to default to 2^n */ + uint32_t biClrUsed; + /** the number of important colors used, or 0 when every color is + * important; generally ignored. */ + uint32_t biClrImportant; + } BITMAP_INFOHEADER; +#pragma pack(pop) + + /** + * @method getFileHeader + * @brief Returns reference to fileheader structure of bitmap + * @param - + * @return reference to fileheader structure + * @globalvars none + * @exception none + * @conditions none + */ + BITMAP_FILEHEADER &getFileHeader() + { + return m_fileheader; + } + + /** + * @method getInfoHeader + * @brief Returns reference to infoheader structure of bitmap + * @param - + * @return reference to infoheader structure + * @globalvars none + * @exception none + * @conditions none + */ + BITMAP_INFOHEADER &getInfoHeader() + { + return m_infoheader; + } + + /** + * @method getPixelData + * @brief Returns pointer to pixelbuffer + * @param - + * @return pointer to pixelbuffer + * @globalvars none + * @exception none + * @conditions none + */ + uint8_t *getPixelData() + { + return m_pixeldata; + } + + protected: + /** + * @method fillrect + * @brief Fills rectangle in image starting on position x, y + * width size width, height and color red, green, blue. + * @param params function parameters as list + * @return - + * @globalvars none + * @exception FileError + * @conditions none + * + * Scriptfile syntax: fillrect(x, y, width, height, red, green, blue) + */ + void fillrect(std::list params); + + /* members */ + /** fileheader */ + BITMAP_FILEHEADER m_fileheader; + /** infoheader */ + BITMAP_INFOHEADER m_infoheader; + /** pointer to pixelbuffer */ + uint8_t *m_pixeldata; + /** pointer to CPixelFormat implementation */ + CPixelFormat *m_pixelformat; +}; + +#endif + +/* vim: set et sw=2 ts=2: */ diff --git a/ue1/imgsynth/cfile.h b/ue1/imgsynth/cfile.h new file mode 100644 index 0000000..d190d14 --- /dev/null +++ b/ue1/imgsynth/cfile.h @@ -0,0 +1,121 @@ +/** + * @module cfile + * @author Manuel Mausz, 0728348 + * @brief Abstract class for handling files. + * Needed for generic use in CScriptparser. + * @date 17.04.2009 + */ + +#ifndef CFILE_H +#define CFILE_H + +#include +#include +#include +#include +#include + +/** + * @class CFile + * @brief Abstract class for handling files. Needed for generic use in + * CScriptparser. + * + * In order for CScriptparser to determine which instance of CFile supports + * which filetype, every implemententation need to insert their filetypes to + * the member m_types in their constructor. + * + * On error throw FileError. + */ +class CFile +{ + public: + /** + * @class FileError + * @brief Exception thrown by implemententations of CFile + */ + class FileError : public std::invalid_argument { + public: + /** + * @method FileError + * @brief Default exception ctor + * @param what message to pass along + * @return - + * @globalvars none + * @exception none + * @conditions none + */ + FileError(const std::string& what) + : std::invalid_argument(what) + {} + }; + + /** + * @method ~CFile + * @brief Default dtor (virtual) + * @param - + * @return - + * @globalvars none + * @exception none + * @conditions none + */ + virtual ~CFile() + {}; + + /** + * @method read + * @brief Pure virtual method (interface). Should read data from filestream. + * @param in filestream to read data from + * @return - + * @globalvars none + * @exception FileError + * @conditions none + */ + virtual void read(std::ifstream& in) = 0; + + /** + * @method write + * @brief Pure virtual method (interface). Should write data to filestream. + * @param out filestream to write data to + * @return - + * @globalvars none + * @exception FileError + * @conditions none + */ + virtual void write(std::ofstream& out) = 0; + + /** + * @method callFunc + * @brief Pure virtual method (interface). Should delegate the function + * and its parameters to the correct internal method. + * @param func function name + * @param params function parameters as list + * @return - + * @globalvars none + * @exception FileError + * @conditions none + */ + virtual void callFunc(const std::string& func, const std::list& params) = 0; + + /** + * @method supportsType + * @brief Check if filetype is supported by this implementation. + * @param type filetype + * @return true if filetype is supported. false otherwise + * @globalvars none + * @exception none + * @conditions none + */ + bool supportsType(const std::string& type) + { + return (m_types.find(type) == m_types.end()) ? false : true; + } + + protected: + /* members */ + /** set of filetypes suppported by this implementation */ + std::set m_types; +}; + +#endif + +/* vim: set et sw=2 ts=2: */ diff --git a/ue1/imgsynth/cpixelformat.h b/ue1/imgsynth/cpixelformat.h new file mode 100644 index 0000000..0e20cf8 --- /dev/null +++ b/ue1/imgsynth/cpixelformat.h @@ -0,0 +1,106 @@ +/** + * @module cpixelformat + * @author Manuel Mausz, 0728348 + * @brief Abstract class for handling different color bitcount of Bitmaps. + * Needed for generic use in CBitmap. + * @date 18.04.2009 + */ + +#ifndef CPIXELFORMAT_H +#define CPIXELFORMAT_H + +#include +#include + +class CBitmap; +#include "cbitmap.h" + +/** + * @class CPixelFormat + * @brief Abstract class for handling different color bitcount of Bitmaps. + * + * Needed for generic use in CBitmap. + * + * On error throw PixelFormatError. + */ +class CPixelFormat +{ + public: + /** + * @class PixelFormatError + * @brief Exception thrown by implemententations of CPixelFormat + */ + class PixelFormatError : public std::invalid_argument { + public: + /** + * @method PixelFormatError + * @brief Default exception ctor + * @param what message to pass along + * @return - + * @globalvars none + * @exception none + * @conditions none + */ + PixelFormatError(const std::string& what) + : std::invalid_argument(what) + {} + }; + + /** + * @method CBitmap + * @brief Default ctor + * @param bitmap pointer to CBitmap instance + * @return - + * @globalvars none + * @exception none + * @conditions none + */ + CPixelFormat(CBitmap *bitmap) + : m_bitmap(bitmap) + {} + + /** + * @method ~CPixelFormat + * @brief Default dtor (virtual) + * @param - + * @return - + * @globalvars none + * @exception none + * @conditions none + */ + virtual ~CPixelFormat() + {}; + + /** + * @method setPixel + * @brief Modifies pixel at coordinates x, y + * @param pixel pointer to new pixel data + * @param x x-coordinate + * @param y y-coordinate + * @return - + * @globalvars none + * @exception PixelFormatError + * @conditions none + */ + virtual void setPixel(const uint32_t *pixel, const uint32_t x, const uint32_t y) = 0; + + /** + * @method getBitCount + * @brief returns color bitcount supported by this class + * @param - + * @return color bitcount supported by this class + * @globalvars none + * @exception none + * @conditions none + */ + virtual uint32_t getBitCount() = 0; + + protected: + /* members */ + /** pointer to CBitmap instance */ + CBitmap *m_bitmap; +}; + +#endif + +/* vim: set et sw=2 ts=2: */ diff --git a/ue1/imgsynth/cpixelformat_24.cpp b/ue1/imgsynth/cpixelformat_24.cpp new file mode 100644 index 0000000..022b592 --- /dev/null +++ b/ue1/imgsynth/cpixelformat_24.cpp @@ -0,0 +1,47 @@ +/** + * @module cpixelformat_24 + * @author Manuel Mausz, 0728348 + * @brief Implementation of CPixelFormat handling 24bit color Windows Bitmaps. + * @date 18.04.2009 + */ + +#include +#include "cpixelformat_24.h" + +using namespace std; + +void CPixelFormat_24::setPixel(const uint32_t *pixel, uint32_t x, uint32_t y) +{ + if (m_bitmap->getPixelData() == NULL) + throw PixelFormatError("No pixelbuffer allocated."); + + uint32_t rowsize = 4 * static_cast( + ((CPixelFormat_24::getBitCount() * abs(m_bitmap->getInfoHeader().biWidth)) + 31) / 32 + ); + + /* if height is positive the y-coordinates are mirrored */ + if (m_bitmap->getInfoHeader().biHeight > 0) + y = m_bitmap->getInfoHeader().biHeight - y - 1; + uint32_t offset = y * rowsize + x * (4 * getBitCount() / 32); + + /* boundary check */ + if (offset + 3 * sizeof(uint8_t) > m_bitmap->getInfoHeader().biSizeImage) + throw PixelFormatError("Pixel position is out of range."); + + /* convert color values to correct types */ + uint8_t data[3]; + try + { + data[0] = boost::numeric_cast(pixel[2]); + data[1] = boost::numeric_cast(pixel[1]); + data[2] = boost::numeric_cast(pixel[0]); + } + catch(boost::numeric::bad_numeric_cast& ex) + { + throw PixelFormatError("Unable to convert pixelcolor to correct size: " + string(ex.what())); + } + + copy(data, data + 3, m_bitmap->getPixelData() + offset); +} + +/* vim: set et sw=2 ts=2: */ diff --git a/ue1/imgsynth/cpixelformat_24.h b/ue1/imgsynth/cpixelformat_24.h new file mode 100644 index 0000000..e4fcc41 --- /dev/null +++ b/ue1/imgsynth/cpixelformat_24.h @@ -0,0 +1,78 @@ +/** + * @module cpixelformat_24 + * @author Manuel Mausz, 0728348 + * @brief Implementation of CPixelFormat handling 24bit color Windows Bitmaps. + * @date 18.04.2009 + */ + +#ifndef CPIXELFORMAT_24_H +#define CPIXELFORMAT_24_H + +#include +#include "cpixelformat.h" + +/** + * @class CPixelFormat_24 + * @brief Implementation of CPixelFormat handling 24bit color Windows Bitmaps. + * + * On error CPixelFormat::PixelFormatError is thrown. + */ +class CPixelFormat_24 : public CPixelFormat +{ + public: + /** + * @method CPixelFormat_24 + * @brief Default ctor + * @param bitmap pointer to CBitmap instance + * @return - + * @globalvars none + * @exception none + * @conditions none + */ + CPixelFormat_24(CBitmap *bitmap) + : CPixelFormat(bitmap) + {} + + /** + * @method ~CPixelFormat_24 + * @brief Default dtor + * @param - + * @return - + * @globalvars none + * @exception none + * @conditions none + */ + ~CPixelFormat_24() + {} + + /** + * @method setPixel + * @brief Modifies pixel at coordinates x, y + * @param pixel pointer to new pixel data + * @param x x-coordinate + * @param y y-coordinate + * @return - + * @globalvars none + * @exception PixelFormatError + * @conditions none + */ + void setPixel(const uint32_t *pixel, uint32_t x, uint32_t y); + + /** + * @method getBitCount + * @brief returns color bitcount supported by this class + * @param - + * @return color bitcount supported by this class + * @globalvars none + * @exception none + * @conditions none + */ + uint32_t getBitCount() + { + return 24; + } +}; + +#endif + +/* vim: set et sw=2 ts=2: */ diff --git a/ue1/imgsynth/cscriptparser.cpp b/ue1/imgsynth/cscriptparser.cpp new file mode 100644 index 0000000..4854064 --- /dev/null +++ b/ue1/imgsynth/cscriptparser.cpp @@ -0,0 +1,208 @@ +/** + * @module cscriptparser + * @author Manuel Mausz, 0728348 + * @brief class for parsing simple scriptfiles + * @date 17.04.2009 + */ + +#include +#include +#include +#include "cscriptparser.h" +#include "cbitmap.h" + +using namespace std; +using namespace boost; + +CScriptparser::CScriptparser(const std::string& scriptfile) + : m_scriptfile(scriptfile), m_handler(NULL) +{ + /* add our handlers */ + m_handlers.insert(new CBitmap); +} + +/*----------------------------------------------------------------------------*/ + +CScriptparser::~CScriptparser() +{ + /* delete image handlers */ + set::iterator it; + for (it = m_handlers.begin(); it != m_handlers.end(); it++) + delete *it; +} + +/*----------------------------------------------------------------------------*/ + +void CScriptparser::parse() +{ + /* open and read file */ + ifstream file(m_scriptfile.c_str(), ios::in); + if (!file) + throw ParserError("Unable to open scriptfile '" + m_scriptfile + "'."); + + while (!file.eof() && file.good()) + { + /* read file pre line */ + getline(file, m_curline); + if (m_curline.empty()) + continue; + + trim(m_curline); + + /* ignore comments */ + if (m_curline.find_first_of('#') == 0) + continue; + + /* line has no function call */ + size_t pos1 = m_curline.find_first_of('('); + size_t pos2 = m_curline.find_last_of(')'); + if (pos1 == string::npos || pos2 == string::npos) + continue; + + /* first parse function name and tokenize all parameters */ + string func = m_curline.substr(0, pos1); + string params = m_curline.substr(pos1 + 1, pos2 - pos1 - 1); + list funcparams; + tokenizer< char_separator > tokens(params, char_separator(",")); + /* BOOST_FOREACH isn't available on OOP-servers... */ + for (tokenizer< char_separator >::iterator it = tokens.begin(); + it != tokens.end(); + it++) + { + string tok(*it); + trim(tok); + if (tok.find_first_of(' ') != string::npos) + { + if (tok.find_first_of('"') == string::npos) + throw ParserError("Invalid syntax", m_curline); + } + trim_if(tok, is_any_of("\"")); + funcparams.push_back(tok); + } + + /* then call the corresponding function */ + callFunc(func, funcparams); + } + + file.close(); +} + +/*----------------------------------------------------------------------------*/ + +void CScriptparser::callFunc(const std::string& func, const std::list& funcparams) +{ + if (func.empty()) + throw ParserError("Function name is empty.", m_curline); + + if (func == "read") + read(funcparams); + else if (func == "write") + write(funcparams); + else + { + if (m_handler == NULL) + throw ParserError("No image is being processed.", m_curline); + + /* call function from handler */ + try + { + m_handler->callFunc(func, funcparams); + } + catch(CFile::FileError& ex) + { + throw ParserError(ex.what(), m_curline); + } + } +} + +/*----------------------------------------------------------------------------*/ + +void CScriptparser::read(std::list funcparams) +{ + /* check prerequirements */ + if (funcparams.size() != 2) + throw ParserError("Invalid number of function parameters (must be 2).", m_curline); + if (m_handler != NULL) + throw ParserError("An image is already being processed. Unable to open another.", m_curline); + + string type = funcparams.front(); + to_upper(type); + funcparams.pop_front(); + string filename = funcparams.front(); + + /* fetch image handler supporting requested filetype */ + m_handler = NULL; + set::iterator it; + for (it = m_handlers.begin(); it != m_handlers.end(); it++) + { + if ((*it)->supportsType(type)) + { + m_handler = *it; + break; + } + } + if (m_handler == NULL) + throw ParserError("Unknown filetype.", m_curline); + + /* open file in binary mode */ + ifstream file(filename.c_str(), ios::in | ios::binary); + if (!file) + throw ParserError("Unable to read file.", m_curline); + + /* let handlers read() parse the file */ + try + { + m_handler->read(file); + if (!file.good()) + throw ParserError("Error while reading image file.", m_curline); + file.close(); + } + catch(CFile::FileError& ex) + { + file.close(); + throw ParserError(ex.what(), m_curline); + } +} + +/*----------------------------------------------------------------------------*/ + +void CScriptparser::write(std::list funcparams) +{ + /* check prerequirements */ + if (funcparams.size() != 2) + throw ParserError("Invalid number of function parameters (must be 2).", m_curline); + if (m_handler == NULL) + throw ParserError("No image is being processed.", m_curline); + + string type = funcparams.front(); + to_upper(type); + funcparams.pop_front(); + string filename = funcparams.front(); + + /* do we have an image handler supporting the filetype? */ + if (!m_handler->supportsType(type)) + throw ParserError("Unknown filetype.", m_curline); + + /* open file in binary mode */ + ofstream file(filename.c_str(), ios::out | ios::binary); + if (!file) + throw ParserError("Unable to open file.", m_curline); + + /* let handlers write() parse the file */ + try + { + m_handler->write(file); + if (!file.good()) + throw ParserError("Error while writing image file.", m_curline); + file.close(); + m_handler = NULL; + } + catch(CFile::FileError& ex) + { + file.close(); + m_handler = NULL; + throw ParserError(ex.what(), m_curline); + } +} + +/* vim: set et sw=2 ts=2: */ diff --git a/ue1/imgsynth/cscriptparser.h b/ue1/imgsynth/cscriptparser.h new file mode 100644 index 0000000..01bb953 --- /dev/null +++ b/ue1/imgsynth/cscriptparser.h @@ -0,0 +1,181 @@ +/** + * @module cscriptparser + * @author Manuel Mausz, 0728348 + * @brief class for parsing simple scriptfiles + * @date 17.04.2009 + */ + +#ifndef CSCRIPTPARSER_H +#define CSCRIPTPARSER_H + +#include +#include +#include +#include +#include "cfile.h" + +/** + * @class CScriptparser + * + * Parses a simple line based scriptfile with some limitations: + * first function (starting a block) must be a read-command, + * last must be a write-command (ending this block). + * + * read- and write-commands have hard coded parameters, number#1 being a filetype. + * Classes handling certain filetypes must be of type CFile. + * Custom functions will be passed to CFile::callFunc(). + * + * On error ParserError will be thrown. + */ +class CScriptparser +{ + public: + /** + * @class ParserError + * @brief Exception thrown by CScriptparser + */ + class ParserError : public std::invalid_argument { + public: + /** + * @method ParserError + * @brief Default exception ctor + * @param what message to pass along + * @return - + * @globalvars none + * @exception none + * @conditions none + */ + ParserError(const std::string& what) + : std::invalid_argument(what), m_line("") + {} + + /** + * @method ParserError + * @brief Custom exception ctor + * @param what message to pass along + * @param line scriptline which is currently being parsed + * @return - + * @globalvars none + * @exception none + * @conditions none + */ + ParserError(const std::string& what, const std::string& line) + : std::invalid_argument(what), m_line(line) + {} + + /** + * @method ~ParserError + * @brief Default dtor + * @param - + * @return - + * @globalvars none + * @exception not allowed + * @conditions none + */ + ~ParserError() throw() + {} + + /** + * @method getLine + * @brief returns reference to currently parsed scriptline (if set) + * @return reference to currently parsed scriptline (maybe empty string) + * @globalvars none + * @exception none + * @conditions none + */ + const std::string &getLine() + { + return m_line; + } + + private: + /* members*/ + std::string m_line; + }; + + /** + * @method CScriptparser + * @brief Default ctor + * @param scriptfile filename of script to parse + * @return - + * @globalvars none + * @exception bad_alloc + * @conditions none + */ + CScriptparser(const std::string& scriptfile); + + /** + * @method ~CScriptparser + * @brief Default dtor + * @param - + * @return - + * @globalvars none + * @exception none + * @conditions none + */ + ~CScriptparser(); + + /** + * @method parse + * @brief Start parsing the scriptfile + * @param - + * @return - + * @globalvars none + * @exception ParserError + * @conditions none + */ + void parse(); + + protected: + /** + * @method callFunc + * @brief Delegates the function and its parameters to the correct + * method (internal or handler) + * @param func function name + * @param funcparams function parameters as list + * @return - + * @globalvars none + * @exception ParserError + * @conditions none + */ + void callFunc(const std::string& func, const std::list& funcparams); + + /** + * @method read + * @brief Handles/wrappes read-command. according to the filetype the + * read-method of the corresponding handler will be called inside. + * @param funcparams function parameters as list + * @return - + * @globalvars none + * @exception ParserError + * @conditions none + * + * Scriptfile syntax: read(, ) + */ + void read(std::list funcparams); + + /** + * @method write + * @brief Handles/wrappes write-command. according to the filetype the + * write-method of the corresponding handler will be called inside. + * @param funcparams function parameters as list + * @return - + * @globalvars none + * @exception ParserError + * @conditions none + * + * Scriptfile syntax: write(, ) + */ + void write(std::list funcparams); + + private: + /* members */ + std::set m_handlers; + std::string m_scriptfile; + std::string m_curline; + CFile *m_handler; +}; + +#endif + +/* vim: set et sw=2 ts=2: */ diff --git a/ue1/imgsynth/imgsynth.cbp b/ue1/imgsynth/imgsynth.cbp new file mode 100644 index 0000000..7badc7c --- /dev/null +++ b/ue1/imgsynth/imgsynth.cbp @@ -0,0 +1,60 @@ + + + + + + diff --git a/ue1/imgsynth/imgsynth.cpp b/ue1/imgsynth/imgsynth.cpp new file mode 100644 index 0000000..a172c76 --- /dev/null +++ b/ue1/imgsynth/imgsynth.cpp @@ -0,0 +1,84 @@ +/** + * @module imgsynth + * @author Manuel Mausz, 0728348 + * @brief imgsynth reads a scriptfile given as commandline option + * and executes all known function inside. + * On error (e.g. unknown function) the program will terminate + * @date 17.04.2009 + * @par Exercise + * 1 + */ + +#include +#include +#include "cscriptparser.h" + +using namespace std; +namespace po = boost::program_options; + +/** + * @func main + * @brief program entry point + * @param argc standard parameter of main + * @param argv standard parameter of main + * @return 0 on success, not 0 otherwise + * @globalvars none + * @exception none + * @conditions none + * + * setup commandline options, parse them and pass scriptfile to scriptparser + * instance. On error print error message to stderr. + * Unknown commandline options will print a usage message. + */ +int main(int argc, char* argv[]) +{ + string me(argv[0]); + + /* define commandline options */ + po::options_description desc("Allowed options"); + desc.add_options() + ("help,h", "this help message") + ("input,i", po::value(), "input scriptfile"); + + /* parse commandline options */ + po::variables_map vm; + try + { + po::store(po::parse_command_line(argc, argv, desc), vm); + po::notify(vm); + } + catch(po::error& ex) + { + cerr << "Error: " << ex.what() << endl; + } + + /* print usage upon request or missing params */ + if (vm.count("help") || !vm.count("input")) + { + cout << "Usage: " << me << " -i " << endl; + cout << desc << endl; + return 0; + } + + CScriptparser parser(vm["input"].as()); + try + { + parser.parse(); + } + catch(CScriptparser::ParserError& ex) + { + cerr << me << ": Error while processing scriptfile: " << ex.what() << endl; + if (!ex.getLine().empty()) + cerr << "Scriptline: '" << ex.getLine() << "'" << endl; + return 1; + } + catch(exception& ex) + { + cerr << me << ": Unexpected exception: " << ex.what() << endl; + return 1; + } + + return 0; +} + +/* vim: set et sw=2 ts=2: */ diff --git a/ue1/imgsynth/imgsynth.layout b/ue1/imgsynth/imgsynth.layout new file mode 100644 index 0000000..9e25fa1 --- /dev/null +++ b/ue1/imgsynth/imgsynth.layout @@ -0,0 +1,7 @@ + + + + + + + diff --git a/ue1/imgsynth/test/input b/ue1/imgsynth/test/input new file mode 100644 index 0000000..8036ae3 --- /dev/null +++ b/ue1/imgsynth/test/input @@ -0,0 +1,6 @@ +read(BMP, test/yellow_man_in.bmp) +fillrect(0,3,6,5,0,255,0) +fillrect(2,13,7,4,0,0,255) +write(BMP, "test/yellow_man_out.bmp") + + diff --git a/ue1/imgsynth/test/test.sh b/ue1/imgsynth/test/test.sh new file mode 100755 index 0000000..45ea077 --- /dev/null +++ b/ue1/imgsynth/test/test.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +rm -f test/yellow_man_out.bmp +./imgsynth -i test/input +if [ "$(md5sum < test/yellow_man_out.bmp)" != "$(md5sum < test/yellow_man_ref.bmp)" ] +then + echo "ERROR: test/yellow_man_ref.bmp and test/yellow_man_ref.bmp differ" + exit 1 +else + echo "Test successful" +fi + diff --git a/ue1/imgsynth/test/yellow_man_in.bmp b/ue1/imgsynth/test/yellow_man_in.bmp new file mode 100644 index 0000000..49372b2 Binary files /dev/null and b/ue1/imgsynth/test/yellow_man_in.bmp differ diff --git a/ue1/imgsynth/test/yellow_man_out.bmp b/ue1/imgsynth/test/yellow_man_out.bmp new file mode 100644 index 0000000..340eab9 Binary files /dev/null and b/ue1/imgsynth/test/yellow_man_out.bmp differ diff --git a/ue1/imgsynth/test/yellow_man_ref.bmp b/ue1/imgsynth/test/yellow_man_ref.bmp new file mode 100644 index 0000000..340eab9 Binary files /dev/null and b/ue1/imgsynth/test/yellow_man_ref.bmp differ diff --git a/ue1/protokoll.pdf b/ue1/protokoll.pdf new file mode 100644 index 0000000..6075705 Binary files /dev/null and b/ue1/protokoll.pdf differ diff --git a/ue1/protokoll/ClassDiagram1.png b/ue1/protokoll/ClassDiagram1.png new file mode 100644 index 0000000..8347d6f Binary files /dev/null and b/ue1/protokoll/ClassDiagram1.png differ diff --git a/ue1/protokoll/Makefile b/ue1/protokoll/Makefile new file mode 100644 index 0000000..a56bff6 --- /dev/null +++ b/ue1/protokoll/Makefile @@ -0,0 +1,19 @@ +# Makefile for protokoll +# Author: Manuel Mausz (0728348) +# Created: 14.04.2009 + +TEXFILE= protokoll.tex +PDFFILE= $(shell echo $(TEXFILE) | sed -e 's/\.tex$$/\.pdf/') +PDFLATEX= pdflatex +TMPDIR= tmp + +all: tex + +tex: + @echo $(PDFFILE)" lala" + @mkdir -p $(TMPDIR) + @$(PDFLATEX) -interaction=nonstopmode -output-directory=$(TMPDIR) $(TEXFILE) + @mv $(TMPDIR)/$(PDFFILE) ../ + @rm -rf $(TMPDIR) + +# vim600: noet sw=8 ts=8 diff --git a/ue1/protokoll/fancyheadings.sty b/ue1/protokoll/fancyheadings.sty new file mode 100644 index 0000000..c1e706e --- /dev/null +++ b/ue1/protokoll/fancyheadings.sty @@ -0,0 +1,166 @@ +% fancyheadings.sty version 1.94 +% Fancy headers and footers. +% Piet van Oostrum, Dept of Computer Science, University of Utrecht +% Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands +% Telephone: +31 30 2531806. Email: piet@cs.ruu.nl +% Sep 16, 1994 +% version 1.4: Correction for use with \reversemargin +% Sep 29, 1994: +% version 1.5: Added the \iftopfloat, \ifbotfloat and \iffloatpage commands +% Oct 4, 1994: +% version 1.6: Reset single spacing in headers/footers for use with +% setspace.sty or doublespace.sty +% Oct 4, 1994: +% version 1.7: changed \let\@mkboth\markboth to +% \def\@mkboth{\protect\markboth} to make it more robust +% Dec 5, 1994: +% version 1.8: corrections for amsbook/amsart: define \@chapapp and (more +% importantly) use the \chapter/sectionmark definitions from ps@headings if +% they exist (which should be true for all standard classes). +% May 31, 1995: +% version 1.9: The proposed \renewcommand{\headrulewidth}{\iffloatpage... +% construction in the doc did not work properly with the fancyplain style. +% June 1, 1995: +% version 1.91: The definition of \@mkboth wasn't restored on subsequent +% \pagestyle{fancy}'s. +% June 1, 1995: +% version 1.92: The sequence \pagestyle{fancyplain} \pagestyle{plain} +% \pagestyle{fancy} would erroneously select the plain version. +% June 1, 1995: +% version 1.93: \fancypagestyle command added. +% Dec 11, 1995: +% version 1.94: suggested by Conrad Hughes +% CJCH, Dec 11, 1995: added \footruleskip to allow control over footrule +% position (old hardcoded value of .3\normalbaselineskip is far too high +% when used with very small footer fonts). +% Jan 31, 1996: +% version 1.95: call \@normalsize in the reset code if that is defined, +% otherwise \normalsize. +% this is to solve a problem with ucthesis.cls, as this doesn't +% define \@currsize. Unfortunately for latex209 calling \normalsize doesn't +% work as this is optimized to do very little, so there \@normalsize should +% be called. Hopefully this code works for all versions of LaTeX known to +% mankind. + +\let\fancy@def\gdef +\def\lhead{\@ifnextchar[{\@xlhead}{\@ylhead}} +\def\@xlhead[#1]#2{\fancy@def\@elhead{#1}\fancy@def\@olhead{#2}} +\def\@ylhead#1{\fancy@def\@elhead{#1}\fancy@def\@olhead{#1}} + +\def\chead{\@ifnextchar[{\@xchead}{\@ychead}} +\def\@xchead[#1]#2{\fancy@def\@echead{#1}\fancy@def\@ochead{#2}} +\def\@ychead#1{\fancy@def\@echead{#1}\fancy@def\@ochead{#1}} + +\def\rhead{\@ifnextchar[{\@xrhead}{\@yrhead}} +\def\@xrhead[#1]#2{\fancy@def\@erhead{#1}\fancy@def\@orhead{#2}} +\def\@yrhead#1{\fancy@def\@erhead{#1}\fancy@def\@orhead{#1}} + +\def\lfoot{\@ifnextchar[{\@xlfoot}{\@ylfoot}} +\def\@xlfoot[#1]#2{\fancy@def\@elfoot{#1}\fancy@def\@olfoot{#2}} +\def\@ylfoot#1{\fancy@def\@elfoot{#1}\fancy@def\@olfoot{#1}} + +\def\cfoot{\@ifnextchar[{\@xcfoot}{\@ycfoot}} +\def\@xcfoot[#1]#2{\fancy@def\@ecfoot{#1}\fancy@def\@ocfoot{#2}} +\def\@ycfoot#1{\fancy@def\@ecfoot{#1}\fancy@def\@ocfoot{#1}} + +\def\rfoot{\@ifnextchar[{\@xrfoot}{\@yrfoot}} +\def\@xrfoot[#1]#2{\fancy@def\@erfoot{#1}\fancy@def\@orfoot{#2}} +\def\@yrfoot#1{\fancy@def\@erfoot{#1}\fancy@def\@orfoot{#1}} + +\newdimen\headrulewidth +\newdimen\footrulewidth +\newdimen\plainheadrulewidth +\newdimen\plainfootrulewidth +\newdimen\headwidth +\newdimen\footruleskip +\newif\if@fancyplain \@fancyplainfalse +\def\fancyplain#1#2{\if@fancyplain#1\else#2\fi} + +% Command to reset various things in the headers: +% a.o. single spacing (taken from setspace.sty) +% and the catcode of ^^M (so that epsf files in the header work if a +% verbatim crosses a page boundary) +\def\fancy@reset{\restorecr + \def\baselinestretch{1}% + \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e + \ifx\@normalsize\undefined \normalsize % for ucthesis.cls + \else \@normalsize \fi + \else% NFSS (2.09) present + \@newbaseline% + \fi} + +% Initialization of the head and foot text. + +\headrulewidth 0.4pt +\footrulewidth\z@ +\plainheadrulewidth\z@ +\plainfootrulewidth\z@ +\footruleskip .3\normalbaselineskip + +\lhead[\fancyplain{}{\sl\rightmark}]{\fancyplain{}{\sl\leftmark}} +% i.e. empty on ``plain'' pages, \rightmark on even, \leftmark on odd pages +\chead{} +\rhead[\fancyplain{}{\sl\leftmark}]{\fancyplain{}{\sl\rightmark}} +% i.e. empty on ``plain'' pages, \leftmark on even, \rightmark on odd pages +\lfoot{} +\cfoot{\rm\thepage} % page number +\rfoot{} + +% Put together a header or footer given the left, center and +% right text, fillers at left and right and a rule. +% The \lap commands put the text into an hbox of zero size, +% so overlapping text does not generate an errormessage. + +\def\@fancyhead#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\hbox +{\rlap{\parbox[b]{\headwidth}{\raggedright#2\strut}}\hfill +\parbox[b]{\headwidth}{\centering#3\strut}\hfill +\llap{\parbox[b]{\headwidth}{\raggedleft#4\strut}}}\headrule}}#5} + + +\def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\footrule +\hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2\strut}}\hfill +\parbox[t]{\headwidth}{\centering#3\strut}\hfill +\llap{\parbox[t]{\headwidth}{\raggedleft#4\strut}}}}}#5} + +\def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi +\hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}} + +\def\footrule{{\if@fancyplain\let\footrulewidth\plainfootrulewidth\fi +\vskip-\footruleskip\vskip-\footrulewidth +\hrule\@width\headwidth\@height\footrulewidth\vskip\footruleskip}} + +\def\ps@fancy{% +\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}%for amsbook +\@ifundefined{chapter}{\def\sectionmark##1{\markboth +{\uppercase{\ifnum \c@secnumdepth>\z@ + \thesection\hskip 1em\relax \fi ##1}}{}}% +\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne + \thesubsection\hskip 1em\relax \fi ##1}}}% +{\def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth>\m@ne + \@chapapp\ \thechapter. \ \fi ##1}}{}} +\def\sectionmark##1{\markright{\uppercase{\ifnum \c@secnumdepth >\z@ + \thesection. \ \fi ##1}}}}% +\csname ps@headings\endcsname % use \ps@headings defaults if they exist +\ps@@fancy +\gdef\ps@fancy{\@fancyplainfalse\ps@@fancy}% +\headwidth\textwidth} +\def\ps@fancyplain{\ps@fancy \let\ps@plain\ps@plain@fancy} +\def\ps@plain@fancy{\@fancyplaintrue\ps@@fancy} +\def\ps@@fancy{% +\def\@mkboth{\protect\markboth}% +\def\@oddhead{\@fancyhead\@lodd\@olhead\@ochead\@orhead\@rodd}% +\def\@oddfoot{\@fancyfoot\@lodd\@olfoot\@ocfoot\@orfoot\@rodd}% +\def\@evenhead{\@fancyhead\@rodd\@elhead\@echead\@erhead\@lodd}% +\def\@evenfoot{\@fancyfoot\@rodd\@elfoot\@ecfoot\@erfoot\@lodd}% +} +\def\@lodd{\if@reversemargin\hss\else\relax\fi} +\def\@rodd{\if@reversemargin\relax\else\hss\fi} + +\let\latex@makecol\@makecol +\def\@makecol{\let\topfloat\@toplist\let\botfloat\@botlist\latex@makecol} +\def\iftopfloat#1#2{\ifx\topfloat\empty #2\else #1\fi} +\def\ifbotfloat#1#2{\ifx\botfloat\empty #2\else #1\fi} +\def\iffloatpage#1#2{\if@fcolmade #1\else #2\fi} + +\newcommand{\fancypagestyle}[2]{% + \@namedef{ps@#1}{\let\fancy@def\def#2\relax\ps@fancy}} diff --git a/ue1/protokoll/imgsynth.vpp b/ue1/protokoll/imgsynth.vpp new file mode 100644 index 0000000..b94b9e4 Binary files /dev/null and b/ue1/protokoll/imgsynth.vpp differ diff --git a/ue1/protokoll/oop_prot.sty b/ue1/protokoll/oop_prot.sty new file mode 100644 index 0000000..26a66e6 --- /dev/null +++ b/ue1/protokoll/oop_prot.sty @@ -0,0 +1,222 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% OOP_prot.sty +% +% +% 13.03.07 +% +% Institut f"ur Technische Informatik (182/1) +% Real Time Systems Group +% Technische Universit"at Wien +% 1040 Treitlstr. 3, 3. Stk. +% (www.vmars.tuwien.ac.at) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% packages +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\usepackage{fancyheadings} +\usepackage{german} +\usepackage{graphicx} +\usepackage{listings} +\usepackage[T1]{fontenc} +%\usepackage[latin1]{inputenc} +\usepackage{times} +\usepackage{epsfig} + +%in order to get the source code in a really good shape +\lstset{%backgroundcolor=\color[gray]{.9}, + extendedchars=true, + basicstyle=\scriptsize, +% frame={tb}, +% morekeywords={outp,inp,bit_is_clear,bit_is_set,sei,cli,sbi,cbi,INTERRUPT,SIGNAL,uint8,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t,memptr}, + language=C++, + breaklines=true, +% lineskip=2pt, +% numbers=left, +% stepnumber=5, + } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% user-defined commands +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% typeset pin numbers +\newcommand{\pin}[1]{\emph{\textbf{#1}}\ } +%\renewcommand{\chaptername}{Aufgabe} + +\newcommand{\matrnr}{Matr. Nr.} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% some size definitions and counter settings +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\oddsidemargin 1cm +\evensidemargin 1cm +\topmargin 0pt +\headsep 50pt +\textheight 21.5cm +\textwidth 14.1cm + +\renewcommand{\floatpagefraction}{0.9} +\renewcommand{\textfraction}{0.05} +\renewcommand{\topfraction}{1.0} +\renewcommand{\bottomfraction}{1.0} + +\setcounter{totalnumber}{3} +\setcounter{bottomnumber}{3} +\setcounter{topnumber}{3} + +\setlength{\unitlength}{1mm} +\setlength{\parindent}{6mm} +\setlength{\parskip}{12pt plus2pt minus2pt} + +\sloppy + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% define variables used on titlepage +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% heading +\def\headline#1{\gdef\@headline{#1}} +% authors +\def\vornamea#1{\gdef\@vornamea{#1}} +\def\nachnamea#1{\gdef\@nachnamea{#1}} +\def\matrikela#1{\gdef\@matrikela{#1}} +\def\emaila#1{\gdef\@emaila{#1}} + +\def\vornameb#1{\gdef\@vornameb{#1}} +\def\nachnameb#1{\gdef\@nachnameb{#1}} +\def\matrikelb#1{\gdef\@matrikelb{#1}} +\def\emailb#1{\gdef\@emailb{#1}} + +\def\vornamec#1{\gdef\@vornamec{#1}} +\def\nachnamec#1{\gdef\@nachnamec{#1}} +\def\matrikelc#1{\gdef\@matrikelc{#1}} +\def\emailc#1{\gdef\@emailc{#1}} + +\def\vornamed#1{\gdef\@vornamed{#1}} +\def\nachnamed#1{\gdef\@nachnamed{#1}} +\def\matrikeld#1{\gdef\@matrikeld{#1}} +\def\emaild#1{\gdef\@emaild{#1}} + +% address of department +\def\address#1{\gdef\@address{#1}} +% LVA-Nr. +\def\lvanr#1{\gdef\@aufgabe{#1}} + +\setcounter{footnote}{0} + +% initialize variables +\gdef\@headline{Object-Oriented Programming VL} +%\gdef\@title{Laborprotokoll} + +\gdef\@vornamea{VStud1} +\gdef\@nachnamea{NStud1} +\gdef\@matrikela{000000} +\gdef\@emaila{e000000@student.tuwien.ac.at} + +\gdef\@vornameb{VStud2} +\gdef\@nachnameb{NStud2} +\gdef\@matrikelb{000000} +\gdef\@emailb{e000000@student.tuwien.ac.at} + +\gdef\@vornamec{VStud3} +\gdef\@nachnamec{NStud3} +\gdef\@matrikelc{0000000} +\gdef\@emailc{e000000@student.tuwien.ac.at} + +\gdef\@aufgabe{zu Aufgabe 1} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% titlepage +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\maketitle{ +\begin{titlepage} + +% enlarge page +\setlength{\topmargin}{0pt} +\setlength{\headheight}{0pt} +\setlength{\headsep}{0pt} +\setlength{\footskip}{0pt} + +\let\footnotesize\small \let\footnoterule\relax \setcounter{page}{1} +\null +\vfill +\large +\vskip -4 cm + +\begin{center} +% heading +{\LARGE\bf \@headline \par} \vskip 2cm + +\vskip 1cm + +% title +{\LARGE\bf Laborprotokoll \par} +\vskip 0.5cm +{\Huge\bf \@title \par} +\vskip 1cm +%{\Large \bf \@aufgabe \par} +\vskip 4cm + +\begin{flushright} +\@author +\vskip 1cm +Wien, am~\today{} +\end{flushright} +\end{center} \par +\vskip 1.5cm + +\end{titlepage} + +\setcounter{footnote}{0} +\let\thanks\relax +} % \def\maketitle + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newenvironment{Ventry}[1]% +{\begin{list}{}{\renewcommand{\makelabel}[1]{\textbf{##1:}\hfill}% +\settowidth{\labelwidth}{\textbf{#1:}}% +\setlength{\leftmargin}{\labelwidth}% +\addtolength{\leftmargin}{\labelsep}}}% +{\end{list}} + +\newcommand{\tablesize}{\fontsize{8}{10}\selectfont} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% layout of non-title pages +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\pagenumbering{roman} +\setlength{\parskip}{5pt plus2pt minus2pt} + +\setlength{\parskip}{1mm} +\clearpage +\setlength{\parskip}{5pt plus2pt minus2pt} + +\pagestyle{fancy} +%\renewcommand{\chaptermark}[1]{\markboth{\thechapter\ #1}{}} +\renewcommand{\sectionmark}[1]{\markboth{\thesection\ #1}{}} +\addtolength{\headheight}{2pt} + +\pagenumbering{arabic} +\setcounter{page} {1} diff --git a/ue1/protokoll/protokoll.tex b/ue1/protokoll/protokoll.tex new file mode 100644 index 0000000..a8c7928 --- /dev/null +++ b/ue1/protokoll/protokoll.tex @@ -0,0 +1,226 @@ +\documentclass[12pt,a4paper,titlepage,oneside]{article} +\usepackage[utf8]{inputenc} +\usepackage{oop_prot} +\usepackage{url} +\usepackage{pdfpages} +\usepackage{booktabs} + +\title{Beispiel 1} + +\author{Manuel Mausz, \matrnr 0728348\\ + {\small manuel-tu@mausz.at} +} + +\begin{document} + +% create titlepage +\maketitle + +\tableofcontents +\newpage + +%------------------------------------------------------------------ +%------------------------------------------------------------------ + +\section{Aufgabenstellung - Beispiel 1} +\includegraphics[width=\textwidth,page=1]{../angabe.pdf} +\includegraphics[width=\textwidth,page=2]{../angabe.pdf} + +%------------------------------------------------------------------ +%------------------------------------------------------------------ + +\section{Beispiel 1} + +\subsection{Design}\label{Design} + +Abbildung~\ref{fig:classdiagram1} zeigt das Klassendiagramm der Aufgabe. + + +Die Klasse CScriptParser übernimmt das Parsen der per Commandlineparameter +übergebenen Scriptdatei als String, wobei dieser bereits im Konstruktor +übergeben werden muss. Zum Anstoßen des Parsen dient die Funktion parse(). +Der (simple) Parser arbeitet Zeilenbasiert und erwartet pro Zeile einen +Funktionsaufruf im Syntax: funktionsname(param1, ... paramX). Schachteln von +Funktionen ist nicht erlaubt. Der erste Befehl eines Blocks muss der Befehl +``read'' sein, der Befehl ``write'' beendet einen Block. Alle Funktionsparameter +werden zusammen in einer Liste gespeichert und den entsprechenden Funktionen +übergeben. Whitespaces und Anführungszeichen werden bereits vorab gelöscht. + + +Tritt ein Fehler während des Parsens auf, werden Instanzen der Klasse +\mbox{CSriptError::ParserError} als Exception geworfen. Über die Methode +\mbox{getLine()} der Exception kann die aktuelle Zeile der Scriptdatei, die den +Fehler erzeugt hat, ausgelesen werden.\\ + + +Da der Scriptbefehl ``read'' und ``write'' einen Dateitypparameter enthält, +ist es potentiell möglich verschiedene Dateitypen zu öffnen und zu bearbeiten. +Um dies aus der Sicht des Parsers generisch durchzuführen, müssen alle Klassen, +die Dateioperationen durchführen können, von der Abstrakten Klasse \mbox{CFile} +abgeleitet sein und somit mindestens dessen virtuelle Methoden implementieren. +Alle Implementation müssen weiters im Konstruktor die unterstützten Dateitypen +in die Membervariable m\_types hinzufügen, damit der Parser die jeweils +zuständige Implementation verwenden kann. + + +Die Methode \mbox{callFunc(...)} dient zum Aufruf von dateitypspezifische +Scriptfunktionen. Hierzu übergibt der Parser automatisch alle unbekannten +Funktionen und dessen Parameter innerhalb eines Block (abgesehen von ``read'' +und ``write'') der jeweils zuständigen Instanz. + + +Zur Fehlerbehandlung sollen Implementationen von CFile Instanzen der +Klasse \mbox{CFile::FileError} als Exception werfen. Diese werden vom Parser +gefangen und in Instanzen der eigenen Exception des Parsers +\mbox{CSriptError::ParserError} übersetzt.\\ + + +Die Klasse \mbox{CBitmap} implementiert die Abstrakte Klasse \mbox{CFile} und +kann Dateien des Types ``BMP'' (Windows Bitmap) bearbeiten. Beim Lesen der +Datei werden rudimentäre Checks des Dateiheaders durchgeführt. Der Speicher der +Pixel, wird wie gewünscht dynamisch alloziert. Um aber die verschiedenen +möglichen Farbtiefen von Windows Bitmap zu unterstützen, werden die +Schreiboperationen auf die Pixeldaten an eine Instanz der je nach Farbtiefe +zuständigen Implementation der Abstrakten Klasse \mbox{CPixelFormat} delegiert. +Diese Instanz wird während der Analyse des Dateiheaders ebenfalls dynamisch +allokiert.\\ + + +Damit Implementationen der abstrakten Klasse \mbox{CPixelFormat} direkt auf die +Daten des Windows Bitmap zugreifen können, wird im Konstruktor ein Pointer auf +die Instanz von \mbox{CBitmap} übergeben. Über die Public Getter-Methoden von +\mbox{CBitmap} erfolgt der direkt Zugriff. Fehlerbehandlung erfolgt +Exceptions der Klasse \mbox{CPixelFormat::PixelFormatError}. + +%================================================================== +\begin{figure}[htb] +\begin{center} +\epsfxsize=0.9\textwidth\epsfbox{ClassDiagram1.png} +\end{center} +\caption{Klassendiagramm 1} +\label{fig:classdiagram1} +\end{figure} +%================================================================== + + +\subsection{Verwaltung der Ressourcen} + +Alle Klassen, die im Laufe ihrer Existenz Ressourcen dynamische +allozieren, initialisieren die jeweiligen Membervariablen im Konstruktor auf +NULL und geben diese, sofern tatsächlich alloziert, im spätestens Destruktor +wieder frei.\\ +Alle Dateien, die geöffnet werden, werden nach dem Abfangen der Exception auch +wieder geschlossen, sofern alle möglichen, auftretenden Exceptions +(\mbox{std::bad\_alloc} ausgenommen) auch vorab übersetzt wurden. + +\subsection{Fehlerbehandlung} + +Alle Implementationen der abstrakten Klasse \mbox{CPixelFormat} werfen +Exceptions der Klasse \mbox{CPixelFormat::PixelFormatError}. Diese werden von +\mbox{CBitmap} gefangen und in Exceptions der Klasse \mbox{CFile::FileError} +übersetzt, welche wiederum von der Klasse \mbox{CScriptParser} gefangen und in +Exceptions der Klasse \mbox{CScriptParser::ParserError} übersetzt werden.\\ +Diese Exceptions sowie Exceptions des Typs \mbox{std::exception} werden +schlussendlich vom Hauptprogramm gefangen und geben eine entsprechende +Fehlermeldung an den Benutzer auf stderr aus. + +\subsection{Implementierung} +Siehe Punkt~\ref{Design} und Abbildung~\ref{fig:classdiagram1} sowie +Punkt~\ref{Listings}. + + +Alle Exceptions wurden von \mbox{std::invalid\_argument} abgeleitet und der +Konstruktor gemäß den üblichen Konventionen implementiert: + +%================================================================== +\begin{lstlisting}{} +ParserError(const std::string& what) + : std::invalid_argument(what) +{} +\end{lstlisting} +%================================================================== + + +%------------------------------------------------------------------ +%------------------------------------------------------------------ + +\section{Projektverlauf} + + +\subsection{Probleme und Fallstricke} + +In der Hoffnung das in der nächsten Aufgabe weitere Funktionen, Dateitypen +und/oder Farbtiefen des Windows Bitmaps-Formats verlangt werden, wurden +diese sehr generisch implementiert.\\ +Ursprünglich wollte ich die jeweilig unterstützen Scriptfunktionen mittels +\mbox{std::map} an den Scriptparser zurückgeben, +sodass dieser direkt die jeweilige Methode (per Pointer) aufrufen kann. Dies +funktioniert jedoch logischerweise nur bei statischen Methoden. Daher die +einfacher Methode über die callFunc-Methoden, die die Parameter an die +jeweiligen internen Methoden weiterdelegieren. + + +Da sich \mbox{CBitmap} und \mbox{CPixelFormat} gegenseitig referenzieren, +müssen die jeweiligen Klassen im Headerfile der anderen Klasse vorab deklariert +werden. Andernfalls kann der Compiler die Klasse aufgrund der rekursiven +Inklusion nicht finden. + +\subsection{Arbeitsaufwand} + +\begin{tabular}{ll} + \toprule + Entwicklungsschritt / Meilenstein & Arbeitsaufwand in Stunden\\ + \midrule + Erstes Design & 15 Minuten\\ + \hline + Implementierung (und leichte Anpassung des Designs) & 1 Tag\\ + \hline + Dokumentation (Doxygen) und Überprüfung alle\\ + Anforderungen gemäß der Programmierrichtlinien & 2 Tage\\ + \hline + Erstellung des Protokolls & 1 Tag\\ + \bottomrule +\end{tabular} + +%------------------------------------------------------------------ +%------------------------------------------------------------------ + +\section{Listings}\label{Listings} + +\subsection{imgsynth.cpp} +\lstinputlisting{../imgsynth/imgsynth.cpp} + +\newpage +\subsection{cscriptparser.h} +\lstinputlisting{../imgsynth/cscriptparser.h} + +\newpage +\subsection{cscriptparser.cpp} +\lstinputlisting{../imgsynth/cscriptparser.cpp} + +\newpage +\subsection{cfile.h} +\lstinputlisting{../imgsynth/cfile.h} + +\newpage +\subsection{cbitmap.h} +\lstinputlisting{../imgsynth/cbitmap.h} + +\newpage +\subsection{cbitmap.cpp} +\lstinputlisting{../imgsynth/cbitmap.cpp} + +\newpage +\subsection{cpixelformat.h} +\lstinputlisting{../imgsynth/cpixelformat.h} + +\newpage +\subsection{cpixelformat\_24.h} +\lstinputlisting{../imgsynth/cpixelformat_24.h} + +\newpage +\subsection{cpixelformat\_24.cpp} +\lstinputlisting{../imgsynth/cpixelformat_24.cpp} + +\end{document} + -- cgit v1.2.3