{{description>Master Unity Curvy Splines with our comprehensive guide on datatypes, inheritance, and rich datatype classes for seamless 2D and 3D object manipulation.}} ====== Datatypes ======= A Curvy Generator module usually gets input data from one or more input slots and, after processing, writes data to one or more output slots. Data Types do inherit. For example, if a slot wants a Shape, you can plug in a Path as well because Path is subclassed from shape. When adding modules using Filter mode (//CTRL// pressed), only modules matching the direct datatype are shown ===== Rich datatype classes===== Most datatype classes offer a variety of constructors and helper methods to manipulate or use it's data. E.g. a [[#Volume]] offers methods to calculate points on it's surface. ===== Datatype hierarchy ===== CGDATA is the base class for all data types! * [[#Shape]] => [[#Path]] => [[#Volume]] * [[#Bounds]] => [[#GameObject]] * [[#Bounds]] => [[#VMesh]] * [[#VSubMesh]] * [[#Spots]] ===== Reference ===== ==== CGData ==== * Name * Timestamp ==== Shape ==== Represents a polygon line, e.g. a rasterized spline shape. Shapes in this context need to be strictly 2D on the X/Y plane! * Position * Normal * Material settings for groups of line segments This datatype usually is used in a non-rasterized way (see [[.:modules:#OnRequestProcessing]]) ==== Path ==== //Inherits from [[#Shape]]// Represents a full polygon line: * Position (from [[#Shape]]) * Normal (from [[#Shape]] * Material settings for groups of line segments (from [[#Shape]]) * Direction/Tangents This datatype usually is used in a non-rasterized way (see [[.:modules:#OnRequestProcessing]]) ==== Volume ==== //Inherits from [[#Path]] => [[#Shape]]// Represents a extruded volume: * Position (from [[#Shape]]) * Normal (from [[#Shape]] * Material settings for groups of line segments (from [[#Shape]]) * Direction/Tangents (from [[#Path]]) * Vertex * VertexNormal * UV ==== Bounds ==== Encapsulates a bounding box. Bounds are usually taken from Mesh or GameObject input modules and can be used to properly place the source objects or other calculations. * Bounds ==== GameObject ==== Represents a GameObject/Prefab * Object ==== VMesh ==== Represents mesh data: * Vertex * UV,UV2 * Normals * Tangents * List of VSubmeshes === VSubMesh === Represents a submesh: * Triangles * Material ==== Spots ==== A collection of spots. Spots are used to place objects (like meshes or Game Objects). A spot is defined by: * Spacial coordinates * Position * Rotation * Scale * The index of the object to place