From c6aaa433dedff2dd8063983c7716c0cdb296a0f9 Mon Sep 17 00:00:00 2001 From: Svjatoslav Agejenko Date: Sun, 3 Jun 2018 02:02:26 +0300 Subject: [PATCH] Reorganized files. Modernized documentation. --- games/checkers/index.html | 19 - games/checkers/{sshot.png => screenshot.png} | Bin games/mario/index.html | 13 - games/{mario => platform}/0.i01 | 0 games/{mario => platform}/1.i01 | 0 games/{mario => platform}/2.i01 | 0 games/{mario => platform}/3.i01 | 0 games/{mario => platform}/4.i01 | 0 games/{mario => platform}/5.i01 | 0 games/{mario => platform}/6.i01 | 0 games/{mario => platform}/7.i01 | 0 games/{mario => platform}/8.i01 | 0 games/{mario => platform}/9.i01 | 0 games/{mario => platform}/kast.i01 | 0 games/{mario => platform}/mario1.i01 | 0 games/{mario => platform}/mario2.i01 | 0 games/{mario => platform}/munt.i01 | 0 games/{mario => platform}/munt1.i01 | 0 games/{mario => platform}/munt2.i01 | 0 games/{mario => platform}/pilv.i01 | 0 .../smario.bas => platform/platform.bas} | 0 games/{mario => platform}/poosas.i01 | 0 games/{mario => platform}/puu.i01 | 0 .../sshot.png => platform/screenshot.png} | Bin games/{mario => platform}/tellis.i01 | 0 games/{mario => platform}/tigu.i01 | 0 games/{mario => platform}/tigu1.i01 | 0 .../{3dSynthezier => 3D Synthezier}/.project | 0 .../bin/3dparse.bas | 0 .../bin/city1.3d | 0 .../bin/city1.bat | 0 .../bin/city2.3d | 0 .../bin/city2.bat | 0 .../bin/result.mtl | 0 .../doc/hexagonal city, 1.jpeg} | Bin .../doc/hexagonal city, 2.jpeg} | Bin .../doc/hexagonal city, 3.jpeg} | Bin .../doc/hexagonal city.blend} | Bin graphics/3D/3D Synthezier/doc/index.html | 584 ++++++++++++++++++ graphics/3D/3D Synthezier/doc/index.org | 151 +++++ .../doc/rectangular city, 1.jpeg} | Bin .../doc/rectangular city, 2.jpeg} | Bin .../doc/rectangular city, 3.jpeg} | Bin .../doc/rectangular city.blend} | Bin graphics/3D/3D Synthezier/doc/rotation.png | Bin 0 -> 1728 bytes .../include/6nrk0s.3d | 0 .../include/6nrk2s.3d | 0 .../include/blk1.3d | 0 .../include/blk2.3d | 0 .../include/blk3.3d | 0 .../include/blk4.3d | 0 .../include/bridge.3d | 0 .../include/bridge1.3d | 0 .../include/bridgegl.3d | 0 .../include/bus.3d | 0 .../include/bus_frnt.3d | 0 .../include/bus_wind.3d | 0 .../include/car.3d | 0 .../include/car_frnt.3d | 0 .../include/cars.3d | 0 .../include/flare_r.3d | 0 .../include/flare_w.3d | 0 .../include/handrail.3d | 0 .../include/katus.3d | 0 .../include/katus2.3d | 0 .../include/katus3.3d | 0 .../include/krs1.3d | 0 .../include/krs2.3d | 0 .../include/kuppel.3d | 0 .../include/maja.3d | 0 .../include/nrk4.3d | 0 .../include/nrk6.3d | 0 .../include/nrk8.3d | 0 .../include/plaat.3d | 0 .../include/pol.3d | 0 .../include/pol_ceil.3d | 0 .../include/pol_frnt.3d | 0 .../include/ring.3d | 0 .../include/seinl1.3d | 0 .../include/seinp1.3d | 0 .../include/solar.3d | 0 .../include/toru.3d | 0 .../include/vedru.3d | 0 graphics/3D/3dSynthezier/doc/axes.png | Bin 1635 -> 0 bytes graphics/3D/3dSynthezier/doc/index.html | 148 ----- doc/index.html => index.html | 134 +++- doc/index.org => index.org | 59 +- {unsorted => misc}/font.bas | 0 {unsorted => misc}/key.bas | 0 {unsorted => misc}/lightpe2.bas | 0 {unsorted => misc}/lightpen.bas | 0 {unsorted => misc}/matem.bas | 0 {unsorted => misc}/modes.bas | 0 {unsorted => misc}/pal.bas | 0 {unsorted => misc}/passw.bas | 0 {unsorted => misc}/passw.dat | 0 {unsorted => misc}/tim.dat | 0 {unsorted => misc}/timer.bas | 0 wsystem.bas => misc/wsystem.bas | 0 tools/update web site | 7 +- 100 files changed, 889 insertions(+), 226 deletions(-) delete mode 100644 games/checkers/index.html rename games/checkers/{sshot.png => screenshot.png} (100%) delete mode 100644 games/mario/index.html rename games/{mario => platform}/0.i01 (100%) rename games/{mario => platform}/1.i01 (100%) rename games/{mario => platform}/2.i01 (100%) rename games/{mario => platform}/3.i01 (100%) rename games/{mario => platform}/4.i01 (100%) rename games/{mario => platform}/5.i01 (100%) rename games/{mario => platform}/6.i01 (100%) rename games/{mario => platform}/7.i01 (100%) rename games/{mario => platform}/8.i01 (100%) rename games/{mario => platform}/9.i01 (100%) rename games/{mario => platform}/kast.i01 (100%) rename games/{mario => platform}/mario1.i01 (100%) rename games/{mario => platform}/mario2.i01 (100%) rename games/{mario => platform}/munt.i01 (100%) rename games/{mario => platform}/munt1.i01 (100%) rename games/{mario => platform}/munt2.i01 (100%) rename games/{mario => platform}/pilv.i01 (100%) rename games/{mario/smario.bas => platform/platform.bas} (100%) rename games/{mario => platform}/poosas.i01 (100%) rename games/{mario => platform}/puu.i01 (100%) rename games/{mario/sshot.png => platform/screenshot.png} (100%) rename games/{mario => platform}/tellis.i01 (100%) rename games/{mario => platform}/tigu.i01 (100%) rename games/{mario => platform}/tigu1.i01 (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/.project (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/bin/3dparse.bas (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/bin/city1.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/bin/city1.bat (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/bin/city2.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/bin/city2.bat (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/bin/result.mtl (100%) rename graphics/3D/{3dSynthezier/doc/c1.jpg => 3D Synthezier/doc/hexagonal city, 1.jpeg} (100%) rename graphics/3D/{3dSynthezier/doc/c2.jpg => 3D Synthezier/doc/hexagonal city, 2.jpeg} (100%) rename graphics/3D/{3dSynthezier/doc/c3.jpg => 3D Synthezier/doc/hexagonal city, 3.jpeg} (100%) rename graphics/3D/{3dSynthezier/doc/city_hexagon.blend => 3D Synthezier/doc/hexagonal city.blend} (100%) create mode 100644 graphics/3D/3D Synthezier/doc/index.html create mode 100644 graphics/3D/3D Synthezier/doc/index.org rename graphics/3D/{3dSynthezier/doc/city1.jpg => 3D Synthezier/doc/rectangular city, 1.jpeg} (100%) rename graphics/3D/{3dSynthezier/doc/city2.jpg => 3D Synthezier/doc/rectangular city, 2.jpeg} (100%) rename graphics/3D/{3dSynthezier/doc/city3.jpg => 3D Synthezier/doc/rectangular city, 3.jpeg} (100%) rename graphics/3D/{3dSynthezier/doc/city_square.blend => 3D Synthezier/doc/rectangular city.blend} (100%) create mode 100644 graphics/3D/3D Synthezier/doc/rotation.png rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/6nrk0s.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/6nrk2s.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/blk1.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/blk2.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/blk3.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/blk4.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/bridge.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/bridge1.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/bridgegl.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/bus.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/bus_frnt.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/bus_wind.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/car.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/car_frnt.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/cars.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/flare_r.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/flare_w.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/handrail.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/katus.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/katus2.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/katus3.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/krs1.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/krs2.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/kuppel.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/maja.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/nrk4.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/nrk6.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/nrk8.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/plaat.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/pol.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/pol_ceil.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/pol_frnt.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/ring.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/seinl1.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/seinp1.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/solar.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/toru.3d (100%) rename graphics/3D/{3dSynthezier => 3D Synthezier}/include/vedru.3d (100%) delete mode 100644 graphics/3D/3dSynthezier/doc/axes.png delete mode 100644 graphics/3D/3dSynthezier/doc/index.html rename doc/index.html => index.html (70%) rename doc/index.org => index.org (55%) rename {unsorted => misc}/font.bas (100%) rename {unsorted => misc}/key.bas (100%) rename {unsorted => misc}/lightpe2.bas (100%) rename {unsorted => misc}/lightpen.bas (100%) rename {unsorted => misc}/matem.bas (100%) rename {unsorted => misc}/modes.bas (100%) rename {unsorted => misc}/pal.bas (100%) rename {unsorted => misc}/passw.bas (100%) rename {unsorted => misc}/passw.dat (100%) rename {unsorted => misc}/tim.dat (100%) rename {unsorted => misc}/timer.bas (100%) rename wsystem.bas => misc/wsystem.bas (100%) diff --git a/games/checkers/index.html b/games/checkers/index.html deleted file mode 100644 index 058d7cd..0000000 --- a/games/checkers/index.html +++ /dev/null @@ -1,19 +0,0 @@ - -checkers - - - -

checkers

-
-
-Play checkers against the computer with any board -size and any amount of caps. Does thinking by recursively -testing many possible scenarios with any depth. - -Since it is slow QBasic implementation, -it isn't practical to play with many caps -or big thinking depth, for reasonable responce time. - -
- - \ No newline at end of file diff --git a/games/checkers/sshot.png b/games/checkers/screenshot.png similarity index 100% rename from games/checkers/sshot.png rename to games/checkers/screenshot.png diff --git a/games/mario/index.html b/games/mario/index.html deleted file mode 100644 index e344619..0000000 --- a/games/mario/index.html +++ /dev/null @@ -1,13 +0,0 @@ - -super mario like game - - - -

super mario like game

-
-
-
Jump around, collect coins and dont touch snails! - -
- - \ No newline at end of file diff --git a/games/mario/0.i01 b/games/platform/0.i01 similarity index 100% rename from games/mario/0.i01 rename to games/platform/0.i01 diff --git a/games/mario/1.i01 b/games/platform/1.i01 similarity index 100% rename from games/mario/1.i01 rename to games/platform/1.i01 diff --git a/games/mario/2.i01 b/games/platform/2.i01 similarity index 100% rename from games/mario/2.i01 rename to games/platform/2.i01 diff --git a/games/mario/3.i01 b/games/platform/3.i01 similarity index 100% rename from games/mario/3.i01 rename to games/platform/3.i01 diff --git a/games/mario/4.i01 b/games/platform/4.i01 similarity index 100% rename from games/mario/4.i01 rename to games/platform/4.i01 diff --git a/games/mario/5.i01 b/games/platform/5.i01 similarity index 100% rename from games/mario/5.i01 rename to games/platform/5.i01 diff --git a/games/mario/6.i01 b/games/platform/6.i01 similarity index 100% rename from games/mario/6.i01 rename to games/platform/6.i01 diff --git a/games/mario/7.i01 b/games/platform/7.i01 similarity index 100% rename from games/mario/7.i01 rename to games/platform/7.i01 diff --git a/games/mario/8.i01 b/games/platform/8.i01 similarity index 100% rename from games/mario/8.i01 rename to games/platform/8.i01 diff --git a/games/mario/9.i01 b/games/platform/9.i01 similarity index 100% rename from games/mario/9.i01 rename to games/platform/9.i01 diff --git a/games/mario/kast.i01 b/games/platform/kast.i01 similarity index 100% rename from games/mario/kast.i01 rename to games/platform/kast.i01 diff --git a/games/mario/mario1.i01 b/games/platform/mario1.i01 similarity index 100% rename from games/mario/mario1.i01 rename to games/platform/mario1.i01 diff --git a/games/mario/mario2.i01 b/games/platform/mario2.i01 similarity index 100% rename from games/mario/mario2.i01 rename to games/platform/mario2.i01 diff --git a/games/mario/munt.i01 b/games/platform/munt.i01 similarity index 100% rename from games/mario/munt.i01 rename to games/platform/munt.i01 diff --git a/games/mario/munt1.i01 b/games/platform/munt1.i01 similarity index 100% rename from games/mario/munt1.i01 rename to games/platform/munt1.i01 diff --git a/games/mario/munt2.i01 b/games/platform/munt2.i01 similarity index 100% rename from games/mario/munt2.i01 rename to games/platform/munt2.i01 diff --git a/games/mario/pilv.i01 b/games/platform/pilv.i01 similarity index 100% rename from games/mario/pilv.i01 rename to games/platform/pilv.i01 diff --git a/games/mario/smario.bas b/games/platform/platform.bas similarity index 100% rename from games/mario/smario.bas rename to games/platform/platform.bas diff --git a/games/mario/poosas.i01 b/games/platform/poosas.i01 similarity index 100% rename from games/mario/poosas.i01 rename to games/platform/poosas.i01 diff --git a/games/mario/puu.i01 b/games/platform/puu.i01 similarity index 100% rename from games/mario/puu.i01 rename to games/platform/puu.i01 diff --git a/games/mario/sshot.png b/games/platform/screenshot.png similarity index 100% rename from games/mario/sshot.png rename to games/platform/screenshot.png diff --git a/games/mario/tellis.i01 b/games/platform/tellis.i01 similarity index 100% rename from games/mario/tellis.i01 rename to games/platform/tellis.i01 diff --git a/games/mario/tigu.i01 b/games/platform/tigu.i01 similarity index 100% rename from games/mario/tigu.i01 rename to games/platform/tigu.i01 diff --git a/games/mario/tigu1.i01 b/games/platform/tigu1.i01 similarity index 100% rename from games/mario/tigu1.i01 rename to games/platform/tigu1.i01 diff --git a/graphics/3D/3dSynthezier/.project b/graphics/3D/3D Synthezier/.project similarity index 100% rename from graphics/3D/3dSynthezier/.project rename to graphics/3D/3D Synthezier/.project diff --git a/graphics/3D/3dSynthezier/bin/3dparse.bas b/graphics/3D/3D Synthezier/bin/3dparse.bas similarity index 100% rename from graphics/3D/3dSynthezier/bin/3dparse.bas rename to graphics/3D/3D Synthezier/bin/3dparse.bas diff --git a/graphics/3D/3dSynthezier/bin/city1.3d b/graphics/3D/3D Synthezier/bin/city1.3d similarity index 100% rename from graphics/3D/3dSynthezier/bin/city1.3d rename to graphics/3D/3D Synthezier/bin/city1.3d diff --git a/graphics/3D/3dSynthezier/bin/city1.bat b/graphics/3D/3D Synthezier/bin/city1.bat similarity index 100% rename from graphics/3D/3dSynthezier/bin/city1.bat rename to graphics/3D/3D Synthezier/bin/city1.bat diff --git a/graphics/3D/3dSynthezier/bin/city2.3d b/graphics/3D/3D Synthezier/bin/city2.3d similarity index 100% rename from graphics/3D/3dSynthezier/bin/city2.3d rename to graphics/3D/3D Synthezier/bin/city2.3d diff --git a/graphics/3D/3dSynthezier/bin/city2.bat b/graphics/3D/3D Synthezier/bin/city2.bat similarity index 100% rename from graphics/3D/3dSynthezier/bin/city2.bat rename to graphics/3D/3D Synthezier/bin/city2.bat diff --git a/graphics/3D/3dSynthezier/bin/result.mtl b/graphics/3D/3D Synthezier/bin/result.mtl similarity index 100% rename from graphics/3D/3dSynthezier/bin/result.mtl rename to graphics/3D/3D Synthezier/bin/result.mtl diff --git a/graphics/3D/3dSynthezier/doc/c1.jpg b/graphics/3D/3D Synthezier/doc/hexagonal city, 1.jpeg similarity index 100% rename from graphics/3D/3dSynthezier/doc/c1.jpg rename to graphics/3D/3D Synthezier/doc/hexagonal city, 1.jpeg diff --git a/graphics/3D/3dSynthezier/doc/c2.jpg b/graphics/3D/3D Synthezier/doc/hexagonal city, 2.jpeg similarity index 100% rename from graphics/3D/3dSynthezier/doc/c2.jpg rename to graphics/3D/3D Synthezier/doc/hexagonal city, 2.jpeg diff --git a/graphics/3D/3dSynthezier/doc/c3.jpg b/graphics/3D/3D Synthezier/doc/hexagonal city, 3.jpeg similarity index 100% rename from graphics/3D/3dSynthezier/doc/c3.jpg rename to graphics/3D/3D Synthezier/doc/hexagonal city, 3.jpeg diff --git a/graphics/3D/3dSynthezier/doc/city_hexagon.blend b/graphics/3D/3D Synthezier/doc/hexagonal city.blend similarity index 100% rename from graphics/3D/3dSynthezier/doc/city_hexagon.blend rename to graphics/3D/3D Synthezier/doc/hexagonal city.blend diff --git a/graphics/3D/3D Synthezier/doc/index.html b/graphics/3D/3D Synthezier/doc/index.html new file mode 100644 index 0000000..615e502 --- /dev/null +++ b/graphics/3D/3D Synthezier/doc/index.html @@ -0,0 +1,584 @@ + + + +QBasicApps - collection of applications mostly written in MS QBasic for DOS environment + + + + + + + +" + + + + + +
+

QBasicApps - collection of applications mostly written in MS QBasic for DOS environment

+
+ + + + +

+Parses scene definition language and creates 3D world based on +it. Result will be in a wavefront obj file, witch can be then +visualized using external renderer. +

+ +

+Basic concept of defining scene is: +

+
    +
  • Simple and primitive objects are created on point and polygon level. +
  • +
  • More complex ones can be created my combinig already existing ones, +while applying various transformations on them. +
  • +
+ +

+Objects with all its subobjects can be rotated, mirrored or resized +omong any axis. Generator has built in cache for data input and output +to minimize file access. +

+ +
+

1 System requirements

+
+ + + +++ ++ + + + + + + + + + + + + + + + + + +
softwarepreferred version
DOS6.22
QBasic4.5
+
+
+
+

2 Installation

+
+
    +
  • Unpack ZIP file in any folder. +
  • +
  • update include path inside bin/3dparse.bas +
  • +
+
+
+

2.0.1 Directory layout

+
+
    +
  • bin +
      +
    • 3dparse.bas - 3D generator main executable +
    • +
    • city1.3d - city with square-like buildings +
    • +
    • city2.3d - city with hexangular buildings +
    • +
    • result.mtl - shared material library +
    • +
    • *.bat - quick launch scripts +
    • +
    +
  • + +
  • include - 3D objects used to compose the scene +
  • +
+
+
+
+
+

3 Scene description language

+
+

+(read examples…) +

+ + +
+here
+
+

+defines new segment +

+ +
+p  x y z
+
+

+defines new point +

+ +
+f  p1 p2 p3 p4
+
+

+defines new polygon, p4 may be unused +

+ + +
+warn  <message>
+
+

+displays warning message, and wait for key +

+ +
+end
+
+

+terminates parser +

+ +
+mtl  material
+
+

+selects material +

+ +
+mtlrnd  material ...
+
+

+selects random material from list +

+ +
+obj  object xz45 xy20 x+3 y*2
+
+

+includes sub object, can be rotated moved or resized, across X Y Z. If +object name begin vith ~ then it will be loaded from current +directory. if object name ends with ~ then object will be parsed +directly from file, and not chached, to allow loading of greater than +500 lines files. +

+ + +
+

rotation.png +

+
+ + +
+rnd  p^1^2^3 p^7^2^1
+
+

+select random command to execute, ^ will be converted to spaces. +

+ +
+# whatever text
+
+

+comment +

+ +
+out  file
+
+

+specify output file name, must be first command +

+ +
+set  variable  contents
+
+

+set variable contents, variable must be number, contents can be +string. max variables is 100. first is 0. +

+ +
+anycommand %1 anything
+
+

+inserts variable 1 contents info line +

+ +
+cmp  flag string1 string2
+
+

+compares strings, and inserts TRUE to flag, if they are equal, else inserts FALSE. max 9 falgs, 0 first. Each subobject has its own flags. +

+ +
+?flag anycommand
+
+

+executes command if flag is true. +

+ +

+exapmle: ?3 obj car z*2 xy45 +

+ +
+dum
+
+

+dummy function, does notheing +

+
+
+ +
+

4 Usage

+
+

+Make sure you have QB binaries in your PATH. Execute +

+
+bin/city1.bat
+
+

+or +

+
+bin/city2.bat
+
+

+to generate example cities. After parsing is finished, appropriate +*.obj files will appear in the bin directory holding generated scene. +Visualize scene with your favourite renderer. +

+
+
+
+

5 Examples

+
+

+Download Blender files: +

+ + + +++ ++ + + + + + + + + + + + + + + + + + +
filesize
rectangular city.blend3.6 MB
hexagonal city.blend21 MB
+ +

+They were produced by importing generated wavefront obj files into +Blender. +

+
+ +
+

5.1 Rectangular city

+
+ +
+

rectangular city, 1.jpeg +

+
+ + +
+

rectangular city, 2.jpeg +

+
+ + +
+

rectangular city, 3.jpeg +

+
+
+
+
+

5.2 Hexagonal city

+
+ +
+

hexagonal city, 1.jpeg +

+
+ + +
+

hexagonal city, 2.jpeg +

+
+ + +
+

hexagonal city, 3.jpeg +

+
+
+
+
+
+ + + diff --git a/graphics/3D/3D Synthezier/doc/index.org b/graphics/3D/3D Synthezier/doc/index.org new file mode 100644 index 0000000..587aaf6 --- /dev/null +++ b/graphics/3D/3D Synthezier/doc/index.org @@ -0,0 +1,151 @@ +#+TITLE: QBasicApps - collection of applications mostly written in MS QBasic for DOS environment + +----- +- [[http://www2.svjatoslav.eu/gitweb/?p=qbasicapps.git;a=snapshot;h=HEAD;sf=tgz][download latest snapshot]] + +- This program is free software; you can redistribute it and/or modify + it under the terms of version 3 of the [[https://www.gnu.org/licenses/lgpl.html][GNU Lesser General Public + License]] or later as published by the Free Software Foundation. + +- Program author: + - Svjatoslav Agejenko + - Homepage: http://svjatoslav.eu + - Email: mailto://svjatoslav@svjatoslav.eu + +- [[http://www.svjatoslav.eu/programs.jsp][other applications hosted at svjatoslav.eu]] + + + +Parses scene definition language and creates 3D world based on +it. Result will be in a [[https://en.wikipedia.org/wiki/Wavefront_.obj_file][wavefront obj file]], witch can be then +visualized using external renderer. + +Basic concept of defining scene is: +- Simple and primitive objects are created on point and polygon level. +- More complex ones can be created my combinig already existing ones, + while applying various transformations on them. + +Objects with all its subobjects can be rotated, mirrored or resized +omong any axis. Generator has built in cache for data input and output +to minimize file access. + +* System requirements +| software | preferred version | +|----------+-------------------| +| DOS | 6.22 | +| QBasic | 4.5 | +* Installation ++ Unpack ZIP file in any folder. ++ update include path inside bin/3dparse.bas +*** Directory layout ++ bin + + 3dparse.bas - 3D generator main executable + + city1.3d - city with square-like buildings + + city2.3d - city with hexangular buildings + + result.mtl - shared material library + + *.bat - quick launch scripts + ++ include - 3D objects used to compose the scene +* Scene description language +(read examples...) + + +: here +defines new segment + +: p x y z +defines new point + +: f p1 p2 p3 p4 +defines new polygon, p4 may be unused + + +: warn +displays warning message, and wait for key + +: end +terminates parser + +: mtl material +selects material + +: mtlrnd material ... +selects random material from list + +: obj object xz45 xy20 x+3 y*2 +includes sub object, can be rotated moved or resized, across X Y Z. If +object name begin vith ~ then it will be loaded from current +directory. if object name ends with ~ then object will be parsed +directly from file, and not chached, to allow loading of greater than +500 lines files. + +[[file:rotation.png]] + + +: rnd p^1^2^3 p^7^2^1 +select random command to execute, ^ will be converted to spaces. + +: # whatever text +comment + +: out file +specify output file name, must be first command + +: set variable contents +set variable contents, variable must be number, contents can be +string. max variables is 100. first is 0. + +: anycommand %1 anything +inserts variable 1 contents info line + +: cmp flag string1 string2 +compares strings, and inserts TRUE to flag, if they are equal, else inserts FALSE. max 9 falgs, 0 first. Each subobject has its own flags. + +: ?flag anycommand +executes command if flag is true. + +exapmle: ?3 obj car z*2 xy45 + +: dum +dummy function, does notheing + +* Usage +Make sure you have QB binaries in your PATH. Execute +: bin/city1.bat +or +: bin/city2.bat +to generate example cities. After parsing is finished, appropriate +*.obj files will appear in the bin directory holding generated scene. +Visualize scene with your favourite renderer. +* Examples +Download Blender files: +| file | size | +|------------------------+--------| +| [[file:rectangular city.blend][rectangular city.blend]] | 3.6 MB | +| [[file:hexagonal city.blend][hexagonal city.blend]] | 21 MB | + +They were produced by importing generated [[https://en.wikipedia.org/wiki/Wavefront_.obj_file][wavefront obj files]] into +[[https://www.blender.org/][Blender]]. + +** Rectangular city +[[file:rectangular city, 1.jpeg]] + +[[file:rectangular city, 2.jpeg]] + +[[file:rectangular city, 3.jpeg]] +** Hexagonal city +[[file:hexagonal city, 1.jpeg]] + +[[file:hexagonal city, 2.jpeg]] + +[[file:hexagonal city, 3.jpeg]] + +* (document settings) :noexport: +** use dark style for TWBS-HTML exporter +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: " +#+HTML_HEAD: diff --git a/graphics/3D/3dSynthezier/doc/city1.jpg b/graphics/3D/3D Synthezier/doc/rectangular city, 1.jpeg similarity index 100% rename from graphics/3D/3dSynthezier/doc/city1.jpg rename to graphics/3D/3D Synthezier/doc/rectangular city, 1.jpeg diff --git a/graphics/3D/3dSynthezier/doc/city2.jpg b/graphics/3D/3D Synthezier/doc/rectangular city, 2.jpeg similarity index 100% rename from graphics/3D/3dSynthezier/doc/city2.jpg rename to graphics/3D/3D Synthezier/doc/rectangular city, 2.jpeg diff --git a/graphics/3D/3dSynthezier/doc/city3.jpg b/graphics/3D/3D Synthezier/doc/rectangular city, 3.jpeg similarity index 100% rename from graphics/3D/3dSynthezier/doc/city3.jpg rename to graphics/3D/3D Synthezier/doc/rectangular city, 3.jpeg diff --git a/graphics/3D/3dSynthezier/doc/city_square.blend b/graphics/3D/3D Synthezier/doc/rectangular city.blend similarity index 100% rename from graphics/3D/3dSynthezier/doc/city_square.blend rename to graphics/3D/3D Synthezier/doc/rectangular city.blend diff --git a/graphics/3D/3D Synthezier/doc/rotation.png b/graphics/3D/3D Synthezier/doc/rotation.png new file mode 100644 index 0000000000000000000000000000000000000000..e6281eca325ada58bfac13bd3c445ff78773cf5d GIT binary patch literal 1728 zcmb7_Ycv}M6vsn5qHVC+yo;KqL^G+C)->LaNF$U~dm4>KtEP%J2`YkWJxggT2#G|A zQKY)6N7`YB)ud+GhI$1--1EQr!DxTb9@9Ml z000z#@Cg9`Gz`>rCQwVA7p~)c)Ywh*3cvu>K>=RQQ}-q$-*cqUge#v z1tnf0L`B6DzeylTclEdd09qjdKAxDHjMeGb1jY$ttzYqNA6|+b>RI3#Dt&FmjPZpp zJq~=ie_XF!KlNkU<)z~%&z_&u(((m03JgCNpj_tl-sc1>5D0jJNe4&KNb40Yi zw=^!s>*{;a00*;lJ_0op^N10rz^T~&n)rUw2VYMBh^&^VpKy+SSp?mfpAccE~91 z(Dr*}SObviSY(=pu3#OoE&C95b(YB-s`ys4v{EFLTE;DjR}jRyd0^4kMdZTYlz)6f zubT`z$7la&M$)nl{KZCalAodKp5dioy%|)COYF)nejkiW23NNmmYnJ;pbZ(>uAR>w zn3)Zi&JM_likdbdJ-{S~@)A4P!WiS27^>_ElEBJV^7spi6s;9;BZX!FS5kb%+8HYo zc@I4sllM2}u7}G#+*vevn;96|yKvXy3MbWYt)c^B#(#EP!h7t_lP|J$y^*eD_XOkj zBY#nX9Qtg(C>t)lvvG!wCpc4=+kP$b5`wIEb(i0H6}p+E|K;3+WKfSw@N!>Oi4Mm{ zhPE&Pv-n94!kEmE?avehdXW9g{eC*d&`;x{h?+@1_Kq)1>U4sW=T+aqOX}+7!PQwK zN$YoE3JTN67CQ4`IjW!ASfAs+H8K~-Z{2AX;=4?Qq^pC|{czkuCfXFKAI zz&~(Z%Rd2@XtbF#O-!Hp)Al`C)O5Y>qdp4t@P+7lp!j=U)7kp5wCK-93wqoQ;ljbEhZCaX@(ND9(-boE{MI)z2m_h+oo^sa6U~ zKe>gS;!E4qxA~J)tY_e;Qi>GI*yL8MCJEsOOeiPgOB@1PrGA!=LiKTzO*^n@L#^879SQNVtNkv3#8r@<+#BOkgR!5 z_W9FyHbVyRjCqqjN}V~(BBORTRP=f9?PySF6)d%TB<%)ZgKyT|K9*2eNc9gy)Mvqz3c2R!s2#OdB$3xur(Zv;@e#9KbIZv&Fwg|R(LAl2D~I?ZB|NyE>&tr+RBgmw6pxyQ^EcV66(>v zCSva`4XTxV+gQ49vw1kVWI2*iyLv5dMeK~I7fju~>Ry${J-#F%g}oL%$=uVj*G@Sn zPO@$BQ$D6t@s9B~0JTS}lgq3CUO)q@ESSdsVn>4#v)h3R7M_=!o)_|Nn2K{ zix!qieFt(>eE^d;j^J-}(N2-+zAR_xt?PJ<&(iw(4vJ z003$(KRbE@07^RRd8X=y^|+tbP!9m8n7cUsp?eknR%#SkhB*4ueG}5v; zd8G_RE3YkA8m$MFKMo_a{m(GM(vR5-%b!_nOGlZbx)e|{WnWbJ81K@Hr1-&Lae3|N zMl(ND+j8oQ|V`G2JxiV4*6iAU!tA7`uz(!9v@k$Xzlc` zuwUNpC7F|;K86<4Tn{z^e7m|9YS}|GjL`e)_H|*zi`pYv)tT=U`+UgomdxH=&XkAl zJ-%mh_`A7Q_})wQ@GLHg#L4BXp7>){6sYeIb1O;3*Uz?AujCfNZkbs*1;*4Y;z%p{ z(|5v3w&*h5Q{qOKH<^rH1~cxfjxZ7G$8KPM(V&8(`1%MB>+h?B=Ut%g5E({4ZjIb7 zY&Rb|R1t5(l^9RMFiTwV(}V*)`2`J)FPEpQ%qYy7i9Yc}hJ+1Dff{6crC7d_4xDLN zNqaZd^T6kaf*~#hdf1jQZC^RBrM6gllo_W7l@5ovw?u6iAK-gyLdygf zp`<~n7DH2VL?qa>z7er{P&h(02$rCO-Mgn2nd`T@dd5UH^}a}xC>-LH1iXH3?bhfi z-;s3h_gu~r9Bm}|3^IP{|3aL`I(JXPD&)@2TIZLscGgqNw6y~r6mK3mPykf^xFbbS zA-8xIN7*wId4cp<&jx~7n9K}7#1cqK;(@0hW>_?EMkLzk0o?8JL27A$po*H@@j-aI z`;OIJ{Cs}6ZDUjWF6RaUqv%U34w`FN8g+|*gz)fLLSn{~RmZ~USgG?_Q|a}0)gGyk z49*L=a==mASA{Rib-nAe=UQFA?wEz^9FT3?9^K(TERU#Tn8sdQ6m7$+uw4T?b*q^N zybx>wmslJQN_%RG|8y>R%qFBNW-(ztq@w(MY_>#kT&oiE+pKL`5jI|8nfH4QoV$@j zI;3Amy^t+w)9MceI=R!XI8f-e#Qr81kLbx5G(YFm>3EU9cEd<)lNnj=`zrNqH=}Gf z^7gR%Q5t+-D5V)m8|>}Tz%-vPz2-gg(Ve!yL()T2QAf^ih;jg_FIA)Ilev2}p;h!~ zy768^FxEQ=II$*-Nix48Fo8rJlnLOawo}2VUhiTAih6vUtPP1M`$RUE#S^$k@fun1 zSUE4lc}(o_0Z9{7;h4Oztm7XEcH?CA&sNEgV-C|`rBJ5=&z}1GWLT-Mnt$S(Rs%zj zF5_XM#l|%4FGJO@d_K|R?40{rgEVo$F^Vgs^Oi_BCUZyU}#DY4$H zoOkoa6CQz+f+Wo3VbY*h1FKn+p>ch~+oVtRDsXmTOC9w;xVaVAg?mX)1tcQ!NfFXp z_9(V0WCF*EC<(^~*~g;}bIYthbnF(Zf5NmtmRe@Hhmn+owxU2vg_3v<7(X(6#8Ir=+Z-+6^BNmkdmaF439 zW8KP*cz)84f!m1~nyBN9)_&c_-_D4sq}p{+68fiBu3}GrRf)+HMRlyjUuR*# z=bSW+{ZPyEuboehj&~ke{Ibq!n-IW%llR|7FVkofC`?RrN7dJ#2f)P%?Z|cry#6PG C1Rcu& diff --git a/graphics/3D/3dSynthezier/doc/index.html b/graphics/3D/3dSynthezier/doc/index.html deleted file mode 100644 index cfa0037..0000000 --- a/graphics/3D/3dSynthezier/doc/index.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - -3D Synthezier - - -

3D Synthezier

- -
-This QBasic program was written by me in around 2003. It parses scene
-definition language and creates 3D world based on it.  Result will be
-in a wavefront obj file, witch can be then visualized using external
-renderer.
-
-Basic concept of defining scene is:
-  Simple and primitive objects are created on point and polygon level.
-  More complex ones can be created my combinig already existing ones,
-  while applying various transformations on them.
-
-Objects with all its subobjects can be rotated, flipped or resized
-omong any axis.  Generator has built in cache for data input and
-output to minimize file access.
-
-
- -
Examples: -
-
-
Attempt to make "Fifth Eelement" like city. -

- -
-
Attempt to make "Fifth Eelement" like city. Night. -

- -
-
Attempt to make "Fifth Eelement" like city. Night. -

- - -
-
Hexangular city. -

- -
-
Hexangular city, closer. -

- -
-
Hexangular city, even closer. -

-
- -
-
-
-I converted these 2 generated cities also
-to Blender format so you can
-explore them interactively :)
-
-Download:
-        Square city (3.5 MB)
-        Hexagonal city (20.3 MB)
-
-
-
-
-        System requirements
-        ===================
-
-DOS     (6.22 preferred)
-QBasic  (4.5 preferred)
-
-
-        Installation
-        ============
-
-* Unpack ZIP file in any folder.
-* update include path inside  bin/3dparse.bas
-
-
-        Running program
-        ===============
-
-Make sure you have QB binaries in your PATH.
-Execute  bin/city1.bat  or  bin/city2.bat to generate example citys.
-After parsing is finished appropriate *.obj files will
-appear in the  bin  directory holding generated scene.
-Visualize scene with your favourite renderer.
-(3D Studio MAX or Nugraf 3D rendering System will do)
-
-
-        Directory layout
-        ================
-
-bin
-        3dparse.bas             3D generator main executable
-        city1.3d                city with square-like buildings
-        city2.3d                city with hexangular buildings
-        result.mtl              shared material library
-        *.bat                   quick launch scripts
-doc                             manual
-include                         3D objects used to compose the scene
-
-
-        Scene description language
-        ==========================
-        (read examples...)
-
-
-here                    - defines new segment
-p  x y z                - defines new point
-f  p1 p2 p3 p4          - defines new polygon,  p4  may be unused
-warn  message           - displays warning message, and wait for key
-end                     - terminates parser
-mtl  material           - selects material
-mtlrnd  material ...            - selects random material from list
-obj  object xz45 xy20 x+3 y*2   - includes sub object, can be rotated moved
-                                or resized,
-                                across X Y Z. If object name begin vith ~
-                                then it will be loaded from current directory.
-                                if object name ends with ~ then object will
-                                be parsed directly from file, and not chached,
-                                to allow loading of greater than 500 lines
-                                files.
-        
-
-
-rnd  p^1^2^3 p^7^2^1            - select random command to execute, ^ will be
-                                  converted to spaces.
-# whatever text                 - comment
-out  file                       - specify output file name, must be first command
-set  variable  contents         - set variable contents, variable must be
-                                  number, contents can be string. max variables
-                                  is 100. first is 0.
-anycommand %1 anything          - inserts variable 1 contents info line
-cmp  flag string1 string2       - compares strings, and inserts TRUE to flag, if
-                                  they are equal, else inserts FALSE. max 9 falgs
-                                  ,0 first. Each subobject has its own flags.
-?flag anycommand                - executes command if flag is true.
-                                  exapmle: ?3 obj car z*2 xy45
-dum                             - dummy function, does notheing
-
-
-
- - diff --git a/doc/index.html b/index.html similarity index 70% rename from doc/index.html rename to index.html index 6316c4f..5afb6b0 100644 --- a/doc/index.html +++ b/index.html @@ -2,7 +2,7 @@ QBasicApps - collection of applications mostly written in MS QBasic for DOS environment - + @@ -227,50 +227,126 @@ Foundation. This collection contains lots of applications:

    -
  • games +
  • Games.
  • -
  • graphics tests (2D/3D/4D) +
  • Graphics tests (2D/3D/4D).
  • -
  • algorithms tests +
  • Algorithms tests.
  • -
  • utilities +
  • Utilities.
+

I wrote them long time ago mostly in QBasic, some in x86 assembly for -use under DOS environment. +use under DOS operating system.

Few sample applications from the package:

-
    -
  • Checkers game -
  • -
  • Super Mario clone -
  • -
  • 3D synthezer -
  • -
  • Ray casting 3D engine -
  • -
  • 4D engine -
  • -
  • Interactive 3D graph for visualizing formulas -
  • -
  • Biorythm calculator -
  • -
  • Digital data over analog audio channel -
  • -
  • Explosion simulation -
  • -
  • Game of life -
  • + +
    +

    1 Checkers

    +
    +

    +Play checkers against the computer with any board size and any amount +of caps. Does thinking by recursively testing many possible scenarios +with any depth. +

    + +

    +Since it is slow QBasic implementation, it isn't practical to play +with many caps or big thinking depth, for reasonable responce time. +

    + +

    +See directory: +

    +
    +games/checkers
    +
    + + +
    +

    screenshot.png +

    +
    +
    +
    + + +
    +

    2 Platform game

    +
    +

    +Jump around, collect coins and dont touch snails! Inspired by Super +Mario Bros. +

    + +

    +See directory: +

    +
    +games/platform
    +
    + + +
    +

    screenshot.png +

    +
    +
    +
    + + +
    +

    3 3D Synthezier

    +
    +

    +Parses scene definition language and creates 3D world based on +it. Result will be in a wavefront obj file, witch can be then +visualized using external renderer. +

    + +

    +See directory: +

    +
    +graphics/3D/3D Synthezier
    +
    + + +
    +

    rectangular city, 1.jpeg +

    +
    + + +
    +

    hexagonal city, 2.jpeg +

    +
    + +

    +Read more +

    +
    +
    + + + + diff --git a/doc/index.org b/index.org similarity index 55% rename from doc/index.org rename to index.org index 5f5bb8a..0b806a0 100644 --- a/doc/index.org +++ b/index.org @@ -17,25 +17,54 @@ This collection contains lots of applications: -+ games -+ graphics tests (2D/3D/4D) -+ algorithms tests -+ utilities ++ Games. ++ Graphics tests (2D/3D/4D). ++ Algorithms tests. ++ Utilities. + I wrote them long time ago mostly in QBasic, some in x86 assembly for -use under DOS environment. +use under DOS operating system. Few sample applications from the package: -+ [[file:../games/checkers/index.html][Checkers game]] -+ [[file:../games/mario/index.html][Super Mario clone]] -+ [[file:../graphics/3D/3dSynthezier/doc/index.html][3D synthezer]] -+ [[file:../graphics/3D/ray casting engine/index.html][Ray casting 3D engine]] -+ [[file:../graphics/4D engine/index.html][4D engine]] -+ [[file:../math/3D graph/index.html][Interactive 3D graph for visualizing formulas]] -+ [[file:../math/biorythm/index.html][Biorythm calculator]] -+ [[file:../networking/digital data over analog audio channel/index.html][Digital data over analog audio channel]] -+ [[file:../simulation/explosion/index.html][Explosion simulation]] -+ [[file:../simulation/life/index.html][Game of life]] + +* Checkers +Play checkers against the computer with any board size and any amount +of caps. Does thinking by recursively testing many possible scenarios +with any depth. + +Since it is slow QBasic implementation, it isn't practical to play +with many caps or big thinking depth, for reasonable responce time. + +See directory: +: games/checkers + +[[file:games/checkers/screenshot.png]] + + +* Platform game +Jump around, collect coins and dont touch snails! Inspired by Super +Mario Bros. + +See directory: +: games/platform + +[[file:games/platform/screenshot.png]] + + +* 3D Synthezier +Parses scene definition language and creates 3D world based on +it. Result will be in a [[https://en.wikipedia.org/wiki/Wavefront_.obj_file][wavefront obj file]], witch can be then +visualized using external renderer. + +See directory: +: graphics/3D/3D Synthezier + +[[file:graphics/3D/3D Synthezier/doc/rectangular city, 1.jpeg]] + +[[file:graphics/3D/3D Synthezier/doc/hexagonal city, 2.jpeg]] + +[[file:graphics/3D/3D Synthezier/doc/index.html][Read more]] * (document settings) :noexport: ** use dark style for TWBS-HTML exporter diff --git a/unsorted/font.bas b/misc/font.bas similarity index 100% rename from unsorted/font.bas rename to misc/font.bas diff --git a/unsorted/key.bas b/misc/key.bas similarity index 100% rename from unsorted/key.bas rename to misc/key.bas diff --git a/unsorted/lightpe2.bas b/misc/lightpe2.bas similarity index 100% rename from unsorted/lightpe2.bas rename to misc/lightpe2.bas diff --git a/unsorted/lightpen.bas b/misc/lightpen.bas similarity index 100% rename from unsorted/lightpen.bas rename to misc/lightpen.bas diff --git a/unsorted/matem.bas b/misc/matem.bas similarity index 100% rename from unsorted/matem.bas rename to misc/matem.bas diff --git a/unsorted/modes.bas b/misc/modes.bas similarity index 100% rename from unsorted/modes.bas rename to misc/modes.bas diff --git a/unsorted/pal.bas b/misc/pal.bas similarity index 100% rename from unsorted/pal.bas rename to misc/pal.bas diff --git a/unsorted/passw.bas b/misc/passw.bas similarity index 100% rename from unsorted/passw.bas rename to misc/passw.bas diff --git a/unsorted/passw.dat b/misc/passw.dat similarity index 100% rename from unsorted/passw.dat rename to misc/passw.dat diff --git a/unsorted/tim.dat b/misc/tim.dat similarity index 100% rename from unsorted/tim.dat rename to misc/tim.dat diff --git a/unsorted/timer.bas b/misc/timer.bas similarity index 100% rename from unsorted/timer.bas rename to misc/timer.bas diff --git a/wsystem.bas b/misc/wsystem.bas similarity index 100% rename from wsystem.bas rename to misc/wsystem.bas diff --git a/tools/update web site b/tools/update web site index e6d3056..48bb5d6 100755 --- a/tools/update web site +++ b/tools/update web site @@ -1,6 +1,5 @@ #!/bin/bash - -cd "${0%/*}" +cd "${0%/*}"; if [ "$1" != "T" ]; then gnome-terminal -e "'$0' T"; exit; fi; cd .. @@ -10,3 +9,7 @@ rsync -avz --delete -e 'ssh -p 10006' ./ \ --include="*.png" \ --exclude="*" \ n0@www3.svjatoslav.eu:/mnt/big/projects/qbasicapps/ + +echo "" +echo "Press ENTER to close this window." +read -- 2.20.1