**ParametricSurface** Op

### Creates a 3d mesh from a 2d area expressions

Summary (oneliner)

A parametric surface is a surface in 3d space that is defined by a parametric equation of 2 parameters.

Simplified, it is a mapping from (u, v) -> (x, y, z).

With this op, you have the possibility to define your own parametric surfaces by specifying a function for each 3d component (x, y, z). These functions may include all mathematic operations javascript is capable of.

For a reference of mathematical functions availible, please refer to the Javascript Math object: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math

There are presets you can choose from, which are a good starting point if you are unfamiliar with the mathematics.

For further reading (if you're not scared of maths!), please refer to

or

https://www.youtube.com/watch?v=MmTNkRA0yyk

to get an overview.

If you are just looking for formulas to put in, refer to

http://www.3d-meier.de/tut3/Seite0.html

as a starting point (German only, but not too hard to figure out).

Documentation (markdown)

Issues

Example patch id

Youtube ids (comma seperated)

Caniuse query

## Inputs

*integer*/Number)

Trigger input

#### Segments

*integer*/Number)

number of segments on the U axis

*integer*/Number)

number of segments on the V axis

#### U range

*boolean*/Number)

whether uMin & uMax should be multiplied with PI

boundary start U

boundary end U

displace U range

#### V range

*boolean*/Number)

whether vMin & vMax should be multiplied with PI

boundary start V

boundary end V

displace V range

#### XYZ Functions

uv function for x coordinates, allowed values: u, v

uv function for y coordinates, allowed values: u, v

uv function for z coordinates, allowed values: u, v

#### Scaling

scale x coordinates by given amount

scale y coordinates by given amount

scale z coordinates by given amount

#### Draw

*boolean*/Number)

whether the shape should be drawn

## Outputs

trigger out

outputs the geometry of the surface

outputs the vertices of the surface (as an xyz-Array)

outputs the length of the vertices array

## Changelog

created op2019-07-10 - simod |