Interface WaveShaper
- All Superinterfaces:
X3DChildNode
,X3DNode
,X3DSoundNode
,X3DSoundProcessingNode
,X3DTimeDependentNode
- All Known Implementing Classes:
WaveShaper
WaveShaper node represents a nonlinear distorter that applies a wave-shaping distortion curve to the signal.
Warning: this is an abstract interface that cannot be instantiated as a concrete object. Java programmers typically only need to use concrete objects provided by the
Package hint: This interface is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI).
Warning: this is an abstract interface that cannot be instantiated as a concrete object. Java programmers typically only need to use concrete objects provided by the
org.web3d.x3d.jsail
classes.
WaveShaper node tooltip: [X3DSoundProcessingNode] WaveShaper node represents a nonlinear distorter that applies a wave-shaping distortion curve to the signal. Non-linear waveshaping distortion is commonly used for both subtle non-linear warming, or more obvious distortion effects. Arbitrary non-linear shaping curves may be specified.
- Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#waveshapernode
Package hint: This interface is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI).
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addChildren
(X3DNode[] newValue) Add array of children nodes to array of existing nodes (if any).int
Provide int value from outputOnly SFInt32 field named channelCount.Provide String enumeration value (baseType SFString) ["MAX" | "CLAMPED_MAX" | "EXPLICIT"] from inputOutput SFString field named channelCountMode.Provide String enumeration value (baseType SFString) ["SPEAKERS" | "DISCRETE"] from inputOutput SFString field named channelInterpretation.X3DNode[]
Provide array of org.web3d.x3d.sai.Core.X3DNode results (using an array consisting of properly typed nodes or ProtoInstances) with acceptable node types limited to Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper, from inputOutput MFNode field children.Provide String value from inputOutput SFString field named description.double
Provide double value in seconds within allowed range of [0,infinity) from outputOnly SFTime field named elapsedTime.boolean
Provide boolean value from inputOutput SFBool field named enabled.float
getGain()
Provide float value from inputOutput SFFloat field named gain.boolean
Provide boolean value from outputOnly SFBool field named isActive.boolean
Provide boolean value from outputOnly SFBool field named isPaused.Provide org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.Provide String enumeration value (baseType SFString) ["NONE" | "2X" | "4X"] from inputOutput SFString field named oversample.double
Provide double value in seconds from inputOutput SFTime field named pauseTime.double
Provide double value in seconds from inputOutput SFTime field named resumeTime.double
Provide double value in seconds from inputOutput SFTime field named startTime.double
Provide double value in seconds from inputOutput SFTime field named stopTime.double
Provide double value in seconds within allowed range of [0,infinity) from inputOutput SFTime field named tailTime.setChannelCountMode
(String newValue) Accessor method to assign String enumeration value ("MAX" | "CLAMPED_MAX" | "EXPLICIT") to inputOutput SFString field named channelCountMode.setChannelInterpretation
(String newValue) Accessor method to assign String enumeration value ("SPEAKERS" | "DISCRETE") to inputOutput SFString field named channelInterpretation.void
setChildren
(X3DNode newValue) Set single children node, replacing prior array of existing nodes (if any).setChildren
(X3DNode[] newValue) Accessor method to assign org.web3d.x3d.sai.Core.X3DNode array (using an array consisting of properly typed nodes or ProtoInstances) to inputOutput MFNode field children.setDescription
(String newValue) Accessor method to assign String value to inputOutput SFString field named description.setEnabled
(boolean newValue) Accessor method to assign boolean value to inputOutput SFBool field named enabled.setGain
(float newValue) Accessor method to assign float value to inputOutput SFFloat field named gain.setMetadata
(X3DMetadataObject newValue) Accessor method to assign org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.setOversample
(String newValue) Accessor method to assign String enumeration value ("NONE" | "2X" | "4X") to inputOutput SFString field named oversample.setPauseTime
(double newValue) Accessor method to assign double value in seconds to inputOutput SFTime field named pauseTime.setResumeTime
(double newValue) Accessor method to assign double value in seconds to inputOutput SFTime field named resumeTime.setStartTime
(double newValue) Accessor method to assign double value in seconds to inputOutput SFTime field named startTime.setStopTime
(double newValue) Accessor method to assign double value in seconds to inputOutput SFTime field named stopTime.setTailTime
(double newValue) Accessor method to assign double value in seconds to inputOutput SFTime field named tailTime.
-
Method Details
-
getChannelCount
int getChannelCount()Provide int value from outputOnly SFInt32 field named channelCount.
Tooltip: [0,+infinity) channelCount reports number of channels provided by input nodes.- Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount
- Specified by:
getChannelCount
in interfaceX3DSoundProcessingNode
- Returns:
- value of channelCount field
-
getChannelCountMode
String getChannelCountMode()Provide String enumeration value (baseType SFString) ["MAX" | "CLAMPED_MAX" | "EXPLICIT"] from inputOutput SFString field named channelCountMode.
Tooltip: channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.- Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode
- Specified by:
getChannelCountMode
in interfaceX3DSoundProcessingNode
- Returns:
- value of channelCountMode field
-
setChannelCountMode
Accessor method to assign String enumeration value ("MAX" | "CLAMPED_MAX" | "EXPLICIT") to inputOutput SFString field named channelCountMode.
Tooltip: channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.- Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode
- Specified by:
setChannelCountMode
in interfaceX3DSoundProcessingNode
- Parameters:
newValue
- is new value for the channelCountMode field.- Returns:
WaveShaper
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getChannelInterpretation
String getChannelInterpretation()Provide String enumeration value (baseType SFString) ["SPEAKERS" | "DISCRETE"] from inputOutput SFString field named channelInterpretation.
Tooltip: channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.- Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation
- Specified by:
getChannelInterpretation
in interfaceX3DSoundProcessingNode
- Returns:
- value of channelInterpretation field
-
setChannelInterpretation
Accessor method to assign String enumeration value ("SPEAKERS" | "DISCRETE") to inputOutput SFString field named channelInterpretation.
Tooltip: channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.- Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation
- Specified by:
setChannelInterpretation
in interfaceX3DSoundProcessingNode
- Parameters:
newValue
- is new value for the channelInterpretation field.- Returns:
WaveShaper
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getChildren
X3DNode[] getChildren()Provide array of org.web3d.x3d.sai.Core.X3DNode results (using an array consisting of properly typed nodes or ProtoInstances) with acceptable node types limited to Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper, from inputOutput MFNode field children.
Tooltip: [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode] The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.- Warning: contained AudioClip or MovieTexture nodes must have containerField='children' to override otherwise-incorrect defaults.
- Hint: can be original (DEF) or referenced (USE) nodes.
Warning: according to X3D Unified Object Model (X3DUOM), acceptable node types are limited to Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper.- Returns:
- value of children field
- See Also:
-
setChildren
Accessor method to assign org.web3d.x3d.sai.Core.X3DNode array (using an array consisting of properly typed nodes or ProtoInstances) to inputOutput MFNode field children.
Tooltip: [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode] The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.- Warning: contained AudioClip or MovieTexture nodes must have containerField='children' to override otherwise-incorrect defaults.
- Hint: can be original (DEF) or referenced (USE) nodes.
Note: according to X3D Unified Object Model (X3DUOM), acceptable node types are limited to Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper.- Parameters:
newValue
- is new value for the children field.- Returns:
WaveShaper
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
addChildren
Add array of children nodes to array of existing nodes (if any).
Note: according to X3D Unified Object Model (X3DUOM), acceptable node types are limited to Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper.- Parameters:
newValue
- is new value array to be appended the children field.
-
setChildren
Set single children node, replacing prior array of existing nodes (if any).- Parameters:
newValue
- is new node for the children field
-
getDescription
String getDescription()Provide String value from inputOutput SFString field named description.
Tooltip: Author-provided prose that describes intended purpose of the url asset.- Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as & for & ampersand character, or " for " quotation-mark character).
- Specified by:
getDescription
in interfaceX3DSoundNode
- Specified by:
getDescription
in interfaceX3DSoundProcessingNode
- Specified by:
getDescription
in interfaceX3DTimeDependentNode
- Returns:
- value of description field
-
setDescription
Accessor method to assign String value to inputOutput SFString field named description.
Tooltip: Author-provided prose that describes intended purpose of the url asset.- Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as & for & ampersand character, or " for " quotation-mark character).
- Specified by:
setDescription
in interfaceX3DSoundNode
- Specified by:
setDescription
in interfaceX3DSoundProcessingNode
- Specified by:
setDescription
in interfaceX3DTimeDependentNode
- Parameters:
newValue
- is new value for the description field.- Returns:
WaveShaper
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getElapsedTime
double getElapsedTime()Provide double value in seconds within allowed range of [0,infinity) from outputOnly SFTime field named elapsedTime.
Tooltip: [0,+infinity) Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.- Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.
- Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time.
- Specified by:
getElapsedTime
in interfaceX3DSoundProcessingNode
- Specified by:
getElapsedTime
in interfaceX3DTimeDependentNode
- Returns:
- value of elapsedTime field
-
getEnabled
boolean getEnabled()Provide boolean value from inputOutput SFBool field named enabled.
Tooltip: Enables/disables node operation. *- Specified by:
getEnabled
in interfaceX3DSoundNode
- Specified by:
getEnabled
in interfaceX3DSoundProcessingNode
- Returns:
- value of enabled field
-
setEnabled
Accessor method to assign boolean value to inputOutput SFBool field named enabled.
Tooltip: Enables/disables node operation. *- Specified by:
setEnabled
in interfaceX3DSoundNode
- Specified by:
setEnabled
in interfaceX3DSoundProcessingNode
- Parameters:
newValue
- is new value for the enabled field.- Returns:
WaveShaper
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getGain
float getGain()Provide float value from inputOutput SFFloat field named gain.
Tooltip: (-infinity,+infinity) The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.- Warning: Decibel values shall not be used.
- Hint: Negative gain factors negate the input signal.
- Specified by:
getGain
in interfaceX3DSoundProcessingNode
- Returns:
- value of gain field
-
setGain
Accessor method to assign float value to inputOutput SFFloat field named gain.
Tooltip: (-infinity,+infinity) The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.- Warning: Decibel values shall not be used.
- Hint: Negative gain factors negate the input signal.
- Specified by:
setGain
in interfaceX3DSoundProcessingNode
- Parameters:
newValue
- is new value for the gain field.- Returns:
WaveShaper
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getIsActive
boolean getIsActive()Provide boolean value from outputOnly SFBool field named isActive.
Tooltip: isActive true/false events are sent when playback starts/stops.- Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.
- Specified by:
getIsActive
in interfaceX3DSoundProcessingNode
- Specified by:
getIsActive
in interfaceX3DTimeDependentNode
- Returns:
- value of isActive field
-
getIsPaused
boolean getIsPaused()Provide boolean value from outputOnly SFBool field named isPaused.
Tooltip: isPaused true/false events are sent when AudioClip is paused/resumed.- Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.
- Specified by:
getIsPaused
in interfaceX3DSoundProcessingNode
- Specified by:
getIsPaused
in interfaceX3DTimeDependentNode
- Returns:
- value of isPaused field
-
getMetadata
X3DMetadataObject getMetadata()Provide org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.
Tooltip: [X3DMetadataObject] Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.- Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#Metadata
- Specified by:
getMetadata
in interfaceX3DChildNode
- Specified by:
getMetadata
in interfaceX3DNode
- Specified by:
getMetadata
in interfaceX3DSoundNode
- Specified by:
getMetadata
in interfaceX3DSoundProcessingNode
- Specified by:
getMetadata
in interfaceX3DTimeDependentNode
- Returns:
- value of metadata field
- See Also:
-
setMetadata
Accessor method to assign org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.
Tooltip: [X3DMetadataObject] Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.- Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#Metadata
- Specified by:
setMetadata
in interfaceX3DChildNode
- Specified by:
setMetadata
in interfaceX3DNode
- Specified by:
setMetadata
in interfaceX3DSoundNode
- Specified by:
setMetadata
in interfaceX3DSoundProcessingNode
- Specified by:
setMetadata
in interfaceX3DTimeDependentNode
- Parameters:
newValue
- is new value for the metadata field.- Returns:
WaveShaper
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).- See Also:
-
getOversample
String getOversample()Provide String enumeration value (baseType SFString) ["NONE" | "2X" | "4X"] from inputOutput SFString field named oversample.
Tooltip: The oversample field is specifies what type of oversampling (if any) should be used when applying the shaping curve. Allowed values follow. Note that for some applications, avoiding oversampling can produce a precise shaping curve.- Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#enumdef-oversampletype
- Returns:
- value of oversample field
-
setOversample
Accessor method to assign String enumeration value ("NONE" | "2X" | "4X") to inputOutput SFString field named oversample.
Tooltip: The oversample field is specifies what type of oversampling (if any) should be used when applying the shaping curve. Allowed values follow. Note that for some applications, avoiding oversampling can produce a precise shaping curve.- Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#enumdef-oversampletype
- Parameters:
newValue
- is new value for the oversample field.- Returns:
WaveShaper
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getPauseTime
double getPauseTime()Provide double value in seconds from inputOutput SFTime field named pauseTime.
Tooltip: When time now >= pauseTime, isPaused becomes true and AudioClip becomes paused. Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.- Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.
- Specified by:
getPauseTime
in interfaceX3DSoundProcessingNode
- Specified by:
getPauseTime
in interfaceX3DTimeDependentNode
- Returns:
- value of pauseTime field
-
setPauseTime
Accessor method to assign double value in seconds to inputOutput SFTime field named pauseTime.
Tooltip: When time now >= pauseTime, isPaused becomes true and AudioClip becomes paused. Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.- Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.
- Specified by:
setPauseTime
in interfaceX3DSoundProcessingNode
- Specified by:
setPauseTime
in interfaceX3DTimeDependentNode
- Parameters:
newValue
- is new value for the pauseTime field.- Returns:
WaveShaper
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getResumeTime
double getResumeTime()Provide double value in seconds from inputOutput SFTime field named resumeTime.
Tooltip: When resumeTime becomes <= time now, isPaused becomes false and AudioClip becomes active. Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.- Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.
- Specified by:
getResumeTime
in interfaceX3DSoundProcessingNode
- Specified by:
getResumeTime
in interfaceX3DTimeDependentNode
- Returns:
- value of resumeTime field
-
setResumeTime
Accessor method to assign double value in seconds to inputOutput SFTime field named resumeTime.
Tooltip: When resumeTime becomes <= time now, isPaused becomes false and AudioClip becomes active. Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.- Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.
- Specified by:
setResumeTime
in interfaceX3DSoundProcessingNode
- Specified by:
setResumeTime
in interfaceX3DTimeDependentNode
- Parameters:
newValue
- is new value for the resumeTime field.- Returns:
WaveShaper
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getStartTime
double getStartTime()Provide double value in seconds from inputOutput SFTime field named startTime.
Tooltip: Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.- Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.
- Specified by:
getStartTime
in interfaceX3DSoundProcessingNode
- Specified by:
getStartTime
in interfaceX3DTimeDependentNode
- Returns:
- value of startTime field
-
setStartTime
Accessor method to assign double value in seconds to inputOutput SFTime field named startTime.
Tooltip: Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.- Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.
- Specified by:
setStartTime
in interfaceX3DSoundProcessingNode
- Specified by:
setStartTime
in interfaceX3DTimeDependentNode
- Parameters:
newValue
- is new value for the startTime field.- Returns:
WaveShaper
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getStopTime
double getStopTime()Provide double value in seconds from inputOutput SFTime field named stopTime.
Tooltip: Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.- Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.
- Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.
- Warning: An active TimeSensor node ignores set_stopTime event values less than or equal to startTime.
- Specified by:
getStopTime
in interfaceX3DSoundProcessingNode
- Specified by:
getStopTime
in interfaceX3DTimeDependentNode
- Returns:
- value of stopTime field
-
setStopTime
Accessor method to assign double value in seconds to inputOutput SFTime field named stopTime.
Tooltip: Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.- Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.
- Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.
- Warning: An active TimeSensor node ignores set_stopTime event values less than or equal to startTime.
- Specified by:
setStopTime
in interfaceX3DSoundProcessingNode
- Specified by:
setStopTime
in interfaceX3DTimeDependentNode
- Parameters:
newValue
- is new value for the stopTime field.- Returns:
WaveShaper
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getTailTime
double getTailTime()Provide double value in seconds within allowed range of [0,infinity) from inputOutput SFTime field named tailTime.
Tooltip: [0,+infinity) tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent. *- Specified by:
getTailTime
in interfaceX3DSoundProcessingNode
- Returns:
- value of tailTime field
-
setTailTime
Accessor method to assign double value in seconds to inputOutput SFTime field named tailTime.
Tooltip: [0,+infinity) tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent. *- Specified by:
setTailTime
in interfaceX3DSoundProcessingNode
- Parameters:
newValue
- is new value for the tailTime field.- Returns:
WaveShaper
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-