Data Types

Every module in the Curvy Generator exchanges data through its slots. This page describes all the data types those slots can carry.

Type Hierarchy

Types can inherit from each other. A slot that accepts a Shape will also accept a Path, because Path extends Shape (it carries everything Shape does, plus more). This lets you connect modules flexibly without needing exact type matches.

Inheritance tree:

Root
├── Shape
│   └── Path
│       └── Volume
├── Bounds
│   ├── GameObject
│   └── VMesh
├── VSubMesh
└── Spots

Type Reference

Short descriptions of each type, from a user perspective.

Shape

A 2D outline made of sample points. Used for example as the cross-section in extrusions.

Carries:

Shape must lie strictly on the X/Y plane.

Path

Extends Shape

A 3D curve made of sample points. Used for example as the spine along which shapes are extruded or objects are placed.

Carries everything Shape carries, plus:

Volume

Extends PathShape

The result of extruding a Shape along a Path. Contains the full 3D surface data needed to build a mesh.

Carries everything Path carries, plus:

Bounds

A bounding box. Used to know the size of a mesh or GameObject, so other modules (like Volume Spots) can place objects without overlap.

Carries:

GameObject

Extends Bounds

A reference to a Unity GameObject or Prefab, along with an optional local TRS offset.

Carries everything Bounds carries, plus:

VMesh

Extends Bounds

Mesh data ready to be turned into a Unity Mesh. One VMesh can contain multiple submeshes (one per material).

Carries everything Bounds carries, plus:

VSubMesh

One submesh within a VMesh. Each submesh is associated to one material slot on the final Unity mesh.

Carries:

Spots

A list of placement points. Each spot tells a module where to place an object and which object from the input array to use.

Carries, per spot: