constructor(visualResponseDescription) {
    this.componentProperty = visualResponseDescription.componentProperty;
    this.states = visualResponseDescription.states;
    this.valueNodeName = visualResponseDescription.valueNodeName;
    this.valueNodeProperty = visualResponseDescription.valueNodeProperty;

    if (this.valueNodeProperty === Constants.VisualResponseProperty.TRANSFORM) {
      this.minNodeName = visualResponseDescription.minNodeName;
      this.maxNodeName = visualResponseDescription.maxNodeName;
    }

    // Initializes the response's current value based on default data
    this.value = 0;
    this.updateFromComponent(defaultComponentValues);
  }
Contains the description of how the 3D model should visually respond to a specific user input.
This is accomplished by initializing the object with the name of a node in the 3D model and
property that need to be modified in response to user input, the name of the nodes representing
the allowable range of motion, and the name of the input which triggers the change. In response
to the named input changing, this object computes the appropriate weighting to use for
interpolating between the range of motion nodes.