Apply Field to Surface

https://github.com/nortikin/sverchok/assets/14288520/8019b545-7cdd-4c92-b7be-ae4eb3ac3d4d

Functionality

This node generates a Surface by applying some vector field to another Surface. More precisely, it generates the surface, points of which are calculated as X + K * VF(X), where X is the point of initial surface, VF is the vector field, and K is some coefficient.

Optionally, for NURBS and NURBS-like surfaces, this node can apply a Vector Fields to control points of NURBS surface, instead of applying to all points of the surface. If this mode is enabled, then output curve will be always a NURBS curve.

Note that mathematically, for NURBS surfaces, if you apply an affine transformation (such as translation, scale, rotation - i.e. vector field defined by a Matrix) to control points of a NURBS surface, you will have a surface of exactly the same shape, but translated / scaled / rotated according to the transformation. For any more complex transformation (attractor field, for example), the resulting surface will have different shape; and also it will be different from a surface that you would receive if you applied the vector field to all points of the surface instead.

Surface domain: the same as of initial surface.

https://github.com/nortikin/sverchok/assets/14288520/2b6fcc1e-9085-4e9a-a3c0-4eaf1de22bcf

Inputs

This node has the following inputs:

  • Field. Vector field to apply. This input is mandatory.

  • Surface. The surface to apply the vector field to. This input is mandatory.

  • Coefficient. The “strength” coefficient. Value of 0 will output the surface as it was. The default value is 1.0.

Parameters

This node has the following parameter:

  • Use Control Points. If checked, then the vector field will be applied to control points of a NURBS surface, instead of applying it to all points of the surface. This node will fail (become red) if this mode is enabled, but input surface is not a NURBS and can not be presented as a NURBS. If not checked, then the node will apply the vector field to all points of the surface; in such a case, it can process any type of surface. Disabled by default.

  • By Normal. This defines whether the field application will be affected by surface’s normals. The available options are:

    • As Is. Do not consider surface’s normals, just apply the field as it is. This is the default option.

    • Along Normal. Move surface points only along surface’s normal vectors; i.e., apply only the projection of the field to surface’s normals to the surface.

    • Along tangent. Move surface points only along surface’s tangent planes, i.e. only perpendicular to the normals.

    This parameter is not available if Use Control Points parameter is checked.

Outputs

This node has the following output:

  • Surface. The generated surface.

Examples of usage

Noise field applied to the torus surface:

https://github.com/nortikin/sverchok/assets/14288520/096f4723-705e-4401-87fd-77d7d3e5dd86

Noise field applied to the sphereical surface:

https://user-images.githubusercontent.com/284644/79371205-6ae86780-7f6d-11ea-80f7-3bf5ca71c7cf.png

An example with more complex field:

https://user-images.githubusercontent.com/284644/79371656-23aea680-7f6e-11ea-97e1-1ac22cb194a1.png