home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d5xx
/
d521
/
landscape.lha
/
LandScape
/
LandScape.docs
< prev
next >
Wrap
Text File
|
1991-08-05
|
38KB
|
623 lines
Documentation For LandScape
===========================
This is the user documentation for LandScape.
LandScape is a sort of poor-mans CAD (Computer Aided Design) program
that allows you to design (landscape) a garden. It consists of two parts: a
design module, where you lay out the design of your garden (using a small
selection of plants, and other garden objects), and a drawing module, which
takes the design, and draws a stylised 3D version from any viewpoint of what
the garden would look like in real life.
The LandScape distribution consists of the following files:
- LandScape.docs What you are reading now.
- LandScape.release_notes Release notes for this and previous
versions.
- LandScape The executable code
- arp.library (In case you don't already have it)
There are also icons for the first 3 files.
This documentation assumes you have a small amount of knowledge on using
your Amiga. In particular, how to click on things (left mouse button) and
how to select items from menus (right mouse button). In order to set the
program up the very first time, you may have to use the CLI.
CONTENTS
========
1) Obligatory legalese (what you can do!)
2) Why? (why write a gardening program?)
3) How? (example session to get you started)
4) Where? (a tour of menus and facilities available)
5) Hints and Tips
6) What's next? (plans for future versions)
7) Technical stuff
1 - Obligatory Legalese
=======================
There are many different names for software (PD, freely distributable,
shareware, etc) and I can never remember what they all mean. Therefore, I
will just describe what you can do to this program.
Although I retain copyright to all source code written by me, you can
copy this distribution as much as you like, and give it to whoever you want.
(note that arp.library is part of the AmigaDOS Replacement Project, and is
subject to their distribution restrictions) The executable, documentation,
and release notes should be kept together, but you can modify/get rid of the
icons if you don't like them. You should not charge for, or have paid any
money for this program, other than reasonable media costs (such as requested
by Fred Fish and other reputable libraries). The executable and
documentation may be compressed (using a powerpacker-type program) if you so
desire. I hope that isn't too restrictive!
This program is supplied 'as is'. No warranty or guarantee of any sort
is implied. I am not responsible for any damage whatsoever that may arise
from using this program.
2 - Why?
========
The idea for a landscape program came from several sources. Firstly, I
like 3D graphics/fractals, etc, but had never written any programs of my own
in this area. For myself, then I wanted to try out a few ideas. Secondly, I
wanted something to model the real world. Real world modeling makes a
program accessible to more people, as it is easier to follow what is going
on. Thirdly, I was lent a catalogue from a "well-known garden paving
manufacturer". In it, a landscape designer had drawn plans of various
gardens, and then drawn the garden as it would look in 3D. I thought "I
wonder if a computer could do that?".
The LandScape program is the result of these musings. It is not meant to
be a full-blown CAD program, as these tend to be difficult to use for people
without a technical background. What I have tried to do, is to take some of
the ideas of CAD (although I have never used a CAD package myself), and
pitched them at a more intuitive level (hopefully).
Now then, as any programmer will tell you, programs are never really
finished. This version of LandScape has been deliberately limited in many
respects in the interests of getting something released. If I didn't do it
this way, then I'd always be adding bits here and there, and no-one would
get to see what I had done. I have some ideas about the things that have yet
to be added (see section 6), but would always be interested in any ideas
that you may have, or things that you think a program of this type ought to
be able to do.
3 - How?
========
As the best way to learn is by doing, this section presents in tutorial
form a typical session. It shows you how to use some of the features the
program offers. As with anything, there is no substitute for
experimentation, so if anything looks a bit confusing, do not be afraid to
try it out a few times. Unfortunately there is some duplication between the
information presented in this section, and the more detailed information in
section 4.
An important thing to remember is that this is a reasonably complicated
program, and you are advised to use it experimentally, to get a feel for
what it is going to do, before diving in with anything complicated. If you
just switch on, skim through the docs saying "Yup, that looks easy", and
then proceed to try and enter an entry for the Chelsea flower show, you may
well come unstuck!
3.1 Setting Up
Sorry to start with a boring bit, but there is a small amount of stuff
you have to set up before using LandScape. It only has to be done once
(unless you change your workbench disks). In order to work, the file
arp.library has to be installed into your LIBS: directory. If you have
installed the ARP command set, or another program that used arp.library then
this will already have been done. If, this is not the case, however, you
will have to copy the file across yourself. This can be done either through
the CLI and the COPY command, or by using one of the mouse-driven directory
utilities (such as SID) which are quite popular.
If really have no idea about how to do this, I would suggest that you
seek help from a friend/neighbour/dealer/user group. I could have given a
step-by-step description here on how to do it, but since I do not know the
exact setup of the disk this program has been supplied on, there would
always be the risk of it not working.
3.2 Scaling
OK, lets assume that the setup has been completed. You can now click on
the LandScape icon (or type the program name from the CLI, if you prefer).
The program will come up with a blank screen. The black area is where you
draw the garden plan.
IMPORTANT NOTE: It is likely that when you see the scaling requester pop
up, you will just thump the 'OK' gadget, and start planting. Unless the
default scaling is correct, RESIST THIS TEMPTATION. If you take the default
scales, you are telling the program that your garden is 6.4 metres long. If
you then plonk a medium-sized tree (5 metres tall) in the middle of it,
there will not be much space left for anything else.
The first thing to do is to lay out the garden boundary. To do this,
select 'boundary' from the edit menu. You cannot do anything useful, until
you have defined some sort of boundary. Now then, a requester pops up asking
you to set the screen dimensions. This is necessary, as when you are drawing
the garden, the computer needs to know how big it is in real life. The two
numbers show how big the black drawing area is on the ground. It will
default to 640 cms across the screen. If this is too big, or too small, you
can click on the up/down arrows to change it. Alternatively, you can click
on one of the numbers, use the delete keys to get rid of the old number,
then type in a new number and press return. You will notice that the two
numbers are linked, so that if you change one, the other changes as well.
This is because the scaling affects the whole drawing area. You cannot set
different X and Y scales.
When you are satisfied, click on 'OK'. This cursor will change into a
crosshair. If you move it around a bit, you will see a distance readout
appear in the top right hand of the title bar. The crosshair cursor means
that you are drawing an area object. If you click the left mouse button, a
white dot appears. Moving the mouse now will cause the distance readout to
show how far away you are from the dot. If you click the left mouse button
again, a white line will be drawn from the first dot, to the current
position. You can go on in this way, clicking the left mouse button, and
drawing lines from the last clicked point to the current one, drawing a
boundary to be any shape you like. In order to stop drawing, just click
reasonably close (within 5 pixels) of the first point on the boundary.
LandScape will close the boundary, and change the pointer back to its
familiar shape. An area object has a limit of about 250 points on each area
object, so don't go too mad.
Note that the boundary doesn't actually do anything as such. It is not
drawn in the final picture, and the program will allow you to draw outside
of it. However, you are strongly advised not to do this.
3.3 Area Objects
Now that the boundary has been defined, we can draw the rest of the area
objects. Currently, these consist of lawns, earth, and footpaths. These are
all drawn in exactly the same way as the boundary, you just select the one
you want. You must, however remember the following points: LandScape sets up
the garden in much the same way as a real garden. i.e., you start with a big
patch of mud, then plant lawns, and lay footpaths. This means that if you
plan a garden with a patch of earth, a lawn, and a footpath all in the same
place, the program will draw the earth first, followed by the lawn (covering
the earth), followed by the footpath (covering both of them).
The only time this causes problems, is if you want something different
from this scheme of things, such as a patch of earth (flower bed) in the
middle of a lawn. See the hints and tips section (section 5) for how to get
around this.
Incidentally, all area objects are colour coded so that you know what's
what. The boundary is white, earth is drawn as brown, lawns are green, and
footpaths are grey. Fairly predictable really.
3.4 Plants
Now, we have set up our lawns, footpaths and flower beds, it's time to
get planting! It doesn't really matter when you lay the plants out (before
or after the area objects) as they push through and are always drawn on the
top of all area objects. It makes more sense, however to draw the plants
last. The program will also let you plant things on the footpath.
First of all, you have to decide what to plant. To do this, select
'plant' from the edit menu. A requester will appear with a selection of
plant groups on it. The groups ( the 3 boxes across the middle) represent
trees, non-flowering plants, and flowering plants. The current selection is
highlighted in red. If you click on one of the plant group boxes, a second
set of boxes will appear towards the bottom of the requester, containing the
plants available in that group. You just click on the plant you want (so
that it becomes highlighted). I won't list all the plants available, as this
is just a tutorial. (see section 4 if you are desperately interested). Note
that you can only pick one plant at a time (obviously), but if you click on
the flowering plants group, you can pick a flower AND a colour.
Now if you click on 'OK', the cursor turns into a symbol of whatever you
have chosen, and you can go around the garden plan 'planting' it with the
left mouse button. As you do this, a little plant symbol will appear on the
plan. Note that the symbols are fairly simple, and do not show the size of
the plants.
3.5 Picking a viewpoint
OK, now we've got a garden full of plants, all ready to draw. The most
important thing to do is to save what you've done so far. Ideally, you
should save what you've done every 15 minutes or so, that way if something
goes wrong, you haven't lost too much work. Once you have told LandScape to
draw the garden, you will not be able to save the garden plan. If you look
at save under the project menu, you will see that you can save in two ways:
IFF or data. IFF means that the garden plan is saved in a way that allows it
to be loaded in DeluxePaint, or any other IFF compatible paint/viewing
program. A garden plan saved as IFF can NOT be read back in again. If you
want to be able to read the garden plan back in again, then it has to be
saved as data. Whichever one you pick, you will get a file requester which
you fill in to tell the program where to save the information, and what to
call it.
Anyway, once the garden plan has been saved, the drawing can start. This
is done by selecting draw from the draw menu. Be warned that once the garden
has started drawing, you cannot get back to the plan without exiting the
program, starting it up again, and loading the plan back in.
When you select 'draw', the screen will clear, and the boundary will be
drawn on its own (no plants/lawns, etc). The pointer will turn into a cross.
LandScape is waiting for you to tell it what part of the garden you want to
look at. This means that no matter what direction you move your eyes to,
your eyes will always look at this point (and it will appear in the middle
of the screen). For most cases, the 'look at' point will be in the middle of
the garden, so for the time being, move the cursor to the middle and press
the left mouse button.
The screen will clear again, and the boundary will be re-drawn, with the
chosen 'look at' point in the middle of the screen. The first coordinate of
the boundary has a red square drawn around it (so that you can keep track of
where you are, if you garden is a regular shape). It is now time to pick a
viewpoint. For those who are familiar with 3D rotation, this is a breeze. If
you are not so familiar with this concept I will try to explain what is
happening.
At the top left of the screen, you will see some boxes. You click on
these boxes to move your viewpoint around. Your movement can be up, down,
left, right, zoom in, or zoom out. You start off vertically above the garden
looking straight down.
The key point is that all movement is radial (polar coordinates). This
means that you are at a fixed distance from the 'look at' point. For those
unfamiliar with polar coordinates, it is quite difficult to explain without
a few pictures, and so there really is no substitute for clicking the
buttons and seeing what happens. If I were forced to try and explain it, I
would say it is rather like climbing around on the outside of a giant glass
pudding basin placed over the garden.
No matter where you move to, LandScape will make sure the 'look at'
point is at the centre of the screen. You cannot move the viewpoint
underground, or take it past vertical.
Once you are happy with the viewpoint, click on the 'quit' box, and the
garden will be drawn from that viewpoint. This takes quite a few minutes,
but the 'drawing in progress...' title will disappear when this is done.
Be warned that the drawing CAN TAKE A LONG TIME. There is a lot of maths
involved with working out the plants, and although there is a lot that could
be done to speed things up, that is for another version. You are better off
starting off with fairly simple gardens to start off with, with not very
many plants in until you work out what to expect.
When the drawing has completed, a new menu will exist in the menu bar.
The only thing you can really do is to save the garden as an IFF file, ready
to be loaded into your favourite paint program for printing out, or for
making any small changes you feel are necessary. Otherwise, you can select
'quit', and the program will end.
4 - Where?
==========
LandScape consists of two largely independent parts. The editor module,
and the drawing module. When starting the program, you are using the editor
module. Instructing LandScape to draw a plan automatically transfers you to
the drawing module. Each module is described below, and has different menus.
Editor Module.
The editor module is used for entering a plan of the garden when the
program is first started. LandScape can be started from either the
workbench, or the CLI. There is, however a subtle difference if anything
goes wrong. A CLI launched program will print a error message on the CLI if
a problem is detected. The workbench launched version will just beep and
flash the screen. In either case the program may or may not terminate,
depending on the severity of the problem.
The editor module contains the following menu items: (Note that in
common with all Amiga programs, many of the menu selections have keyboard
shortcuts. These are useful for speeding up use of the program once you have
the hang of how it works. The shortcuts can be seen by pulling a menu down.
On the right of some of the selections is a funny letter A, followed by a
letter. This means that you can select this menu item by holding down the
right Amiga key while pressing that letter.
The project menu contains the following items:
- About (right amiga A): Just a quick note on how to contact me, should
you wish to do so.
- New (right amiga N): This empties out everything in memory, ready to
type in a new garden plan. This does not have to be done when the program is
started. Remember that if you select this, any plan typed in so far WILL BE
LOST, so make sure you either intend to get rid of it, or save it first.
- Open. (right amiga O): This allows a garden plan that was previously
saved to disk (as data) to be read in. You cannot open a new garden while in
the middle of editing an old one. You must first get rid of the old one by
selecting 'new'.
- Save (IFF/data): This allows a garden plan to be saved to disk. for
later retrieval. Data can be saved in the standard Amiga IFF format for
loading into a paint/view program. A garden plan saved in this way cannot be
loaded back into LandScape at a later date. The second way for a plan to be
saved is as a data file. This stores the plan information in LandScapes
very own custom personalised file format, which can be read back in later by
the program using 'open'.
- What is (right amiga W): This option puts up a requester with a little
bit of information about the currently selected object. (see 'select' for
how to select an object) Currently, different sized plants are all drawn
with the same symbol, and this is the only way of finding out how big they
are. Click on OK when you have finished reading.
- Select Item (right amiga S): Selecting something in the garden singles
out that object from the others. On its own, it doesn't do much, however the
'delete' and 'what is' menu functions only work on things that have been
selected. Anything in the garden can be selected, and when you choose this
menu option, the cursor turns into a question mark with an arrow. You then
move the arrow to the item you want to select, and click on it. The item
will turn red, to show that it is selected. To unselect it, just click the
left mouse button again. If you are selecting a plant, click on the base of
its trunk/stalk. If you want to click on an area object, you have to click
on one of its corners, NOT an edge. The select function 'homes in' on the
nearest selectable object, so if you click the mouse in the middle of
nowhere, the nearest item will be selected, even if it is on the other side
of the screen.
- Delete Item: This gets rid of (I suppose you could say 'digs up'!) the
currently selected item. Use this carefully, as once you have deleted
something, you can't get it back.
- Quit (right amiga Q) This quits the program and returns you to the
workbench screen.
The edit menu contains the following items:
- Boundary (right amiga B) When the program is started, this is the only
item in this menu that can be selected. Once the boundary has been drawn,
the other menu items become available, and no more boundaries can be drawn.
The boundary is an area object, and is drawn in white. All area objects are
drawn in the same way, the cursor turns into a cross hair, and by clicking
on the left mouse button, the area can be traced out. The area is closed by
clicking reasonably close (within 5 pixels) of the starting point. When
placing the first point, the coordinates in the right of the title bar
should the distance on the ground from the top left hand corner of the
drawing area. For subsequent points, the coordinates show the relative
distance on the ground to the previous point. There is a limit of around 250
points allowed on an area object, which should be enough.
The boundary differs slightly from the other area objects in that before
it can be drawn, you have to set the screen scale on the scaling requester.
This is fairly self explanatory, you just tell the program how many
centimetres on the ground each pixel on the screen represents.
- Lawn (right amiga L) This allows a lawn to be laid out. This is pretty
much the same as laying out the boundary. A lawn is an area object, and is
drawn in green. Remember that when the final drawing is done, the lawns will
be drawn overlaying any earth, but underneath any footpaths.
- Footpath (right amiga F) This allows a footpath to be laid out. A
footpath is an area object, and is drawn in the same way as all the other
area object. Footpaths are drawn in grey. During the final drawing,
footpaths are drawn on top of all other area objects (but underneath
plants).
- Earth (right amiga E) This allows a patch of earth to be drawn. Earth is
an area object, and is drawn in the same way as any other area objects.
Earth is drawn in brown. During the final drawing, earth will be drawn
underneath all other area objects, so if you want a flowerbed in the middle
of a lawn, you have to leave a hole in the lawn. See the hints/tips section
for more information.
- Plants (right amiga P) This allows you to populate your garden with a
selection of different plants. Be aware that the plants at the drawing stage
are fairly stylised, and aren't meant to look 100% like the real thing.
Still they are approximately the right shape, and approximately the right
colour. Currently there is only a small selection of plants available. I
hope they are enough to do the job.
Upon selecting the plant menu item, you are presented with a requester
asking what type of plant you want. The requester lists three plant groups -
trees, non-flowering plants, and flowering plants. The currently selected
group is highlighted in red, and as you select each group, a selection of
plants in that group appears in the second set of boxes at the bottom of the
requester. Once you select the plant you want, (note that when selecting a
flower, you also have to choose a colour) you click on OK, and the pointer
turns into a mobile version of whatever plant group you have selected. You
can move this pointer around the garden, and 'plant' it by clicking the left
mouse button. The selected plant remains active, and you can continue to
plant it around the garden, without having to re-select it. Available plants
are:
Trees can be:
dwarf deciduous tree (approx 1 metre tall)
small deciduous tree (approx 2 metres tall)
medium deciduous tree (approx 5 metres tall)
dwarf fir tree (approx 1 metre tall)
small fir tree (approx 2 metres tall)
medium fir tree (approx 5 metres tall)
Non-flowering plants can be:
small plant (approx 10 cms tall)
medium plant (approx 60 cms tall)
large plant (approx 150 cms tall)
small hedge element (approx 75 cms tall)
medium hedge element (approx 150 cms tall)
Flowering plants can be:
small flower (approx 10 cms tall)
medium flower (approx 60 cms tall)
rose bush (approx 60 cms tall)
(Any flowering plant can be red, orange, yellow, blue, or
multi-coloured)
Multi-coloured means each flower is picked randomly to be red, orange,
yellow, or blue. You cannot have several colours on the same bloom.
The draw menu contains the following item:
- Draw garden (right amiga D) This is the biggy. LandScape takes the
garden plan you have designed, and passes it to the drawing module. Make
sure you have saved the garden plan, as once you start drawing, you cannot
get back to the editor module.
The first thing the drawing module sorts out is the position the garden
is to be viewed from. To this effect, the boundary is drawn with a red
square around the first coordinate (this is in case you have a square
garden, and lose track of how much you rotated it!). You are then invited to
click on the 'look at' or viewed point. This is the point about which the
garden will be rotated, and will be drawn at approximately the middle of the
screen. Normally, the viewed point will be at the middle of the garden, but
by varying the positions of the viewed point and the view point (described
in a moment), a good range of different views can be obtained. The viewed
point is selected by clicking the crosshair cursor on the appropriate part
of the plan. The boundary will be re-drawn with the viewed point at the
centre of the screen. From this point onwards, the program will not allow
the boundary to go off the sides of the screen, and any time the boundary is
moved in such a way as to cause this to happen, the program will
automatically zoom the viewpoint outwards, until the boundary has shrunk
enough to fit. A group of boxes at the top left of the screen control the
movement of the viewpoint. They allow movement up, down, left, right, as
well as zoom in and zoom out. The movement is based on polar coordinates
with origin at the viewed point, so up/down are variations in polar
elevation and left/right are variations in polar azimuth. These all maintain
a constant radial distance from the 'look at' point. The zoom in and zoom
out boxes alter the radial distance from the 'look at' point, but maintain
the same polar angles.
At all times, the 'look at' point remains at the centre of the screen.
The angles change in ten degree increments, and the radial distance also
changes in increments of ten. As the viewpoint is changed by using the
boxes, the boundary is constantly re-drawn with perspective to show what the
boundary would look like if viewed from that position
Although there is no limit azimuth, the elevation is limited to be zero
degrees and ninety degrees (i.e. you cannot go underground or over the
zenith). In addition to this, the zoom in will not let you get too close to
the garden, or zoom in so that the boundary extends of the screen. Once the
viewpoint has been satisfactorily selected, click on the quit 'box' and the
drawing will commence.
There is really not much to say about the drawing process. All plants
are rendered mathematically, so I hope they look reasonably lifelike, but do
not expect a Rembrandt!. The 'drawing in progress...' message will be
removed from the title bar when drawing is finished, so it's just a matter
of sitting around and waiting. Of course, you can always switch back to the
workbench and do something else (isn't multi-tasking wonderful!)
When drawing is completed, a new menu bar will have appeared. There is
only a project menu, and even this only has two options. The first is to
quit the program, and the second is to save the drawn picture as an IFF
file.
Incidentally, throughout drawing, a set of coordinates are displayed in
the right hand of the title bar. These show the position of the current
viewpoint in polar coordinates. 't1' (t stands for theta) is angular
azimuth, 't2' is angular elevation, and 'r' is radius (distance from
origin).
5 - Hints and Tips
==================
1) Drawing complicated areas.
If you want to define an area object (such as a lawn), it is not always
best to define it as one large complicated shape. Sometimes you may find it
easier to split it up into several smaller, simpler shapes.
2) Overlapping areas.
Do not worry about area objects overlapping each other. If the objects
are of different types, one will overdraw the other, according to their
relative priorities. If the area objects are both of the same type, they
will merge together and look like one in the final picture.
3) Area priorities.
It is not directly possible to defeat the area object drawing priority.
At first sight, this makes it difficult to get something like a flower bed
in the middle of a lawn. The best way (although by no means the only way) is
to draw one large patch of earth first as filling the whole garden, and then
draw the lawn as two adjoining sections, each with half of the flower bed
cut out of it, leaving a 'hole' where the earth shows through.
4) Circular Areas.
As you have probably guessed, it is not directly possible to draw
circular or rounded objects. However, since each area object can have
approximately 250 points, you can get reasonably close to a rounded object
by using more points spaced quite closely together.
5) Square Areas.
Drawing square or rectangular areas is much easier if you keep an eye on
the coordinates in the title bar. Presumably, if you are working out a real
garden, you will have a reasonably good idea of what the dimensions are
going to be. Funnily enough, it is more difficult to draw these objects if
you are just experimenting, as you will not have thought out beforehand what
the dimensions are.
6) Plant distances.
The title bar coordinates also come in useful for determining how close
plants should be to each other. Bear in mind that with this version of the
program, the images on the plan do not give you much idea of how big the
real objects are. This means that if, for example you plant a series of
hedge elements so that the symbols are just touching, you may get a
perfect-looking hedge. However, depending on the scaling, you may find that
when it is drawn, it has gaps in it, or that the hedge plants are much too
close together (meaning that it takes a lot longer to draw). Once again, you
have to experiment to see what looks good.
6 - What's Next?
================
The version of LandScape released here is almost unchanged from what I
decided to write several months ago. At the time, I laid done a set of
minimum requirements for the program to be able to do. These were
deliberately limited in the interests of having a stationary goalpost to aim
at. Since then, other ideas have also occurred to me. Possibilities for
improvement and extension include:
1) Making the program self-install. This would make things easier for
people not familiar with using the CLI to copy any libraries, etc.
2) The garden is currently constrained to be perfectly flat. Support will
be added for split levels and slopes. To be fair, all of the graphics and
perspective routines already support full 3D, it's just that I have not yet
thought of a way of good way of representing them on the plan yet.
3) The list of available objects will be increased to include
stones/paving/brickwork/walls/fences/ponds, etc plus a greater variety of
plant life. Object texturing is also being looked into.
4) Currently all dimensions are metric (centimetres). I realise that this
will annoy at least one large continent, so imperial measurements will be
included.
5) Context-sensitive on-line help will be provided.
6) Plan detail currently has to fit on one screen. Some sort of zoom/scroll
facility is under consideration.
7) Area objects are currently only selectable by the corners, and plants
only by the origin. This may be changed so that edge selection is allowed.
8) Plan symbols are currently fixed size. This will be changed so that the
plant size and type is more obvious, and will also change to be proportional
to the scale of the garden.
9) Workbench support will be improved. Thus saved gardens and IFF files
will be provided with icons. In addition, the program will be much more
configurable from the CLI and icon tooltypes. A good example of this would
be with metric/imperial measurement selection.
10) Objects may be forced to be inside the garden boundary.
11) The viewpoint positioning boxes will auto repeat, making viewpoint
selection a bit easier on the mouse.
12) All of the floating point maths currently used during drawing will be
changed to fixed point. This should speed up the drawing a lot.
13) The algorithms for drawing the plants will be further modified and
refined, to make the plants more lifelike and realistic.
Now then, all of the above are just ideas. It is not definite that they
will happen, and if they do, it may not necessarily all be at the same time.
I wrote this program for a laugh, and to learn more about a great machine.
If you find that what I have done is interesting or useful, then that's
icing on the cake. I will continue to work on this program as long as I feel
someone (whether myself or anyone else) is benefiting from it. The supply
will try to respond to the demand.
7 - Technical Stuff
===================
This section is intended for anyone who happens to be interested in some
of LandScapes technical aspects.
LandScape was written entirely in C, and was developed using various
versions of the SAS (Lattice) C compiler. The final code was produced using
version 5.10a. LandScape uses a lot of recursion during the drawing phase,
but does not seem to go very deeply, as I have never seen it overflow the
default 4000 byte stack. Nevertheless, as I cannot guarantee that this will
never happen, I have left in SASs stack checking code. If the stack does
overflow, you will get a requester warning you, and giving you the option to
abort the program. Be aware that if you do this, you will not get any memory
back that was in use at the time, until rebooting. This is a side effect of
the SAS code, and I am not aware of any way I can regain control of the
machine to free up the resources.
The drawing routines make extensive use of floating point maths. This
was done intentionally, as I wanted to make it work, before I made it work
quickly. I may change this to fixed point maths, as the drawing speed is a
little slower than I thought it was going to be. The Fast Floating Point
libraries are used at runtime, which keeps the program size down nicely.
Sorry FPU people, but no support for you. I had originally written in FPU
support via the IEEE runtime libraries, but on my machine (with a 68881 as a
peripheral processor, NOT a coprocessor) even these were significantly
slower than the FFP libraries, and I had no real use for the extra
precision, so out the window they went.
Since LandScape was written in C, and doesn't to my knowledge do
anything nasty to the machine, I believe that it should work on all
processors. However, I am unable to test this. I would be grateful if anyone
with access to such machines (particularly the A3000) would report on
whether or not this is the case. Similarly, I have tried to make the program
auto-configure to an NTSC screen, but this cannot be terribly well tested on
a PAL machine. On the odd occasions that my machine boots with an NTSC
screen (the well known bug), superficial testing seems to indicate that it
works.
The plants in LandScape are generated algorithmically at runtime. For
each plant type, I have taken a basic form, and I then allow each plant to
develop inside a set of constraints. The starting form, and constraints have
been picked by trial and error, until the plant started to look
approximately like the real thing. The algorithms have a lot of random
elements, and so every time you draw a garden, the plants will look slightly
different. Although things should average out, occasionally you get a badly
lopsided or misshapen plant. This, I believe mirrors real life! The
algorithms are recursive, and to a certain extent sensitive to size, so that
a large object will have more detail than a small one. However, large
objects are also drawn more coarsely to speed up the drawing time (I hope
that doesn't sound too self-contradictory).
Steve Goddard.