diff --git a/index/ls/lsystem_editor/lsystem_editor-1.0.0.toml b/index/ls/lsystem_editor/lsystem_editor-1.0.0.toml new file mode 100644 index 00000000..b7a9ab23 --- /dev/null +++ b/index/ls/lsystem_editor/lsystem_editor-1.0.0.toml @@ -0,0 +1,155 @@ +name = "lsystem_editor" +description = "L-Systems editor in Ada" +version = "1.0.0" +project-files = ["LSystem_Editor.gpr"] + +long-description = """ +App Icon + +# L-System Editor + +License + +A comprehensive graphical and command-line editor for creating, manipulating, and visualizing Lindenmayer systems (L-systems). + +This project was initially developed as part of a university project. + +## What are L-Systems? + +L-systems (Lindenmayer systems) are a type of formal grammar introduced by biologist Aristid Lindenmayer in 1968. They are particularly useful for modeling plant growth and generating fractals. An L-system consists of: + +- An **alphabet** of symbols that can be used to make strings +- An **axiom** (initial string) to start with +- A set of **production rules** that expand each symbol into a larger string of symbols + +Through recursive application of these rules, complex structures can be generated from simple initial conditions. + +## Features + +- **Interactive GUI** for creating and editing L-systems +- **Command-line interface** for batch processing and automated workflows +- **Real-time visualization** of the L-system at different development levels +- **Export capabilities** to PS (PostScript) format for now +- **Customizable rendering** with adjustable parameters (colors, margins, dimensions) +- **Save and load** L-system definitions using `.ls` files + +## Installation + +### Using Alire (recommended) + +``` +alr install lsystem_editor +``` + +### From Source + +1. Ensure you have Ada and GtkAda installed. This project depends on GNAT Lib. +2. Clone the repository: `git clone https://github.com/Heziode/lsystem-editor.git` +3. Build with Alire: `alr build` or manually with `make` + +## Usage + +### GUI Mode + +Launch the graphical interface: + +``` +./bin/lsystem_editor +# Or +alr run +``` + +The GUI offers: +- A text editor area for defining L-system rules +- Controls to adjust the development level +- Real-time visualization of the L-system +- Export options +- Customization of colors and rendering parameters + +### Command-Line Mode + +For automated processing or batch operations: + +``` +lsystem_editor --no-gui [OPTIONS] +``` + +#### Command-Line Options + +| Option | Long Form | Description | +|--------|-----------|-------------| +| `-i` | `--input=FILE` | Input file containing an L-system definition | +| `-o` | `--output=FILE` | Output file to store an L-system definition | +| `-e` | `--export=FORMAT` | Export format for the L-system representation | +| `-p` | `--export-file=FILE` | Output file for the exported representation | +| `-d` | `--develop=N` | Number of development steps to apply | +| `-w` | `--width=N` | Width of the output representation | +| `-h` | `--height=N` | Height of the output representation | +| `-b` | `--background-color=COLOR` | Background color in hex format (e.g., #AABBCC) | +| `-f` | `--foreground-color=COLOR` | Foreground color in hex format (e.g., #AABBCC) | +| `-mt` | `--margin-top=N` | Top margin for rendering | +| `-mr` | `--margin-right=N` | Right margin for rendering | +| `-mb` | `--margin-bottom=N` | Bottom margin for rendering | +| `-ml` | `--margin-left=N` | Left margin for rendering | + +## L-System File Format + +L-system definitions are stored in `.ls` files with the following syntax: + +``` + [angle in degrees] + [initial string] + +[symbol] [replacement string] +[symbol] [replacement string] +... + +``` + +### Example L-System: Koch Curve + +``` +60.0 +-F++F++F +F F-F++F-F +``` + +Where: +- `F` means "draw forward" +- `+` means "turn left by angle" +- `-` means "turn right by angle" + +## Controls in GUI Mode + +- **Text Editor**: Define and edit your L-system +- **Validate Button**: Check if your L-system definition is valid +- **Level Spinner**: Adjust the development level +- **Color Controls**: Change foreground and background colors +- **Export Options**: Save visualizations + +## License + +L-System Editor is distributed under the MIT License. + +Copyright (c) 2018 Quentin Dauprat (Heziode) + +See the [LICENSE](https://github.com/Heziode/lsystem-editor/blob/master/LICENSE) file for full details. +""" + +authors = ["Heziode"] +maintainers = ["Heziode "] +maintainers-logins = ["heziode"] +licenses = "MIT" +website = "https://github.com/Heziode/lsystem-editor" +tags = ["gtk", "gtk3", "ada", "l-systems", "gtkada", "l-system", "editor", "gui"] + +executables = ["lsystem-editor"] + +[[depends-on]] +gtkada = "^25.0.1" +resources = "~0.1.0" + +[origin] +commit = "b01f05b870b2eb91e95f4868e259d9208afdbe34" +url = "git+https://github.com/Heziode/lsystem-editor" +