## Overview

NurbsSurfaceInterpolator describes a 3D NURBS curve and outputs interpolated position and normal values.

The NurbsSurfaceInterpolator node belongs to the **NURBS** component and its default container field is *children.* It is available since X3D version 3.0 or later.

## Hierarchy

1
2
3

+ X3DNode
+ X3DChildNode
+ NurbsSurfaceInterpolator

## Fields

### SFNode [in, out] **metadata** NULL [X3DMetadataObject]

Metadata are not part of the X3D world and not interpreted by the X3D browser, but they can be accessed via the ECMAScript interface.

### SFVec2f [in] **set_fraction** (-∞,∞)

Setting fraction in range [0,1] selects input key for corresponding keyValue output, computing a 3D position on the curve.

### SFNode [in, out] **controlPoint** NULL [X3DCoordinateNode]

Input/Output field controlPoint.

### MFDouble [in, out] **weight** [ ] (-∞,∞)

Output values for linear interpolation, each corresponding to knots.

#### Hint

- Number of weights must match number of knots!

### SFVec3f [out] **position_changed**

Linearly interpolated output value determined by current key time and corresponding keyValue pair.

### SFVec3f [out] **normal_changed**

Linearly interpolated output value determined by current key time and corresponding keyValue pair.

### SFInt32 [ ] **uDimension** [0,∞)

Number of control points in u dimension.

### MFDouble [ ] **uKnot** [ ] (-∞,∞)

Knot vector, where size = number of control points + order of curve.

### SFInt32 [ ] **uOrder** 3 [2,∞)

Define order of surface by polynomials of degree = order-1.

### SFInt32 [ ] **vDimension** [0,∞)

Number of control points in v dimension.

### MFDouble [ ] **vKnot** [ ] (-∞,∞)

Knot vector, where size = number of control points + order of curve.

### SFInt32 [ ] **vOrder** 3 [2,∞)

Define order of surface by polynomials of degree = order-1.

## Description

### Hint

- The SFNode controlPoints field can contain a single Coordinate or CoordinateDouble node.