# Rails SOP

## Summary

The Rails SOP generates surfaces by stretching cross-sections between two rails. This is similar to the Sweep SOP, but it gives more control over the orientation and scaling of the cross-sections. The first SOP input is the cross-section which will be replicated, and is typically placed in the XY plane. The second input SOP source is the rails along which the cross-section is replicated.

## Parameters - Page

X-Section Groups `xsectgrp` - You can use a subset of primitives from the Cross-section input by specifying a group here. Accepts patterns, as described in Pattern Matching.

Rail Groups `railgrp` - You can use a subset of primitives from the Rails input by specifying a group here. Accepts patterns, as described in Pattern Matching.

Cycle Type `cycle` - -

• All Primitives at Each Point `all` - Places all the primitives from the Cross-section input at each point on the backbone.
• One Primitive at a Time `each` - Similar to the above, except the transformation is applied to individual primitives rather than to the whole.
• Cycle Primitives `cycle` - This cycles through incoming primitives when placing them on a backbone. i.e. Start with 0 at vertex 0, primitive 1 at vertex 1, etc.

Sweep along Pairs of Rails `pairs` - Sweeps along rail 1 & 2, 3 & 4, 5 & 6 etc. instead of 1 & 2, 2 & 3, 3 & 4 etc.

Sweep along First and Last Rail `firstl` - Connects the cross-section between the first and last rails.

Stretch to Rails `stretch` - Stretches the cross-section geometry to the rail geometry.

Use Vertex `usevtx` - Specifies two vertices of the cross section polygon to be placed on rail1 and rail2 respectively. Very useful, for instance, to keep the first vertex on rail1 and the seventh vertex on rail2.

Connection Vertices `vertex` - - The vertices at which the cross-section is connected to the rails.

• `vertex1` -
• `vertex2` -

Scale `scale` - Global scaling of the cross-sections.

Roll `roll` - Non-cumulative rotation of the cross sections around the backbone. All cross sections get the same rotation.

Fix Flipping `noflip` - Option to correct the flipping when no direction vector is used and the two rails happen to cross each other causing the normal to flip upside down.

Use Direction `usedir` - Uses the direction vector specified in the X, Y and Z coordinates. Otherwise it will use the normals of the geometry.

Direction `dir` - - The direction vector to use.

• X `dirx` -
• Y `diry` -
• Z `dirz` -

Create Output Groups `newg` - Selecting this option enables the creation of groups. A group is created for each backbone that is incoming. This allows for easy skinning in the Skin SOP.

Group Name `railname` - Specify the name of your output groups in this field. Accepts patterns, as described in Pattern Matching.

## Operator Inputs

• Input 0 -
• Input 1 -

TouchDesigner Build:

Add • Alembic • Align • Arm • Attribute Create • Attribute • Basis • Blend • Bone Group • Boolean • Box • Bridge • Cache • Cap • Capture Region • Capture • Carve • CHOP to • Circle • Clay • Clip • Convert • Copy • CPlusPlus • Creep • Curveclay • Curvesect • DAT to • Deform • Delete • Divide • Extrude • Facet • File In • Fillet • Fit • Font • Force • Fractal • Grid • Group • Hole • Import Select • In • Introduction To SOPs id • Inverse Curve • Iso Surface • Join • Joint • Kinect • Lattice • Limit • Line • Line Thick • LOD • LSystem • Magnet • Material • Merge • Metaball • Model • Noise • Null • Object Merge • Oculus Rift • OpenVR • Out • Particle • Point • Polyloft • Polypatch • Polyreduce • Polyspline • Polystitch • Primitive • Profile • Project • Rails • Raster • Ray • Rectangle • Refine • Resample • Revolve • Script • Select • Sequence Blend • Skin • Sort • Sphere • Spring • Sprite • Stitch • Subdivide • Superquad • Surfsect • Sweep • Switch • Text • Texture • Torus • Trace • Trail • Transform • Trim • Tristrip • Tube • Twist • Vertex • Wireframe • ZED

An Operator Family that reads, creates and modifies 3D polygons, curves, NURBS surfaces, spheres, meatballs and other 3D surface data.

Each SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.

A surface type in SOPs including polygon, curve (NURBS and Bezier), patch (NURBS and Bezier) and other shapes like sphere, tube, and metaball. Points and Primitives are part of the Geometry Detail, which is a part of a SOP.