- [ArrayE](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/ArrayE.cs): Various Array and List extensions, such as looped getters/setters and flood fills.
- [CellularAutomaton](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/CellularAutomaton.cs): Generic cellular automaton for two-state rulesets. Common rulesets can be found in CellularAutomaton.Ruleset.
- [ClipperUtility](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/ClipperUtility.cs): Utility class for conversion of Clipper data from and to Unity format.
- [ColorE](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/ColorE.cs): Color extensions, HTML colors, Gradient constructors.
- [ColorHSV](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/ColorHSV.cs): Serializable representation of color in HSV model.
- [CompoundMeshDraft](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/CompoundMeshDraft.cs): Helper class for mesh generation supporting large meshes and submeshes.
- [DebugE](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/DebugE.cs): Collection of drawing methods similar to Debug.DrawLine.
- [Directions](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Directions.cs): Enum with direction flags along three axes.
- [Draw](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Draw.cs): Collection of generic vector drawing algorithms.
- [DrawRaster](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/DrawRaster.cs): Collection of generic raster drawing algorithms.
- [GizmosE](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/GizmosE.cs): Collection of drawing methods similar to Gizmos.
- [GLE](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/GLE.cs): Collection of GL drawing methods similar to Gizmos.
- [MeshDraft](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/MeshDraft.cs): Helper class for mesh generation.
- [MeshDraftPrimitives](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/MeshDraftPrimitives.cs): Constructors for MeshDraft primitives.
- [PTUtils](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/PTUtils.cs): Various useful methods and constants.
- [RandomE](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/RandomE.cs): Class for generating random data. Contains extensions for arrays and other collections.
- [RendererProperties](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/RendererProperties.cs): Serializable Renderer properties, use Renderer.ApplyProperties extension to apply them to a target renderer.
- [BuildingGenerator](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/BuildingGenerator.cs): The main generation class. Generates buildings based on input configuration and strategies, reusable. See examples for details.
- [ILayout](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/Interfaces/ILayout.cs),[ILayoutElement](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/Interfaces/ILayoutElement.cs),[IConstructible](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/Interfaces/IConstructible.cs),[Layout](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/Layout.cs),[HorizontalLayout](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/HorizontalLayout.cs),[VerticalLayout](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/VerticalLayout.cs): Interfaces and classes used in facade layout generation.
- [IFacadePlanner](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/Interfaces/IFacadePlanner.cs),[IFacadeConstructor](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/Interfaces/IFacadeConstructor.cs),[IRoofPlanner](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/Interfaces/IRoofPlanner.cs),[IRoofConstructor](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/Interfaces/IRoofConstructor.cs): Interfaces for strategies controlling the details of the building generation process.
- [FacadePlanner](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/FacadePlanner.cs),[FacadeConstructor](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/FacadeConstructor.cs),[RoofPlanner](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/RoofPlanner.cs),[RoofConstructor](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/RoofConstructor.cs): Serializable wrappers for strategy interfaces.
- [ProceduralRoofs](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Buildings/ProceduralRoofs.cs): A collection of roof constructors for the building generator.
See[this wiki page](https://github.com/Syomus/ProceduralToolkit/wiki/Geometry-algorithms)for a matrix of available algorithms.
- [Circle2](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Circle2.cs),[Circle3](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Circle3.cs),[Sphere](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Sphere.cs),[Line2](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Line2.cs),[Line3](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Line3.cs),[Segment2](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Segment2.cs),[Segment3](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Segment3.cs): Representations of geometric primitives.
- [Geometry](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Geometry.cs): Utility class for computational geometry algorithms, contains various point samplers and helper methods.
- [Closest2D](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Closest2D.cs),[Closest3D](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Closest3D.cs): Collection of closest point(s) algorithms.
- [Distance2D](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Distance2D.cs),[Distance3D](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Distance3D.cs): Collection of distance calculation algorithms.
- [Intersect2D](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Intersect2D.cs),[Intersect3D](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Intersect3D.cs): Collection of intersection algorithms.
- [IntersectionType](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/IntersectionType.cs): Enum used in intersection algorithms.
- [Intersections](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/Intersections)folder: Structures containing information about intersections.
Classes used in[straight skeleton](https://en.wikipedia.org/wiki/Straight_skeleton)generation.
- [StraightSkeletonGenerator](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/StraightSkeleton/StraightSkeletonGenerator.cs): A straight skeleton generator, computes a straight skeleton for the input polygon, reusable. The generation algorithm is loosely based on the work of Tom Kelly (2014)[Unwritten procedural modeling with the straight skeleton](http://www.twak.co.uk/2014/02/unwritten-procedural-modeling-with.html).
- [StraightSkeleton](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/StraightSkeleton/StraightSkeleton.cs): A straight skeleton representation.
- [Plan](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Geometry/StraightSkeleton/Plan.cs): Representation of the active plan during generation process.
The[LibTessDotNet](https://github.com/speps/LibTessDotNet)library. The recommended use is through the wrapper class[Tessellator](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Tessellator.cs).
- [Debug](https://github.com/Syomus/ProceduralToolkit/blob/master/Shaders/Debug)folder: Debug shaders for some of the most common mesh channels.
- [VertexColor](https://github.com/Syomus/ProceduralToolkit/blob/master/Shaders/VertexColor)folder: Textureless shaders for use with color information from the vertices.
- [ColorHSVDrawer](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Editor/ColorHSVDrawer.cs): PropertyDrawer for ColorHSV.
- [MeshFilterExtension](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Editor/MeshFilterExtension.cs): Mesh saving utility available at.`MeshFilter context menu > Save Mesh`
- [ProceduralToolkitMenu](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Editor/ProceduralToolkitMenu.cs): Submenu with constructors for primitives at.`GameObject > Procedural Toolkit`
- [RulesetDrawer](https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/Editor/RulesetDrawer.cs): PropertyDrawer for CellularAutomaton.Ruleset.
A fully procedural building generator, creates an entire mesh from scratch and paints it's vertices. Keep in mind that the generated mesh has no uv map so using it with Standard shader is pointless.
- BuildingGeneratorComponent: A simple minimal example on how you can use BuildingGenerator
- BuildingGeneratorConfigurator: A configurator for BuildingGenerator with UI and editor controls.
- BuildingGeneratorReuse: An example on how you can reuse the same generator to generate multiple buildings.
- ProceduralFacadePlanner: A facade planning strategy, controls the layouts of the facades.
- ProceduralFacadeConstructor: A facade construction strategy, used in conjunction with ProceduralFacadePlanner.
- ProceduralRoofPlanner: A roof planning strategy, generates a roof description based on the input config.
- ProceduralRoofConstructor: A roof construction strategy, used in conjunction with ProceduralRoofPlanner.
- ProceduralFacadeElements: A collection of fully procedural facade panels for the building generator.
- PolygonAsset: A ScriptableObject container for vertices.
- BuildingGeneratorConfiguratorEditor: A custom inspector for BuildingGeneratorConfigurator.
A simple low poly terrain generator based on fractal noise. Doesn't support chunking or anything like that, just an example of how you can use a noise function in a plane generation algorithm.
- LowPolyTerrainGenerator: Main generator class. Generates terrain based on input configuration.
- LowPolyTerrainExample: Configurator for LowPolyTerrainGenerator with UI and editor controls.
- LowPolyTerrainExampleEditor: Custom inspector for LowPolyTerrainExample.
A demonstration of CellularAutomaton from the main library, draws the automaton simulation on a texture. Note that some of the rulesets need noise value different from the default setting.
- CellularAutomatonConfigurator: Configurator for the automaton with UI controls.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.