Flowers program, version 2.0 (Windows) and 2.1(Linux)
=====================================================
Copyright (c) 2021, Astrid Geck, all rights reserved.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Content
=======
Features
Licenses
Startup parameters
Problems
Features
========
The program creates 3D representations of flowers and flower elements, optionally
grouped in a bouquet or in a meadow. The flowers do not claim to be botanically
correct, some randomly generated flowers do not even look like a flower and not
all randomly generated bouquets and meadows look nice.
The program can be used in different main modes
- as screen saver
- to generate an (unique) random flower picture with some text
- in interactive mode
- in information mode
Under Windows you start the program with startF.exe, under Linux with startF.sh.
In screen saver mode flowers are created randomly and moved on the screen.
By configuration you can select, what types are displayed - random flowers, bouquets
and/or meadows - and the speed of movement.
Under Windows for screen saver mode a special executable flowers.scr is provided
that can be installed by the explorer or another file manager and supports
presentation and configuration by the windows screen saver settings.
Under Linux for screen saver mode a special shell script startFlowersSC.sh
is provided. To install Flowers as screen saver add this script to the list of
start programs with the number of idle minutes as parameter.
You may also start screen saver mode from the command line
by 'startF.exe /S' (Windows) or 'startF.sh /S*' (Linux).
In generation mode you call the program from the command line, providing the
type of display, the files to generate (picture only or picture and XML file)
and one or two texts used as seeds for random number generation and as text
to be placed in the picture. Thus you can create an unique flower greeting.
If the result doesn't please you, slightly modify your seed text.
Call the program with option '/H' for the details of the command line options.
In interactive mode you can build your own flower elements, flowers, bouquets
or meadows interactively, modify them, move them, save them and load stored elements,
flowers, bouquets, meadows or complete scenes. You can also make a screenshot of
the actual display.
The basic flower elements are the stalk, the receptacle and leafs. You can add
leafs to a stalk, stalk leaf or to a receptacle. There are 4 leaf types: simple,
nice, star and stalk. You can vary the elements by size, format and colour.
Additionally you can display and/or store randomly generated
flowers, bouquets or meadows. Interactive mode is started by calling the
program without option or with option '/G'.
For details of the GUI, see Flowers_GUI_EN.pdf!
In Information mode, the program is called from the command line with option '/H'
for display of the command line options or with option '/I' for program and license
information.
Licenses
========
Flowers program
Copyright (c) 2021 Astrid Geck
All rights reserved.
This program is provided under the terms of the GNU General Public License as published by
the Free Software Foundation, version 3 of the License, see GPL3_LICENSE.TXT.
The Flowers program uses three open source libraries:
1) Visualization Library
http://visualizationlibrary.org
Copyright (c) 2005-2020, Michele Bosi, All rights reserved.
The library is provided with the license as written in VisualizationLibrary*_LICENSE.TXT.
Two modifications have been applied to the original library version 1.0.3 for Flowers
version 1.0 and 2.0:
- in file GeometryPrimitives.cpp, to ease colouring of boxes - needed for another program.
- in file Applet.cpp to change the location where screenshots are stored:
from the program directory - often only accessible with administrator rights - to the
user home directory.
For Flowers version 2.1 the Visualization library 2.0.0 is used. The source code for the
png and z library has been replaced by actual versions and the make files of the
original Visualization library have been changed to link the library optionally with
shared versions of png and z the libraries. The change of the png and z libraries was
necessary to get the program running on newer Linux versions as Ubuntu 20.04.
Source code of the library is provided as zip-file together with the source code of the
Flowers program.
2) QT4 Library
http://www.qt.io
Copyright (C) 2015 The Qt Company Ltd, All rights reserved.
The library is provided under the terms of the GNU Lesser General Public License, version 3
of the License as published by the Free Software Foundation, see QT4_LGPLv3_LICENSE.TXT.
No modification has been applied to the library. Source code of the library is provided as
zip-file together with the source code of the Flowers program.
3) TinyXML-2 7.0.0 Library
https://github.com/leethomason/tinyxml2
The library is provided with the license as written in TinyXML-2_LICENSE.TXT.
Two small modifications have been applied to the library to adapt it to the Windows context:
- The format specifier for long long integers has been changed.
- The handling of low level file read errors has been changed.
The changes are marked in the source files.
The adapted library sources are provided as part of the program sources.
Startup parameters
==================
Under Windows the startup parameters are set during installation in the ini-file
of the program. Under Linux the program is installed with default settings.
You can set the program language (English or German) in the ini-file
flowers.ini in the program directory. If no language setting is provided in the
ini-file and the system language is English or German, the system language is taken.
The default language is English.
You can also set the output directory of the program in the ini-file flowers.ini
in the program directory. Make sure you have write access rights for this directory.
Two sub-directories are needed and created during installation.
- The sub directory 'output' where pictures and XML-Files are stored in random
generation mode.
- the sub directory 'test' where pictures and XML-Files are stored in interactive
mode if you activate generation of random flowers, bouquest or meadows.
The output directory further holds the ini-file for screen saver mode with the
type of scenes to be displayed and speed of display.
Under Windows the default output directory is the subdirectory Flowers of the file
system directory that serves as a data repository for local (nonroaming) applications,
e.g. C:\Users\<username>\AppData\Local\Flowers. This directory may be hidden.
Under Linux the default output directory is the subdirectory Flowers of the user
home directory, i.e. /home/<username>/Flowers.
Problems
========
1) Fonts or images not found at startup: Always start the program via startF.exe
(Windows) / startF.sh (Linux) to set the path to the resource files correctly!
2) The program terminates directly after start: probably the program does not find all needed
DLLs/shared libraries.
Under Windows you need the DLLs from the visualization library provided with the Flowers
program installation (libVLCore.dll, libVLGraphics.dll and libVLQt4.dll), the DLLs
from the QT4 library provided with the magic cube program installation (Qt4Core.dll,
Qt4Gui.dll, QTopenGl4.dll and lpwinpthread-1.dll) and the opengl32 DLL (typically found
in C:\Windows\System32 and thus in the Windows search path).
Under Linux you need the shared libraries for the Visualization library provided with the
Flowers program installation (libVLCore.so, libVLGraphics.so and libVLQt4.so), the
shared libraries from the QT4 library (libQt4Core.so, libQt4Gui.so, libQtSVG.so and
libQtOpenGL4.so) provided with the magic cube program installation and libegl1-mesa,
libc6 and libstdc++6 (typically already installed on your system). The program and
the Visualization Library libs up to version 2.0 are compiled with
_GLIBCXX_USE_CXX11_ABI=0, thus you can run them as well with stdlibc++6 from GCC 4.6
as from newer GCC versions. Version 2.1 is compiled without that option.
3) Sometimes in the interactive mode of the program you may not see the created elements
or not all created elements. This can have different reasons. Display of a complex
bouquet or meadow may take several seconds, depending on the speed of your processor
and/or graphic card. Otherwise you may always try 'View/Show all' and/or 'View/Show origin'.
- a click on the middle of the 3D window may show the scene.
- the elements may be out of the visible area, if you have created a quite large scene.
You can check, what have been created by saving the scene by 'File/Save Scene' and
check the content of the saved file.
- the elements are quite small, only few pixels. You may move the whole scene to the front
by 'View/Move all/Move interactive' with a relative movement in positive z-direction.
Alternatively you may zoom it to the front in ghost camera manipulator mode - take care
not to touch the mouse and fix the scene by returning to trackball mode.
- You have chosen a meadow with a background with two colours or an image. This is
implemented as a cone with the meadow elements in the middle. Normally you look into
the inner of the cone. If you happen to look at the outside of the cone, you will just
see a black screen. Try 'View/Show origin' and then move the scene to the front.
- When an element is created by the corresponding dialog, 'View/Show all' is called
implicitly. Nevertheleass in some rare cases, the element is not visible. Then you
may make it visible in small format by 'View/Show origin', select it, load it by
'Selection/Modify' and leave the dialog by 'OK'. Then the element should be visible
in full size.
5) Loading corrupted XML files may lead to crash.
The program version 2.0 has been tested under Windows 10 Version 1803 and 1909 and Ubuntu
18-04-03 LTS. The program version 2.1 has been tested under Ubuntu version 20.04.02.